Este programa emula un reloj digital, se utilizan interrupciones y CTC…
Este codigo esta sucio, llevaba el conteo en BCD empaquetado, que asco, pero fue de los primeros que hice, con el tiempo uno aprende que hay mejores tecnicas para hacer las cosas.
si mal no me equivoco escogi esa tecnica para que se viera en el dump de memoria del simulador AVSIMZ80
1: ORG 2000H 2: LD SP,3DFFH 3: ; CONFIGURANDO PUERTO 4: LD A,0 5: OUT (00H),A 6: LD A,10100101B 7: OUT (00H),A 8: LD A,50 9: OUT (00H),A 10: IM 2 11: EI 12: LD A,30H 13: LD I,A 14: LD HL,2500H 15: LD B,3 16: LD C,017: IN: LD (HL),A
18: INC HL19: DJNZ IN
20: DEC HL21: CALL CUENTAS
22: CUENTAS: CALL RETRASO1
23: CALL SIGUE
24: RETRASO1: LD B,30 25: AQUI: LD IY,2000H 26: INC IY 27: DJNZ AQUI 28: RET 29: SIGUE: INC (HL) 30: LD A,0AH 31: CP (HL)32: CALL Z,SUMA
33: LD A,1AH 34: CP (HL)35: CALL Z,SUMA
36: LD A,2AH 37: CP (HL)38: CALL Z,SUMA
39: LD A,3AH 40: CP (HL)41: CALL Z,SUMA
42: LD A,4AH 43: CP (HL)44: CALL Z,SUMA
45: LD A,5AH 46: CP (HL)47: CALL Z,SUMA
48: LD A,60H 49: CP (HL)50: CALL Z,CUENTAM
51: CALL CUENTAS
52: CUENTAM: LD (HL),0 53: DEC HL 54: INC (HL) 55: LD A,0AH 56: CP (HL)57: CALL Z,SUMA
58: LD A,1AH 59: CP (HL)60: CALL Z,SUMA
61: LD A,2AH 62: CP (HL)63: CALL Z,SUMA
64: LD A,3AH 65: CP (HL)66: CALL Z,SUMA
67: LD A,4AH 68: CP (HL)69: CALL Z,SUMA
70: LD A,5AH 71: CP (HL)72: CALL Z,SUMA
73: LD A,60H 74: CP (HL)75: CALL Z,CUENTAH
76: INC HL 77: RET 78: CUENTAH: LD (HL),0 79: DEC HL 80: INC (HL) 81: LD A,0AH 82: CP (HL)83: CALL Z,SUMA
84: LD A,12H 85: CP (HL)86: CALL Z,RE
87: INC HL 88: RET 89: RE: LD B,290: SET: LD (HL),0
91: INC HL92: DJNZ SET
93: CALL CUENTAS
94: SUMA: LD A,(HL) 95: ADD 6 96: LD (HL),A 97: RET 98: 99: ORG 3200H 100: LD DE,2602H 101: LD A,(IX) 102: CP C103: CALL Z,PRIM
104: CP C105: CALL Z,SEGUN
106: CP C107: CALL Z,TERCE
108: CP C109: CALL Z,CUARTA
110: RETI 111: PRIM: PUSH AF 112: LD A,0 113: CP C 114: JP NZ,NADA 115: LD A,(HL) 116: LD (DE),A 117: DEC DE 118: LD A,(2500H) 119: LD (DE),A 120: DEC DE 121: LD A,(2501H) 122: LD (DE),A 123: LD (2500H),A 124: INC DE 125: LD A,(DE) 126: LD (2501H),A 127: INC DE 128: LD A,(DE) 129: LD (2502H),A 130: LD C,1 131: INC (IX) 132: JP NADA 133: SEGUN: EI 134: PUSH AF 135: LD A,1 136: CP C 137: JP Z,CAM2 138: JP NADA 139: CAM2: LD DE,2600H 140: LD A,(2502H) 141: LD (DE),A 142: INC DE 143: LD A,(2501H) 144: LD (DE),A 145: INC DE 146: LD A,(2500H) 147: LD (DE),A 148: LD A,(2602H) 149: LD (2502H),A 150: LD A,(2600H) 151: LD (2500H),A 152: INC C 153: INC (IX) 154: JP NADA 155: TERCE: EI 156: PUSH AF 157: LD A,2 158: CP C 159: JP Z,CAM3 160: JP NADA 161: CAM3: LD DE,2601H 162: LD A,(2502H) 163: LD (DE),A 164: INC DE 165: LD A,(2501H) 166: LD (DE),A 167: LD A,(2602H) 168: LD (2502H),A 169: LD A,(2601H) 170: LD (2501H),A 171: INC C 172: INC (IX) 173: JP NADA 174: CUARTA: EI 175: PUSH AF 176: LD A,3 177: CP C 178: JP Z,CAM4 179: JP NADA 180: CAM4: LD DE,2600H 181: LD A,(2502H) 182: LD (DE),A 183: INC DE 184: LD A,(2501H) 185: LD (DE),A 186: INC DE 187: LD A,(2500H) 188: LD (DE),A 189: LD (2502H),A 190: DEC DE 191: LD A,(DE) 192: LD (2501H),A 193: DEC DE 194: LD A,(DE) 195: LD (2500H),A 196: LD IY,2500H 197: LD A,12H198: SUB (IY)
199: CALL C,AJU
200: LD C,0 201: LD IX,0 202: LD (IX),0 203: JP NADA 204: NADA: EI 205: POP AF 206: RET 207: AJU: LD (IY),0 208: RET 209: 210: ORG 3000H 211: DEFW 3200H 212: 213: ORG 3100H214: DEFB 'PROG'
215: DEFB ' CTC'
216: DEFB 'SECC 04 '
217: END
No hay comentarios:
Publicar un comentario