010:software

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
010:software [d/m/Y H:i] – [Dos tipos de interrupciones] miguel010:software [d/m/Y H:i] (actual) – [Dos tipos de interrupciones] miguel
Línea 41: Línea 41:
 Haciendo POKE en estas direcciones pondremos en hora el reloj. El reloj comenzará a marchar cuando se ejecute el programa almacenado en la dirección 65517 (rutina de activación). Haciendo POKE en estas direcciones pondremos en hora el reloj. El reloj comenzará a marchar cuando se ejecute el programa almacenado en la dirección 65517 (rutina de activación).
  
-Este es el listado del programa BASIC que carga todo el programa:+Este es el listado del programa BASIC que carga todo el programa: [[http://kyenter.speccy.org/principl.php?accion=listar&revista=10|K y Enter.]]
  
- +{{:010:mh010_23.jpg?700|Listado ASM}}
-<code>  +
-DIR. ¡CODIGO ¡LISTADO DIR. ¡CODIGO ¡LISTADO  +
- ORG FEFF 7E LD A, (HL)  +
-FEFF 01 FF DIR-OM DEFW FF01 ¡Dirección de 26 FF LD H,FF Carga H con —1 +
- comienzo FF56 24 R10 INC H ¡Cálculo del dígito en +
-FFO! F3 COMIENZO DI BCD +
- F5 PUSH AF ¡Guarda registros D6 0A SUB OA ¡más significativo +
- E5 PUSH HL 30 FB JR NC,R10  +
- D5 PUSH DE C6 0A ADD A, OA  +
- C5 PUSH BC 6F LD L,A ¡Almacena el resto +
- 21 91 FF LD HL, TIME ¡Actualizar 1/50'avos en L +
- de 7C LD A,H  +
- 34 INC (HL) ¡segundo E5 PUSH HL  +
- 3E32 LD A,32 ¡Si no se ha llegado CD 6A FF CALL CHR ¡Imprime el contenido +
- a 50 de H +
- BE CP (HL) ¡ir a la rutina de E1 POP HL  +
- impresión 7D LD A,L  +
- 20 1B JR NZJMP CD 6A FF CALL CHR ¡Imprime el contenido +
- 36 00 LD (HL),00 ¡Poner 1/50'avos a de L +
- cero E1 POP HL  +
- 23 INC HL ¡Sumar un segundo C9 RET  +
- 34 INC (HL) FF6A 07 CHR RLCA »Multiplica por 8 el +
- 3E 3C LD A,3C ¡Si no se ha llegado contenido +
- a 60 07 RLCA ¡del acumulador +
- BE CP (HL) ¡saltar a la rutina de 07 RLCA  +
- 2012 JR NZJMP ¡impresión 21 95 FF LD HL,CARO ¡Cálculo de la +
- 36 00 LD (HL),00 ¡Poner segundos a dirección +
- cero 16 00 LD D,00 ¡del primer byte del +
- 23 INC HL 5F LD E,A ¡carácter a imprimir y +
- 34 INC (HL) ¡Sumar un minuto almacenar +
- BE CP (HL) ¡Si no se ha llegado 19 ADD HL,DE »en DE +
- a 60 ir E5 PUSH HL  +
- 20 OB JR NZJMP ¡a la rutina de D1 POP DE  +
- impresión 3A 90 FF LD A,(XPOS) ¡Cálculo de la direc- +
- 36 00 LD (HL),00 ¡poner minutos a ción de +
- cero 6F LD L,A ¡atributos +
- 23 INC HL ¡Sumar una hora 26 58 LD H.58  +
- 34 INC (HL) 36 38 LD (HL),38 ¡Poner INK negro y +
- 3E 18 LD A,18 ¡Si no se llegado a PAPER blanco +
- 24 horas 26 40 LD H,40  +
- BE CP (HL) ¡saltar a la impresión 06 08 LD B,8 ¡Colocación de 8 +
- 20 02 JR NZJMP bytes consecutivos +
- 36 00 LD (HL),00 ¡Poner horas a cero FF82 1A ET1 LD A,(DE) ¡a partir de DE en la +
-FF2A 21 94 FF IMP LD HLJIME+3 ¡Cargar HL con la di- 77 LD (HL),A ¡pantalla +
- rección de las horas 24 INC H  +
- 3E 17 LD A,17 ¡Cargar XPOS con la 13 INC DE  +
- posión 10 Fa DJNZ ET1  +
- 32 90 FF LD (XPOS),A ¡donde se imprimirá 3A 90 FF LD A,(XPOS) ¡Increntar la posición +
- el del +
- ¡primer caracter 3C INCA ¡carácter a imprimir a +
- E5 PUSH HL ¡Llamada a la rutina 32 90 FF LD (XPOS),A ¡continuación en uno +
- de imprimir C9 RET  +
- CD 52 FF CALL COS ¡el contenido de HL FF90 00 XPOS DEFB 00 ¡Dirección de pantalla +
- 3EOA LD A,OA ¡Impresión del signo ¡se imprimirá el +
- CD 6A FF próximo +
- CALL CHR ¡carácter +
- E1 POP HL FF91 00 00 00 00 TIME DEFB 00 00 00 00 ¡Variables del tiempo +
- 2B DEC HL ¡Llevar a HL la FF95 7C BA C6 C6 CARO DEFB 7C BA C6 C6 ¡Definición de los +
- dirección C6 C6 BA 7C C6 C6 BA 7C ¡caracteres +
- ¡de los minutos 02 06 06 02 CAR1 DEFB 02 06 06 02  +
- E5 PUSH HL 02 06 06 02 02 06 06 02  +
- CD 52 FF CALL COS ¡Imprimir el contenido 7C 3A 06 7A CAR2 DEFB 7C 3A 06 7A  +
- de HL BC CO B8 7C BC CO B8 7C  +
- 3EOA LD A,OA ¡Imprimir •':" 7C 3A 06 3A CAR3 DEFB 7C 3A 06 3A  +
- CD 6A FF CALL CHR 7A 06 3A 7C 7A 06 3A 7C  +
- E1 POP HL 82 C6 C6 BA CAR4 DEFB 82 C6 C6 BA  +
- 2B DEC HL »Llevar a HL la direc- 7A 06 06 02 7A 06 06 02  +
- ción de los segundos 7C D8 CO BC CAR5 DEFB 7C D8 CO BC  +
- CD 52 FF CALL COS 7A 06 3A 7C 7A 06 3A 7C  +
- C1 POP BC »Restaurar el conteni- 7C B8 CO BC CAR6 DEFB 7C B8 CO BC  +
- do de los BA C6 BA 7C BA C6 BA 7C  +
- D1 POP DE ¡registros 7C 3A 06 06 CAR7 DEFB 7C 3A 06 06  +
- E1 POP HL 02 06 06 02 02 06 06 02  +
- F1 OPO AF 7C BA C6 BA CAR8 DEFB 7C BA C6 BA  +
- FF RST38 ¡Rutina ROM de lec- BA C6 BA 7C BA C6 BA 7C  +
- tura del 7C BA C6 BA CAR9 DEFB 7C BA C6 BA  +
- ¡teclado 7A 06 3A 7C 7A 06 3A 7C  +
- ED 4D RETI ¡Retorno desde 00 18 18 00 CARD DEFB 00 18 18 00  +
-FF52 E5 interrupción 00 18 18 00 00 18 18 00  +
- eos PUSH HL ¡Esta rutina primero FFED 3E FE ACTIVA LD A,FE ¡Rutina de Activación +
- para el ED 47 LD l,A ¡Carga I con la +
- ¡número binario con- dirección +
- tenido en ¡de la interrupción +
- ¡HL a un número en ED 5E IM 2 ¡Modo de interrup- +
- BCD, también ción 2 +
- ¡contenido en HL C9 RET  +
- +
-</code>+
  • 010/software.1291046939.txt.gz
  • Última modificación: d/m/Y H:i
  • por miguel