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