_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

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 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL