Consultas Técnicas (ensamblador Z80 / Spectrum)

Avatar de Usuario
Chema
Mensajes: 2664
Registrado: 21 Jun 2012 20:13
Ubicación: Gijón
Agradecido : 3190 veces
Agradecimiento recibido: 926 veces
Contactar:

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor Chema » 02 Ene 2015 21:12

Último mensaje de la página anterior:

Podría desensamblarse y mirar... Lo peor es encontrar las rutinas equivalentes o las áreas de datos, porque como todas llevan punteros, se parecen poco. Otro problema es que la del Oric es la versión 1.0, así que se parecería a la versión equivalente del spectrum, no a la que estamos usando.

Prometo mirarlo. También prometi dedicarle tiempo a esto estas Navidades y, para variar, no he podido :/

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor pser1 » 02 Ene 2015 22:13

@Chema
no te preocupes, era una posibilidad, pero si ya de entrada le ves muchas dificultades para sacar algo positivo ... mejor centrar los esfuerzos en nuestro trabajo -507

@todos
Ya he empezado a poner algo en 6809, como cabe suponer el arranque no se va a parecer en nada ya que no es lo mismo configurar el Spectrum que poner al Dragon/Coco a trabajar
en PMode4 empezando en la página correcta sin pisar el espacio del DOS.
Además he añadido ya la rutina para cargar ficheros de disco. La he hecho compatible con el DOS11C que suele usarse en XRoar y el DOS1.0 que viene en la tarjeta de Lafumat.
De forma unilateral he decidido que (para ahorrar espacio malgastado) las copias de datos que hace al inicio de programa NO se harán en 6809.
En su lugar ya tengo un fichero creado en disco con nombre RST.BIN (restaurar datos) que será llamado en la rutina ReStart en lugar de copiar de nuevo los datos a su sitio.
Al hacer esto me he dado cuenta de que en Spectrum se busca el bloque de datos gráficos correspondiente a la localización 5 (trolls clearing) de la que tenemos dos pantallas
una con luz de día y otra de noche.
En ReStart le meten a piñón el valor cero a los dos primeros bytes de dicho bloque de datos. Hasta ahí vale ...
Pero es que no he sabido encontrar en el programa ningún sitio en el que se cambien estos ceros y si se queda así, creo que nunca se mostraría esta localización ...

Alguien puede echarle una ojeada a este tema y contarnos si ve algo mas sobre dicha localización? -nb

muchas gracias
pere

Avatar de Usuario
luiscoco
Mensajes: 2414
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 38 veces
Agradecimiento recibido: 59 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor luiscoco » 03 Ene 2015 09:31

Muy buena recopilación, y muy buenas ideas a ver que tiempo me queda porque estoy full de cosas estas navidades

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4755 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor ron » 04 Ene 2015 10:50

Bueno bueno, tras estar leyendo una página australiana hacer dos apuntes.

La versión de ORIC es un port directo de la versión en cinta de ZX Spectrum que hizo Philip Mitchell.

Es decir que ya sabemos que de la versión de Spectrum ( Z80 ) se hizo el port a 6502 pero para Oric.

The tape version of The Hobbit was also ported to the Oric, a system renowned for attribute clash where the graphics took on a more lurid hue

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor pser1 » 09 Ene 2015 18:12

Hola chicos,

os traigo aquí una subrutina (L_8B22), no es muy grande, pero tiene demasidos IN y OUT y hasta que lo entienda, me pierdo con esto.
Alguien que conozca las sutilezas de IN/OUT en Spectrum tal vez podría echarnos una ayudita comentando que es lo que hacen
realmente estas lineas de código -please -nb
Los comentarios automáticos, en este caso, no ayudan demasiado ...

saludos
pere

; (#24# --) 	; Algo con la Impresora
L_8B22: LD A,(L_B6F2) ; 8B22 3A F2 B6 ; A = (L_B6F2) ; Borrado al imprimir (DATABLK1)
AND A ; 8B25 A7 ; A = A AND A ; Adecua flags
RET Z ; 8B26 C8 ; Z = 1? ; Retorna si es cero
PUSH HL ; 8B27 E5 ; Guarda HL
PUSH DE ; 8B28 D5 ; Guarda DE
PUSH BC ; 8B29 C5 ; Guarda BC
LD D, $01 ; 8B2A 16 01 ; D = 1 ;
LD HL, $5020 ; 8B2C 21 20 50 ; apunta a inicio linea 18 de pantalla ; HL = $5020
XOR A ; 8B2F AF ; A = A XOR A ; borra A, flag Z = 1
LD E, A ; 8B30 5F ; E = A
i_8B31: OUT ($FB), A ; 8B31 D3 FB ; Prepara para leer todas las filas del teclado
i_8B33: IN A, ($FB) ; 8B33 DB FB ; Lee teclado (todas las filas)
ADD A, A ; 8B35 87 ; Duplica el valor de A
JP M, i_8B74 ; 8B36 FA 74 8B ; N = 1? ; Si es negativo (Se activo el Bit 7) salta a i_8B74
JR NC, i_8B33 ; 8B39 30 F8 ; C = 0? ; Si, Salta a i_8B33
PUSH HL ; 8B3B E5 ; Guarda HL
PUSH DE ; 8B3C D5 ; Guarda DE
LD A, D ; 8B3D 7A ; A = D ; A = 1
CP $02 ; 8B3E FE 02 ; A = 2?
SBC A, A ; 8B40 9F ; A = A - A -C
AND E ; 8B41 A3 ; A = A AND E
RLCA ; 8B42 07 ; Rota a la izq circular a A
AND E ; 8B43 A3 ; A = A AND E
LD D, A ; 8B44 57 ; D = A
i_8B45: LD C, (HL) ; 8B45 4E ; C = (HL)
PUSH HL ; 8B46 E5 ; Guarda HL
LD B, $08 ; 8B47 06 08 ; B = 8
i_8B49: LD A, D ; 8B49 7A ; A = D
RLC C ; 8B4A CB 01 ; Rota a la Izq circular a C
RRA ; 8B4C 1F ; Rota a la Der A
LD H, A ; 8B4D 67 ; H = A
i_8B4E: IN A, ($FB) ; 8B4E DB FB ; Lee teclado (todas las filas)
RRA ; 8B50 1F ; Rota a la Der A
JR NC, i_8B4E ; 8B51 30 FB ; C = 0? ; Si Carry =0 salta a i_8B4E
LD A, H ; 8B53 7C ; A = H
OUT ($FB), A ; 8B54 D3 FB ; Prepara para leer todas las filas del teclado
DJNZ i_8B49 ; 8B56 10 F1 ; B = B - 1, B=0? ; No, Salta a i_8B49 (8 veces)
POP HL ; 8B58 E1 ; Recupera HL
INC HL ; 8B59 23 ; Hl = HL + 1 ; Incrementa HL
LD A, L ; 8B5A 7D ; A = L
AND $1F ; 8B5B E6 1F ; A = A AND $1F
JR NZ, i_8B45 ; 8B5D 20 E6 ; Z = 0? ; Si no es cero salta a i_8B45
i_8B5F: IN A, ($FB) ; 8B5F DB FB ; Lee teclado (todas las filas)
RRA ; 8B61 1F ; Rota a la Der A
JR NC, i_8B5F ; 8B62 30 FB ; C = 0? ; Si Carry =0 salta a i_8B5F
LD A, D ; 8B64 7A ; Carga A con D
RRCA ; 8B65 0F ; Rota a la Der circular a A
OUT ($FB), A ; 8B66 D3 FB ; Prepara para leer todas las filas del teclado
POP DE ; 8B68 D1 ; Recupera DE
POP HL ; 8B69 E1 ; Recupera HL
INC H ; 8B6A 24 ; Incrementa H
INC E ; 8B6B 1C ; Incrementa E
BIT 3, E ; 8B6C CB 5B ; Bit 3 de E
JR Z, i_8B31 ; 8B6E 28 C1 ; Z = 1 ; Si Salta a i_8B31
LD A, $04 ; 8B70 3E 04 ; A = 4
OUT ($FB), A ; 8B72 D3 FB ; Prepara para leer todas las filas del teclado
i_8B74: POP BC ; 8B74 C1 ; Recupera BC
POP DE ; 8B75 D1 ; Recupera DE
POP HL ; 8B76 E1 ; Recupera HL
RET ; 8B77 C9 ; Retorna

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor pser1 » 11 Ene 2015 23:26

hola amigos,

o estáis todos de fiesta o estoy perdiendo el poder de convocatoria ...
Además de la rutina que está encima de este mensaje, añado otra que también contiene algunos IN y OUT y, la verdad
es que NO se que debo convertir a 6809 si no tengo la menor idea de que hacen estas sentencias y no solamente ellas en solitario
sino además la forma en que se tratan los datos leídos del port ...

A ver si nos sacáis del punto muerto en que nos hemos atascado ...

saludos
pere

; (#24# --) 	; Algo con la Impresora ???
L_8B22: LD A,(L_B6F2) ; 8B22 3A F2 B6 ; recupera L_B6F2 (flag imprimir o no)
AND A ; 8B25 A7 ; es 0 (no)?
RET Z ; 8B26 C8 ; si, retorna
PUSH HL ; 8B27 E5 ; guarda HL
PUSH DE ; 8B28 D5 ; guarda DE
PUSH BC ; 8B29 C5 ; guarda BC
LD D, $01 ; 8B2A 16 01 ; pone 1 en D
LD HL, $5020 ; 8B2C 21 20 50 ; apunta a inicio linea 18 de pantalla
XOR A ; 8B2F AF ; pone 0 en A y
LD E, A ; 8B30 5F ; en E, DE = $100
i_8B31: OUT ($FB), A ; 8B31 D3 FB ; ???
i_8B33: IN A, ($FB) ; 8B33 DB FB ; Lee teclado (Q-W-E-R-T)
ADD A, A ; 8B35 87 ; duplica A (mueve A a la izquierda 1 bit) bit6 pasa al bit7
JP M, i_8B74 ; 8B36 FA 74 8B ; Si es negativo (bit7 a 1), salta a i_8B74
JR NC, i_8B33 ; 8B39 30 F8 ; si no ha habido Carry, salta a i_8B33
PUSH HL ; 8B3B E5 ; Guarda HL
PUSH DE ; 8B3C D5 ; Guarda DE
LD A, D ; 8B3D 7A ; pasa D a A
CP $02 ; 8B3E FE 02 ; es 2? se usa para afectar al Carry
SBC A, A ; 8B40 9F ; A = A - A - Carry
AND E ; 8B41 A3 ; A = A AND E
RLCA ; 8B42 07 ; Rota a la izq circular A (b7 pasa al Carry y al b0)
AND E ; 8B43 A3 ; A = A AND E
LD D, A ; 8B44 57 ; guarda resultado en D
i_8B45: LD C, (HL) ; 8B45 4E ; recupera contenido byte de pantalla
PUSH HL ; 8B46 E5 ; Guarda HL
LD B, $08 ; 8B47 06 08 ; B = 8
i_8B49: LD A, D ; 8B49 7A ; recupera A de D
RLC C ; 8B4A CB 01 ; Rota a la Izq circular C (b7 pasa al Carry y al b0)
RRA ; 8B4C 1F ; Rota a la Der circular A (b0 pasa al carry y Carry al b7)
LD H, A ; 8B4D 67 ; guarda valor en H
i_8B4E: IN A, ($FB) ; 8B4E DB FB ; Lee teclado (Q-W-E-R-T)
RRA ; 8B50 1F ; Rota a la Derecha A
JR NC, i_8B4E ; 8B51 30 FB ; si no ha habido Carry, salta a i_8B4E
LD A, H ; 8B53 7C ; recupera A
OUT ($FB), A ; 8B54 D3 FB ; ???
DJNZ i_8B49 ; 8B56 10 F1 ; decrementa contador, si no es cero, vuelve a i_8B49 (8 veces)
POP HL ; 8B58 E1 ; Recupera HL
INC HL ; 8B59 23 ; Incrementa HL
LD A, L ; 8B5A 7D ; pasa L a A
AND $1F ; 8B5B E6 1F ; se queda con los bits 4-3-2-1-0
JR NZ, i_8B45 ; 8B5D 20 E6 ; si no es cero, vuelve a i_8B45
i_8B5F: IN A, ($FB) ; 8B5F DB FB ; Lee teclado (Q-W-E-R-T)
RRA ; 8B61 1F ; Rota a la Derecha A
JR NC, i_8B5F ; 8B62 30 FB ; si no ha habido Carry, salta a i_8B5F
LD A, D ; 8B64 7A ; guarda D en A
RRCA ; 8B65 0F ; Rota a la Der circular a A (bit0 al carry y al b7)
OUT ($FB), A ; 8B66 D3 FB ; ???
POP DE ; 8B68 D1 ; Recupera DE
POP HL ; 8B69 E1 ; Recupera HL
INC H ; 8B6A 24 ; Incrementa H (suma 256 a HL)
INC E ; 8B6B 1C ; Incrementa E
BIT 3, E ; 8B6C CB 5B ; esta a 1 el bit3 de E?
JR Z, i_8B31 ; 8B6E 28 C1 ; no, salta a i_8B31
LD A, $04 ; 8B70 3E 04 ; A = 4
OUT ($FB), A ; 8B72 D3 FB ; ???
i_8B74: POP BC ; 8B74 C1 ; Recupera BC
POP DE ; 8B75 D1 ; Recupera DE
POP HL ; 8B76 E1 ; Recupera HL
RET ; 8B77 C9 ; Retorna

race8086
Mensajes: 457
Registrado: 29 Oct 2010 22:05
Agradecido : 1 vez
Agradecimiento recibido: 15 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor race8086 » 12 Ene 2015 10:55

Hola pser1 !!!

Sin entrar en mucho detalle , la lectura del teclado se hace en el puerto $FE
Estoy viendo IN y OUT hacia otro puerto $FB y si se comprueba el flag de la impresora .... yo apostaría que esta rutina se encarga de manejar la impresora.
Si se pretende implmentar esta funcionalidad,habrá que hacer la traslación a la arquitectura del dragón, sino ... pues ya tenemos otra parte de código que no hace falta implementar, vamos que un RTS está solucionado el tema -grin

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4755 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor ron » 12 Ene 2015 12:11

race8086 escribió:Hola pser1 !!!

Sin entrar en mucho detalle , la lectura del teclado se hace en el puerto $FE
Estoy viendo IN y OUT hacia otro puerto $FB y si se comprueba el flag de la impresora .... yo apostaría que esta rutina se encarga de manejar la impresora.
Si se pretende implmentar esta funcionalidad,habrá que hacer la traslación a la arquitectura del dragón, sino ... pues ya tenemos otra parte de código que no hace falta implementar, vamos que un RTS está solucionado el tema -grin


Es correcto, si conectas la ZXPrinter esta imprime el texto del programa

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor pser1 » 12 Ene 2015 12:17

muchas gracias Ramón,

al final, tras muuuchas pesquisas via internet encontré una explicación clara (ya costaba!)
Efectivamente, el puerto 251 es el puerto de impresora y un IN lee el status mientras que un OUT envía puntos!!
Ahí es donde me quedé flipado, en Spectrum parece que a la impresora hay que enviarle 8 filas de puntos (pixels) para formar la letra
Quizá por esto se ubica a principio de la línea 18 y, supongo, que envía las 42 letras a la vez en cada línea de puntos ... qué palo!
En Dragón, bastará con enviar los códigos ASCII, aunque yo no tengo impresora, solo lo podré probar con XRoar.

saludos
pere

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor pser1 » 12 Ene 2015 12:19

ron escribió:
Es correcto, si conectas la ZXPrinter esta imprime el texto del programa



Hola Rodrigo,

según parece solamente se envía a la impresora la parte superior de pantalla, es decir, hace el log de los eventos que van sucediendo, pero no se envían
aparentemente los comandos introducidos por el usuario ni nada de lo que se ve en la parte baja de pantalla.
¿Podrías confirmar esta suposición, por favor?
muchas gracias de antemano

saludos
pere

BlackHole
Mensajes: 1669
Registrado: 03 Ago 2011 23:07
Ubicación: Aluche, Madrid
Agradecido : 29 veces
Agradecimiento recibido: 523 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor BlackHole » 12 Ene 2015 12:26

Obviamente no es del teclado... creo que ya tenemos esta información en otros sitios, pero la pongo aquí para refrescar memoria.

http://wordpress.animatez.co.uk/compute ... /keyboard/

Imagen

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor pser1 » 12 Ene 2015 12:57

muchas gracias,

efectivamente ésta es la forma STD en que se lee el teclado ...
El problema es que nuestro fichero fuente de trabajo contiene bastantes comentarios automáticos y algunas zonas que fueron comentadas muy al principio y que, por lo tanto, han estado bien a la vista de todos los compañeros y nadie nos ha advertido del error en la interptretación en el uso del puerto 251 ó $FB.
A fortunadamente en el momento de convertir el código a 6809 es imprescindible un estudio mas profundo para entender claramente lo que está haciendo el programa a fin de hacer lo mismo para el 6809, y ha sido en este momento que ha saltado la alarma.

saludos
pere

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor pser1 » 12 Ene 2015 20:03

Hola,

convirtiendo el MainLoop me he encontrado con una parte rara:

MainLoop:						; (#181# --) - PARECE SER EL BUCLE PRINCIPAL HASTA $6DC9
LD A, $01 ; 6D13 3E 01 ; A = 1
LD (L_B705), A ; 6D15 32 05 B7 ; (L_B705) = A ; Pone 1 en B705
LD A, $09 ; 6D18 3E 09 ; A = 9
LD (L_B716), A ; 6D1A 32 16 B7 ; (L_B716) = A ; Pone 9 En $B716
CALL L_6DD6 ; 6D1D CD D6 6D ; llama rutina (#83# --)
JR Z, i_6D8A ; 6D20 28 68 ; Z = 1? ;Salta si es 0
i_6D22: LD HL, L_709C ; 6D22 21 9C 70 ; HL = L_709C ; Inicializa a cero $40 bytes a partir de L_7


Auqí se ve que en la quinta línea se llama a L_6DD6 y luego se verifica el flag Z
Si está a 1 se bifurca a i_6D8A
Pero esto no sucederá nunca ya que la rutina L_6DD6 acaba con:
OR #1
RET
Así que siempre regresará con el flag Z=0

Por favor, echadle una ojeada con ganas, corremos el riesgo de hacer una mala conversión si se ha escapado algún detalle.

muchas gracias

saludos
pere

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor pser1 » 12 Ene 2015 20:36

Hola,

parece que si hay una salida que provoca el regreso con Z=0
Lo procesa como un doble espacio atrás, ¿os dice algo esto?
Es cuando el usuario pulsa la tecla $40, el problema es que no tengo claro cual es esta tecla sobre un Spectrum
¿Alguien puede aclarármelo?

En el mundo del PC sería la tecla @, pero no se si existe en Spectrum ....

gracias
saludos
pere

EDITO: ¿es posible que la tecla 2 tenga incorporado el signo @ ?

Avatar de Usuario
ron
Mensajes: 21856
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 3862 veces
Agradecimiento recibido: 4755 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor ron » 12 Ene 2015 21:25

Estimado Pere:

Este es el juego de caracteres del Spectrum completo, con códigos en decimal y hexadecimal. Si uno se imagina los códigos como instrucciones de código máquina Z80, a continuación, las columnas de la derecha dan los mnemónicos en lenguaje ensamblador correspondientes. Ciertas instrucciones Z80 están compuestas de partida con CBh o EDH; las dos columnas de la derecha dan estos.

Aqui lo tienes: http://www.worldofspectrum.org/ZXBasicM ... nappa.html

Avatar de Usuario
pser1
Mensajes: 4094
Registrado: 08 Dic 2012 18:34
Agradecido : 1352 veces
Agradecimiento recibido: 1118 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor pser1 » 12 Ene 2015 22:02

muchas gracias, Rodrigo

luego efectivamente $40 equivale a tecla @, lo raro es que en el emulador de WilderLand cuando tecleo la @
se limita a escribirla cuando, aparentemente, debería tirar hacia atrás ... mas de una posición (?)
En el SpecEmu si pulso la tecla Backspace (encima de Enter en el teclado del PC), me borra toda la línea ...
¿Hace esto también el Spectrum real si se pulsa la tecla Backspace?
No he sabido verla en las fotos del 48K.
Solo he visto la flecha atrás en la tecla 5 que solo tira un caracter atrás ...

saludos
pere

BlackHole
Mensajes: 1669
Registrado: 03 Ago 2011 23:07
Ubicación: Aluche, Madrid
Agradecido : 29 veces
Agradecimiento recibido: 523 veces

Re: Consultas Técnicas (ensamblador Z80 / Spectrum)

Mensajepor BlackHole » 13 Ene 2015 04:19

Supongo que estás hablando del comportamiento dentro del juego, ya que de ningún modo el comportamiento dentro del editor de BASIC es el que describes.
En ZXSpin, que es el emulador que suelo usar, acabo de ver que pulsando la tecla "0" (cero) borra un carácter, al igual que pulsando la tecla "5".
Si pulsamos la tecla "0" bien con "Caps Shift" (Delete) o bien con "Symbol Shift" (_) el juego esta programado para borrar la línea entera.

La tecla "Backspace" no existe en el Spectrum original, para borrar se usa "Caps + 0" (Delete). Los emuladores mandan dicha combinación al pulsar "Backspace" en un PC.
Sobre lo del código $40 del que hablas, no lo tengo claro porque no he examinado la rutina en código máquina que comentas, pero el ASCII para "Delete" es el 12 ($0C) y el de "_" es el 95 ($5F), así que no sé de dónde sale ese $40, salvo que estés malinterpretando el código, o los cálculos estén derivados de otras operaciones.


Volver a “Proyecto The Hobbit 6809 por pser1”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado