Hablemos de... Beta Basic una vez mas Cuando pensaba que ya no habia nada mas que decir sobre el Beta Basic... Y empezamos con... Las versiones originales para cinta: Beta Basic 1.0 Beta Basic 1.8 Beta Basic 1.9 Beta Basic 3.0 Beta Basic 3.1 Beta Basic 4.0 Otras versiones: Beta Basic 3.0 alterno o diferente Beta Basic 3.0W Beta Basic 3.0D Beta Basic 3.0+D Beta Basic 4.0 alterno o diferente Beta Basic 4.0D Beta Basic 4.0+D Y ahora si, vamos a ver cada version una por una: Beta Basic 1.0 Ya trate con mayor extension sobre esta version en la primera parte. Ahora solo voy a decir brevemente lo sigte.: Salio a solo un año despues del Spectrum. Version cinta con un cargador Basic que hacia imposible copiarlo a Microdrive o a otro sistema de disco. El unico modo es usando el Multiface 1, el cual ya permite pasarlo a Microdrive, cinta o a Opus Discovery. Con Microdrives, Disciple y +D funciona bien hasta que se da un error de disco que provoca que el Beta Basic se desactive. ON ERROR no captura los errores de disco ni del Interface 1. Es incompatible con el Wafadrive y con el Betadisco 48 y Beta128. Con Opus Discovery y Didaktik Mdos, ON ERROR si captura los errores de disco, excepto que solo aparece una letra indicando el error de disco pero sin ningun mensaje que explique de cual se trata. Con Timex FDD en cambio es plenamente compatible al grado de que pareciera hecho exclusivamente para este sistema. Beta Basic 1.8 Tambien he hablado bastante de esta version antes, asi que me limitare a mencionar que todo lo antes de dicho sobre el BB 1.0 es valido para el BB 1.8, con las sigtes. excepciones: Si es posible de copiar al Wafadrive pero el minimo error de drive, hace que el Beta Basic se desactive como con los Microdrives. Beta Basic 1.9 De esta version no habia encontrado demasiada informacion como para saber que es lo que lo diferenciaba del Bb 1.8. Tras descargar el libro en holandes, "Beter programmeren met Beta Basic en de ZX Spectrum (+)" por S.Girard y L.Verboven, aprendi lo que necesitaba para poder experimentar con esta version. Añade lo sigte: EOF (n) - captura el fin de fichero del fichero secuencial de Microdrive. Puede combinarse con DO - LOOP para crear bucles para leer los ficheros. Es posible usar este tipo de bucles tambien con ficheros de Opus Disc., pero en este ultimo caso, EOF() no funciona, debiendo reemplazarse por la funcion exclusiva de Opus para tal fin. Ejemplos de su uso... Una vez creado un fichero MDR podemos leerlo del sigte. modo: 120 OPEN #4;"m";1;"NAAM" 130 DO WHILE NOT EOF(4) 140 INPUT #4;N$:PRINT N$ 150 PAUSE 1 160 INPUT #4;A$:PRINT A$ 170 PAUSE 1 180 LOOP 190 CLOSE #4 y en el caso del Opus Discovery: 240 OPEN #4;"m";1;"BESTAND"IN 260 DO 270 PRINT #4; 280 EXIT IF USR 432=0 290 INPUT #4;X$:PRINT X$ 170 PAUSE 1 180 LOOP 190 CLOSE #4 Parece ser la unica version que permite usar bucles DO - LOOP con ficheros. Sin embargo en el caso de los Microdrives, tiene una pequeña desventaja. Solamente funciona si es una Interface 1 con la primera ROM. Si se usa la que tiene la otra ROM, EOF() ya no funciona. Y si, eso es lo unico que la diferencia de la anterior BB 1.8, nada mas. Nota: En el caso de Timex FDD, la funcion EOF() y DO - LOOP no funcionan con los ficheros. Aqui podemos hacer algo interesante como es, reemplazar la linea cero del BB 1.9 por la del 1.8 y añadirle DEF FN e()=(PEEK23728=72) y usar los bucles convencionales del Spectrum como GOTO o FOR - NEXT. Pensandolo bien, tambien podemos hacer eso mismo con el OPUS, ya que la unica funcion que no funciona es EOF y definirla DEF FN e()=(USR 432=0), con la ventaja de que aqui si podemos usar los bucles DO - LOOP. Esperaba que al igual que pasa con BB 1.8 y Didaktik Mdos que captura sus errores de disco, BB 1.9 hiciera lo mismo, pero en este caso no lo hace, por lo que un error de disco y el BB se desactiva, posiblemente se deba a que su codigo fue optimizado para MDR. Encima hay que POKEar para que acepte los comandos mas basicos de disco como CAT o SAVE*. Beta Basic 3.0 De esta version tambien he tratado antes con mayor detenimiento, y por eso solo queda ahora mencionar resumidamente lo sigte.: La version cinta puede ser copiada facilmente a cualquier sistema de disco, pero con diversos efectos. Debido a dichos problemas de compatibilidad, fue necesario para el autor crear versiones exclusivas para dichos sistemas. En cuanto al Microdrive, se requiere del original y no copia de copia, para crear una version optimizada la cual añade nuevos comandos al Interface 1, pero el detalle es que si la copia se creo con un Zx IF1 con la ROM primera podria no funcionar correctamente con un IF1 con la segunda ROM, debido a que se automodifica para adecuarse al hardware y a la ROM, por lo que el manual sugeria que se hiciera una nueva copia pàra usar con la segunda ROM del IF1 y asi evitarse incompatibilidades como las que se dan con BB 1.9, cuando esta es usada con diferentes IF1s. A continuacion un extracto del Boletin #2 del BB, en respuesta a una carta de un lector: "... ud. tiene la version 10 del BB 3.0 debido a que PEEK 47272 da 10. En el momento de escribir esto, ya hay una version 21, pero no es tan malo como suena, ya que a diferencia de los programas en chips, incluso una pequeña venta es digna de tener una pronta corrreccion. Aqui hay una lista de las versiones y lo que corrigieron: 7 o menor - varios problemas - te sugiero que cambies tu cinta. 8 LOAD de una cinta con CSIZE que es no-cero, da un error. ON ERROR imprime un numero al fondo de la pantalla. 9 SAVE *"m";1"nombre" (pero no SAVE 1;"nombre") causaba problemas en procedimientos. 10 LIST no es posible en WINDOWS solo unos pocos caracteres. 11 REF se confunde por los codigos de control de tinta, papel, inversa, o parpadeo con un parametro cero - POKE 48842,13 lo corrige. 12 LIST DEF KEY opera raro con algunas definiciones de teclas. 13 LLIST DATA tiene un problema al imprimir numeros de linea con bucles FOR-NEXT. LIST DATA en cambio opera correctamente! 14 un bug moderadamente exotico aflige a los procedimientos. POKE 48591,205: POKE 48592,186: POKE 48593,24: POKE 52894,205: POKE 52895,186: POKE 52896,24 lo corrige. 15 el ejemplo de WINDOW en la pag. 66 del manual se hace un "lio". 16 la justificacion a izquierda de los nombres de procedimientos se "lia". 17 demasiado exotico para explicarlo facilmente. 18 REF a veces halla la misma cosa repetidamente. POKE 48354,86: POKE 48355,200: POKE 48742,86: POKE 48743,200: POKE 48937,86: POKE 48938,200 corrige eso. 19 SAVE *"m"1;"nombre" (pero no SAVE 1;"nombre") a veces causa problemas. 20 algunos codigos de control pueden desactivar el LISTado de las nuevas palabras reservadas via el canal "t" en la Interface 1, version 2. 21 corregido el bug mentionado en la pagina 1. La vasta mayoria de cintas tienen que ser la version 9 o posterior si ud. desea intercambiarlas por cintas de la version mas reciente ... " Beta Basic 3.1 Con esta version no he podido crear nunca una copia optimizada para el IF1 por lo que carece de los comandos extras de Microdrive. En cuanto los sistemas de disco, sufre de los mismos problemas que la 3.0, por lo que hay que modificarla mediante POKEs por cada sistema. Beta Basic 4.0 Mientras que todas las versiones antes mencionadas fueron hechas pensando en un 48k, la 4.0 es la unica que funciona optimamente con el 128k y +2. A los comando del BB3 añade nuevas presntaciones las cuales usa para explotar tanto la pantalla completa, como el el disco RAM y el chip de sonido AY. En cuanto a su compatibilidad con los sistemas de disco, estos se limitan al Opus Discovery, Beta128, Timex FDD, Disciple y +D, estos ultimos con o sin Unidos. La version de cinta sufre de problemas de compatibilidad en lo que respecta a dichos sistemas de disco ya mencionados, lo que motivo, como en el caso del 3.0, que se creen versiones exclusivas tal como son la 4.0D o la 4.0+D Beta Basic 3.0 alterno o diferente Hay como dos o tres versiones llamadas 'alternate' o 'different', incluso hay una que parece estar en modo turbo o algo asi. Son versiones con alguno que otro bug corregido hasta donde sabemos. Lo dicho sobre BB 3.0 y 3.1 valen para estas variantes. Beta Basic 3.0W Es la version exclusiva para el Rotronics Wafadrive. Actualmente MIA. Es mencionada en el boletin #2 de Beta Basic: "UNA NOTA SOBRE SISTEMAS DE DISCO. Beta Basic esta disponible en versiones especiales para el OPUS Discovery y Wafadrive. Estas versiones soportan discos o wafas como dispositivos DEFAULT SAVE/LOAD, asi como tambien los puertos incorporados de impresora, EOF y ON ERROR. Sin embargo, cada version requirio mas de una semana de esfuerzos de programacion, y nos mostramos reluctantes a hacer esto por cada sistema posible, particularmente si los fabricantes van a seguir alterando sus productos de manera que causen problemas. El costo del hardware tambien es un factor. Los usuarios de Beta Disco ya deben de haber notado que el Beta Basic es "apagado" por LOAD y MERGE de un disco y debe ser "activado" otra vez con RANDOMIZE USR 53419" Asi que si, segun lo expuesto por el dr. Wright, hubo una version de BB3 para el Wafadrive plenamente operativo. En cuanto al Betadisco, al parecer nunca hubo una version exclusiva. Beta Basic 3.0D Es la version exclusiva para el Opus Discovery. Fue creada por el mismo autor, el dr. Wright para solucionar el problema de incompatibilidad de la version cinta. BB30D tiene algunas sentencias interesantes: ENDIF sintaxis: IF xx: setencias: ENDIF 10 IF xx 20 sentencias 30 ENDIF es un IF multilineas pero sin ELSE ni ELSEIF DEFAULT selecciona la unidad a usar por defecto DEFAULT=m - selecciona la unidad 1 DEFAULT=m1 - lo mismo DEFAULT=m2 - la unidad 2 DEFAULT=t - selecciona cintas Esto permite CAT, SAVE, LOAD, VERIFY, MERGE o ERASE sin el parametro de unidad añade tambien: SAVE x TO y,{unidad,}"nombre" salva fragmentos de listado a disco SAVE DATA {unidad},"nombre" salva solamente las variables del programa EOF(x) funciona para capturar el fin de un fichero secuencial USING$, CHAR y NUMBER pueden ser usados con ficheros secuenciales o directos ON ERROR captura los errores del disco AHORA CON UN 128K o +2 Para usar BB30D con el 128k o +2, tipear primero USR 0 estando en Basic 128k. Cargamos ahora el BB30D en Basic 48k. Hacemos FORMAT 6,"RAMDISC" y luego DEFAULT=M6 (esto ultimo opcional) y listo, ya se puede usar el Beta Basic con el disco RAM. Una buena alternativa al BB4 en caso de no tener esta ultima. En suma, es definitivamente la version mas completa en existencia del BB 3.0 comparado con todas las otras versiones. Beta Basic 3.0+D Es la version exclusiva para las interfaces Disciple y +D. Entre sus caracteristicas tenemos: Carece de ENDIF a diferencia de la BB30D DEFAULT no es aceptado en modo alguno ni ninguna de las formas abreviadas usadas para los comandos de disco por BB30D. Solo admite la sintaxis propia del +D o Disciple. Tampoco tiene las mejoras como SAVE x TO y;"..." o SAVE DATA "..." Excepto esas diferencias es plenamente operativo. Tampoco se cuelga al dar los mensajes de error de disco, los cuales pueden ser capturados por ON ERROR. Esta plenamente optimizado para usar con BETADOS. Y tambien UniDos. Beta Basic 4.0 alterno o diferente Asi como hay BB3 alternos, tambien hay versiones alternas del BB4 en version cinta, la cual añade la instruccion ENDIF a su repertorio de por si bastante amplio de libreria de comandos Beta Basic. Beta Basic 4.0D Es la version exclusiva para el Opus Discovery. Actualmente MIA hasta el momento de escribir estas notas. Lo unico que sabemos es que tiene todos los comandos extras del 3.0D añadidos a los del 128k con disco RAM. Esto fue mencionado en un boletin de BB: MOVE y BB 4.0D "MOVE en BB 4.0 para OPUS DISCOVERY tiene un bug esto fue reportado por varios usuarios. Si ud. tiene la version BB 4.0 de Discovery, vea que PEEK 61889 y 61890 dan 251 y 224 respectivamente; si no, POKEelos con esos valores para corregir un serio bug en el comando MOVE." Beta Basic 4.0+D Es la version exclusiva para el Disciple y +D. Tiene todas las caracteristicas de la version 3.0+D asi como sus limitaciones, pero añade la instruccion ENDIF. Todos los comandos estan operativos, incluidos los de disco G+dos y Disco RAM. En comparacion podria decirse que la version 4.0 para Opus fue mucho mas completa que cualquier otra version disponible a dia de hoy. Beta Basic y +3 Como ya se sabe no existe ninguna version que funcione con el +3 o el +2a. Asi que tuve que experimentar a ver lo que podia conseguir. El primer experimento fue probar una utilidad publicada por el magazin electronico OUTLET en formato disco. Para ser mas precisos la edicion 52, cara A del disco para +3. Viene con instrucciones en ingles, las cuales podemos resumir en copiar el Beta Basic 3 original renombrandolo para luego mezclarlo (MERGE) con el archivo ofrecido por OUTLET que es el cargador BASIC del programa para interfacear el +3 con el BB3, el cual permite ir del modo 48k en el que ejecutamos el BB3 y el modo +3 en el que podemos acceder a los comandos de disco. ASi que yendo de un modo al otro es como debemos poder acceder a todo el sistema, pero es a veces algo inestable y complicado. El segundo es usar la utilidad 48disk, el cual permite usar un entorno de 48k pero con acceso a los comandos de disco. En este caso solamente es posible de usar con el BB 1.8, ya que el BB 3.0 resulta muy inestable al punto de colgar o resetear el sistema. Con el 48disk podemos cargar y salvar el BB 1.8 a disco, pero una vez que estamos en el entorno Beta Basic, ya no reconoce ningun comando de disco. Eso nos obliga a desactivar el BB mediante USR 59904, para poder usar los comandos de disco como SAVE, CAT o LOAD, una vez cargado un programa hay que activar otra vez el BB 1.8 con USR 58419. Solamente asi es posible de usar. Si se intenta meter los comandos de disco en un listado, cuando este llegue a dichas lineas acabara provocando un cuelgue o reset. No lo he probado aun al momento de escribir estas lineas, pero en teoria, un programa que incluya como primeras lineas LOAD SCREEN$, CODE o DATAs podria ser cargado y autoejecutado siempre que el BB este desactivado y el programa mismo tenga a continuacion de tales LOADs una linea con la sentencia de ejecucion USR 58419. Eso garantizaria la carga y autoejecucion inmediata, pero en cambio parece que seria imposible salvar algo desde el programa mismo, solamente en modo comando y tras desactivar el BB. El tercer experimento fue uno del cual ya hable en otras ocasiones y que fue el de pasar el BB4 a cinta mediante el M128, para luego cargarlo en un +3 o +2a. El dilema es que aunque el BB4 carga bien, perdemos acceso a los discos del +3, el disco RAM y la sentencia PLAY, quedandonos limitados a trabajar solamente con cintas. El +2a puede al menos conectarse a un +D y trabajar con este aunque sea en modo 48k. La otra y la mas extrema es reemplazar la ROM de un +2a por la de un 128k para asi poder tener plena compatibilidad con el BB4. De hecho un usuario cuenta en una carta al dr. Wright, publicada en uno de sus boletines, que hizo eso precisamente. Y con esto cierro esta segunda parte. (c)2022 zx_if1@hotmail.com