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

WRRTC-1.0─

FILE INFORMATION

FILENAME(S): WRRTC-1.0─

FILE TYPE(S): PRG

FILE SIZE: 2.6K

FIRST SEEN: 2025-12-02 02:15:36

APPEARS ON: 1 disk(s)

FILE HASH

8bd132d2e2d8616fbba1a182bdce484fec1f6e79d360bedf4d3ea2ceef6525fe

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
TIM S TIMER 2 0 WRRTC-1.0─ PRG The BAM Archive 20 12 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 00 0A 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 2A 2A  |****************|
00000020: 0D 2A A0 77 72 69 74 65  A0 72 65 61 6C A0 74 69  |.*.write.real.ti|
00000030: 6D 65 A0 63 6C 6F 63 6B  A0 76 32 2E 30 A0 2A 0D  |me.clock.v2.0.*.|
00000040: 2A A0 A0 A0 A0 A0 A0 A0  A0 31 6D 68 7A A0 76 65  |*........1mhz.ve|
00000050: 72 73 69 6F 6E A0 A0 A0  A0 A0 A0 A0 A0 2A 0D 2A  |rsion........*.*|
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 2A 2A 0D 2A A0  |*************.*.|
00000080: A0 A0 A0 A0 A0 A0 A0 6D  61 79 A0 31 30 A0 A0 31  |.......may.10..1|
00000090: 39 38 37 A0 A0 A0 A0 A0  A0 A0 A0 2A 0D 2A A0 A0  |987........*.*..|
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  A0 A0 2A 0D 2A A0 A0 A0  |..........*.*...|
000000C0: A0 A0 A0 62 79 A0 74 69  6D A0 67 A0 63 6F 72 63  |...by.tim.g.corc|
000000D0: 6F 72 61 6E A0 A0 A0 A0  A0 2A 0D 2A A0 A0 A0 A0  |oran.....*.*....|
000000E0: A0 A0 A0 A0 A0 A0 A0 A0  A0 A0 A0 A0 A0 A0 A0 A0  |................|
000000F0: A0 A0 A0 A0 A0 A0 A0 A0  2A 0D 2A A0 A0 A0 74 68  |........*.*...th|
00000100: 69 73 A0 73 2F 77 A0 69  73 A0 70 61 72 74 A0 6F  |is.s/w.is.part.o|
00000110: 66 A0 74 68 65 A0 A0 2A  0D 2A A0 72 74 63 A0 73  |f.the..*.*.rtc.s|
00000120: 68 61 72 65 77 61 72 65  A0 70 61 63 6B 61 67 65  |hareware.package|
00000130: 2E A0 69 74 A0 A0 2A 0D  2A A0 69 73 A0 6F 6B 61  |..it..*.*.is.oka|
00000140: 79 A0 74 6F A0 64 69 73  74 72 69 62 75 74 65 A0  |y.to.distribute.|
00000150: 61 6E 64 A0 A0 2A 0D 2A  A0 73 68 61 72 65 2C A0  |and..*.*.share,.|
00000160: 62 75 74 A0 6E 6F 74 A0  74 6F A0 73 65 6C 6C 2E  |but.not.to.sell.|
00000170: A0 A0 A0 A0 2A 0D 2A 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 A0 A0 2A 0D 2A A0 70  6C 65 61 73 65 A0 63 6F  |...*.*.please.co|
000001A0: 6E 73 69 64 65 72 A0 73  75 70 70 6F 72 74 69 6E  |nsider.supportin|
000001B0: 67 A0 2A 0D 2A A0 6D 79  73 74 69 63 A0 6A 69 6D  |g.*.*.mystic.jim|
000001C0: 27 73 A0 73 2F 77 A0 73  79 73 74 65 6D A0 A0 A0  |'s.s/w.system...|
000001D0: A0 2A 0D 2A 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 A0 A0  |................|
000001F0: 2A 0D 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 2A 2A  |****************|
00000210: 0D 2A 0D 2A 0D 2A 0D 20  6F 72 67 20 24 34 35 38  |.*.*.*. org $458|
00000220: 30 0D 64 64 72 61 20 65  71 75 20 24 64 63 30 32  |0.ddra equ $dc02|
00000230: 0D 64 72 61 20 65 71 75  20 24 64 63 30 30 0D 68  |.dra equ $dc00.h|
00000240: 6F 75 72 73 20 65 71 75  20 24 34 35 37 30 0D 74  |ours equ $4570.t|
00000250: 65 6D 70 20 65 71 75 20  24 34 35 37 31 0D 74 6D  |emp equ $4571.tm|
00000260: 70 31 20 65 71 75 20 24  34 35 37 32 0D 74 6D 70  |p1 equ $4572.tmp|
00000270: 32 20 65 71 75 20 24 34  35 37 33 0D 2A 0D 2A 0D  |2 equ $4573.*.*.|
00000280: 2A 0D 2A 0D 20 6C 64 61  20 24 30 31 20 3B 67 65  |*.*. lda $01 ;ge|
00000290: 74 A0 6D 65 6D A0 63 6F  6E 66 69 67 0D 20 70 68  |t.mem.config. ph|
000002A0: 61 20 20 3B 73 61 76 65  A0 69 74 0D 20 6C 64 61  |a  ;save.it. lda|
000002B0: 20 23 24 33 35 20 3B 74  75 72 6E A0 6F 6E A0 69  | #$35 ;turn.on.i|
000002C0: 2F 6F A0 72 65 67 69 6F  6E 0D 20 73 74 61 20 24  |/o.region. sta $|
000002D0: 30 31 0D 20 73 65 69 20  20 3B 69 6E 74 A0 6F 66  |01. sei  ;int.of|
000002E0: 66 0D 20 6C 64 61 20 64  72 61 20 3B 72 65 61 64  |f. lda dra ;read|
000002F0: A0 64 72 61 0D 20 73 74  61 20 74 6D 70 31 20 3B  |.dra. sta tmp1 ;|
00000300: 73 61 76 65 A0 69 74 0D  20 6C 64 61 20 64 64 72  |save.it. lda ddr|
00000310: 61 20 3B 72 65 61 64 A0  64 64 72 61 0D 20 73 74  |a ;read.ddra. st|
00000320: 61 20 74 6D 70 32 0D 20  6C 64 61 20 23 24 37 20  |a tmp2. lda #$7 |
00000330: 3B 6E 65 77 A0 63 6F 6E  66 69 67 75 72 61 74 69  |;new.configurati|
00000340: 6F 6E 0D 20 73 74 61 20  64 64 72 61 20 3B 61 6C  |on. sta ddra ;al|
00000350: 6C A0 6F 2F 70 27 73 0D  20 6C 64 61 20 23 24 30  |l.o/p's. lda #$0|
00000360: 20 3B 69 6E 69 74 69 61  6C A0 73 74 61 74 65 A0  | ;initial.state.|
00000370: 6F 66 A0 69 2F 6F 0D 20  73 74 61 20 64 72 61 20  |of.i/o. sta dra |
00000380: 3B 63 65 A0 74 72 75 65  A0 73 63 6C 6B A0 6C 6F  |;ce.true.sclk.lo|
00000390: 0D 2A 0D 2A 0D 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |.*.*.***********|
000003A0: 2A 2A 2A 2A 2A 2A 0D 2A  A0 77 72 69 74 65 A0 72  |******.*.write.r|
000003B0: 6F 75 74 69 6E 65 A0 2A  0D 2A 2A 2A 2A 2A 2A 2A  |outine.*.*******|
000003C0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 0D 2A 0D 2A 0D 20  |**********.*.*. |
000003D0: 6C 64 61 20 23 24 38 65  20 3B 77 72 69 74 65 A0  |lda #$8e ;write.|
000003E0: 74 68 65 A0 63 6F 6E 74  72 6F 6C A0 72 65 67 0D  |the.control.reg.|
000003F0: 20 6A 73 72 20 77 72 74  62 79 74 0D 20 6C 64 61  | jsr wrtbyt. lda|
00000400: 20 23 24 30 65 20 3B 74  75 72 6E A0 6F 66 66 A0  | #$0e ;turn.off.|
00000410: 77 72 69 74 65 A0 70 72  6F 74 65 63 74 0D 20 6A  |write.protect. j|
00000420: 73 72 20 77 72 74 62 79  74 0D 2A 0D 2A 0D 20 6C  |sr wrtbyt.*.*. l|
00000430: 64 61 20 23 24 30 34 20  3B 74 75 72 6E A0 6F 66  |da #$04 ;turn.of|
00000440: 66 A0 63 68 69 70 A0 65  6E 61 62 6C 65 0D 20 73  |f.chip.enable. s|
00000450: 74 61 20 64 72 61 0D 2A  0D 0D 20 6C 64 61 20 23  |ta dra.*.. lda #|
00000460: 24 62 65 20 3B 62 75 72  73 74 A0 77 72 69 74 65  |$be ;burst.write|
00000470: 0D 20 6A 73 72 20 77 72  74 62 79 74 0D 20 6C 64  |. jsr wrtbyt. ld|
00000480: 61 20 24 64 63 30 62 20  3B 72 65 61 64 A0 68 6F  |a $dc0b ;read.ho|
00000490: 75 72 73 A0 66 72 6F 6D  A0 74 6F 64 0D 20 73 74  |urs.from.tod. st|
000004A0: 61 20 74 65 6D 70 20 3B  73 74 6F 72 65 A0 69 6E  |a temp ;store.in|
000004B0: A0 74 65 6D 70 0D 20 6C  73 72 0D 20 6C 73 72 20  |.temp. lsr. lsr |
000004C0: 20 3B 62 72 69 6E 67 A0  70 6D A0 69 6E 74 6F A0  | ;bring.pm.into.|
000004D0: 70 6C 61 63 65 0D 20 61  6E 64 20 23 24 32 30 20  |place. and #$20 |
000004E0: 3B 69 73 6F 6C 61 74 65  A0 70 6D A0 62 69 74 0D  |;isolate.pm.bit.|
000004F0: 20 6F 72 61 20 74 65 6D  70 20 3B 72 65 74 72 69  | ora temp ;retri|
00000500: 65 76 65 A0 68 6F 75 72  73 0D 20 61 6E 64 20 23  |eve.hours. and #|
00000510: 24 33 66 20 3B 63 6C 65  61 72 A0 32 A0 6D 73 62  |$3f ;clear.2.msb|
00000520: 27 73 0D 20 6F 72 61 20  23 24 38 30 20 3B 73 65  |'s. ora #$80 ;se|
00000530: 74 A0 31 32 2F 32 34 A0  62 69 74 0D 20 73 74 61  |t.12/24.bit. sta|
00000540: 20 68 6F 75 72 73 20 3B  73 61 76 65 A0 69 6E A0  | hours ;save.in.|
00000550: 68 6F 75 72 73 0D 20 6C  64 61 20 24 64 63 30 39  |hours. lda $dc09|
00000560: 20 3B 72 65 61 64 A0 73  65 63 6F 6E 64 73 A0 66  | ;read.seconds.f|
00000570: 72 6F 6D A0 63 69 61 0D  20 6A 73 72 20 77 72 74  |rom.cia. jsr wrt|
00000580: 62 79 74 0D 20 6C 64 61  20 24 64 63 30 61 20 3B  |byt. lda $dc0a ;|
00000590: 72 65 61 64 A0 6D 69 6E  75 74 65 73 A0 66 72 6F  |read.minutes.fro|
000005A0: 6D A0 63 69 61 0D 20 6A  73 72 20 77 72 74 62 79  |m.cia. jsr wrtby|
000005B0: 74 0D 20 6C 64 61 20 68  6F 75 72 73 20 3B 72 65  |t. lda hours ;re|
000005C0: 74 72 69 65 76 65 A0 68  6F 75 72 73 0D 20 6A 73  |trieve.hours. js|
000005D0: 72 20 77 72 74 62 79 74  0D 20 6C 64 61 20 24 38  |r wrtbyt. lda $8|
000005E0: 35 31 38 20 3B 72 65 61  64 A0 64 61 74 65 A0 66  |518 ;read.date.f|
000005F0: 72 6F 6D A0 67 65 6F 73  0D 20 6A 73 72 20 68 78  |rom.geos. jsr hx|
00000600: 74 62 63 64 20 3B 63 6F  6E 76 65 72 74 A0 74 6F  |tbcd ;convert.to|
00000610: A0 62 63 64 0D 20 6A 73  72 20 77 72 74 62 79 74  |.bcd. jsr wrtbyt|
00000620: 0D 20 6C 64 61 20 24 38  35 31 37 20 3B 72 65 61  |. lda $8517 ;rea|
00000630: 64 A0 6D 6F 6E 74 68 A0  66 72 6F 6D A0 67 65 6F  |d.month.from.geo|
00000640: 73 0D 20 6A 73 72 20 68  78 74 62 63 64 20 3B 63  |s. jsr hxtbcd ;c|
00000650: 6F 6E 76 65 72 74 A0 74  6F A0 62 63 64 0D 20 6A  |onvert.to.bcd. j|
00000660: 73 72 20 77 72 74 62 79  74 0D 20 6C 64 61 20 23  |sr wrtbyt. lda #|
00000670: 24 30 20 3B 73 6B 69 70  A0 64 61 79 A0 6F 66 A0  |$0 ;skip.day.of.|
00000680: 77 65 65 6B 0D 20 6A 73  72 20 77 72 74 62 79 74  |week. jsr wrtbyt|
00000690: 0D 20 6C 64 61 20 24 38  35 31 36 20 3B 72 65 61  |. lda $8516 ;rea|
000006A0: 64 A0 79 65 61 72 0D 20  6A 73 72 20 68 78 74 62  |d.year. jsr hxtb|
000006B0: 63 64 20 3B 63 6F 6E 76  65 72 74 A0 74 6F A0 62  |cd ;convert.to.b|
000006C0: 63 64 0D 20 6A 73 72 20  77 72 74 62 79 74 0D 20  |cd. jsr wrtbyt. |
000006D0: 6C 64 61 20 24 64 63 30  38 20 3B 72 65 61 64 A0  |lda $dc08 ;read.|
000006E0: 31 30 27 74 68 73 A0 6F  66 A0 73 65 63 73 A0 74  |10'ths.of.secs.t|
000006F0: 6F A0 63 6C 6F 73 65 A0  63 69 61 0D 20 6C 64 61  |o.close.cia. lda|
00000700: 20 23 24 38 65 20 3B 6C  6F 61 64 A0 63 6F 6E 74  | #$8e ;load.cont|
00000710: 72 6F 6C A0 72 65 67 A0  77 69 74 68 A0 24 38 65  |rol.reg.with.$8e|
00000720: 0D 20 6A 73 72 20 77 72  74 62 79 74 0D 2A 0D 2A  |. jsr wrtbyt.*.*|
00000730: 0D 20 6C 64 61 20 23 24  30 34 20 3B 74 75 72 6E  |. lda #$04 ;turn|
00000740: A0 6F 66 66 A0 63 68 69  70 A0 65 6E 61 62 6C 65  |.off.chip.enable|
00000750: 0D 20 73 74 61 20 64 72  61 0D 20 6C 64 61 20 74  |. sta dra. lda t|
00000760: 6D 70 31 20 3B 72 65 73  74 6F 72 65 A0 64 72 61  |mp1 ;restore.dra|
00000770: A0 63 6F 6E 66 69 67 75  72 61 74 69 6F 6E 0D 20  |.configuration. |
00000780: 73 74 61 20 64 72 61 0D  20 6C 64 61 20 74 6D 70  |sta dra. lda tmp|
00000790: 32 20 3B 72 65 73 74 6F  72 65 A0 64 64 72 61 A0  |2 ;restore.ddra.|
000007A0: 63 6F 6E 66 69 67 75 72  61 74 69 6F 6E 0D 20 73  |configuration. s|
000007B0: 74 61 20 64 64 72 61 0D  20 70 6C 61 20 20 3B 72  |ta ddra. pla  ;r|
000007C0: 65 73 74 6F 72 65 A0 6F  6C 64 A0 6D 65 6D 6F 72  |estore.old.memor|
000007D0: 79 A0 63 6F 6E 66 69 67  75 72 61 74 69 6F 6E 0D  |y.configuration.|
000007E0: 20 73 74 61 20 24 30 31  0D 20 63 6C 69 0D 20 6A  | sta $01. cli. j|
000007F0: 6D 70 20 24 63 32 32 63  20 3B 72 65 6C 6F 61 64  |mp $c22c ;reload|
00000800: A0 64 65 73 6B 74 6F 70  0D 2A 0D 2A 0D 2A 2A 2A  |.desktop.*.*.***|
00000810: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000820: 2A 2A 2A 2A 2A 0D 2A A0  65 6E 64 A0 6F 66 A0 77  |*****.*.end.of.w|
00000830: 72 69 74 65 A0 72 6F 75  74 69 6E 65 A0 2A 0D 2A  |rite.routine.*.*|
00000840: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000850: 2A 2A 2A 2A 2A 2A 2A 0D  0D 0D 2A 0D 2A 0D 2A 0D  |*******...*.*.*.|
00000860: 2A 0D 2A A0 77 72 69 74  65 A0 61 A0 62 79 74 65  |*.*.write.a.byte|
00000870: A0 74 6F A0 74 68 65 A0  72 74 63 0D 2A 0D 77 72  |.to.the.rtc.*.wr|
00000880: 74 62 79 74 20 6C 64 78  20 23 38 20 3B 63 6F 75  |tbyt ldx #8 ;cou|
00000890: 6E 74 3D 38 0D 77 6C 6F  6F 70 20 73 74 61 20 74  |nt=8.wloop sta t|
000008A0: 65 6D 70 0D 20 61 6E 64  20 23 24 66 39 20 3B 73  |emp. and #$f9 ;s|
000008B0: 63 6C 6B A0 6C 6F 77 2C  A0 63 68 69 70 A0 65 6E  |clk.low,.chip.en|
000008C0: 61 62 6C 65 0D 20 73 74  61 20 64 72 61 20 3B 73  |able. sta dra ;s|
000008D0: 65 74 A0 75 70 0D 20 6F  72 61 20 23 32 20 3B 73  |et.up. ora #2 ;s|
000008E0: 63 6C 6B A0 68 69 0D 20  73 74 61 20 64 72 61 20  |clk.hi. sta dra |
000008F0: 3B 6C 73 62 A0 6F 75 74  0D 20 6C 64 61 20 74 65  |;lsb.out. lda te|
00000900: 6D 70 20 3B 72 65 66 72  65 73 68 A0 62 79 74 65  |mp ;refresh.byte|
00000910: 0D 20 6C 73 72 20 61 20  3B 6E 65 78 74 A0 62 69  |. lsr a ;next.bi|
00000920: 74 0D 20 64 65 78 20 20  3B 75 70 64 61 74 65 A0  |t. dex  ;update.|
00000930: 63 6F 75 6E 74 0D 20 62  6E 65 20 77 6C 6F 6F 70  |count. bne wloop|
00000940: 20 3B 6C 6F 6F 70 3F 0D  20 72 74 73 0D 2A 0D 2A  | ;loop?. rts.*.*|
00000950: 0D 2A 0D 2A 0D 2A 0D 2A  A0 68 65 78 A0 74 6F A0  |.*.*.*.*.hex.to.|
00000960: 62 63 64 A0 63 6F 6E 76  65 72 74 A0 72 6F 75 74  |bcd.convert.rout|
00000970: 69 6E 65 0D 2A 0D 68 78  74 62 63 64 20 6C 64 78  |ine.*.hxtbcd ldx|
00000980: 20 23 24 30 30 20 3B 63  6C 65 61 72 A0 78 A0 72  | #$00 ;clear.x.r|
00000990: 65 67 0D 68 62 6C 6F 6F  70 20 73 74 61 20 74 6D  |eg.hbloop sta tm|
000009A0: 70 31 20 3B 73 61 76 65  A0 68 65 78 A0 76 61 6C  |p1 ;save.hex.val|
000009B0: 75 65 0D 20 73 65 63 20  20 3B 73 65 74 A0 63 61  |ue. sec  ;set.ca|
000009C0: 72 72 79 A0 62 69 74 0D  20 73 62 63 20 23 24 30  |rry.bit. sbc #$0|
000009D0: 61 20 3B 73 75 62 74 72  61 63 74 A0 31 30 0D 20  |a ;subtract.10. |
000009E0: 62 6D 69 20 68 62 6F 75  74 20 3B 6E 65 67 3F 2E  |bmi hbout ;neg?.|
000009F0: 2E 2E 69 74 27 73 A0 64  6F 6E 65 0D 20 69 6E 78  |..it's.done. inx|
00000A00: 20 20 3B 69 6E 63 A0 78  A0 72 65 67 0D 20 6A 6D  |  ;inc.x.reg. jm|
00000A10: 70 20 68 62 6C 6F 6F 70  20 3B 6C 6F 6F 70 0D 68  |p hbloop ;loop.h|
00000A20: 62 6F 75 74 20 74 78 61  20 20 3B 63 6F 75 6E 74  |bout txa  ;count|
00000A30: A0 6F 66 A0 30 61 27 73  0D 20 61 73 6C 0D 20 61  |.of.0a's. asl. a|
00000A40: 73 6C 0D 20 61 73 6C 0D  20 61 73 6C 20 20 3B 73  |sl. asl. asl  ;s|
00000A50: 68 69 66 74 A0 6C 73 A0  6E 69 62 62 6C 65 A0 74  |hift.ls.nibble.t|
00000A60: 6F A0 6D 73 A0 6E 69 62  62 6C 65 0D 20 6F 72 61  |o.ms.nibble. ora|
00000A70: 20 74 6D 70 31 20 3B 61  73 73 65 6D 62 6C 65 A0  | tmp1 ;assemble.|
00000A80: 62 63 64 A0 77 6F 72 64  0D 20 72 74 73 0D        |bcd.word. rts.  |
..******************************.* WRITE
 REAL TIME CLOCK V2.0 *.*        1MHZ VE
RSION        *.*************************
*****.*        MAY 10  1987        *.*  
                          *.*      BY TI
M G CORCORAN     *.*                    
        *.*   THIS S/W IS PART OF THE  *
.* RTC SHAREWARE PACKAGE. IT  *.* IS OKA
Y TO DISTRIBUTE AND  *.* SHARE, BUT NOT 
TO SELL.    *.*                         
   *.* PLEASE CONSIDER SUPPORTING *.* MY
STIC JIM'S S/W SYSTEM    *.*            
                *.**********************
********.*.*.*. ORG $4580.DDRA EQU $DC02
.DRA EQU $DC00.HOURS EQU $4570.TEMP EQU 
$4571.TMP1 EQU $4572.TMP2 EQU $4573.*.*.
*.*. LDA $01 ;GET MEM CONFIG. PHA  ;SAVE
 IT. LDA #$35 ;TURN ON I/O REGION. STA $
01. SEI  ;INT OFF. LDA DRA ;READ DRA. ST
A TMP1 ;SAVE IT. LDA DDRA ;READ DDRA. ST
A TMP2. LDA #$7 ;NEW CONFIGURATION. STA 
DDRA ;ALL O/P'S. LDA #$0 ;INITIAL STATE 
OF I/O. STA DRA ;CE TRUE SCLK LO.*.*.***
**************.* WRITE ROUTINE *.*******
**********.*.*. LDA #$8E ;WRITE THE CONT
ROL REG. JSR WRTBYT. LDA #$0E ;TURN OFF 
WRITE PROTECT. JSR WRTBYT.*.*. LDA #$04 
;TURN OFF CHIP ENABLE. STA DRA.*.. LDA #
$BE ;BURST WRITE. JSR WRTBYT. LDA $DC0B 
;READ HOURS FROM TOD. STA TEMP ;STORE IN
 TEMP. LSR. LSR  ;BRING PM INTO PLACE. A
ND #$20 ;ISOLATE PM BIT. ORA TEMP ;RETRI
EVE HOURS. AND #$3F ;CLEAR 2 MSB'S. ORA 
#$80 ;SET 12/24 BIT. STA HOURS ;SAVE IN 
HOURS. LDA $DC09 ;READ SECONDS FROM CIA.
 JSR WRTBYT. LDA $DC0A ;READ MINUTES FRO
M CIA. JSR WRTBYT. LDA HOURS ;RETRIEVE H
OURS. JSR WRTBYT. LDA $8518 ;READ DATE F
ROM GEOS. JSR HXTBCD ;CONVERT TO BCD. JS
R WRTBYT. LDA $8517 ;READ MONTH FROM GEO
S. JSR HXTBCD ;CONVERT TO BCD. JSR WRTBY
T. LDA #$0 ;SKIP DAY OF WEEK. JSR WRTBYT
. LDA $8516 ;READ YEAR. JSR HXTBCD ;CONV
ERT TO BCD. JSR WRTBYT. LDA $DC08 ;READ 
10'THS OF SECS TO CLOSE CIA. LDA #$8E ;L
OAD CONTROL REG WITH $8E. JSR WRTBYT.*.*
. LDA #$04 ;TURN OFF CHIP ENABLE. STA DR
A. LDA TMP1 ;RESTORE DRA CONFIGURATION. 
STA DRA. LDA TMP2 ;RESTORE DDRA CONFIGUR
ATION. STA DDRA. PLA  ;RESTORE OLD MEMOR
Y CONFIGURATION. STA $01. CLI. JMP $C22C
 ;RELOAD DESKTOP.*.*.*******************
*****.* END OF WRITE ROUTINE *.*********
***************...*.*.*.*.* WRITE A BYTE
 TO THE RTC.*.WRTBYT LDX #8 ;COUNT=8.WLO
OP STA TEMP. AND #$F9 ;SCLK LOW, CHIP EN
ABLE. STA DRA ;SET UP. ORA #2 ;SCLK HI. 
STA DRA ;LSB OUT. LDA TEMP ;REFRESH BYTE
. LSR A ;NEXT BIT. DEX  ;UPDATE COUNT. B
NE WLOOP ;LOOP?. RTS.*.*.*.*.*.* HEX TO 
BCD CONVERT ROUTINE.*.HXTBCD LDX #$00 ;C
LEAR X REG.HBLOOP STA TMP1 ;SAVE HEX VAL
UE. SEC  ;SET CARRY BIT. SBC #$0A ;SUBTR
ACT 10. BMI HBOUT ;NEG?...IT'S DONE. INX
  ;INC X REG. JMP HBLOOP ;LOOP.HBOUT TXA
  ;COUNT OF 0A'S. ASL. ASL. ASL. ASL  ;S
HIFT LS NIBBLE TO MS NIBBLE. ORA TMP1 ;A
SSEMBLE BCD WORD. RTS.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL