You are on page 1of 6

ADDRESS LABEL MNEMONICS OPCODE COMMENTS

6130 LXI SP,27F0H 31 Initialize sp


6131 F0
6132 27 Clear display
6133 CALL CRLF CD
6134 8A
6135 04
6136 XRA A AF Clear ACC
6137 STA 2100H 32 Hour cntr=0
6138 00
6139 21
613A STA 2101H 32 Min.cntr=0
613B 01
613C 21
613D STA2102H 32 Sec.cntr=0
613E 02
613F 21
6140 STA2103H 32 Set flag
6141 03
6142 21
6143 STA 2104H 32 Set intr.check cntr
6144 04
6145 21
6146 MVI A,0C3H 3E C3-. Jmp
6147 C3
6148 STA 2051H 32 This code is to be stored at vector
addr.location of TRAP comes load
ISR addr at 2052h cw for 8253
6149 51
614A 20
614B LXI H,ISR 21 Load ISR ADDR at 2052H
614C DE
614D 61
614E SHLD 2052H 22
614F 52
6150 20
6151 MVI A,7EH 3E CW for 8253
6152 7E
6153 OUT 1BH D3
6154 1B
6155 MVI A,24H 3E LSB for ctrl 1 of 8253
6156 24
6157 OUT 19H D3
6158 19
6159 MVI A, 0F4H 3E MSB for ctrl of 8253
615A F4
615B OUT 19H D3
615C 19
615D JMP DSPLY C3 Jump to display
615E AC
615F 61
6160 LOOP: LDA 2103H 3A Load flag
6161 03
6162 21
6163 CPI 00H FE Is 1 sec over?
6164 00
6165 JZ LOOP CA If not jump on zero to loop
6166 60
6167 61
6168 LDA 2102H 3A Load sec after 1 sec
6169 02
616A 21
616B ADI 01H C6
616C 01
616D DAA 27
616E CPI 60H FE Is one min. Over?
616F 60
6170 JZ NXT1 CA If yes go to Next1
6171 7D
6172 61
6173 STA 2102H 32 If no store sec.
6174 02
6175 21
6176 XRA A AF Reset flag to 0
6177 STA 2103H 32
6178 03
6179 21
617A JMP DSPLY C3 Jump to DSPLY
617B AC
617C 61
617D NXT1: XRA A AF As 1 min over sec cntr <-00
617E STA 2102H 32
617F 02
6180 21
6181 LDA 2101H 3A
6182 01
6183 21
6184 ADI 01H C6 Increment min cntr by 1
6185 01
6186 DAA 27
6187 CPI 60H FE Is 1 hour over?
6188 60
6189 JZ NXT2 CA If yes for to NXT2
618A 96
618B 61
618C STA 2101H 32 If no store min
618D 01
618E 21
618F XRA A AF Rest flag to 0
6190 STA 2103H 32
6191 03
6192 21
6193 JMP DSPLY C3 Jump to DSPLY
6194 AC
6195 61
6196 NXT2: XRA A AF Min cntr <-00
6197 STA 2101H 32
6198 02
6199 21
619A LDA 2100H 3A Increment min.
619B 01
619C 21
619D ADI 01H C6 Cntr by 1
619E 01
619F DAA 27
61A0 CPI 13H FE If 12 hours over?
61A1 60
61A2 JZ END CA If yes jump tp END
61A3 D6
61A4 61
61A5 STA 2100H 32 If no store hours
61A6 00
61A7 21
61A8 XRA A AF Reset flag to 0
61A9 STA 2103H 32
61AA 03
61AB 21
61AC DSPLY: MVI B,02H 06 Display 2 digits
61AD 02
61AE LDA 2100H 3A Load hours cntr
61AF 00
61B0 21
61B1 MOV E,A 5F Display Hrs on
61B2 CALL NMOUT CD Display
61B3 6C
61B4 03
61B5 MVI A,20H 3E Set cursor to 94th char position
61B6 20
61B7 CALL WRITE CD
61B8 78
61B9 20
61BA LDA 2101H 3A Load min. cntr
61BB 01
61BC 21
61BD MOV E,A 5F Display min on
61BE CALL NMOUT CD Display
61BF 6C
61C0 03
61C1 MVI A, 20H 3E Set cursor to 7th char position
61C2 20
61C3 CALL WRITE 3D
61C4 78
61C5 20
61C6 LDA 2102H 3A Load sec. Cntr
61C7 02
61C8 21
61C9 MOV E,A 5F Display sec on
61CA CALL NMOUT CD Display 1st position
61CB 6C
61CC 03
61CD CALL CRONLY CD
61CE 97
61CF 04
61D0 CALL TEST CD Check for key
61D1 72
61D2 20
61D3 JC LOOP DA Start counting
61D4 60
61D5 61
61D6 END: MVI A,76H 3E If key stop counter and jump to
CMD mode
61D7 76
61D8 OUT 1BH D3
61D9 1B
61DA JMP CMDWDP C3
61DB 13
61DC 00
61DD NOP 00
61DE ISR: PUSH B C5 Save all registers
61DF PUSH D D5
61E0 PUSH H E5
61E1 PUSH PSW F5
61E2 LDA 2104H 3A
61E3 04
61E4 21
61E5 INR A 3C
61E6 CPI 28H FE
61E7 28
61E8 JNZ SKIP1 C2 Jump to skip1
61E9 F8
61EA 61
61EB MVI A,00 3E
61EC 00
61ED STA 2104H 32 Reset INTR chk
61EE 04
61EF 21
61F0 MVI A, 01H 3E Counter to 0
61F1 01
61F2 STA 2103H 32 Set flag cntr=1
61F3 03
61F4 21
61F5 JMP SKIP3 C3 Jump to skip3
61F6 FB
61F7 61
61F8 SKIP1: STA 2104H 32 Store INTR chk counter
61F9 04
61FA 21
61FB SKIP3: POP PSW F1 Load all
61FC POP H E1 Registers back
61FD POP D D1
61FE POP B C1
61FF RET C9 Return to min routine
END

You might also like