{"id":1584,"date":"2015-04-01T22:42:12","date_gmt":"2015-04-01T22:42:12","guid":{"rendered":"http:\/\/blog.rastersoft.com\/?p=1584"},"modified":"2015-04-01T22:42:12","modified_gmt":"2015-04-01T22:42:12","slug":"actualizado-fbzx","status":"publish","type":"post","link":"https:\/\/blog.rastersoft.com\/?p=1584","title":{"rendered":"Actualizado FBZX"},"content":{"rendered":"<p>Tras recibir un informe de error de un usuario, decid\u00ed que ya era hora de actualizar un poquito <a href=\"http:\/\/rastersoft.com\/programas\/fbzxesp.html\" target=\"_blank\">FBZX<\/a>. Sin embargo, estoy tan acostumbrado a trabajar orientado a objeto con Vala y Python que no me apetec\u00eda ponerme a trabajar en C puro y programaci\u00f3n funcional, as\u00ed que me li\u00e9 la manta a la cabeza y refactoric\u00e9 el c\u00f3digo de FBZX en C++. El motivo principal fue reescribir, esta vez s\u00ed desde cero, el c\u00f3digo del emulador de cinta. Al utilizar herencia simplifica mucho el c\u00f3digo, al permitir compartir mucho de \u00e9l entre ficheros TAP y TZX. Adem\u00e1s, ahora permite hacer cosas que antes no eran posibles, como por ejemplo carga r\u00e1pida de ficheros TZX, e incluso grabar en ambos formatos.<\/p>\n<p>Ya puestos, aprovech\u00e9 para pulir la interfaz y cambiar la tipograf\u00eda por otra m\u00e1s elegante (y adem\u00e1s, proporcional, gracias a c\u00f3digo extra\u00eddo de <a href=\"http:\/\/rastersoft.com\/programas\/ttos_es.html\" target=\"_blank\">TTOS<\/a>). Y tambi\u00e9n aprovech\u00e9 para a\u00f1adir detalles extra, como por ejemplo ruido en la entrada de audio cuando la cinta no est\u00e1 en marcha (de manera que el borde parpadee cuando el sistema est\u00e1 esperando a que se ponga en marcha la cinta), o que cuando la cinta est\u00e9 reproduci\u00e9ndose el emulador trabaje a m\u00e1xima velocidad, y que vuelva a velocidad normal cuando se pause.<\/p>\n<p>Tambi\u00e9n correg\u00ed algunos bugs, como por ejemplo algunos problemillas que hab\u00eda con la carga y grabaci\u00f3n r\u00e1pidas, sobre todo en modo +3. Tambi\u00e9n retir\u00e9 todas las palabras clave \u00abregister\u00bb e \u00abinline\u00bb de C porque daban problemas a la hora de compilar con GCC 5. Ah, y al listar ficheros para escoger un TAP, TZX, SNA, etc. aparecen ordenados alfab\u00e9ticamente, lo que simplifica la b\u00fasqueda. Y, por supuesto, limpieza de variables no usadas, etc.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tras recibir un informe de error de un usuario, decid\u00ed que ya era hora de actualizar un poquito FBZX. Sin embargo, estoy tan acostumbrado a trabajar orientado a objeto con Vala y Python que no me apetec\u00eda ponerme a trabajar en C puro y programaci\u00f3n funcional, as\u00ed que me li\u00e9 la manta a la cabeza &hellip; <a href=\"https:\/\/blog.rastersoft.com\/?p=1584\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">Actualizado FBZX<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1584","post","type-post","status-publish","format-standard","hentry","category-nueva-version"],"_links":{"self":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/1584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1584"}],"version-history":[{"count":0,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=\/wp\/v2\/posts\/1584\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rastersoft.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}