viernes, 21 de mayo de 2010

Digitales II – Prof. Ochoa – Reloj Digital

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,0


  17:  IN:        LD (HL),A


  18:          INC HL


  19:          DJNZ IN


  20:          DEC HL


  21:          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,2


  90:  SET:        LD (HL),0


  91:          INC HL


  92:          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 C


 103:          CALL Z,PRIM


 104:          CP C


 105:          CALL Z,SEGUN


 106:          CP C


 107:          CALL Z,TERCE


 108:          CP C


 109:          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,12H


 198:          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 3100H


 214:          DEFB 'PROG'


 215:          DEFB ' CTC'


 216:          DEFB 'SECC 04 '


 217:          END


No hay comentarios:

Publicar un comentario