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 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL