Compiladores Basic para ZX

¿Tienes problemas con tu equipo?, preguntanos.

Moderador: Fundadores

Avatar de Usuario
javu61 !Sinclair QL
Fundador
Fundador
Mensajes: 2175
Registrado: 30 Mar 2013, 11:58
Ubicación: Valencia
Been thanked: 76 times
Contactar:

Re: Compiladores Basic para ZX

Mensaje por javu61 »

Los compiladores "compilan" las instrucciones estándar generando código máquina que llama a las rutinas en ROM cuando lo necesitan, para las extensiones hay que conocer bien la sintaxis de los comandos y las llamadas que hacen a las ampliaciones de las ROM de que disponen, por lo que a los creadores de compiladores les es complicado hacer que funcionen con cualquiera de ellas.

Lo mejor es que contactes con Boriel y le propongas que amplie su compilador para que soporte esos comandos, aunque es laborioso buscar la documentación o hacer seguimientos de las rutinas en código máquina para ver lo que hacen y como llamarlas, y no se como va de tiempo.
Larga vida y prosperidad \\//_
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6353
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 114 times
Been thanked: 316 times
Contactar:

Re: Compiladores Basic para ZX

Mensaje por merlinkv »

Por eso intentaba hacerlo con la versión que tengo del HiBasic en formato MGT, pero por lo que veo es la misma que para los ZX normales.

Contactaré con Boriel, la ROM del +D está desensamblada y comentada, quizá con eso ya pudiera hacer algo ....
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
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8152
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 101 times

Re: Compiladores Basic para ZX

Mensaje por wilco2009 »

Otra opción es usar inlines en assembler haciendo tú mismo las llamadas.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6353
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 114 times
Been thanked: 316 times
Contactar:

Re: Compiladores Basic para ZX

Mensaje por merlinkv »

No se, tengo que encontrar alguna solución para eso .... a ver si puedo conseguirlo. Mis conocimientos del CM del Spectrum están bastante oxidados e intentar hacerlo por mi cuenta desde assembler me cogería un tiempo que no tengo ....
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.
BCH
Demonio tercer orden
Demonio tercer orden
Mensajes: 973
Registrado: 06 Sep 2014, 12:10
Ubicación: Barcelona
Been thanked: 4 times

Re: Compiladores Basic para ZX

Mensaje por BCH »

Como dice wilco, la mejor manera es utilizar el ZXbasic de boriel y usar inlines de assembler para acceder al disco. Yo hice algo parecido en el +3 hace ya unos años. Era un menu para acceder al disco duro todo escrito en ZXBasic, salvo el acceso al disco que usaba llamadas a las rutinas de la ROM.
Avatar de Usuario
merlinkv
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 6353
Registrado: 06 Abr 2015, 23:08
Ubicación: Madrid / Europa del Este
Has thanked: 114 times
Been thanked: 316 times
Contactar:

Re: Compiladores Basic para ZX

Mensaje por merlinkv »

Para alguien suoeroxidado .... ¿Podéis ponerme algún ejemplo de carga/grabado de archivos para discos del +3? .... Podría tomarlo como base para hacer las "llamadas" al +D ....
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.
BCH
Demonio tercer orden
Demonio tercer orden
Mensajes: 973
Registrado: 06 Sep 2014, 12:10
Ubicación: Barcelona
Been thanked: 4 times

Re: Compiladores Basic para ZX

Mensaje por BCH »

Te pongo un trozo de un cargador que hice para un juego:

Código: Seleccionar todo

file	LD HL, filename		; file name 
	LD DE, 2          	; E=2 open mode
	LD BC, 5          	; C=5 shared read mode
	CALL DOS_OPEN     	; DOS OPEN           
        
read_fileLenght

	LD HL, 16		; set position after first 16 bytes
	LD E, 0
	LD B, 0			; file 0
	call 310		; DOS SET POSITION
        
	LD HL, lenghtstart	; target addr 
	LD DE, 4          	; lenght and dest address
	LD BC, 0		; file 1, page 0
 	CALL DOS_READ     	; read block lenght from header

	LD HL, 128		; set position after header
	LD E, 0
	LD B, 0			; file 0
	call 310		; DOS SET POSITION


	LD HL, (lenghtstart+2)	
	ld de, (lenghtstart)	
	ld B, 0
pages	ld c, 0		;
	call DOS_READ		;read level	
		
	ld b, 0			; Close file 0
	call DOS_CLOSE	 
La verdad que hace mucho tiempo y no recuerdo bien en detalle todo, pero en lineas generales debes:
-Llamar DOS_OPEN con HL apuntando a un buffer que contiene el nombre del fichero
-Mover el puntero del disco 16 bytes para adelante con SET_POSITION
-Leer longitud y destino del bloque con DOS_READ
-Mover otra vez el puntero 128 bytes, hasta el comienzo del bloque que vas a cargar (SET_POSITION).
-Llamar DOS_READ para leer el bloque (HL contiene la direccion de destino y DE la longitud del bloque de bytes)
-Llamar DOS_CLOSE y DOS_MOTOR_OFF

Los detalles de estas rutinas estan en el manual del +3. De todos modos para el +D sera distinto....

Mira pagina 26 del manual del UniDOS. Alli estan los "hook codes" para llamar a las diferentes rutinas. Quizas es mas sencillo de este modo
Avatar de Usuario
tacha Uruguay
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3139
Registrado: 04 Abr 2013, 20:22
Ubicación: Montevideo, Uruguay
Has thanked: 44 times
Been thanked: 30 times
Contactar:

Re: Compiladores Basic para ZX

Mensaje por tacha »

wilco2009 escribió: 25 Oct 2018, 00:10
Haplo escribió: 25 Oct 2018, 00:04 ¿Porqué quieres compilar desde el propio +3?
¿No puedes pasar o teclear los programas en pc?
Lo digo porque así podrías usar el compilador ZX Basic de Boriel.

http://boriel.com/wiki/en/index.php/ZXBasic
+10000
+100000000
66 6C 6F 70 70 69 6E 67 20 6D 61 73 63 61 20 50 30 6C 6C 34 / 6D 61 73 20 63 6F 74 69 6C 6C 61 20 73 65 72 E1 73 20 74 75 20 49 7A 61 72 6F 20 3A 70
Responder

Volver a “Consultas”