Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 1
LCD2.s
Location Object Type Line Source
A 1 ;
A 2 ; lcd2.s
A 3 ; orologio con lcd 16x2 char
A 4 ; con 3 pulsanti
A 5 ; ingresso seriale 9600 baud
A 6 ; 2 ingressi analogici per:
A 7 ; - sensore temperatura LM35
A 8 ; - 3.5 mm jack con resistenze [trap door] ?
A 9 ; made for Anto
A 10 ;
A 11 ; mo13sep99 th16sep99 fr17sep99 XD.
A 12 ; tu 3oct00 su 8oct00 XD.
A 13 ; tu18sep01 we19sep01 fr21sep01 XD.
A 14 ; mo15oct01 th18oct01 fr19oct01 XD.
A 15 ;
A 16 ; rev. 0 tc: 46
A 17 ;
A 18 ;
A 19 ; Z86E0812 2 Kbyte OTP ROM 8 MHz
A 20 ; Z8pin dir outside
A 21 ; P31 i anolog 1 input
A 22 ; P32 i anolog 2 input (after reset rs232 input from host)'
A 23 ; P33 i vref
A 24 ; P00 o lcd rs
A 25 ; P01 o lcd enable
A 26 ; P02 o charge pump to vref
A 27 ; (P20 i after reset rs232 input from host)''
A 28 ; P20-P23 o lcd db4-db7
A 29 ; P24 i minus key
A 30 ; P25 i plus key
A 31 ; P26 i set key
A 32 ; P27 o buzzer out to speaker
A 33 ;
A 34 ;
00000028 A 35 SETUP .equ 28H
0000000C A 36 DSPON .equ 0CH
00000008 A 37 DSPOFF .equ 08H
0000000F A 38 BLINK .equ 0FH
0000000E A 39 CURSOR .equ 0EH
00000002 A 40 HOME .equ 02H
00000006 A 41 SET .equ 06H
00000001 A 42 DSPCLR .equ 01H
A 43 ;
00000000 A 44 INTREG .equ 00H
00000010 A 45 WORKREG .equ 10H
00000020 A 46 CLOCKRG .equ 20H
A 47 ;
R7 A 48 HOUR .equ R7
R8 A 49 MIN .equ R8
R9 A 50 SEC .equ R9
R10 A 51 SEC10 .equ R10
R11 A 52 COUNT40 .equ R11
R12 A 53 DAYOW .equ R12
R13 A 54 DAYOM .equ R13
R14 A 55 MONTH .equ R14
R15 A 56 YEAR .equ R15
A 57 ;
00000027 A 58 HOURLC .equ %27
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 2
LCD2.s
Location Object Type Line Source
00000028 A 59 MINLC .equ %28
00000029 A 60 SECLC .equ %29
0000002A A 61 SEC10LC .equ %2a
0000002B A 62 CNT40LC .equ %2b
0000002C A 63 DAYOWLC .equ %2c
0000002D A 64 DAYOMLC .equ %2d
0000002E A 65 MONTHLC .equ %2e
0000002F A 66 YEARLC .equ %2f
A 67 ;
A 68 ;
R0 A 69 ADDRH .equ R0
R1 A 70 ADDRL .equ R1
RR0 A 71 ADDR .equ RR0
R12 A 72 TEMP .equ R12
R13 A 73 BYTEL .equ R13
R14 A 74 TEMPL .equ R14
R15 A 75 DELAY .equ R15
A 76
A 77 ;
A 78 ;
A 79 ; +---------+
A 80 ; | OTP ROM |
A 81 ; +---------+
A 82 ;
A 83 ;
A 84 .org 0000H
00000000 FF FF A 85 .word 0FFFFH
00000002 FF FF A 86 .word 0FFFFH
00000004 FF FF A 87 .word 0FFFFH
00000006 FF FF A 88 .word 0FFFFH
00000008 02 7A A 89 .word T0INT
0000000A FF FF A 90 .word 0FFFFH
A 91 .org 000CH
A 92 ;
0000000C FF FF A 93 INIT .word 0FFFFH ; spare
0000000E FF A 94 .byte 0FFH ; jump
A 95 ;
0000000F 8F A 96 DI
00000010 E6 F6 F0 A 97 LD P2M,#0F0H ; P20-P23o P24-P27i
00000013 E6 F7 03 A 98 LD P3M,#11B ; P3 digital P2 active
00000016 E6 F8 04 A 99 LD P01M,#100B ; P0 out SP internal
00000019 E6 F4 32 A 100 LD T0,#50 ; 2.5 ms t0
0000001C E6 F5 C9 A 101 LD PRE0,#11001001B ; div 50
0000001F E6 F1 03 A 102 LD TMR,#3 ; load enbl t0
A 103 ; irq4 enabl max pri
00000022 E6 FB 10 A 104 LD IMR,#00010000B
00000025 B0 FA A 105 CLR IRQ
00000027 E6 F9 03 A 106 LD IPR,#00000011B
0000002A B0 FE A 107 CLR SPH ; SP at 0080H
0000002C E6 FF 80 A 108 LD SPL,#80H
A 109 ;
A 110 ; all data are in bcd format
A 111 ; special date for me !
0000002F 31 20 A 112 SRP #CLOCKRG
00000031 7C 01 A 113 LD HOUR,#01H ; hour
00000033 8C 30 A 114 LD MIN,#30H ; min
00000035 B0 E9 A 115 CLR SEC
00000037 B0 EA A 116 CLR SEC10
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 3
LCD2.s
Location Object Type Line Source
00000039 B0 EB A 117 CLR COUNT40
0000003B CC 02 A 118 LD DAYOW,#2 ; dayofweek
0000003D DC 21 A 119 LD DAYOM,#21H ; dayofmonth
0000003F EC 08 A 120 LD MONTH,#08H ; month
00000041 FC 01 A 121 LD YEAR,#01H ; year
A 122 ;
00000043 31 10 A 123 SRP #WORKREG
00000045 56 02 F0 A 124 AND P2,#0F0H ; P20-P23 low
00000048 56 00 04 A 125 AND P0,#100B ; enable = 0, rs = 0
A 126 ;
0000004B 56 02 F0 A 127 AND P2,#0F0H
0000004E 46 02 03 A 128 OR P2,#03H
00000051 46 00 02 A 129 OR P0,#010B ; enable = 1, rs = 0
00000054 D6 02 6A A 130 CALL DDELAY
00000057 56 00 04 A 131 AND P0,#100B ; enable = 0
0000005A D6 02 6A A 132 CALL DDELAY
0000005D 46 00 02 A 133 OR P0,#010B ; enable = 1, rs = 0
00000060 D6 02 72 A 134 CALL EDELAY
00000063 56 00 04 A 135 AND P0,#100B ; enable = 0
00000066 D6 02 72 A 136 CALL EDELAY
00000069 46 00 02 A 137 OR P0,#010B ; enable = 1, rs = 0
0000006C D6 02 72 A 138 CALL EDELAY
0000006F 56 00 04 A 139 AND P0,#100B ; enable = 0
00000072 D6 02 72 A 140 CALL EDELAY
A 141 ; lcd setup
00000075 56 02 F0 A 142 AND P2,#0F0H
00000078 46 02 02 A 143 OR P2,#02H
0000007B 46 00 02 A 144 OR P0,#010B ; enable = 1, rs = 0
0000007E D6 02 72 A 145 CALL EDELAY
00000081 56 00 04 A 146 AND P0,#100B ; enable = 0
00000084 D6 02 72 A 147 CALL EDELAY
A 148 ;
00000087 DC 28 A 149 LD BYTEL,#SETUP ; setup lcd 4 bit bus
00000089 D6 02 00 A 150 CALL BYTELCC
0000008C D6 02 00 A 151 CALL BYTELCC
0000008F D6 02 00 A 152 CALL BYTELCC
00000092 D6 02 00 A 153 CALL BYTELCC
00000095 DC 0F A 154 LD BYTEL,#BLINK
00000097 D6 02 00 A 155 CALL BYTELCC
0000009A DC 06 A 156 LD BYTEL,#SET
0000009C D6 02 00 A 157 CALL BYTELCC
0000009F DC 02 A 158 LD BYTEL,#HOME
000000A1 D6 02 00 A 159 CALL BYTELCC
000000A4 D6 02 72 A 160 CALL EDELAY
A 161 ;
A 162 ; 111111
A 163 ; 0123456789012345
A 164 ; me19set01 12 34
A 165 ; scroll tx 12.34
A 166 ;
A 167 ; set orolg
A 168 ; anno 2001
A 169 ; mese 09
A 170 ; giorno 19
A 171 ; giodst 03
A 172 ; ora 12
A 173 ; minuti 34
A 174 ; OK ?
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 4
LCD2.s
Location Object Type Line Source
A 175 ;
A 176 ; chronogrp
A 177 ; 0.00:00.0
A 178 ;
A 179 ; alarm ON
A 180 ; alarm off
A 181 ; set alarm
A 182 ; ora 07
A 183 ; minuti 00
A 184 ;
A 185 ;
000000A7 9F A 186 LOOP EI
000000A8 A6 29 00 A 187 CP SECLC,#0
000000AB EB FA A 188 JR NZ,LOOP
A 189 ; set cg number 0
A 190 ; col 0 row 0
000000AD DC 80 A 191 LD BYTEL,#80H
000000AF D6 02 00 A 192 CALL BYTELCC
A 193 ; stampa giorno della settimana (2 caratteri)
000000B2 0C 03 A 194 LD ADDRH,#HIGH DAYTAB
000000B4 1C D7 A 195 LD ADDRL,#LOW DAYTAB
000000B6 C8 2C A 196 LD TEMP,DAYOWLC
000000B8 26 EC 01 A 197 SUB TEMP,#1
000000BB 6B 08 A 198 JR Z,D01
000000BD 06 E1 02 A 199 D00 ADD ADDRL,#2
000000C0 16 E0 00 A 200 ADC ADDRH,#0
000000C3 CA F8 A 201 DJNZ TEMP,D00
000000C5 C2 D0 A 202 D01 LDC BYTEL,@ADDR
A 203 CALL BYTELCD
000000C7 A0 E0 A 204 INCW ADDR
000000C9 C2 D0 A 205 LDC BYTEL,@ADDR
A 206 CALL BYTELCD
A 207 ; stampa giorno del mese (2 caratteri)
A 208 ; (stampa spazio se decine == 0)
000000CB D8 2D A 209 LD BYTEL,DAYOMLC
000000CD F0 ED A 210 SWAP BYTEL
000000CF 56 ED 0F A 211 AND BYTEL,#0FH
000000D2 EB 04 A 212 JR NZ,D02
000000D4 DC 20 A 213 LD BYTEL,#' '
000000D6 8B 03 A 214 JR D03
000000D8 04 30 ED A 215 D02 ADD BYTEL,'0'
000000DB D6 02 31 A 216 D03 CALL BYTELCD
000000DE D8 2D A 217 LD BYTEL,DAYOMLC
000000E0 56 ED 0F A 218 AND BYTEL,#0FH
000000E3 04 30 ED A 219 ADD BYTEL,'0'
000000E6 D6 02 31 A 220 CALL BYTELCD
A 221 ; stampa mese (3 caratteri)
000000E9 0C 03 A 222 LD ADDRH,#HIGH MONTAB
000000EB 1C E5 A 223 LD ADDRL,#LOW MONTAB
000000ED C8 2E A 224 LD TEMP,MONTHLC
000000EF 26 EC 01 A 225 SUB TEMP,#1
000000F2 6B 08 A 226 JR Z,M01
000000F4 06 E1 03 A 227 M00 ADD ADDRL,#3
000000F7 16 E0 00 A 228 ADC ADDRH,#0
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 5
LCD2.s
Location Object Type Line Source
000000FA CA F8 A 229 DJNZ TEMP,M00
000000FC C2 D0 A 230 M01 LDC BYTEL,@ADDR
A 231 CALL BYTELCD
000000FE A0 E0 A 232 INCW ADDR
00000100 C2 D0 A 233 LDC BYTEL,@ADDR
A 234 CALL BYTELCD
00000102 A0 E0 A 235 INCW ADDR
00000104 C2 D0 A 236 LDC BYTEL,@ADDR
A 237 CALL BYTELCD
A 238 ; stampa anno (2 caratteri)
00000106 D8 2F A 239 LD BYTEL,YEARLC
00000108 F0 ED A 240 SWAP BYTEL
0000010A 56 ED 0F A 241 AND BYTEL,#0FH
0000010D 04 30 ED A 242 ADD BYTEL,'0'
00000110 D6 02 31 A 243 CALL BYTELCD
00000113 D8 2D A 244 LD BYTEL,DAYOMLC
00000115 56 ED 0F A 245 AND BYTEL,#0FH
00000118 04 30 ED A 246 ADD BYTEL,'0'
0000011B D6 02 31 A 247 CALL BYTELCD
A 248 ; stampa spazio
0000011E DC 20 A 249 LD BYTEL,#20H
00000120 D6 02 31 A 250 CALL BYTELCD
A 251 ; stampa parte alta caratteri di ore e minuti
00000123 DC 00 A 252 LD BYTEL,#00H
00000125 D6 02 31 A 253 CALL BYTELCD
00000128 DC 02 A 254 LD BYTEL,#02H
0000012A D6 02 31 A 255 CALL BYTELCD
0000012D DC 20 A 256 LD BYTEL,#20H
0000012F D6 02 31 A 257 CALL BYTELCD
00000132 DC 04 A 258 LD BYTEL,#04H
00000134 D6 02 31 A 259 CALL BYTELCD
00000137 DC 06 A 260 LD BYTEL,#06H
00000139 D6 02 31 A 261 CALL BYTELCD
A 262 ; col 0 row 1
0000013C DC A8 A 263 LD BYTEL,#80H+40
0000013E D6 02 00 A 264 CALL BYTELCC
00000141 CC 0A A 265 LD TEMP,#10
00000143 0C 03 A 266 LD R0,#HIGH DAYN
00000145 1C 91 A 267 LD R1,#LOW DAYN
00000147 E8 2C A 268 LD TEMPL,DAYOWLC
00000149 26 EE 01 A 269 SUB TEMPL,#1
0000014C 6B 08 A 270 JR Z,L3
0000014E 06 E0 0A A 271 L2 ADD R0,#10
00000151 16 E1 00 A 272 ADC R1,#0
00000154 EA F8 A 273 DJNZ TEMPL,L2
00000156 C2 D0 A 274 L3 LDC BYTEL,@RR0
00000158 D6 02 31 A 275 CALL BYTELCD
0000015B A0 E0 A 276 INCW RR0
0000015D CA F7 A 277 DJNZ TEMP,L3
0000015F DC 20 A 278 LD BYTEL,#20H
00000161 D6 02 31 A 279 CALL BYTELCD
A 280 ; stampa parte bassa caratteri di oer e minuti
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 6
LCD2.s
Location Object Type Line Source
00000164 DC 01 A 281 LD BYTEL,#01H
00000166 D6 02 31 A 282 CALL BYTELCD
00000169 DC 03 A 283 LD BYTEL,#03H
0000016B D6 02 31 A 284 CALL BYTELCD
0000016E DC 2E A 285 LD BYTEL,#'.' ; 20H
00000170 D6 02 31 A 286 CALL BYTELCD
00000173 DC 05 A 287 LD BYTEL,#05H
00000175 D6 02 31 A 288 CALL BYTELCD
00000178 DC 07 A 289 LD BYTEL,#07H
0000017A D6 02 31 A 290 CALL BYTELCD
A 291 ; set cg address ram
0000017D DC 40 A 292 LD BYTEL,#40H
0000017F D6 02 00 A 293 CALL BYTELCC
A 294 ; stampa ore e minuti nei caratteri grafici
00000182 C8 27 A 295 LD TEMP,HOURLC
00000184 56 EC F0 A 296 AND TEMP,#0F0H
00000187 F0 EC A 297 SWAP TEMP
00000189 D6 01 E3 A 298 CALL DSPCHR
0000018C C8 27 A 299 LD TEMP,HOURLC
0000018E 56 EC 0F A 300 AND TEMP,#0FH
00000191 D6 01 E3 A 301 CALL DSPCHR
00000194 C8 28 A 302 LD TEMP,MINLC
00000196 56 EC F0 A 303 AND TEMP,#0F0H
00000199 F0 EC A 304 SWAP TEMP
0000019B D6 01 E3 A 305 CALL DSPCHR
0000019E C8 28 A 306 LD TEMP,MINLC
000001A0 56 EC 0F A 307 AND TEMP,#0FH
000001A3 D6 01 E3 A 308 CALL DSPCHR
A 309 ; torna sopra
000001A6 8D 00 A7 A 310 JP LOOP
A 311 ;
A 312 ; +------------+
A 313 ; | Subroutine |
A 314 ; +------------+
A 315 ;
A 316 ;
A 317 ; inc dec routine
A 318 ; on entry:
A 319 ;
A 320 ; r5 set number (10h,20h,..,90h)
A 321 ; r7 point to incdec loc
A 322 ; that point to bcd coded loc
A 323 ; r8 hi limit bcd coded
A 324 ; r9 lo limit " "
A 325 ;
A 326 ; out:
A 327 ; r5 = r5 + 10h
A 328 ; r7 = r7 + 1
A 329 ;
A 330 ; usd:
A 331 ; r4 work reg
A 332 ; r5 put4bcd hi 2 bcd
A 333 ; r6 put4bcd lo 2 bcd
A 334 ; r7 point to incdec loc bcd coded
A 335 ; r8 hi limit bcd coded
A 336 ; r9 lo limit " "
A 337 ; r10 delay reg hi
A 338 ; r11 delay reg lo
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 7
LCD2.s
Location Object Type Line Source
A 339 ; r12 hi bcd save reg
A 340 ;
A 341 ; port bit -> key assign
A 342 ; P31 set key
A 343 ; P32 minus key
A 344 ; P33 plus key
A 345 ;
A 346 ;
000001A9 A 347 INCDEC TPLUSK ; '+' key
000001A9 EB 0D A 348 JR NZ,IN0
000001AB A3 87 A 349 CP R8,@R7
000001AD BB 04 A 350 JR UGT,IN3
000001AF F3 79 A 351 LD @R7,R9
000001B1 8B 05 A 352 JR IN0
000001B3 07 E7 01 A 353 IN3 ADD @R7,#1
000001B6 41 E7 A 354 DA @R7
000001B8 A 355 IN0 TMINUSK ; '-' key
000001B8 EB 0D A 356 JR NZ,IN1
000001BA A3 97 A 357 CP R9,@R7
000001BC 7B 04 A 358 JR ULT,IN4
000001BE F3 78 A 359 LD @R7,R8
000001C0 8B 05 A 360 JR IN1
000001C2 27 E7 01 A 361 IN4 SUB @R7,#1
000001C5 41 E7 A 362 DA @R7
000001C7 E3 67 A 363 IN1 LD R6,@R7
A 364 ; r5 hi2bcd r6 lo2bcd
000001C9 58 EC A 365 LD R5,R12
000001CB D6 00 00 A 366 CALL PUT4BCD
000001CE D6 01 DA A 367 CALL KDEL
A 368 TSETK ; 'set' k
000001D1 EB D6 A 369 JR NZ,INCDEC
000001D3 A 370 IN5 WDOG
A 371 TSETK ; 'set' k rel
000001D3 6B FE A 372 JR Z,IN5
A 373 ; do the incs
000001D5 06 EC 10 A 374 ADD R12,#10H
000001D8 7E A 375 INC R7
000001D9 AF A 376 RET
A 377 ;
A 378 ; key delay routine
A 379 ;
A 380 ; r10 hi delay reg
A 381 ; r11 lo delay reg
A 382 ;
000001DA A 383 KDEL ; LD R10,#97H ; 0A0H ; 65H
A 384 ; JR SD0
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 8
LCD2.s
Location Object Type Line Source
A 385 ;
A 386 ; setnum delay routine
A 387 ;
A 388 ; r10 hi delay reg
A 389 ; r11 lo delay reg
A 390 ;
000001DA AC 80 A 391 SDEL LD R10,#80H
A 392 ; LD R10,#0
A 393 ;
000001DC B0 EB A 394 SK0 CLR R11
A 395 ; LD R10,#0
000001DE A 396 SD0 WDOG ; check istr time
000001DE 80 EA A 397 DECW RR10
000001E0 EB FC A 398 JR NZ,SD0
000001E2 AF A 399 RET
A 400 ;
A 401 ;
A 402
A 403 ;
A 404 ; display graphic character 16x5 on lcd
A 405 ;
A 406 ; in: temp number of gc [0-9]
A 407 ; usd: temp, bytel, r4, r5
A 408 ; out: temp = 0
A 409 ;
000001E3 4C 02 A 410 DSPCHR LD R4,#HIGH CHRTBL
000001E5 5C E4 A 411 LD R5,#LOW CHRTBL
000001E7 A6 EC 00 A 412 CP TEMP,#0
000001EA 6B 08 A 413 JR Z,DSP1
000001EC 06 E5 10 A 414 DSP0 ADD R5,#16
000001EF 16 E4 00 A 415 ADC R4,#0
000001F2 CA F8 A 416 DJNZ TEMP,DSP0
000001F4 CC 10 A 417 DSP1 LD TEMP,#16
000001F6 C2 D4 A 418 DSP2 LDC BYTEL,@RR4
000001F8 D6 02 31 A 419 CALL BYTELCD
000001FB A0 E4 A 420 INCW RR4
000001FD CA F7 A 421 DJNZ TEMP,DSP2
000001FF AF A 422 RET
A 423 ;
A 424 ; send a command byte to lcd ( 4 bit bus )
A 425 ;
A 426 ; in: bytel
A 427 ; out: bytel
A 428 ; usd: templ
A 429 ;
00000200 E8 ED A 430 BYTELCC LD TEMPL,BYTEL ; put hi nibble
00000202 F0 EE A 431 SWAP TEMPL
00000204 56 EE 0F A 432 AND TEMPL,#0FH
00000207 56 02 F0 A 433 AND P2,#0F0H
0000020A 44 EE 02 A 434 OR P2,TEMPL
0000020D 46 00 02 A 435 OR P0,#010B ; enable = 1, rs = 0
00000210 D6 02 65 A 436 CALL LDELAY
00000213 56 00 04 A 437 AND P0,#100B ; enable = 0
00000216 D6 02 65 A 438 CALL LDELAY
00000219 E8 ED A 439 LD TEMPL,BYTEL ; put lo nibble
0000021B 56 EE 0F A 440 AND TEMPL,#0FH
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 9
LCD2.s
Location Object Type Line Source
0000021E 56 02 F0 A 441 AND P2,#0F0H
00000221 44 EE 02 A 442 OR P2,TEMPL
00000224 46 00 02 A 443 OR P0,#010B ; enable = 1, rs =0
00000227 D6 02 65 A 444 CALL LDELAY
0000022A 56 00 04 A 445 AND P0,#100B ; enable = 0
0000022D D6 02 65 A 446 CALL LDELAY
00000230 AF A 447 RET
A 448
A 449 ;
A 450 ; send a data byte to lcd ( 4 bit bus )
A 451 ;
A 452 ; in: bytel
A 453 ; out: bytel
A 454 ; usd: templ
A 455 ;
00000231 E8 ED A 456 BYTELCD LD TEMPL,BYTEL ; put hi nibble
00000233 F0 EE A 457 SWAP TEMPL
00000235 56 EE 0F A 458 AND TEMPL,#0FH
00000238 56 02 F0 A 459 AND P2,#0F0H
0000023B 44 EE 02 A 460 OR P2,TEMPL
0000023E 46 00 03 A 461 OR P0,#011B ; enable = 1, rs = 1
00000241 D6 02 65 A 462 CALL LDELAY
00000244 56 00 05 A 463 AND P0,#101B ; enable = 0
00000247 D6 02 65 A 464 CALL LDELAY
0000024A E8 ED A 465 LD TEMPL,BYTEL ; put lo nibble
0000024C 56 EE 0F A 466 AND TEMPL,#0FH
0000024F 56 02 F0 A 467 AND P2,#0F0H
00000252 44 EE 02 A 468 OR P2,TEMPL
00000255 46 00 03 A 469 OR P0,#011B ; enable = 1, rs = 1
00000258 D6 02 65 A 470 CALL LDELAY
0000025B 56 00 05 A 471 AND P0,#101B ; enable = 0
0000025E 56 00 04 A 472 AND P0,#100B ; also rs = 0
00000261 D6 02 65 A 473 CALL LDELAY
00000264 AF A 474 RET
A 475
A 476 ;
A 477 ; lcd delay
A 478 ;
A 479 ; in: none
A 480 ; out: none
A 481 ; usd: delay
A 482 ;
00000265 FC 00 A 483 LDELAY LD DELAY,#0
00000267 FA FE A 484 LLOOP DJNZ DELAY,LLOOP
00000269 AF A 485 RET
A 486
0000026A CC 10 A 487 DDELAY LD TEMP,#10H
0000026C D6 02 65 A 488 DLOOP CALL LDELAY
0000026F CA FB A 489 DJNZ TEMP,DLOOP
00000271 AF A 490 RET
A 491
00000272 CC 04 A 492 EDELAY LD TEMP,#04H
00000274 D6 02 65 A 493 ELOOP CALL LDELAY
00000277 CA FB A 494 DJNZ TEMP,ELOOP
00000279 AF A 495 RET
A 496 ;
A 497 ;
A 498 ; +-------------------+
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 10
LCD2.s
Location Object Type Line Source
A 499 ; | Interrupt Routine |
A 500 ; +-------------------+
A 501 ;
A 502 ;
A 503 ; 2.5 ms on every interrupt call
A 504 ; 2.5 ms * 40 = 0.1 sec
A 505 ; 2.5 ms * 100 = 0.25 sec (250 ms) T1 state increment
A 506 ;
A 507 ; CLOCKRG 20H
A 508 ; R0 month address high
A 509 ; R1 month address low
A 510 ; R2 month day len (28-31)
A 511 ;
A 512 ; R7
A 513 ; R8
A 514 ; R9
A 515 ; R10
A 516 ; R11
A 517 ; R12
A 518 ; R13
A 519 ; R14
A 520 ; R15
A 521 ;
0000027A 70 FD A 522 T0INT PUSH RP
0000027C 31 20 A 523 SRP #CLOCKRG
A 524 ;
0000027E BE A 525 INC COUNT40
0000027F A6 EB 28 A 526 CP COUNT40,#40 ; 40 count
00000282 7B 5D A 527 JR ULT,ENDCL
00000284 B0 EB A 528 CLR COUNT40
00000286 AE A 529 INC SEC10
00000287 A6 EA 0A A 530 CP SEC10,#10 ; 1/10 sec
0000028A 7B 55 A 531 JR ULT,ENDCL
0000028C B0 EA A 532 CLR SEC10
0000028E 06 E9 01 A 533 ADD SEC,#1
00000291 40 E9 A 534 DA SEC
00000293 A6 E9 60 A 535 CP SEC,#60H ; sec
00000296 7B 49 A 536 JR ULT,ENDCL
00000298 B0 E9 A 537 CLR SEC
0000029A 06 E8 01 A 538 ADD MIN,#1
0000029D 40 E8 A 539 DA MIN
0000029F A6 E8 60 A 540 CP MIN,#60H ; min
000002A2 7B 3D A 541 JR ULT,ENDCL
000002A4 B0 E8 A 542 CLR MIN
000002A6 06 E7 01 A 543 ADD HOUR,#1
000002A9 40 E7 A 544 DA HOUR
000002AB A6 E7 24 A 545 CP HOUR,#24H ; hour
000002AE 7B 31 A 546 JR ULT,ENDCL
000002B0 B0 E7 A 547 CLR HOUR
000002B2 CE A 548 INC DAYOW
000002B3 A6 EC 08 A 549 CP DAYOW,#8 ; dayofweek
000002B6 7B 02 A 550 JR ULT,CL0
000002B8 CC 01 A 551 LD DAYOW,#1
000002BA 0C 03 A 552 CL0 LD R0,#HIGH MLEN
000002BC 1C 84 A 553 LD R1,#LOW MLEN
000002BE 02 1E A 554 ADD R1,MONTH
000002C0 16 E0 00 A 555 ADC R0,#0
000002C3 C2 20 A 556 LDC R2,@RR0 ; get month
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 11
LCD2.s
Location Object Type Line Source
000002C5 06 ED 01 A 557 ADD DAYOM,#1 ; len
000002C8 40 ED A 558 DA DAYOM
000002CA A2 D2 A 559 CP DAYOM,R2 ; day of
000002CC 7B 13 A 560 JR ULT,ENDCL ; month
000002CE B0 ED A 561 CLR DAYOM
000002D0 06 EE 01 A 562 ADD MONTH,#1
000002D3 40 EE A 563 DA MONTH
000002D5 A6 EE 13 A 564 CP MONTH,#13H ; month
000002D8 7B 07 A 565 JR ULT,ENDCL
000002DA EC 01 A 566 LD MONTH,#1
000002DC 06 EF 01 A 567 ADD YEAR,#1 ; year
000002DF 40 EF A 568 DA YEAR
A 569 ;
000002E1 50 FD A 570 ENDCL POP RP
000002E3 BF A 571 IRET
A 572 ;
A 573 ; number 0 in 16x5
000002E4 0E A 574 CHRTBL .byte 00001110B
000002E5 0E A 575 .byte 00001110B
000002E6 1B A 576 .byte 00011011B
000002E7 1B A 577 .byte 00011011B
000002E8 1B A 578 .byte 00011011B
000002E9 1B A 579 .byte 00011011B
000002EA 1B A 580 .byte 00011011B
000002EB 1B A 581 .byte 00011011B
A 582 ;
000002EC 1B A 583 .byte 00011011B
000002ED 1B A 584 .byte 00011011B
000002EE 1B A 585 .byte 00011011B
000002EF 1B A 586 .byte 00011011B
000002F0 1B A 587 .byte 00011011B
000002F1 1B A 588 .byte 00011011B
000002F2 0E A 589 .byte 00001110B
000002F3 0E A 590 .byte 00001110B
A 591 ;
A 592 ; number 1 in 16x5
000002F4 06 A 593 .byte 00000110B
000002F5 06 A 594 .byte 00000110B
000002F6 0E A 595 .byte 00001110B
000002F7 0E A 596 .byte 00001110B
000002F8 06 A 597 .byte 00000110B
000002F9 06 A 598 .byte 00000110B
000002FA 06 A 599 .byte 00000110B
000002FB 06 A 600 .byte 00000110B
A 601 ;
000002FC 06 A 602 .byte 00000110B
000002FD 06 A 603 .byte 00000110B
000002FE 06 A 604 .byte 00000110B
000002FF 06 A 605 .byte 00000110B
00000300 06 A 606 .byte 00000110B
00000301 06 A 607 .byte 00000110B
00000302 0F A 608 .byte 00001111B
00000303 0F A 609 .byte 00001111B
A 610 ;
A 611 ; number 2 in 16x5
00000304 04 A 612 .byte 00000100B
00000305 0E A 613 .byte 00001110B
00000306 1B A 614 .byte 00011011B
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 12
LCD2.s
Location Object Type Line Source
00000307 1B A 615 .byte 00011011B
00000308 03 A 616 .byte 00000011B
00000309 03 A 617 .byte 00000011B
0000030A 03 A 618 .byte 00000011B
0000030B 06 A 619 .byte 00000110B
A 620 ;
0000030C 0C A 621 .byte 00001100B
0000030D 18 A 622 .byte 00011000B
0000030E 18 A 623 .byte 00011000B
0000030F 18 A 624 .byte 00011000B
00000310 18 A 625 .byte 00011000B
00000311 18 A 626 .byte 00011000B
00000312 1F A 627 .byte 00011111B
00000313 1F A 628 .byte 00011111B
A 629 ;
A 630 ; number 3 in 16x5
00000314 1E A 631 .byte 00011110B
00000315 1F A 632 .byte 00011111B
00000316 03 A 633 .byte 00000011B
00000317 03 A 634 .byte 00000011B
00000318 03 A 635 .byte 00000011B
00000319 03 A 636 .byte 00000011B
0000031A 03 A 637 .byte 00000011B
0000031B 1F A 638 .byte 00011111B
A 639 ;
0000031C 1F A 640 .byte 00011111B
0000031D 03 A 641 .byte 00000011B
0000031E 03 A 642 .byte 00000011B
0000031F 03 A 643 .byte 00000011B
00000320 03 A 644 .byte 00000011B
00000321 03 A 645 .byte 00000011B
00000322 1E A 646 .byte 00011110B
00000323 1E A 647 .byte 00011110B
A 648 ;
A 649 ; number 4 in 16x5
00000324 1B A 650 .byte 00011011B
00000325 1B A 651 .byte 00011011B
00000326 1B A 652 .byte 00011011B
00000327 1B A 653 .byte 00011011B
00000328 1B A 654 .byte 00011011B
00000329 1B A 655 .byte 00011011B
0000032A 1B A 656 .byte 00011011B
0000032B 1F A 657 .byte 00011111B
A 658 ;
0000032C 1F A 659 .byte 00011111B
0000032D 03 A 660 .byte 00000011B
0000032E 03 A 661 .byte 00000011B
0000032F 03 A 662 .byte 00000011B
00000330 03 A 663 .byte 00000011B
00000331 03 A 664 .byte 00000011B
00000332 03 A 665 .byte 00000011B
00000333 03 A 666 .byte 00000011B
A 667 ;
A 668 ; number 5 in 16x5
00000334 1F A 669 .byte 00011111B
00000335 1F A 670 .byte 00011111B
00000336 18 A 671 .byte 00011000B
00000337 18 A 672 .byte 00011000B
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 13
LCD2.s
Location Object Type Line Source
00000338 18 A 673 .byte 00011000B
00000339 18 A 674 .byte 00011000B
0000033A 18 A 675 .byte 00011000B
0000033B 1E A 676 .byte 00011110B
A 677 ;
0000033C 1E A 678 .byte 00011110B
0000033D 03 A 679 .byte 00000011B
0000033E 03 A 680 .byte 00000011B
0000033F 03 A 681 .byte 00000011B
00000340 03 A 682 .byte 00000011B
00000341 03 A 683 .byte 00000011B
00000342 1E A 684 .byte 00011110B
00000343 1E A 685 .byte 00011110B
A 686 ;
A 687 ; number 6 in 16x5
00000344 0F A 688 .byte 00001111B
00000345 0F A 689 .byte 00001111B
00000346 18 A 690 .byte 00011000B
00000347 18 A 691 .byte 00011000B
00000348 18 A 692 .byte 00011000B
00000349 18 A 693 .byte 00011000B
0000034A 18 A 694 .byte 00011000B
0000034B 1E A 695 .byte 00011110B
A 696 ;
0000034C 1E A 697 .byte 00011110B
0000034D 1B A 698 .byte 00011011B
0000034E 1B A 699 .byte 00011011B
0000034F 1B A 700 .byte 00011011B
00000350 1B A 701 .byte 00011011B
00000351 1B A 702 .byte 00011011B
00000352 0E A 703 .byte 00001110B
00000353 0E A 704 .byte 00001110B
A 705 ;
A 706 ; number 7 in 16x5
00000354 1F A 707 .byte 00011111B
00000355 1F A 708 .byte 00011111B
00000356 03 A 709 .byte 00000011B
00000357 03 A 710 .byte 00000011B
00000358 03 A 711 .byte 00000011B
00000359 06 A 712 .byte 00000110B
0000035A 06 A 713 .byte 00000110B
0000035B 06 A 714 .byte 00000110B
A 715 ;
0000035C 06 A 716 .byte 00000110B
0000035D 0C A 717 .byte 00001100B
0000035E 0C A 718 .byte 00001100B
0000035F 0C A 719 .byte 00001100B
00000360 18 A 720 .byte 00011000B
00000361 18 A 721 .byte 00011000B
00000362 18 A 722 .byte 00011000B
00000363 18 A 723 .byte 00011000B
A 724 ;
A 725 ; number 8 in 16x5
00000364 0E A 726 .byte 00001110B
00000365 0E A 727 .byte 00001110B
00000366 1B A 728 .byte 00011011B
00000367 1B A 729 .byte 00011011B
00000368 1B A 730 .byte 00011011B
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 14
LCD2.s
Location Object Type Line Source
00000369 1B A 731 .byte 00011011B
0000036A 1B A 732 .byte 00011011B
0000036B 0E A 733 .byte 00001110B
A 734 ;
0000036C 0E A 735 .byte 00001110B
0000036D 1B A 736 .byte 00011011B
0000036E 1B A 737 .byte 00011011B
0000036F 1B A 738 .byte 00011011B
00000370 1B A 739 .byte 00011011B
00000371 1B A 740 .byte 00011011B
00000372 0E A 741 .byte 00001110B
00000373 0E A 742 .byte 00001110B
A 743 ;
A 744 ; number 9 in 16x5
00000374 0E A 745 .byte 00001110B
00000375 0E A 746 .byte 00001110B
00000376 1B A 747 .byte 00011011B
00000377 1B A 748 .byte 00011011B
00000378 1B A 749 .byte 00011011B
00000379 1B A 750 .byte 00011011B
0000037A 1B A 751 .byte 00011011B
0000037B 0F A 752 .byte 00001111B
A 753 ;
0000037C 0F A 754 .byte 00001111B
0000037D 03 A 755 .byte 00000011B
0000037E 03 A 756 .byte 00000011B
0000037F 03 A 757 .byte 00000011B
00000380 03 A 758 .byte 00000011B
00000381 03 A 759 .byte 00000011B
00000382 1E A 760 .byte 00011110B
00000383 1E A 761 .byte 00011110B
A 762 ;
A 763 ;
00000384 FF A 764 MLEN NOP ; dummy value for -1 of
00000385 31 28 31 30 31 A 765 .byte 31H,28H,31H,30H,31H
0000038A 30 31 31 30 31 A 766 .byte 30H,31H,31H,30H,31H
0000038F 31 31 A 767 .byte 31H,31H ; bcd coded
A 768 ; 1234567890
00000391 4C 55 4E 45 44 49 A 769 DAYN .ascii "LUNEDI' "
00000397 27 20 20 20 A d 769
0000039B 4D 41 52 54 45 44 A 770 .ascii "MARTEDI' "
000003A1 49 27 20 20 A d 770
000003A5 4D 45 52 43 4F 4C A 771 .ascii "MERCOLEDI'"
000003AB 45 44 49 27 A d 771
000003AF 47 49 4F 56 45 44 A 772 .ascii "GIOVEDI' "
000003B5 49 27 20 20 A d 772
000003B9 56 45 4E 45 52 44 A 773 .ascii "VENERDI' "
000003BF 49 27 20 20 A d 773
000003C3 53 41 42 41 54 4F A 774 .ascii "SABATO "
000003C9 20 20 20 20 A d 774
000003CD 44 4F 4D 45 4E 49 A 775 .ascii "DOMENICA "
000003D3 43 41 20 20 A d 775
A 776 ;
000003D7 6C 75 A 777 DAYTAB .ascii "lu"
000003D9 6D 61 A 778 .ascii "ma"
000003DB 6D 65 A 779 .ascii "me"
000003DD 67 69 A 780 .ascii "gi"
000003DF 76 65 A 781 .ascii "ve"
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 15
LCD2.s
Location Object Type Line Source
000003E1 73 61 A 782 .ascii "sa"
000003E3 44 4F A 783 .ascii "DO"
A 784 ;
000003E5 67 65 6E A 785 MONTAB .ascii "gen"
000003E8 66 65 62 A 786 .ascii "feb"
000003EB 6D 61 72 A 787 .ascii "mar"
000003EE 61 70 72 A 788 .ascii "apr"
000003F1 6D 61 67 A 789 .ascii "mag"
000003F4 67 69 75 A 790 .ascii "giu"
000003F7 6C 75 67 A 791 .ascii "lug"
000003FA 61 67 6F A 792 .ascii "ago"
000003FD 73 65 74 A 793 .ascii "set"
00000400 6F 74 74 A 794 .ascii "ott"
00000403 6E 6F 76 A 795 .ascii "nov"
00000406 64 69 63 A 796 .ascii "dic"
A 797 ;
00000409 51 75 65 73 74 6F A 798 SCROLL .ascii "Questo orologio e' powered "
0000040F 20 6F 72 6F 6C 6F A d 798
00000415 67 69 6F 20 65 27 A d 798
0000041B 20 70 6F 77 65 72 A d 798
00000421 65 64 20 A d 798
00000424 62 79 20 5A 38 40 A 799 .ascii "by Z8@ from Zilog@"
0000042A 20 66 72 6F 6D 20 A d 799
00000430 5A 69 6C 6F 67 40 A d 799
00000436 20 20 20 20 20 20 A 800 ENDSCR .asciz " "
0000043C 20 20 20 00 A d 800
A 801 ; 111111
A 802 ; 0123456789012345
00000440 41 6E 74 6F 43 6C A 803 .ascii "AntoClock v:0.00"
00000446 6F 63 6B 20 76 3A A d 803
0000044C 30 2E 30 30 A d 803
00000450 41 43 6C 6F 63 6B A 804 .ascii "AClock v:0.00 "
00000456 20 76 3A 30 2E 30 A d 804
0000045C 30 20 20 20 A d 804
00000460 62 79 20 58 44 2E A 805 .ascii "by XD. 2001 "
00000466 20 32 30 30 31 20 A d 805
0000046C 20 20 20 20 A d 805
00000470 5A 2D 74 65 63 68 A 806 .ascii "Z-tech 2001 "
00000476 20 32 30 30 31 20 A d 806
0000047C 20 20 20 20 A d 806
A 807 ;
A 808 ;
A 809 .end
A 810 ;
A 811 ;
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 16
LCD2.s
Symbol Name Value Section
ADDR RR0
ADDRH R0
ADDRL R1
BLINK 0000000F
BYTEL R13
BYTELCC 00000200 code
BYTELCD 00000231 code
CHRTBL 000002E4 code
CL0 000002BA code
CLOCKRG 00000020
CNT40LC 0000002B
code Section code
COUNT40 R11
CURSOR 0000000E
D00 000000BD code
D01 000000C5 code
D02 000000D8 code
D03 000000DB code
DAYN 00000391 code
DAYOM R13
DAYOMLC 0000002D
DAYOW R12
DAYOWLC 0000002C
DAYTAB 000003D7 code
DDELAY 0000026A code
DELAY R15
DLOOP 0000026C code
DSP0 000001EC code
DSP1 000001F4 code
DSP2 000001F6 code
DSPCHR 000001E3 code
DSPCLR 00000001
DSPOFF 00000008
DSPON 0000000C
EDELAY 00000272 code
ELOOP 00000274 code
ENDCL 000002E1 code
ENDSCR 00000436 code
HOME 00000002
HOUR R7
HOURLC 00000027
IN0 000001B8 code
IN1 000001C7 code
IN3 000001B3 code
IN4 000001C2 code
IN5 000001D3 code
INCDEC 000001A9 code
INIT 0000000C code
INTREG 00000000
KDEL 000001DA code
L2 0000014E code
L3 00000156 code
LDELAY 00000265 code
LLOOP 00000267 code
LOOP 000000A7 code
M00 000000F4 code
M01 000000FC code
MIN R8
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 17
LCD2.s
Symbol Name Value Section
MINLC 00000028
MLEN 00000384 code
MONTAB 000003E5 code
MONTH R14
MONTHLC 0000002E
PUT4BCD 00000000
SCROLL 00000409 code
SD0 000001DE code
SDEL 000001DA code
SEC R9
SEC10 R10
SEC10LC 0000002A
SECLC 00000029
SET 00000006
SETUP 00000028
SK0 000001DC code
T0INT 0000027A code
TEMP R12
TEMPL R14
WORKREG 00000010
YEAR R15
YEARLC 0000002F
80 Symbols.
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 18
LCD2.s
Symbol Name References
ADDR 71* 202 204 205 230 232 233
235 236
ADDRH 69* 194 200 222 228
ADDRL 70* 195 199 223 227
BLINK 38* 154
BYTEL 73* 149 154 156 158 191 202
205 209 210 211 213 215 217
218 219 230 233 236 239 240
241 242 244 245 246 249 252
254 256 258 260 263 274 278
281 283 285 287 289 292 418
430 439 456 465
BYTELCC 150 151 152 153 155 157 159
192 264 293 430*
BYTELCD 216 220 243 247 250 253 255
257 259 261 275 279 282 284
286 288 290 419 456*
CHRTBL 410 411 574*
CL0 550 552*
CLOCKRG 46* 112 523
CNT40LC 62*
COUNT40 52* 117 525 526 528
CURSOR 39*
D00 199* 201
D01 198 202*
D02 212 215*
D03 214 216*
DAYN 266 267 769*
DAYOM 54* 119 557 558 559 561
DAYOMLC 64* 209 217 244
DAYOW 53* 118 548 549 551
DAYOWLC 63* 196 268
DAYTAB 194 195 777*
DDELAY 130 132 487*
DELAY 75* 483 484
DLOOP 488* 489
DSP0 414* 416
DSP1 413 417*
DSP2 418* 421
DSPCHR 298 301 305 308 410*
DSPCLR 42*
DSPOFF 37*
DSPON 36*
EDELAY 134 136 138 140 145 147 160
492*
ELOOP 493* 494
ENDCL 527 531 536 541 546 560 565
570*
ENDSCR 800*
HOME 40* 158
HOUR 48* 113 543 544 545 547
HOURLC 58* 295 299
IN0 348 352 355*
IN1 356 360 363*
IN3 350 353*
IN4 358 361*
IN5 370* 372
INCDEC 347* 369
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 19
LCD2.s
Symbol Name References
INIT 93*
INTREG 44*
KDEL 367 383*
L2 271* 273
L3 270 274* 277
LDELAY 436 438 444 446 462 464 470
473 483* 488 493
LLOOP 484* 484
LOOP 186* 188 310
M00 227* 229
M01 226 230*
MIN 49* 114 538 539 540 542
MINLC 59* 302 306
MLEN 552 553 764*
MONTAB 222 223 785*
MONTH 55* 120 554 562 563 564 566
MONTHLC 65* 224
PUT4BCD 366
SCROLL 798*
SD0 396* 398
SDEL 391*
SEC 50* 115 533 534 535 537
SEC10 51* 116 529 530 532
SEC10LC 61*
SECLC 60* 187
SET 41* 156
SETUP 35* 149
SK0 394*
T0INT 89 522*
TEMP 72* 196 197 201 224 225 229
265 277 295 296 297 299 300
302 303 304 306 307 412 416
417 421 487 489 492 494
TEMPL 74* 268 269 273 430 431 432
434 439 440 442 456 457 458
460 465 466 468
WORKREG 45* 123
YEAR 56* 121 567 568
YEARLC 66* 239
Zilog Macro Assembler. Version K2.01 21-Oct-01 11:56:25 Page: 20
LCD2.s
0 Warnings
24 Errors