Basito: Basic compatible CPC

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Responder
NotFound
rst 0
Mensajes: 16
Registrado: Dom Feb 17, 2008 1:46 am

Basito: Basic compatible CPC

Mensaje por NotFound » Mar Jun 29, 2021 4:32 pm

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.

Avatar de Usuario
radastan
Phantomas
Mensajes: 2232
Registrado: Lun May 07, 2007 5:34 pm
Contactar:

Re: Basito: Basic compatible CPC

Mensaje por radastan » Mié Jun 30, 2021 10:23 am

¡Mola! habrá que probarlo.
Voy a anunciarlo por twitter con tu permiso.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________

NotFound
rst 0
Mensajes: 16
Registrado: Dom Feb 17, 2008 1:46 am

Re: Basito: Basic compatible CPC

Mensaje por NotFound » Mié Jun 30, 2021 10:57 am

Sin problema.
Ah, olvidaba mencionar que aún no tiene arrays ni def fn.

fcastellanos
rst 0
Mensajes: 17
Registrado: Lun Nov 02, 2020 5:47 pm

Re: Basito: Basic compatible CPC

Mensaje por fcastellanos » Mié Jun 30, 2021 11:39 pm

¡Muy buen trabajo!

Si le das soporte a ULA Plus para acercarte gráficamente al Amstrad ya sería la leche.

NotFound
rst 0
Mensajes: 16
Registrado: Dom Feb 17, 2008 1:46 am

Re: Basito: Basic compatible CPC

Mensaje por NotFound » Jue Jul 01, 2021 2:37 am

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).

NotFound
rst 0
Mensajes: 16
Registrado: Dom Feb 17, 2008 1:46 am

Re: Basito: Basic compatible CPC

Mensaje por NotFound » Jue Jul 01, 2021 2:41 am

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.

K.O.D.
Jack The Nipper
Mensajes: 115
Registrado: Mar Sep 30, 2008 8:45 am
Ubicación: Valencia

Re: Basito: Basic compatible CPC

Mensaje por K.O.D. » Vie Jul 02, 2021 1:19 am

Vaya, qué original! Gracias por publicarlo, me gusta mucho el tema del BASIC como hobby así que le daré un vistazo :D

NotFound
rst 0
Mensajes: 16
Registrado: Dom Feb 17, 2008 1:46 am

Basito ampliado y multiplataforma

Mensaje por NotFound » Vie Feb 11, 2022 2:34 am

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.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 13 invitados