Altair, Destroyer (Cidelsa), Ayuda entre todos
Staryon
view post Escrito el 5/10/2006, 05:12 by: Staryon
Avatar

R Tape loading error, 0:1

Grupo: Member
Mensajes: 656


Status: Offline: ultima azione eseguita il 24/11/2006, 00:43


Bubu:

Mira la instrucción SEX. He visto que estás haciendo RX <- R2 para el byte E2.
Creo que no es correcto, porque esa instrucción no asigna un registro, sino una constante.
Cuando dice EN, N es el valor de la constante, no del registro R(N). Por lo tanto lo correcto sería RX <- 2

A lo mejor me equivoco, pero creo que es así.


Un par de preguntillas más.

Cuando dices que la RAM empieza en la dirección 30000, ¿no querrías decir 3000h? El último byte de la ROM acaba en el byte 2FFF y por eso me extrañó.

Una cosa que no entiendo. He visto que has llegado a almacenar algunas direcciones de memoria en registros. Aquí por ejemplo:

CODE
R2 = 30FF
RC = 3000
RD = 3000
R9 = 0144
R3 = 002A
R4 = 0094
R5 = 00A6
R8 = 00DC


¿Cómo has obtenido esos valores de memoria? Es que la primera instrucción que veo en la ROM que accede a la memoria es LDI (byte F8) y me pareció que no estabas ejecutando esa instrucción.

Bueno, sigo mirando el tema de comunicación con el chip gráfico. Lo suyo es que tu desensamblador se ejecute hasta que llegue a la instrucción OUT.
Si te fijas esa instrucción lo que hace es poner M(R(X)) en el bus. Si consigues ver qué hay en ese byte M(R(X)), podremos ver
exactamente qué se pone en el bus. Una vez que tengamos ese dato la cosa sería analizar ese byte y ver cómo está distribuida la información del gráfico ahí.

Modificado por Staryon - 5/10/2006, 00:53
269 respuesta(s) desde el 6/2/2006, 13:36