WRT.RTC1.0
FILE INFORMATION
FILENAME(S): WRT.RTC1.0
FILE TYPE(S): SEQ
FILE SIZE: 2.6K
FIRST SEEN: 2025-12-02 02:15:36
APPEARS ON: 1 disk(s)
FILE HASH
02a5d990bb67ef049b785d9218f4bf4d278edd1b502f14ec16e6689270da463c
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| TIM S TIMER 2 0 | WRT.RTC1.0 | SEQ | The BAM Archive | 21 | 14 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000010: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 2A |**************.*| 00000020: A0 77 72 69 74 65 A0 72 65 61 6C A0 74 69 6D 65 |.write.real.time| 00000030: A0 63 6C 6F 63 6B A0 76 32 2E 30 A0 2A 0D 2A A0 |.clock.v2.0.*.*.| 00000040: A0 A0 A0 A0 A0 A0 A0 31 6D 68 7A A0 76 65 72 73 |.......1mhz.vers| 00000050: 69 6F 6E A0 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A 2A 2A |ion........*.***| 00000060: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000070: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 2A A0 A0 A0 |***********.*...| 00000080: A0 A0 A0 A0 A0 6D 61 79 A0 31 30 A0 A0 31 39 38 |.....may.10..198| 00000090: 37 A0 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A A0 A0 A0 A0 |7........*.*....| 000000A0: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |................| 000000B0: A0 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A A0 A0 A0 A0 A0 |........*.*.....| 000000C0: A0 62 79 A0 74 69 6D A0 67 A0 63 6F 72 63 6F 72 |.by.tim.g.corcor| 000000D0: 61 6E A0 A0 A0 A0 A0 2A 0D 2A A0 A0 A0 A0 A0 A0 |an.....*.*......| 000000E0: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |................| 000000F0: A0 A0 A0 A0 A0 A0 2A 0D 2A A0 A0 A0 74 68 69 73 |......*.*...this| 00000100: A0 73 2F 77 A0 69 73 A0 70 61 72 74 A0 6F 66 A0 |.s/w.is.part.of.| 00000110: 74 68 65 A0 A0 2A 0D 2A A0 72 74 63 A0 73 68 61 |the..*.*.rtc.sha| 00000120: 72 65 77 61 72 65 A0 70 61 63 6B 61 67 65 2E A0 |reware.package..| 00000130: 69 74 A0 A0 2A 0D 2A A0 69 73 A0 6F 6B 61 79 A0 |it..*.*.is.okay.| 00000140: 74 6F A0 64 69 73 74 72 69 62 75 74 65 A0 61 6E |to.distribute.an| 00000150: 64 A0 A0 2A 0D 2A A0 73 68 61 72 65 2C A0 62 75 |d..*.*.share,.bu| 00000160: 74 A0 6E 6F 74 A0 74 6F A0 73 65 6C 6C 2E A0 A0 |t.not.to.sell...| 00000170: A0 A0 2A 0D 2A A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |..*.*...........| 00000180: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |................| 00000190: A0 2A 0D 2A A0 70 6C 65 61 73 65 A0 63 6F 6E 73 |.*.*.please.cons| 000001A0: 69 64 65 72 A0 73 75 70 70 6F 72 74 69 6E 67 A0 |ider.supporting.| 000001B0: 2A 0D 2A A0 6D 79 73 74 69 63 A0 6A 69 6D 27 73 |*.*.mystic.jim's| 000001C0: A0 73 2F 77 A0 73 79 73 74 65 6D A0 A0 A0 A0 2A |.s/w.system....*| 000001D0: 0D 2A A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |.*..............| 000001E0: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 2A 0D |..............*.| 000001F0: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000200: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 2A |**************.*| 00000210: 0D 2A 0D 2A 0D 20 6F 72 67 20 24 34 35 38 30 0D |.*.*. org $4580.| 00000220: 64 64 72 61 20 65 71 75 20 24 64 63 30 32 0D 64 |ddra equ $dc02.d| 00000230: 72 61 20 65 71 75 20 24 64 63 30 30 0D 68 6F 75 |ra equ $dc00.hou| 00000240: 72 73 20 65 71 75 20 24 34 35 37 30 0D 74 65 6D |rs equ $4570.tem| 00000250: 70 20 65 71 75 20 24 34 35 37 31 0D 74 6D 70 31 |p equ $4571.tmp1| 00000260: 20 65 71 75 20 24 34 35 37 32 0D 74 6D 70 32 20 | equ $4572.tmp2 | 00000270: 65 71 75 20 24 34 35 37 33 0D 2A 0D 2A 0D 2A 0D |equ $4573.*.*.*.| 00000280: 2A 0D 20 6C 64 61 20 24 30 31 20 3B 67 65 74 A0 |*. lda $01 ;get.| 00000290: 6D 65 6D A0 63 6F 6E 66 69 67 0D 20 70 68 61 20 |mem.config. pha | 000002A0: 20 3B 73 61 76 65 A0 69 74 0D 20 6C 64 61 20 23 | ;save.it. lda #| 000002B0: 24 33 35 20 3B 74 75 72 6E A0 6F 6E A0 69 2F 6F |$35 ;turn.on.i/o| 000002C0: A0 72 65 67 69 6F 6E 0D 20 73 74 61 20 24 30 31 |.region. sta $01| 000002D0: 0D 20 73 65 69 20 20 3B 69 6E 74 A0 6F 66 66 0D |. sei ;int.off.| 000002E0: 20 6C 64 61 20 64 72 61 20 3B 72 65 61 64 A0 64 | lda dra ;read.d| 000002F0: 72 61 0D 20 73 74 61 20 74 6D 70 31 20 3B 73 61 |ra. sta tmp1 ;sa| 00000300: 76 65 A0 69 74 0D 20 6C 64 61 20 64 64 72 61 20 |ve.it. lda ddra | 00000310: 3B 72 65 61 64 A0 64 64 72 61 0D 20 73 74 61 20 |;read.ddra. sta | 00000320: 74 6D 70 32 0D 20 6C 64 61 20 23 24 37 20 3B 6E |tmp2. lda #$7 ;n| 00000330: 65 77 A0 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E |ew.configuration| 00000340: 0D 20 73 74 61 20 64 64 72 61 20 3B 61 6C 6C A0 |. sta ddra ;all.| 00000350: 6F 2F 70 27 73 0D 20 6C 64 61 20 23 24 30 20 3B |o/p's. lda #$0 ;| 00000360: 69 6E 69 74 69 61 6C A0 73 74 61 74 65 A0 6F 66 |initial.state.of| 00000370: A0 69 2F 6F 0D 20 73 74 61 20 64 72 61 20 3B 63 |.i/o. sta dra ;c| 00000380: 65 A0 74 72 75 65 A0 73 63 6C 6B A0 6C 6F 0D 2A |e.true.sclk.lo.*| 00000390: 0D 2A 0D 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |.*.*************| 000003A0: 2A 2A 2A 2A 0D 2A A0 77 72 69 74 65 A0 72 6F 75 |****.*.write.rou| 000003B0: 74 69 6E 65 A0 2A 0D 2A 2A 2A 2A 2A 2A 2A 2A 2A |tine.*.*********| 000003C0: 2A 2A 2A 2A 2A 2A 2A 2A 0D 2A 0D 2A 0D 20 6C 64 |********.*.*. ld| 000003D0: 61 20 23 24 38 65 20 3B 77 72 69 74 65 A0 74 68 |a #$8e ;write.th| 000003E0: 65 A0 63 6F 6E 74 72 6F 6C A0 72 65 67 0D 20 6A |e.control.reg. j| 000003F0: 73 72 20 77 72 74 62 79 74 0D 20 6C 64 61 20 23 |sr wrtbyt. lda #| 00000400: 24 30 65 20 3B 74 75 72 6E A0 6F 66 66 A0 77 72 |$0e ;turn.off.wr| 00000410: 69 74 65 A0 70 72 6F 74 65 63 74 0D 20 6A 73 72 |ite.protect. jsr| 00000420: 20 77 72 74 62 79 74 0D 2A 0D 2A 0D 20 6C 64 61 | wrtbyt.*.*. lda| 00000430: 20 23 24 30 34 20 3B 74 75 72 6E A0 6F 66 66 A0 | #$04 ;turn.off.| 00000440: 63 68 69 70 A0 65 6E 61 62 6C 65 0D 20 73 74 61 |chip.enable. sta| 00000450: 20 64 72 61 0D 2A 0D 0D 20 6C 64 61 20 23 24 62 | dra.*.. lda #$b| 00000460: 65 20 3B 62 75 72 73 74 A0 77 72 69 74 65 0D 20 |e ;burst.write. | 00000470: 6A 73 72 20 77 72 74 62 79 74 0D 20 6C 64 61 20 |jsr wrtbyt. lda | 00000480: 24 64 63 30 62 20 3B 72 65 61 64 A0 68 6F 75 72 |$dc0b ;read.hour| 00000490: 73 A0 66 72 6F 6D A0 74 6F 64 0D 20 73 74 61 20 |s.from.tod. sta | 000004A0: 74 65 6D 70 20 3B 73 74 6F 72 65 A0 69 6E A0 74 |temp ;store.in.t| 000004B0: 65 6D 70 0D 20 6C 73 72 0D 20 6C 73 72 20 20 3B |emp. lsr. lsr ;| 000004C0: 62 72 69 6E 67 A0 70 6D A0 69 6E 74 6F A0 70 6C |bring.pm.into.pl| 000004D0: 61 63 65 0D 20 61 6E 64 20 23 24 32 30 20 3B 69 |ace. and #$20 ;i| 000004E0: 73 6F 6C 61 74 65 A0 70 6D A0 62 69 74 0D 20 6F |solate.pm.bit. o| 000004F0: 72 61 20 74 65 6D 70 20 3B 72 65 74 72 69 65 76 |ra temp ;retriev| 00000500: 65 A0 68 6F 75 72 73 0D 20 61 6E 64 20 23 24 33 |e.hours. and #$3| 00000510: 66 20 3B 63 6C 65 61 72 A0 32 A0 6D 73 62 27 73 |f ;clear.2.msb's| 00000520: 0D 20 6F 72 61 20 23 24 38 30 20 3B 73 65 74 A0 |. ora #$80 ;set.| 00000530: 31 32 2F 32 34 A0 62 69 74 0D 20 73 74 61 20 68 |12/24.bit. sta h| 00000540: 6F 75 72 73 20 3B 73 61 76 65 A0 69 6E A0 68 6F |ours ;save.in.ho| 00000550: 75 72 73 0D 20 6C 64 61 20 24 64 63 30 39 20 3B |urs. lda $dc09 ;| 00000560: 72 65 61 64 A0 73 65 63 6F 6E 64 73 A0 66 72 6F |read.seconds.fro| 00000570: 6D A0 63 69 61 0D 20 6A 73 72 20 77 72 74 62 79 |m.cia. jsr wrtby| 00000580: 74 0D 20 6C 64 61 20 24 64 63 30 61 20 3B 72 65 |t. lda $dc0a ;re| 00000590: 61 64 A0 6D 69 6E 75 74 65 73 A0 66 72 6F 6D A0 |ad.minutes.from.| 000005A0: 63 69 61 0D 20 6A 73 72 20 77 72 74 62 79 74 0D |cia. jsr wrtbyt.| 000005B0: 20 6C 64 61 20 68 6F 75 72 73 20 3B 72 65 74 72 | lda hours ;retr| 000005C0: 69 65 76 65 A0 68 6F 75 72 73 0D 20 6A 73 72 20 |ieve.hours. jsr | 000005D0: 77 72 74 62 79 74 0D 20 6C 64 61 20 24 38 35 31 |wrtbyt. lda $851| 000005E0: 38 20 3B 72 65 61 64 A0 64 61 74 65 A0 66 72 6F |8 ;read.date.fro| 000005F0: 6D A0 67 65 6F 73 0D 20 6A 73 72 20 68 78 74 62 |m.geos. jsr hxtb| 00000600: 63 64 20 3B 63 6F 6E 76 65 72 74 A0 74 6F A0 62 |cd ;convert.to.b| 00000610: 63 64 0D 20 6A 73 72 20 77 72 74 62 79 74 0D 20 |cd. jsr wrtbyt. | 00000620: 6C 64 61 20 24 38 35 31 37 20 3B 72 65 61 64 A0 |lda $8517 ;read.| 00000630: 6D 6F 6E 74 68 A0 66 72 6F 6D A0 67 65 6F 73 0D |month.from.geos.| 00000640: 20 6A 73 72 20 68 78 74 62 63 64 20 3B 63 6F 6E | jsr hxtbcd ;con| 00000650: 76 65 72 74 A0 74 6F A0 62 63 64 0D 20 6A 73 72 |vert.to.bcd. jsr| 00000660: 20 77 72 74 62 79 74 0D 20 6C 64 61 20 23 24 30 | wrtbyt. lda #$0| 00000670: 20 3B 73 6B 69 70 A0 64 61 79 A0 6F 66 A0 77 65 | ;skip.day.of.we| 00000680: 65 6B 0D 20 6A 73 72 20 77 72 74 62 79 74 0D 20 |ek. jsr wrtbyt. | 00000690: 6C 64 61 20 24 38 35 31 36 20 3B 72 65 61 64 A0 |lda $8516 ;read.| 000006A0: 79 65 61 72 0D 20 6A 73 72 20 68 78 74 62 63 64 |year. jsr hxtbcd| 000006B0: 20 3B 63 6F 6E 76 65 72 74 A0 74 6F A0 62 63 64 | ;convert.to.bcd| 000006C0: 0D 20 6A 73 72 20 77 72 74 62 79 74 0D 20 6C 64 |. jsr wrtbyt. ld| 000006D0: 61 20 24 64 63 30 38 20 3B 72 65 61 64 A0 31 30 |a $dc08 ;read.10| 000006E0: 27 74 68 73 A0 6F 66 A0 73 65 63 73 A0 74 6F A0 |'ths.of.secs.to.| 000006F0: 63 6C 6F 73 65 A0 63 69 61 0D 20 6C 64 61 20 23 |close.cia. lda #| 00000700: 24 38 65 20 3B 6C 6F 61 64 A0 63 6F 6E 74 72 6F |$8e ;load.contro| 00000710: 6C A0 72 65 67 A0 77 69 74 68 A0 24 38 65 0D 20 |l.reg.with.$8e. | 00000720: 6A 73 72 20 77 72 74 62 79 74 0D 2A 0D 2A 0D 20 |jsr wrtbyt.*.*. | 00000730: 6C 64 61 20 23 24 30 34 20 3B 74 75 72 6E A0 6F |lda #$04 ;turn.o| 00000740: 66 66 A0 63 68 69 70 A0 65 6E 61 62 6C 65 0D 20 |ff.chip.enable. | 00000750: 73 74 61 20 64 72 61 0D 20 6C 64 61 20 74 6D 70 |sta dra. lda tmp| 00000760: 31 20 3B 72 65 73 74 6F 72 65 A0 64 72 61 A0 63 |1 ;restore.dra.c| 00000770: 6F 6E 66 69 67 75 72 61 74 69 6F 6E 0D 20 73 74 |onfiguration. st| 00000780: 61 20 64 72 61 0D 20 6C 64 61 20 74 6D 70 32 20 |a dra. lda tmp2 | 00000790: 3B 72 65 73 74 6F 72 65 A0 64 64 72 61 A0 63 6F |;restore.ddra.co| 000007A0: 6E 66 69 67 75 72 61 74 69 6F 6E 0D 20 73 74 61 |nfiguration. sta| 000007B0: 20 64 64 72 61 0D 20 70 6C 61 20 20 3B 72 65 73 | ddra. pla ;res| 000007C0: 74 6F 72 65 A0 6F 6C 64 A0 6D 65 6D 6F 72 79 A0 |tore.old.memory.| 000007D0: 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 0D 20 73 |configuration. s| 000007E0: 74 61 20 24 30 31 0D 20 63 6C 69 0D 20 6A 6D 70 |ta $01. cli. jmp| 000007F0: 20 24 63 32 32 63 20 3B 72 65 6C 6F 61 64 A0 64 | $c22c ;reload.d| 00000800: 65 73 6B 74 6F 70 0D 2A 0D 2A 0D 2A 2A 2A 2A 2A |esktop.*.*.*****| 00000810: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000820: 2A 2A 2A 0D 2A A0 65 6E 64 A0 6F 66 A0 77 72 69 |***.*.end.of.wri| 00000830: 74 65 A0 72 6F 75 74 69 6E 65 A0 2A 0D 2A 2A 2A |te.routine.*.***| 00000840: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000850: 2A 2A 2A 2A 2A 0D 0D 0D 2A 0D 2A 0D 2A 0D 2A 0D |*****...*.*.*.*.| 00000860: 2A A0 77 72 69 74 65 A0 61 A0 62 79 74 65 A0 74 |*.write.a.byte.t| 00000870: 6F A0 74 68 65 A0 72 74 63 0D 2A 0D 77 72 74 62 |o.the.rtc.*.wrtb| 00000880: 79 74 20 6C 64 78 20 23 38 20 3B 63 6F 75 6E 74 |yt ldx #8 ;count| 00000890: 3D 38 0D 77 6C 6F 6F 70 20 73 74 61 20 74 65 6D |=8.wloop sta tem| 000008A0: 70 0D 20 61 6E 64 20 23 24 66 39 20 3B 73 63 6C |p. and #$f9 ;scl| 000008B0: 6B A0 6C 6F 77 2C A0 63 68 69 70 A0 65 6E 61 62 |k.low,.chip.enab| 000008C0: 6C 65 0D 20 73 74 61 20 64 72 61 20 3B 73 65 74 |le. sta dra ;set| 000008D0: A0 75 70 0D 20 6F 72 61 20 23 32 20 3B 73 63 6C |.up. ora #2 ;scl| 000008E0: 6B A0 68 69 0D 20 73 74 61 20 64 72 61 20 3B 6C |k.hi. sta dra ;l| 000008F0: 73 62 A0 6F 75 74 0D 20 6C 64 61 20 74 65 6D 70 |sb.out. lda temp| 00000900: 20 3B 72 65 66 72 65 73 68 A0 62 79 74 65 0D 20 | ;refresh.byte. | 00000910: 6C 73 72 20 61 20 3B 6E 65 78 74 A0 62 69 74 0D |lsr a ;next.bit.| 00000920: 20 64 65 78 20 20 3B 75 70 64 61 74 65 A0 63 6F | dex ;update.co| 00000930: 75 6E 74 0D 20 62 6E 65 20 77 6C 6F 6F 70 20 3B |unt. bne wloop ;| 00000940: 6C 6F 6F 70 3F 0D 20 72 74 73 0D 2A 0D 2A 0D 2A |loop?. rts.*.*.*| 00000950: 0D 2A 0D 2A 0D 2A A0 68 65 78 A0 74 6F A0 62 63 |.*.*.*.hex.to.bc| 00000960: 64 A0 63 6F 6E 76 65 72 74 A0 72 6F 75 74 69 6E |d.convert.routin| 00000970: 65 0D 2A 0D 68 78 74 62 63 64 20 6C 64 78 20 23 |e.*.hxtbcd ldx #| 00000980: 24 30 30 20 3B 63 6C 65 61 72 A0 78 A0 72 65 67 |$00 ;clear.x.reg| 00000990: 0D 68 62 6C 6F 6F 70 20 73 74 61 20 74 6D 70 31 |.hbloop sta tmp1| 000009A0: 20 3B 73 61 76 65 A0 68 65 78 A0 76 61 6C 75 65 | ;save.hex.value| 000009B0: 0D 20 73 65 63 20 20 3B 73 65 74 A0 63 61 72 72 |. sec ;set.carr| 000009C0: 79 A0 62 69 74 0D 20 73 62 63 20 23 24 30 61 20 |y.bit. sbc #$0a | 000009D0: 3B 73 75 62 74 72 61 63 74 A0 31 30 0D 20 62 6D |;subtract.10. bm| 000009E0: 69 20 68 62 6F 75 74 20 3B 6E 65 67 3F 2E 2E 2E |i hbout ;neg?...| 000009F0: 69 74 27 73 A0 64 6F 6E 65 0D 20 69 6E 78 20 20 |it's.done. inx | 00000A00: 3B 69 6E 63 A0 78 A0 72 65 67 0D 20 6A 6D 70 20 |;inc.x.reg. jmp | 00000A10: 68 62 6C 6F 6F 70 20 3B 6C 6F 6F 70 0D 68 62 6F |hbloop ;loop.hbo| 00000A20: 75 74 20 74 78 61 20 20 3B 63 6F 75 6E 74 A0 6F |ut txa ;count.o| 00000A30: 66 A0 30 61 27 73 0D 20 61 73 6C 0D 20 61 73 6C |f.0a's. asl. asl| 00000A40: 0D 20 61 73 6C 0D 20 61 73 6C 20 20 3B 73 68 69 |. asl. asl ;shi| 00000A50: 66 74 A0 6C 73 A0 6E 69 62 62 6C 65 A0 74 6F A0 |ft.ls.nibble.to.| 00000A60: 6D 73 A0 6E 69 62 62 6C 65 0D 20 6F 72 61 20 74 |ms.nibble. ora t| 00000A70: 6D 70 31 20 3B 61 73 73 65 6D 62 6C 65 A0 62 63 |mp1 ;assemble.bc| 00000A80: 64 A0 77 6F 72 64 0D 20 72 74 73 0D |d.word. rts. |
******************************.* WRITE R
EAL TIME CLOCK V2.0 *.* 1MHZ VERS
ION *.***************************
***.* MAY 10 1987 *.*
*.* BY TIM
G CORCORAN *.*
*.* THIS S/W IS PART OF THE *.*
RTC SHAREWARE PACKAGE. IT *.* IS OKAY
TO DISTRIBUTE AND *.* SHARE, BUT NOT TO
SELL. *.*
*.* PLEASE CONSIDER SUPPORTING *.* MYST
IC JIM'S S/W SYSTEM *.*
*.************************
******.*.*.*. ORG $4580.DDRA EQU $DC02.D
RA EQU $DC00.HOURS EQU $4570.TEMP EQU $4
571.TMP1 EQU $4572.TMP2 EQU $4573.*.*.*.
*. LDA $01 ;GET MEM CONFIG. PHA ;SAVE I
T. LDA #$35 ;TURN ON I/O REGION. STA $01
. SEI ;INT OFF. LDA DRA ;READ DRA. STA
TMP1 ;SAVE IT. LDA DDRA ;READ DDRA. STA
TMP2. LDA #$7 ;NEW CONFIGURATION. STA DD
RA ;ALL O/P'S. LDA #$0 ;INITIAL STATE OF
I/O. STA DRA ;CE TRUE SCLK LO.*.*.*****
************.* WRITE ROUTINE *.*********
********.*.*. LDA #$8E ;WRITE THE CONTRO
L REG. JSR WRTBYT. LDA #$0E ;TURN OFF WR
ITE PROTECT. JSR WRTBYT.*.*. LDA #$04 ;T
URN OFF CHIP ENABLE. STA DRA.*.. LDA #$B
E ;BURST WRITE. JSR WRTBYT. LDA $DC0B ;R
EAD HOURS FROM TOD. STA TEMP ;STORE IN T
EMP. LSR. LSR ;BRING PM INTO PLACE. AND
#$20 ;ISOLATE PM BIT. ORA TEMP ;RETRIEV
E HOURS. AND #$3F ;CLEAR 2 MSB'S. ORA #$
80 ;SET 12/24 BIT. STA HOURS ;SAVE IN HO
URS. LDA $DC09 ;READ SECONDS FROM CIA. J
SR WRTBYT. LDA $DC0A ;READ MINUTES FROM
CIA. JSR WRTBYT. LDA HOURS ;RETRIEVE HOU
RS. JSR WRTBYT. LDA $8518 ;READ DATE FRO
M GEOS. JSR HXTBCD ;CONVERT TO BCD. JSR
WRTBYT. LDA $8517 ;READ MONTH FROM GEOS.
JSR HXTBCD ;CONVERT TO BCD. JSR WRTBYT.
LDA #$0 ;SKIP DAY OF WEEK. JSR WRTBYT.
LDA $8516 ;READ YEAR. JSR HXTBCD ;CONVER
T TO BCD. JSR WRTBYT. LDA $DC08 ;READ 10
'THS OF SECS TO CLOSE CIA. LDA #$8E ;LOA
D CONTROL REG WITH $8E. JSR WRTBYT.*.*.
LDA #$04 ;TURN OFF CHIP ENABLE. STA DRA.
LDA TMP1 ;RESTORE DRA CONFIGURATION. ST
A DRA. LDA TMP2 ;RESTORE DDRA CONFIGURAT
ION. STA DDRA. PLA ;RESTORE OLD MEMORY
CONFIGURATION. STA $01. CLI. JMP $C22C ;
RELOAD DESKTOP.*.*.*********************
***.* END OF WRITE ROUTINE *.***********
*************...*.*.*.*.* WRITE A BYTE T
O THE RTC.*.WRTBYT LDX #8 ;COUNT=8.WLOOP
STA TEMP. AND #$F9 ;SCLK LOW, CHIP ENAB
LE. STA DRA ;SET UP. ORA #2 ;SCLK HI. ST
A DRA ;LSB OUT. LDA TEMP ;REFRESH BYTE.
LSR A ;NEXT BIT. DEX ;UPDATE COUNT. BNE
WLOOP ;LOOP?. RTS.*.*.*.*.*.* HEX TO BC
D CONVERT ROUTINE.*.HXTBCD LDX #$00 ;CLE
AR X REG.HBLOOP STA TMP1 ;SAVE HEX VALUE
. SEC ;SET CARRY BIT. SBC #$0A ;SUBTRAC
T 10. BMI HBOUT ;NEG?...IT'S DONE. INX
;INC X REG. JMP HBLOOP ;LOOP.HBOUT TXA
;COUNT OF 0A'S. ASL. ASL. ASL. ASL ;SHI
FT LS NIBBLE TO MS NIBBLE. ORA TMP1 ;ASS
EMBLE BCD WORD. RTS.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL