RD.RTC-1.0
FILE INFORMATION
FILENAME(S): RD.RTC-1.0
FILE TYPE(S): SEQ
FILE SIZE: 3.7K
FIRST SEEN: 2025-12-02 02:15:36
APPEARS ON: 1 disk(s)
FILE HASH
cfa44c4d3b3e467ebe8f8baddebc9c81252f52353b34a1b4f020b2333a466659
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| TIM S TIMER 2 0 | RD.RTC-1.0 | SEQ | The BAM Archive | 21 | 15 | 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 2A 2A |****************| 00000020: 0D 2A A0 72 65 61 64 A0 6F 66 A0 72 65 61 6C A0 |.*.read.of.real.| 00000030: 74 69 6D 65 A0 63 6C 6F 63 6B A0 76 32 2E 31 A0 |time.clock.v2.1.| 00000040: 2A 0D 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |*.**************| 00000050: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000060: 2A 2A 0D 2A A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |**.*............| 00000070: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |................| 00000080: A0 A0 2A 0D 2A A0 A0 A0 A0 A0 A0 A0 A0 A0 6D 61 |..*.*.........ma| 00000090: 79 A0 31 30 A0 31 39 38 37 A0 A0 A0 A0 A0 A0 A0 |y.10.1987.......| 000000A0: A0 A0 A0 2A 0D 2A A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |...*.*..........| 000000B0: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |................| 000000C0: A0 A0 A0 A0 2A 0D 2A A0 A0 A0 A0 A0 A0 62 79 A0 |....*.*......by.| 000000D0: 74 69 6D A0 67 A0 63 6F 72 63 6F 72 61 6E A0 A0 |tim.g.corcoran..| 000000E0: A0 A0 A0 A0 A0 2A 0D 2A A0 A0 A0 A0 A0 A0 A0 A0 |.....*.*........| 000000F0: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |................| 00000100: A0 A0 A0 A0 A0 A0 2A 0D 2A 2A 2A 2A 2A 2A 2A 2A |......*.********| 00000110: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000120: 2A 2A 2A 2A 2A 2A 2A 2A 0D 2A A0 74 68 69 73 A0 |********.*.this.| 00000130: 73 2F 77 A0 69 73 A0 70 61 72 74 A0 6F 66 A0 74 |s/w.is.part.of.t| 00000140: 68 65 A0 72 74 63 A0 A0 2A 0D 2A A0 73 68 61 72 |he.rtc..*.*.shar| 00000150: 65 77 61 72 65 A0 70 61 63 6B 61 67 65 2E A0 69 |eware.package..i| 00000160: 74 A0 69 73 A0 6F 6B 61 79 2A 0D 2A A0 74 6F A0 |t.is.okay*.*.to.| 00000170: 64 69 73 74 72 69 62 75 74 65 A0 61 6E 64 A0 73 |distribute.and.s| 00000180: 68 61 72 65 A0 62 75 74 A0 A0 2A 0D 2A A0 6E 6F |hare.but..*.*.no| 00000190: 74 A0 74 6F A0 73 65 6C 6C 2E A0 A0 A0 A0 A0 A0 |t.to.sell.......| 000001A0: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A A0 A0 |...........*.*..| 000001B0: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |................| 000001C0: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 2A 0D 2A A0 |............*.*.| 000001D0: 70 6C 65 61 73 65 A0 63 6F 6E 73 69 64 65 72 A0 |please.consider.| 000001E0: 73 75 70 70 6F 72 74 69 6E 67 A0 A0 A0 2A 0D 2A |supporting...*.*| 000001F0: A0 A0 A0 6D 79 73 74 69 63 A0 6A 69 6D 27 73 A0 |...mystic.jim's.| 00000200: 73 2F 77 A0 73 79 73 74 65 6D A0 A0 A0 A0 2A 0D |s/w.system....*.| 00000210: 2A A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 |*...............| 00000220: A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 A0 2A |...............*| 00000230: 0D 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |.***************| 00000240: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000250: 2A 0D 2A 0D 2A 0D 2A 0D 20 6F 72 67 20 24 34 35 |*.*.*.*. org $45| 00000260: 38 30 0D 64 64 72 61 20 65 71 75 20 24 64 63 30 |80.ddra equ $dc0| 00000270: 32 0D 64 72 61 20 65 71 75 20 24 64 63 30 30 0D |2.dra equ $dc00.| 00000280: 68 6F 75 72 73 20 65 71 75 20 24 34 35 37 30 0D |hours equ $4570.| 00000290: 6D 69 6E 73 20 65 71 75 20 24 34 35 37 31 0D 73 |mins equ $4571.s| 000002A0: 65 63 73 20 65 71 75 20 24 34 35 37 32 0D 74 65 |ecs equ $4572.te| 000002B0: 6D 70 20 65 71 75 20 24 34 35 37 33 0D 74 6D 70 |mp equ $4573.tmp| 000002C0: 31 20 65 71 75 20 24 34 35 37 34 0D 74 6D 70 32 |1 equ $4574.tmp2| 000002D0: 20 65 71 75 20 24 34 35 37 35 0D 2A 0D 2A 0D 2A | equ $4575.*.*.*| 000002E0: 0D 2A 0D 2A 0D 20 6C 64 61 20 24 30 31 20 3B 67 |.*.*. lda $01 ;g| 000002F0: 65 74 A0 6D 65 6D A0 63 6F 6E 66 69 67 0D 20 70 |et.mem.config. p| 00000300: 68 61 20 20 3B 73 61 76 65 A0 69 74 0D 20 6C 64 |ha ;save.it. ld| 00000310: 61 20 23 24 33 35 20 3B 74 75 72 6E A0 6F 6E A0 |a #$35 ;turn.on.| 00000320: 69 2F 6F A0 72 65 67 69 6F 6E 0D 20 73 74 61 20 |i/o.region. sta | 00000330: 24 30 31 0D 73 74 61 72 74 20 73 65 69 20 20 3B |$01.start sei ;| 00000340: 69 6E 74 A0 6F 66 66 0D 72 64 72 74 63 20 6C 64 |int.off.rdrtc ld| 00000350: 61 20 64 72 61 20 3B 72 65 61 64 A0 64 72 61 0D |a dra ;read.dra.| 00000360: 20 73 74 61 20 24 30 32 20 3B 73 61 76 65 A0 69 | sta $02 ;save.i| 00000370: 74 0D 20 6C 64 61 20 64 64 72 61 20 3B 72 65 61 |t. lda ddra ;rea| 00000380: 64 A0 64 64 72 61 0D 20 73 74 61 20 24 30 33 20 |d.ddra. sta $03 | 00000390: 3B 73 61 76 65 A0 69 74 0D 20 6C 64 61 20 23 36 |;save.it. lda #6| 000003A0: 20 3B 6C 6F 61 64 A0 6E 65 77 A0 63 6F 6E 66 69 | ;load.new.confi| 000003B0: 67 0D 20 73 74 61 20 64 64 72 61 20 3B 32 A0 6F |g. sta ddra ;2.o| 000003C0: 2F 70 27 73 0D 20 6C 64 61 20 23 30 20 3B 73 74 |/p's. lda #0 ;st| 000003D0: 61 74 65 73 0D 20 73 74 61 20 64 72 61 20 3B 63 |ates. sta dra ;c| 000003E0: 65 A0 74 72 75 65 2C A0 73 63 6C 6B A0 6C 6F 77 |e.true,.sclk.low| 000003F0: 0D 2A 0D 2A 0D 2A 0D 2A A0 72 65 61 64 A0 72 6F |.*.*.*.*.read.ro| 00000400: 75 74 69 6E 65 0D 2A 0D 20 6C 64 61 20 23 24 64 |utine.*. lda #$d| 00000410: 63 30 66 20 3B 72 65 61 64 A0 63 72 62 A0 66 6F |c0f ;read.crb.fo| 00000420: 72 A0 63 75 72 72 65 6E 74 A0 73 65 74 74 69 6E |r.current.settin| 00000430: 67 0D 20 73 74 61 20 74 6D 70 31 20 3B 73 61 76 |g. sta tmp1 ;sav| 00000440: 65 A0 69 74 A0 66 6F 72 A0 6E 6F 77 0D 20 61 6E |e.it.for.now. an| 00000450: 64 20 23 24 37 66 20 3B 74 6F 64 A0 73 65 6C 65 |d #$7f ;tod.sele| 00000460: 63 74 0D 20 73 74 61 20 24 64 63 30 66 20 3B 73 |ct. sta $dc0f ;s| 00000470: 74 6F 72 65 A0 69 74 0D 20 6C 64 61 20 23 24 62 |tore.it. lda #$b| 00000480: 66 20 3B 62 75 72 73 74 A0 72 65 61 64 0D 20 6A |f ;burst.read. j| 00000490: 73 72 20 77 72 74 62 79 74 20 3B 67 6F 73 75 62 |sr wrtbyt ;gosub| 000004A0: 0D 20 6A 73 72 20 72 64 62 79 74 20 3B 72 65 61 |. jsr rdbyt ;rea| 000004B0: 64 A0 73 65 63 73 0D 20 73 74 61 20 73 65 63 73 |d.secs. sta secs| 000004C0: 20 3B 73 61 76 65 A0 66 6F 72 A0 6E 6F 77 0D 20 | ;save.for.now. | 000004D0: 6A 73 72 20 72 64 62 79 74 20 3B 72 65 61 64 A0 |jsr rdbyt ;read.| 000004E0: 6D 69 6E 73 0D 20 73 74 61 20 6D 69 6E 73 20 3B |mins. sta mins ;| 000004F0: 73 61 76 65 A0 69 74 A0 66 6F 72 A0 6E 6F 77 0D |save.it.for.now.| 00000500: 20 6A 73 72 20 72 64 62 79 74 20 3B 72 65 61 64 | jsr rdbyt ;read| 00000510: A0 68 6F 75 72 73 0D 20 74 61 78 20 20 3B 74 72 |.hours. tax ;tr| 00000520: 61 6E 73 66 65 72 A0 74 6F A0 78 A0 72 65 67 2E |ansfer.to.x.reg.| 00000530: 0D 20 61 6E 64 20 23 24 31 66 20 3B 63 6C 65 61 |. and #$1f ;clea| 00000540: 72 A0 33 A0 6D 73 62 27 73 0D 20 63 6D 70 20 23 |r.3.msb's. cmp #| 00000550: 24 31 32 20 3B 69 73 A0 69 74 A0 74 77 65 6C 76 |$12 ;is.it.twelv| 00000560: 65 3F 0D 20 62 6E 65 20 6E 6F 77 61 79 20 3B 6E |e?. bne noway ;n| 00000570: 6F A0 69 74 A0 69 73 6E 27 74 A0 74 77 65 6C 76 |o.it.isn't.twelv| 00000580: 65 0D 20 74 78 61 20 20 3B 72 65 74 72 69 65 76 |e. txa ;retriev| 00000590: 65 0D 20 65 6F 72 20 23 24 32 30 20 3B 74 6F 67 |e. eor #$20 ;tog| 000005A0: 67 6C 65 A0 61 6D 2F 70 6D A0 62 69 74 0D 20 74 |gle.am/pm.bit. t| 000005B0: 61 78 0D 6E 6F 77 61 79 20 74 78 61 20 20 3B 72 |ax.noway txa ;r| 000005C0: 65 74 72 69 65 76 65 0D 20 61 6E 64 20 23 24 31 |etrieve. and #$1| 000005D0: 66 20 3B 63 6C 65 61 72 A0 33 A0 6D 73 62 27 73 |f ;clear.3.msb's| 000005E0: 0D 20 73 74 61 20 68 6F 75 72 73 0D 20 74 78 61 |. sta hours. txa| 000005F0: 20 20 3B 72 65 74 72 69 65 76 65 A0 69 74 A0 66 | ;retrieve.it.f| 00000600: 72 6F 6D A0 78 A0 72 65 67 0D 20 61 6E 64 20 23 |rom.x.reg. and #| 00000610: 24 32 30 20 3B 69 73 6F 6C 61 74 65 A0 61 6D 2F |$20 ;isolate.am/| 00000620: 70 6D A0 62 69 74 0D 20 61 73 6C 0D 20 61 73 6C |pm.bit. asl. asl| 00000630: 0D 20 6F 72 61 20 68 6F 75 72 73 20 3B 70 75 74 |. ora hours ;put| 00000640: A0 68 6F 75 72 73 A0 62 61 63 6B A0 69 6E 0D 20 |.hours.back.in. | 00000650: 73 74 61 20 74 6D 70 32 20 3B 73 61 76 65 A0 69 |sta tmp2 ;save.i| 00000660: 74 A0 66 6F 72 A0 6C 61 74 65 72 0D 20 73 74 61 |t.for.later. sta| 00000670: 20 24 64 63 30 62 20 3B 73 61 76 65 A0 74 6F A0 | $dc0b ;save.to.| 00000680: 74 68 65 A0 63 69 61 A0 74 6F 64 0D 20 63 6D 70 |the.cia.tod. cmp| 00000690: 20 23 24 31 32 20 3B 69 73 A0 69 74 A0 74 77 65 | #$12 ;is.it.twe| 000006A0: 6C 76 65 3F 0D 20 62 6E 65 20 74 65 73 74 20 3B |lve?. bne test ;| 000006B0: 6E 6F 3F A0 67 6F 74 6F A0 74 65 73 74 0D 20 6C |no?.goto.test. l| 000006C0: 64 61 20 23 24 30 20 3B 6F 74 68 65 72 77 69 73 |da #$0 ;otherwis| 000006D0: 65 A0 73 65 74 A0 68 6F 75 72 A0 74 6F A0 30 0D |e.set.hour.to.0.| 000006E0: 74 65 73 74 20 62 69 74 20 74 6D 70 32 20 3B 61 |test bit tmp2 ;a| 000006F0: 6D 2F 70 6D A0 74 65 73 74 0D 20 62 70 6C 20 69 |m/pm.test. bpl i| 00000700: 74 73 61 6D 20 3B 6F 6E A0 61 6D A0 67 6F 74 6F |tsam ;on.am.goto| 00000710: A0 69 74 73 61 6D 0D 20 73 65 64 20 20 3B 64 65 |.itsam. sed ;de| 00000720: 63 69 6D 61 6C A0 6D 6F 64 65 0D 20 63 6C 63 20 |cimal.mode. clc | 00000730: 20 3B 63 6C 65 61 72 A0 63 61 72 72 79 0D 20 61 | ;clear.carry. a| 00000740: 64 63 20 23 24 31 32 20 3B 6D 61 6B 65 A0 69 74 |dc #$12 ;make.it| 00000750: A0 32 34 A0 68 72 A0 63 6C 6F 63 6B A0 66 6F 72 |.24.hr.clock.for| 00000760: 6D 61 74 0D 20 63 6C 64 20 20 3B 6C 65 61 76 65 |mat. cld ;leave| 00000770: A0 64 65 63 69 6D 61 6C A0 6D 6F 64 65 0D 69 74 |.decimal.mode.it| 00000780: 73 61 6D 20 6A 73 72 20 62 63 64 74 68 78 20 3B |sam jsr bcdthx ;| 00000790: 63 6F 6E 76 65 72 74 A0 74 6F A0 68 65 78 0D 20 |convert.to.hex. | 000007A0: 73 74 61 20 24 38 35 31 39 20 3B 73 61 76 65 A0 |sta $8519 ;save.| 000007B0: 74 6F A0 67 65 6F 73 A0 68 6F 75 72 73 0D 20 6C |to.geos.hours. l| 000007C0: 64 61 20 6D 69 6E 73 20 3B 72 65 74 72 69 65 76 |da mins ;retriev| 000007D0: 65 A0 6D 69 6E 75 74 65 73 0D 20 73 74 61 20 24 |e.minutes. sta $| 000007E0: 64 63 30 61 20 3B 73 61 76 65 A0 74 6F A0 74 6F |dc0a ;save.to.to| 000007F0: 64 0D 20 6A 73 72 20 62 63 64 74 68 78 20 3B 63 |d. jsr bcdthx ;c| 00000800: 6F 6E 76 65 72 74 A0 74 6F A0 68 65 78 0D 20 73 |onvert.to.hex. s| 00000810: 74 61 20 24 38 35 31 61 20 3B 73 61 76 65 A0 74 |ta $851a ;save.t| 00000820: 6F A0 67 65 6F 73 A0 6D 69 6E 73 0D 20 6C 64 61 |o.geos.mins. lda| 00000830: 20 73 65 63 73 20 3B 72 65 74 72 69 65 76 65 A0 | secs ;retrieve.| 00000840: 73 65 63 6F 6E 64 73 0D 20 73 74 61 20 24 64 63 |seconds. sta $dc| 00000850: 30 39 20 3B 73 61 76 65 A0 74 6F A0 74 6F 64 0D |09 ;save.to.tod.| 00000860: 20 6A 73 72 20 62 63 64 74 68 78 20 3B 63 6F 6E | jsr bcdthx ;con| 00000870: 76 65 72 74 A0 74 6F A0 68 65 78 0D 20 73 74 61 |vert.to.hex. sta| 00000880: 20 24 38 35 31 62 20 3B 73 61 76 65 A0 74 6F A0 | $851b ;save.to.| 00000890: 67 65 6F 73 A0 73 65 63 73 0D 20 6C 64 61 20 23 |geos.secs. lda #| 000008A0: 24 30 20 3B 62 6C 61 6E 6B A0 6F 75 74 A0 31 30 |$0 ;blank.out.10| 000008B0: 27 74 68 73 A0 6F 66 A0 73 65 63 73 0D 20 73 74 |'ths.of.secs. st| 000008C0: 61 20 24 64 63 30 38 20 3B 26 A0 73 74 61 72 74 |a $dc08 ;&.start| 000008D0: A0 75 70 A0 74 68 65 A0 74 6F 64 A0 63 6C 6F 63 |.up.the.tod.cloc| 000008E0: 6B 0D 0D 20 6A 73 72 20 72 64 62 79 74 20 3B 72 |k.. jsr rdbyt ;r| 000008F0: 65 61 64 A0 64 61 74 65 0D 20 6A 73 72 20 62 63 |ead.date. jsr bc| 00000900: 64 74 68 78 20 3B 63 6F 6E 76 65 72 74 A0 74 6F |dthx ;convert.to| 00000910: A0 68 65 78 0D 20 73 74 61 20 24 38 35 31 38 20 |.hex. sta $8518 | 00000920: 3B 73 61 76 65 A0 74 6F A0 67 65 6F 73 A0 64 61 |;save.to.geos.da| 00000930: 79 0D 20 6A 73 72 20 72 64 62 79 74 20 3B 72 65 |y. jsr rdbyt ;re| 00000940: 61 64 A0 6D 6F 6E 74 68 0D 20 6A 73 72 20 62 63 |ad.month. jsr bc| 00000950: 64 74 68 78 20 3B 63 6F 6E 76 65 72 74 A0 74 6F |dthx ;convert.to| 00000960: A0 68 65 78 0D 20 73 74 61 20 24 38 35 31 37 20 |.hex. sta $8517 | 00000970: 3B 73 61 76 65 A0 74 6F A0 67 65 6F 73 A0 6D 6F |;save.to.geos.mo| 00000980: 6E 74 68 0D 20 6A 73 72 20 72 64 62 79 74 20 3B |nth. jsr rdbyt ;| 00000990: 72 65 61 64 A0 64 61 79 0D 20 6A 73 72 20 72 64 |read.day. jsr rd| 000009A0: 62 79 74 20 3B 73 6B 69 70 A0 64 61 79 2F 72 65 |byt ;skip.day/re| 000009B0: 61 64 A0 79 65 61 72 0D 20 6A 73 72 20 62 63 64 |ad.year. jsr bcd| 000009C0: 74 68 78 20 3B 63 6F 6E 76 65 72 74 A0 74 6F A0 |thx ;convert.to.| 000009D0: 68 65 78 0D 20 73 74 61 20 24 38 35 31 36 20 3B |hex. sta $8516 ;| 000009E0: 73 61 76 65 A0 74 6F A0 67 65 6F 73 A0 79 65 61 |save.to.geos.yea| 000009F0: 72 0D 20 6C 64 61 20 23 24 34 20 3B 74 75 72 6E |r. lda #$4 ;turn| 00000A00: A0 6F 66 66 A0 63 68 69 70 A0 65 6E 61 62 6C 65 |.off.chip.enable| 00000A10: 0D 20 73 74 61 20 64 72 61 0D 66 69 6E 69 73 68 |. sta dra.finish| 00000A20: 20 70 6C 61 20 20 3B 67 65 74 A0 6F 6C 64 A0 6D | pla ;get.old.m| 00000A30: 65 6D A0 63 6F 6E 66 69 67 0D 20 73 74 61 20 24 |em.config. sta $| 00000A40: 30 31 20 3B 73 65 74 A0 69 74 0D 20 63 6C 69 20 |01 ;set.it. cli | 00000A50: 20 3B 65 6E 61 62 6C 65 A0 69 6E 74 65 72 72 75 | ;enable.interru| 00000A60: 70 74 73 0D 20 6A 73 72 20 24 63 32 32 63 20 3B |pts. jsr $c22c ;| 00000A70: 72 65 6C 6F 61 64 A0 64 65 73 6B 74 6F 70 0D 2A |reload.desktop.*| 00000A80: 0D 2A 0D 2A 0D 2A 0D 2A A0 77 72 69 74 65 A0 61 |.*.*.*.*.write.a| 00000A90: A0 62 79 74 65 A0 74 6F A0 74 68 65 A0 72 74 63 |.byte.to.the.rtc| 00000AA0: 0D 2A 0D 77 72 74 62 79 74 20 6C 64 78 20 23 38 |.*.wrtbyt ldx #8| 00000AB0: 20 3B 63 6F 75 6E 74 3D 38 0D 20 73 74 61 20 74 | ;count=8. sta t| 00000AC0: 65 6D 70 20 3B 73 61 76 65 A0 69 74 0D 20 6C 64 |emp ;save.it. ld| 00000AD0: 61 20 23 24 37 20 3B 63 6F 6E 66 69 67 A0 6C 73 |a #$7 ;config.ls| 00000AE0: 62 A0 61 73 A0 6F 2F 70 0D 20 73 74 61 20 64 64 |b.as.o/p. sta dd| 00000AF0: 72 61 20 3B 0D 20 6C 64 61 20 74 65 6D 70 0D 77 |ra ;. lda temp.w| 00000B00: 6C 6F 6F 70 20 61 6E 64 20 23 24 66 39 20 3B 73 |loop and #$f9 ;s| 00000B10: 63 6C 6B A0 6C 6F 77 2C A0 63 68 69 70 A0 65 6E |clk.low,.chip.en| 00000B20: 61 62 6C 65 0D 20 73 74 61 20 64 72 61 20 3B 73 |able. sta dra ;s| 00000B30: 65 74 A0 75 70 0D 20 6F 72 61 20 23 32 20 3B 73 |et.up. ora #2 ;s| 00000B40: 63 6C 6B A0 68 69 0D 20 73 74 61 20 64 72 61 20 |clk.hi. sta dra | 00000B50: 3B 6C 73 62 A0 6F 75 74 0D 20 6C 64 61 20 74 65 |;lsb.out. lda te| 00000B60: 6D 70 20 3B 72 65 66 72 65 73 68 A0 62 79 74 65 |mp ;refresh.byte| 00000B70: 0D 20 6C 73 72 20 61 20 3B 6E 65 78 74 A0 62 69 |. lsr a ;next.bi| 00000B80: 74 0D 20 73 74 61 20 74 65 6D 70 20 3B 73 61 76 |t. sta temp ;sav| 00000B90: 65 A0 69 74 0D 20 64 65 78 20 20 3B 75 70 64 61 |e.it. dex ;upda| 00000BA0: 74 65 A0 63 6F 75 6E 74 0D 20 62 6E 65 20 77 6C |te.count. bne wl| 00000BB0: 6F 6F 70 20 3B 6C 6F 6F 70 3F 0D 20 6C 64 61 20 |oop ;loop?. lda | 00000BC0: 23 24 36 20 3B 63 6F 6E 66 69 67 A0 6C 73 62 A0 |#$6 ;config.lsb.| 00000BD0: 61 73 A0 69 2F 70 A0 61 67 61 69 6E 0D 20 73 74 |as.i/p.again. st| 00000BE0: 61 20 64 64 72 61 20 3B 0D 20 72 74 73 0D 2A 0D |a ddra ;. rts.*.| 00000BF0: 2A 0D 2A 0D 2A 0D 2A A0 72 65 61 64 A0 61 A0 62 |*.*.*.*.read.a.b| 00000C00: 79 74 65 A0 66 72 6F 6D A0 74 68 65 A0 72 74 63 |yte.from.the.rtc| 00000C10: 0D 2A 0D 72 64 62 79 74 20 6C 64 61 20 23 24 30 |.*.rdbyt lda #$0| 00000C20: 0D 20 73 74 61 20 74 65 6D 70 20 3B 63 6C 72 A0 |. sta temp ;clr.| 00000C30: 74 65 6D 70 0D 20 6C 64 78 20 23 24 30 38 20 3B |temp. ldx #$08 ;| 00000C40: 63 6F 75 6E 74 3D 38 0D 72 6C 6F 6F 70 20 6C 64 |count=8.rloop ld| 00000C50: 61 20 23 24 30 32 20 3B 73 65 74 75 70 0D 20 73 |a #$02 ;setup. s| 00000C60: 74 61 20 64 72 61 20 3B 73 63 6C 6B A0 68 69 2C |ta dra ;sclk.hi,| 00000C70: A0 63 65 A0 6C 6F 0D 20 6C 64 61 20 23 24 30 20 |.ce.lo. lda #$0 | 00000C80: 3B 63 6C 72 A0 61 63 63 0D 20 73 74 61 20 64 72 |;clr.acc. sta dr| 00000C90: 61 20 3B 73 63 6C 6B A0 6C 6F 2C A0 63 65 A0 6C |a ;sclk.lo,.ce.l| 00000CA0: 6F 0D 2A A0 A0 3B 64 61 74 61 A0 70 72 65 73 65 |o.*..;data.prese| 00000CB0: 6E 74 0D 20 6C 64 61 20 64 72 61 20 3B 72 65 61 |nt. lda dra ;rea| 00000CC0: 64 A0 64 61 74 61 0D 20 72 6F 72 20 61 20 3B 72 |d.data. ror a ;r| 00000CD0: 6F 74 61 74 65 A0 64 61 74 61 A0 62 69 74 A0 74 |otate.data.bit.t| 00000CE0: 6F A0 63 0D 20 6C 64 61 20 74 65 6D 70 20 3B 72 |o.c. lda temp ;r| 00000CF0: 65 61 64 A0 74 65 6D 70 A0 74 6F A0 61 63 63 0D |ead.temp.to.acc.| 00000D00: 20 72 6F 72 20 61 0D 20 73 74 61 20 74 65 6D 70 | ror a. sta temp| 00000D10: 20 3B 73 61 76 65 A0 74 65 6D 70 0D 20 64 65 78 | ;save.temp. dex| 00000D20: 20 20 3B 75 70 64 61 74 65 A0 63 6F 75 6E 74 0D | ;update.count.| 00000D30: 20 62 6E 65 20 72 6C 6F 6F 70 0D 20 6C 64 61 20 | bne rloop. lda | 00000D40: 74 65 6D 70 20 3B 74 65 6D 70 A0 74 6F A0 61 63 |temp ;temp.to.ac| 00000D50: 63 0D 20 72 74 73 0D 2A 0D 2A 0D 2A 0D 2A 0D 2A |c. rts.*.*.*.*.*| 00000D60: A0 62 63 64 A0 74 6F A0 68 65 78 A0 63 6F 6E 76 |.bcd.to.hex.conv| 00000D70: 65 72 74 A0 72 6F 75 74 69 6E 65 0D 2A A0 A0 74 |ert.routine.*..t| 00000D80: 68 61 6E 6B 73 A0 74 6F A0 62 73 77 A0 66 6F 72 |hanks.to.bsw.for| 00000D90: A0 74 68 65 A0 68 65 6C 70 0D 2A 0D 2A 0D 62 63 |.the.help.*.*.bc| 00000DA0: 64 74 68 78 20 70 68 61 20 20 3B 73 61 76 65 A0 |dthx pha ;save.| 00000DB0: 62 63 64 A0 76 61 6C 75 65 0D 20 61 6E 64 20 23 |bcd.value. and #| 00000DC0: 24 66 30 20 3B 69 73 6F 6C 61 74 65 A0 6C 65 66 |$f0 ;isolate.lef| 00000DD0: 74 A0 6E 69 62 62 6C 65 0D 20 6C 73 72 20 20 3B |t.nibble. lsr ;| 00000DE0: 61 6E 64 A0 73 68 69 66 74 A0 74 6F A0 72 68 73 |and.shift.to.rhs| 00000DF0: 0D 20 6C 73 72 0D 20 6C 73 72 0D 20 6C 73 72 0D |. lsr. lsr. lsr.| 00000E00: 20 74 61 78 20 20 3B 6D 61 72 6B A0 6E 75 6D 62 | tax ;mark.numb| 00000E10: 65 72 0D 20 70 6C 61 20 20 3B 67 65 74 A0 62 63 |er. pla ;get.bc| 00000E20: 64 A0 76 61 6C 75 65 0D 20 61 6E 64 20 23 24 30 |d.value. and #$0| 00000E30: 66 20 3B 63 6C 65 61 72 A0 6C 65 66 74 A0 6E 69 |f ;clear.left.ni| 00000E40: 62 62 6C 65 0D 20 63 6C 63 20 20 3B 61 64 64 A0 |bble. clc ;add.| 00000E50: 78 A0 74 69 6D 65 73 A0 31 30 0D 62 68 6C 6F 6F |x.times.10.bhloo| 00000E60: 70 20 64 65 78 0D 20 62 6D 69 20 62 68 78 6F 75 |p dex. bmi bhxou| 00000E70: 74 0D 20 61 64 63 20 23 24 30 61 0D 20 62 6E 65 |t. adc #$0a. bne| 00000E80: 20 62 68 6C 6F 6F 70 0D 62 68 78 6F 75 74 20 72 | bhloop.bhxout r| 00000E90: 74 73 0D 2A 0D 2A 0D 2A 0D 2A 0D |ts.*.*.*.*. |
********************************.* READ
OF REAL TIME CLOCK V2.1 *.**************
******************.*
*.* MAY 10 1987
*.* *.*
BY TIM G CORCORAN *.*
*.****************
****************.* THIS S/W IS PART OF T
HE RTC *.* SHAREWARE PACKAGE. IT IS OKA
Y*.* TO DISTRIBUTE AND SHARE BUT *.* NO
T TO SELL. *.*
*.* PLEASE CONSIDER
SUPPORTING *.* MYSTIC JIM'S S/W SYST
EM *.* *
.********************************.*.*.*.
ORG $4580.DDRA EQU $DC02.DRA EQU $DC00.
HOURS EQU $4570.MINS EQU $4571.SECS EQU
$4572.TEMP EQU $4573.TMP1 EQU $4574.TMP2
EQU $4575.*.*.*.*.*. LDA $01 ;GET MEM C
ONFIG. PHA ;SAVE IT. LDA #$35 ;TURN ON
I/O REGION. STA $01.START SEI ;INT OFF.
RDRTC LDA DRA ;READ DRA. STA $02 ;SAVE I
T. LDA DDRA ;READ DDRA. STA $03 ;SAVE IT
. LDA #6 ;LOAD NEW CONFIG. STA DDRA ;2 O
/P'S. LDA #0 ;STATES. STA DRA ;CE TRUE,
SCLK LOW.*.*.*.* READ ROUTINE.*. LDA #$D
C0F ;READ CRB FOR CURRENT SETTING. STA T
MP1 ;SAVE IT FOR NOW. AND #$7F ;TOD SELE
CT. STA $DC0F ;STORE IT. LDA #$BF ;BURST
READ. JSR WRTBYT ;GOSUB. JSR RDBYT ;REA
D SECS. STA SECS ;SAVE FOR NOW. JSR RDBY
T ;READ MINS. STA MINS ;SAVE IT FOR NOW.
JSR RDBYT ;READ HOURS. TAX ;TRANSFER T
O X REG.. AND #$1F ;CLEAR 3 MSB'S. CMP #
$12 ;IS IT TWELVE?. BNE NOWAY ;NO IT ISN
'T TWELVE. TXA ;RETRIEVE. EOR #$20 ;TOG
GLE AM/PM BIT. TAX.NOWAY TXA ;RETRIEVE.
AND #$1F ;CLEAR 3 MSB'S. STA HOURS. TXA
;RETRIEVE IT FROM X REG. AND #$20 ;ISO
LATE AM/PM BIT. ASL. ASL. ORA HOURS ;PUT
HOURS BACK IN. STA TMP2 ;SAVE IT FOR LA
TER. STA $DC0B ;SAVE TO THE CIA TOD. CMP
#$12 ;IS IT TWELVE?. BNE TEST ;NO? GOTO
TEST. LDA #$0 ;OTHERWISE SET HOUR TO 0.
TEST BIT TMP2 ;AM/PM TEST. BPL ITSAM ;ON
AM GOTO ITSAM. SED ;DECIMAL MODE. CLC
;CLEAR CARRY. ADC #$12 ;MAKE IT 24 HR C
LOCK FORMAT. CLD ;LEAVE DECIMAL MODE.IT
SAM JSR BCDTHX ;CONVERT TO HEX. STA $851
9 ;SAVE TO GEOS HOURS. LDA MINS ;RETRIEV
E MINUTES. STA $DC0A ;SAVE TO TOD. JSR B
CDTHX ;CONVERT TO HEX. STA $851A ;SAVE T
O GEOS MINS. LDA SECS ;RETRIEVE SECONDS.
STA $DC09 ;SAVE TO TOD. JSR BCDTHX ;CON
VERT TO HEX. STA $851B ;SAVE TO GEOS SEC
S. LDA #$0 ;BLANK OUT 10'THS OF SECS. ST
A $DC08 ;& START UP THE TOD CLOCK.. JSR
RDBYT ;READ DATE. JSR BCDTHX ;CONVERT TO
HEX. STA $8518 ;SAVE TO GEOS DAY. JSR R
DBYT ;READ MONTH. JSR BCDTHX ;CONVERT TO
HEX. STA $8517 ;SAVE TO GEOS MONTH. JSR
RDBYT ;READ DAY. JSR RDBYT ;SKIP DAY/RE
AD YEAR. JSR BCDTHX ;CONVERT TO HEX. STA
$8516 ;SAVE TO GEOS YEAR. LDA #$4 ;TURN
OFF CHIP ENABLE. STA DRA.FINISH PLA ;G
ET OLD MEM CONFIG. STA $01 ;SET IT. CLI
;ENABLE INTERRUPTS. JSR $C22C ;RELOAD D
ESKTOP.*.*.*.*.* WRITE A BYTE TO THE RTC
.*.WRTBYT LDX #8 ;COUNT=8. STA TEMP ;SAV
E IT. LDA #$7 ;CONFIG LSB AS O/P. STA DD
RA ;. LDA TEMP.WLOOP AND #$F9 ;SCLK LOW,
CHIP ENABLE. STA DRA ;SET UP. ORA #2 ;S
CLK HI. STA DRA ;LSB OUT. LDA TEMP ;REFR
ESH BYTE. LSR A ;NEXT BIT. STA TEMP ;SAV
E IT. DEX ;UPDATE COUNT. BNE WLOOP ;LOO
P?. LDA #$6 ;CONFIG LSB AS I/P AGAIN. ST
A DDRA ;. RTS.*.*.*.*.* READ A BYTE FROM
THE RTC.*.RDBYT LDA #$0. STA TEMP ;CLR
TEMP. LDX #$08 ;COUNT=8.RLOOP LDA #$02 ;
SETUP. STA DRA ;SCLK HI, CE LO. LDA #$0
;CLR ACC. STA DRA ;SCLK LO, CE LO.* ;DA
TA PRESENT. LDA DRA ;READ DATA. ROR A ;R
OTATE DATA BIT TO C. LDA TEMP ;READ TEMP
TO ACC. ROR A. STA TEMP ;SAVE TEMP. DEX
;UPDATE COUNT. BNE RLOOP. LDA TEMP ;TE
MP TO ACC. RTS.*.*.*.*.* BCD TO HEX CONV
ERT ROUTINE.* THANKS TO BSW FOR THE HEL
P.*.*.BCDTHX PHA ;SAVE BCD VALUE. AND #
$F0 ;ISOLATE LEFT NIBBLE. LSR ;AND SHIF
T TO RHS. LSR. LSR. LSR. TAX ;MARK NUMB
ER. PLA ;GET BCD VALUE. AND #$0F ;CLEAR
LEFT NIBBLE. CLC ;ADD X TIMES 10.BHLOO
P DEX. BMI BHXOUT. ADC #$0A. BNE BHLOOP.
BHXOUT RTS.*.*.*.*.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL