Compilador de Basic para ZX

¿Tienes problemas con tu equipo?, preguntanos.

Moderador: Fundadores

Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5891
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1212 times
Been thanked: 2837 times
Contactar:

Re: Compilador de Basic para ZX

Mensaje por cacharreo »

jordigahan escribió: 21 Ene 2024, 03:07no entiendo muy bien lo de la linea 150 yo diria que sobra.
Esa línea lee la tecla pulsada y la almacena en la variable alfanumérica k$. Si no se usara esa variable, tendría que hacer una lectura de teclado cada línea (160, 170,...)
© cacharreo
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5891
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1212 times
Been thanked: 2837 times
Contactar:

Re: Compilador de Basic para ZX

Mensaje por cacharreo »

merlinkv escribió: 20 Ene 2024, 23:26Seguiré buscando, igual hay algun compilador que soporte el +3DOS directamente.
Una alternativa utilizando el Boriel sería dejar el BASIC compilado para el menú y añadir un lanzador al cargador del Boriel.

Es decir, si se compila el BASIC y devuelve un binario, se necesitará un cargador para ejecutarlo. Digamos que el cargador fuera algo así,

Código: Seleccionar todo

10 CLEAR x
20 LOAD "binario" CODE
30 LET x=USR y
se modifica de esta forma:

Código: Seleccionar todo

5 REM Carga del BASIC compilado
10 CLEAR x
20 LOAD "binario" CODE

25 REM Menu
30 LET x=USR y

40 REM Lanzador
50 REM Recoger el nombre del programa a cargar desde el menú

60 REM Si el nombre del programa es válido, carga el programa
70 IF n$<>"" THEN LOAD n$

80 REM si no, vuelve a mostrar el menu
90 GOTO 30
La línea más importante es la 50 que se encarga de hacer de interfaz/intermediario entre el menú (en BASIC compilado) y el lanzador. Se pueden utilizar diferentes técnicas para pasar el nombre del programa a cargar, desde dejar su valor en una variable alfanumérica (p.e. n$), guardarlo en una posición de memoria conocida por el lanzador,...
© cacharreo
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6397
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 125 times
Been thanked: 331 times
Contactar:

Re: Compilador de Basic para ZX

Mensaje por merlinkv »

Hola:

Gracias compis.

El tema va de los menús que tengo creados para +3DOS y discos del +3. Son simples menús desde los que lanzo no el ejecutable de un juego en sí, sino el cargador BASIC de dichos juegos que, normalmente, incluyen pokes y/o rutinas específicas de carga.

Esos cargadores BASIC de dichos juegos no se compilan con el ZX Basic, de ahí la idea de cargar simplemente el cargador Basic de cada uno.

Si se pudieran cargar otros programas Basic desde disco ya me ocuparía después de depurar/mejorar el programilla de menús en sí.
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5891
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1212 times
Been thanked: 2837 times
Contactar:

Re: Compilador de Basic para ZX

Mensaje por cacharreo »

Ahora estoy con el soldador montando placas de proyectos pero en cuanto termine dejo por aquí una prueba de concepto (ejecutable) para que se entienda mejor porque me explico de pena. ;)
© cacharreo
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5891
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1212 times
Been thanked: 2837 times
Contactar:

Re: Compilador de Basic para ZX

Mensaje por cacharreo »

La prueba de concepto. ;)

El cargador que va grabado en el disco como programa BASIC (p.e. "loader" o "DISK") sin compilar,

Código: Seleccionar todo

10 CLEAR 32767

15 REM Carga del menu (compilado)
20 LOAD "menu" CODE

25 REM Ejecución del menu
30 RANDOMIZE USR 32768

100 REM Lee en n$ el nombre del programa a cargar devuelto desde el código compilado del menu
110 LET p=63000
120 LET l=PEEK(p)

130 REM Vuelve al menú si el nombre del programa no existe o está vacío
140 IF l=0 THEN GOTO 30

150 LET n$=""
160 FOR i=1 TO l
170 LET p=p+1
180 LET n$=n$+CHR$(PEEK(p))
190 NEXT i

200 REM Carga del programa
210 PRINT n$
220 LOAD n$
El programa con el menú (menu.bas) cuyo binario va grabado en el disco como "menu" una vez compilado.

Código: Seleccionar todo

10 REM Menu

20 REM Mostrar opciones

30 REM Leer la tecla pulsada
40 REM Si la opción no es válida, volver a 30

50 REM La variable alfanumérica n$ contiene el nombre del programa a cargar. Aquí está fija pero en un caso real su valor dependerá de la tecla pulsada.
60 LET n$="VIN9"

100 REM Almacenar el nombre para el cargador BASIC en la dirección de RAM 63000
110 LET p=63000
120 LET l=LEN(n$)
130 POKE p,l
140 FOR i=0 TO l-1
150 LET p=p+1
160 POKE p,CODE(n$(i))
170 NEXT i

200 REM Fin del programa y retorno al cargador BASIC
Tal como está debe funcionar en cinta, en disco, en las unidades A, B, C y D... Si no se entendiera cualquier cosa, sigo por aquí. ;)
© cacharreo
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6397
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 125 times
Been thanked: 331 times
Contactar:

Re: Compilador de Basic para ZX

Mensaje por merlinkv »

Hola @cacharreo:

Gracias compi, tengo que ponerme con ello.

De momento he creado un menú de 6 páginas con un total de 54 juegos que funcionan OK desde mi DivMMC. Con eso hecho y antes de continuar, voy a probar con tus indicaciones a ver qué me sale.

Muchas gracias otra vez. :)

Pongo unas capturas hechas con Spectaculator.
► Mostrar Spoiler
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6397
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 125 times
Been thanked: 331 times
Contactar:

Re: Compilador de Basic para ZX

Mensaje por merlinkv »

Al final no me he podido resistir y decidí terminar con los juegos de la primera partición.

Un menú de 12 páginas (9 juegos por página) y un total de 106 juegos.

El total de juegos de cada partición dependerá de los juegos que sean. Lo que sí hay que tener en cuenta es que cada partición tiene un máximo de "512 Directory Entries" y en una partición de 16MBytes (yo uso un DivMMC que es un interfaz de 16bit) te puede terminar "sobrando" más de la mitad del espacio de la partición.
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5891
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1212 times
Been thanked: 2837 times
Contactar:

Re: Compilador de Basic para ZX

Mensaje por cacharreo »

Ahí hay juegos para aburrirse. ;)
© cacharreo
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6397
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 125 times
Been thanked: 331 times
Contactar:

Re: Compilador de Basic para ZX

Mensaje por merlinkv »

cacharreo escribió: 22 Ene 2024, 20:38Ahí hay juegos para aburrirse. ;)
Ya te digo ... :-]

Los tenía metidos en esa partición "muertos de risa" desde eones y el otro día me dió "el punto" ... :))

Ahora a ver si me meto con lo del compilador ...
No sé como será la tercera Guerra Mundial. Pero sí sé como será la cuarta: Con palos y piedras.
Aquí yace un valiente, un temible adversario y un verdadero hombre de honor. Descanse en paz. 21-04-1918
Visita mi Github igual te gusta algo.
Avatar de Usuario
cacharreo !Sinclair 1
Moderador
Moderador
Mensajes: 5891
Registrado: 09 Ago 2019, 10:17
Ubicación: /home/cacharreo/
Has thanked: 1212 times
Been thanked: 2837 times
Contactar:

Re: Compilador de Basic para ZX

Mensaje por cacharreo »

merlinkv escribió: 22 Ene 2024, 21:13Los tenía metidos en esa partición "muertos de risa" desde eones y el otro día me dió "el punto" ... :))
Ahora a ver si me meto con lo del compilador ...
No creo que dé problemas. Suerte.
© cacharreo
Responder

Volver a “Consultas”