Basito: Basic compatible CPC
Moderador: Sir Cilve Sinclair
-
- rst 0
- Mensajes: 16
- Registrado: Dom Feb 17, 2008 1:46 am
Basito: Basic compatible CPC
Hola a todos.
He estado poniendo un poco a punto mi viejo proyecto Basito: un Basic compatible con el Locomotive Basic de los Amstrad CPC.
En primicia mundial para speccy.org he subido una imagen dsk para Spectrum +3 en: https://notfound.tecnawebs.com/bin/basitop3.tgz
Funciona la mayor parte del Basic, con la gran excepción de que solo admite enteros (asume DEFINT A-Z), aunque como caso especial admite números hasta 65535 y los convierte.
Las cosas que dependen del hardware, como los colores, funcionan mas o menos.
WINDOW y familia no funciona, los canales 0 a 7 se dirigen todos a la consola.
Las funciones e instrucciones no implementadas generan un error 255, o en algunos casos error de syntaxis.
Puede cargar y guardar programas del CPC, tanto en binario como texto.
Pues eso, toda extraña persona que conozca tanto el Spectrum como el CPC y quiera probar este Frankestein puede contar sus impresiones.
He estado poniendo un poco a punto mi viejo proyecto Basito: un Basic compatible con el Locomotive Basic de los Amstrad CPC.
En primicia mundial para speccy.org he subido una imagen dsk para Spectrum +3 en: https://notfound.tecnawebs.com/bin/basitop3.tgz
Funciona la mayor parte del Basic, con la gran excepción de que solo admite enteros (asume DEFINT A-Z), aunque como caso especial admite números hasta 65535 y los convierte.
Las cosas que dependen del hardware, como los colores, funcionan mas o menos.
WINDOW y familia no funciona, los canales 0 a 7 se dirigen todos a la consola.
Las funciones e instrucciones no implementadas generan un error 255, o en algunos casos error de syntaxis.
Puede cargar y guardar programas del CPC, tanto en binario como texto.
Pues eso, toda extraña persona que conozca tanto el Spectrum como el CPC y quiera probar este Frankestein puede contar sus impresiones.
- radastan
- Phantomas
- Mensajes: 2232
- Registrado: Lun May 07, 2007 5:34 pm
- Contactar:
Re: Basito: Basic compatible CPC
¡Mola! habrá que probarlo.
Voy a anunciarlo por twitter con tu permiso.
Voy a anunciarlo por twitter con tu permiso.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
-
- rst 0
- Mensajes: 16
- Registrado: Dom Feb 17, 2008 1:46 am
Re: Basito: Basic compatible CPC
Sin problema.
Ah, olvidaba mencionar que aún no tiene arrays ni def fn.
Ah, olvidaba mencionar que aún no tiene arrays ni def fn.
-
- rst 0
- Mensajes: 17
- Registrado: Lun Nov 02, 2020 5:47 pm
Re: Basito: Basic compatible CPC
¡Muy buen trabajo!
Si le das soporte a ULA Plus para acercarte gráficamente al Amstrad ya sería la leche.
Si le das soporte a ULA Plus para acercarte gráficamente al Amstrad ya sería la leche.
-
- rst 0
- Mensajes: 16
- Registrado: Dom Feb 17, 2008 1:46 am
Re: Basito: Basic compatible CPC
Otro par de cosas que no había mencionado:
Puede usar el ramdisc, usando |M o "M:..." en los nombre fichero.
El ramdisc no se borra al iniciar, y la orden |exit (y también la instrucción no-CPC system, pero esto no he decidido aún si lo mantendré) vuelve al menú del Spectrum sin perder el ramdisc.
Los ficheros abiertos con OPENIN admiten finales de línea con CRLF como es habiual, y también con solo LF. Esto último no es muy fiel al CPC, pero facilita las cosas al usar ficheros copiados de linux.
SYMBOL permite definir los caracteres del rango de los UDG del Spectrum (incluyendo los del modo 48K) y también los mapea al rango 235-255 para poder usar sin modificar los ejemplos típicos del CPC (salvo que SYMBOL AFTER por ahora no funciona).
O sea, que SYMBOL 144, .... y SYMBOL 235, ... redefinen el mismo caracter, PRINT CHR$(144) y PRINT CHR$(235) imprimen el mismo caracter.
Y otra, para teclear caracteres de control ^A a ^Z se usa modo extendido y la tecla correspondiente sin ningún shift, y break hace de ESC.
Creo que esto no impide el tecleo de ningún caracter normal ni gráfico, avisadme si me equivoco.
fcastellanos: Por ahora las instrucciones de gráficos no están implementadas, así que no se acerca nada en absoluto. Aparte de mi total desconocimiento de la ULA Plus. Pero cuando la cosas esté un poco mas pulida y publique los fuentes todo será posible.
Por otra parte he publicado solo la versión Plus3 como especial para speccy.org, pero es multiplataforma (siempre que sea Z80). Además de +3 lo estoy probando en el propio CPC y en CP/M. Así que la parte gráfica necesariamente deberá tener varias versiones (o no funcionar en absoluto, en caso de CP/M genérico).
Puede usar el ramdisc, usando |M o "M:..." en los nombre fichero.
El ramdisc no se borra al iniciar, y la orden |exit (y también la instrucción no-CPC system, pero esto no he decidido aún si lo mantendré) vuelve al menú del Spectrum sin perder el ramdisc.
Los ficheros abiertos con OPENIN admiten finales de línea con CRLF como es habiual, y también con solo LF. Esto último no es muy fiel al CPC, pero facilita las cosas al usar ficheros copiados de linux.
SYMBOL permite definir los caracteres del rango de los UDG del Spectrum (incluyendo los del modo 48K) y también los mapea al rango 235-255 para poder usar sin modificar los ejemplos típicos del CPC (salvo que SYMBOL AFTER por ahora no funciona).
O sea, que SYMBOL 144, .... y SYMBOL 235, ... redefinen el mismo caracter, PRINT CHR$(144) y PRINT CHR$(235) imprimen el mismo caracter.
Y otra, para teclear caracteres de control ^A a ^Z se usa modo extendido y la tecla correspondiente sin ningún shift, y break hace de ESC.
Creo que esto no impide el tecleo de ningún caracter normal ni gráfico, avisadme si me equivoco.
fcastellanos: Por ahora las instrucciones de gráficos no están implementadas, así que no se acerca nada en absoluto. Aparte de mi total desconocimiento de la ULA Plus. Pero cuando la cosas esté un poco mas pulida y publique los fuentes todo será posible.
Por otra parte he publicado solo la versión Plus3 como especial para speccy.org, pero es multiplataforma (siempre que sea Z80). Además de +3 lo estoy probando en el propio CPC y en CP/M. Así que la parte gráfica necesariamente deberá tener varias versiones (o no funcionar en absoluto, en caso de CP/M genérico).
-
- rst 0
- Mensajes: 16
- Registrado: Dom Feb 17, 2008 1:46 am
Re: Basito: Basic compatible CPC
Y una cosita mas (hoy estoy en plan Colombo): yo lo he desarrollado y probado únicamente con emuladores, así que el que quiera anunciar la primicia de su primer uso en un Spectrum +3 hecho de átomos y no de bits puede hacerlo ya.
-
- Jack The Nipper
- Mensajes: 115
- Registrado: Mar Sep 30, 2008 8:45 am
- Ubicación: Valencia
Re: Basito: Basic compatible CPC
Vaya, qué original! Gracias por publicarlo, me gusta mucho el tema del BASIC como hobby así que le daré un vistazo
-
- rst 0
- Mensajes: 16
- Registrado: Dom Feb 17, 2008 1:46 am
Basito ampliado y multiplataforma
Hola de nuevo.
He subido una versión ampliada y mejorada con versiones para Spectrum, Amstrad CPC, CP/M genérico y CP/M para CPC.
https://notfound.tecnawebs.com/bin/basito.dsk
DEF FN experimental, los nombres de los parámetros colisionan con las variables globales.
Ahora incluye funciones gráficas, pero cuidado en la versión Spectrum, dibujar fuera de la pantalla casca muy feamente.
PLOT, PLOTR, DRAW, DRAWR, CLG, GRAPHICS PEN, GRAPHICS PAPER
La imagen es un Extended DSK en formato CPC DATA que debería funcionar sin problemas en cualquier emulador.
En Spectrum +3 arranca con el Loader, o LOAD"DISK"
También hay una versión "RUN ONLY", para ver como usarla hay un programa Basic: BASITOR. Esta versión solo funciona con programas Basic binarios, no tiene listador ni analizador para ahorrar memoria.
La versión CPC arranca con RUN"BASITO.BIN", en el disco hay un "DISC.BAS" que puede facilitar el autoarranque en emuladores.
BASITO.COM es la versión para CP/M Plus genérico, sin gráficos.
BASITOR.COM es lo mismo pero "RUN ONLY,". Para usarla: BASITOR.COM PROGRAMA.BAS
BASITOC.COM es la versión CP/M Plus específica para CPC, que para texto y gráficos usa el firmware, así que petará en otras máquinas.
Bueno, eso es todo por ahora, ya contareis.
He subido una versión ampliada y mejorada con versiones para Spectrum, Amstrad CPC, CP/M genérico y CP/M para CPC.
https://notfound.tecnawebs.com/bin/basito.dsk
DEF FN experimental, los nombres de los parámetros colisionan con las variables globales.
Ahora incluye funciones gráficas, pero cuidado en la versión Spectrum, dibujar fuera de la pantalla casca muy feamente.
PLOT, PLOTR, DRAW, DRAWR, CLG, GRAPHICS PEN, GRAPHICS PAPER
La imagen es un Extended DSK en formato CPC DATA que debería funcionar sin problemas en cualquier emulador.
En Spectrum +3 arranca con el Loader, o LOAD"DISK"
También hay una versión "RUN ONLY", para ver como usarla hay un programa Basic: BASITOR. Esta versión solo funciona con programas Basic binarios, no tiene listador ni analizador para ahorrar memoria.
La versión CPC arranca con RUN"BASITO.BIN", en el disco hay un "DISC.BAS" que puede facilitar el autoarranque en emuladores.
BASITO.COM es la versión para CP/M Plus genérico, sin gráficos.
BASITOR.COM es lo mismo pero "RUN ONLY,". Para usarla: BASITOR.COM PROGRAMA.BAS
BASITOC.COM es la versión CP/M Plus específica para CPC, que para texto y gráficos usa el firmware, así que petará en otras máquinas.
Bueno, eso es todo por ahora, ya contareis.
¿Quién está conectado?
Usuarios navegando por este Foro: Ahrefs [Bot] y 18 invitados