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,...)
Compilador de Basic para ZX
Moderador: Fundadores
- cacharreo
- Moderador
- Mensajes: 6098
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1248 times
- Been thanked: 2998 times
- Contactar:
Re: Compilador de Basic para ZX
© cacharreo
- cacharreo
- Moderador
- Mensajes: 6098
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1248 times
- Been thanked: 2998 times
- Contactar:
Re: Compilador de Basic para ZX
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
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
© cacharreo
- merlinkv
- Hermano de Lucifer
- Mensajes: 6434
- Registrado: 06 Abr 2015, 23:08
- Ubicación: Madrid / Europa del Este
- Has thanked: 137 times
- Been thanked: 341 times
- Contactar:
Re: Compilador de Basic para ZX
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í.
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.
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.
- cacharreo
- Moderador
- Mensajes: 6098
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1248 times
- Been thanked: 2998 times
- Contactar:
Re: Compilador de Basic para ZX
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
- cacharreo
- Moderador
- Mensajes: 6098
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1248 times
- Been thanked: 2998 times
- Contactar:
Re: Compilador de Basic para ZX
La prueba de concepto.
El cargador que va grabado en el disco como programa BASIC (p.e. "loader" o "DISK") sin compilar,
El programa con el menú (menu.bas) cuyo binario va grabado en el disco como "menu" una vez compilado.
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í.
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$
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
© cacharreo
- merlinkv
- Hermano de Lucifer
- Mensajes: 6434
- Registrado: 06 Abr 2015, 23:08
- Ubicación: Madrid / Europa del Este
- Has thanked: 137 times
- Been thanked: 341 times
- Contactar:
Re: Compilador de Basic para ZX
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.
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.
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.
- merlinkv
- Hermano de Lucifer
- Mensajes: 6434
- Registrado: 06 Abr 2015, 23:08
- Ubicación: Madrid / Europa del Este
- Has thanked: 137 times
- Been thanked: 341 times
- Contactar:
Re: Compilador de Basic para ZX
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.
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.
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.
- cacharreo
- Moderador
- Mensajes: 6098
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1248 times
- Been thanked: 2998 times
- Contactar:
- merlinkv
- Hermano de Lucifer
- Mensajes: 6434
- Registrado: 06 Abr 2015, 23:08
- Ubicación: Madrid / Europa del Este
- Has thanked: 137 times
- Been thanked: 341 times
- Contactar:
Re: Compilador de Basic para ZX
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.
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.
- cacharreo
- Moderador
- Mensajes: 6098
- Registrado: 09 Ago 2019, 10:17
- Ubicación: /home/cacharreo/
- Has thanked: 1248 times
- Been thanked: 2998 times
- Contactar: