READ.SEQ2.0
FILE INFORMATION
FILENAME(S): READ.SEQ2.0
FILE TYPE(S): SEQ
FILE SIZE: 4.2K
FIRST SEEN: 2025-12-02 02:15:36
APPEARS ON: 1 disk(s)
FILE HASH
466bd042244eb3aee73833b8715505b3703be38b18e7018bab0f9299ac585ce5
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| TIM S TIMER 2 0 | READ.SEQ2.0 | SEQ | The BAM Archive | 12 | 13 | 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 23 32 2E 30 A0 |time.clock.#2.0.| 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 32 39 A0 31 39 38 37 A0 A0 A0 A0 A0 A0 A0 |y.29.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 68 73 65 63 73 | equ $4575.hsecs| 000002E0: 20 65 71 75 20 24 34 35 37 36 0D 63 6F 75 6E 74 | equ $4576.count| 000002F0: 20 65 71 75 20 24 34 35 37 37 0D 2A 0D 2A 0D 2A | equ $4577.*.*.*| 00000300: 0D 2A 0D 2A 0D 20 6C 64 61 20 24 30 31 20 3B 67 |.*.*. lda $01 ;g| 00000310: 65 74 A0 6D 65 6D A0 63 6F 6E 66 69 67 0D 20 70 |et.mem.config. p| 00000320: 68 61 20 20 3B 73 61 76 65 A0 69 74 0D 20 6C 64 |ha ;save.it. ld| 00000330: 61 20 23 24 33 35 20 3B 74 75 72 6E A0 6F 6E A0 |a #$35 ;turn.on.| 00000340: 69 2F 6F A0 72 65 67 69 6F 6E 0D 20 73 74 61 20 |i/o.region. sta | 00000350: 24 30 31 0D 73 74 61 72 74 20 73 65 69 20 20 3B |$01.start sei ;| 00000360: 69 6E 74 A0 6F 66 66 0D 72 64 72 74 63 20 6C 64 |int.off.rdrtc ld| 00000370: 61 20 64 72 61 20 3B 72 65 61 64 A0 64 72 61 0D |a dra ;read.dra.| 00000380: 20 73 74 61 20 24 30 32 20 3B 73 61 76 65 A0 69 | sta $02 ;save.i| 00000390: 74 0D 20 6C 64 61 20 64 64 72 61 20 3B 72 65 61 |t. lda ddra ;rea| 000003A0: 64 A0 64 64 72 61 0D 20 73 74 61 20 24 30 33 20 |d.ddra. sta $03 | 000003B0: 3B 73 61 76 65 A0 69 74 0D 20 6C 64 61 20 23 24 |;save.it. lda #$| 000003C0: 66 20 3B 6C 6F 61 64 A0 6E 65 77 A0 63 6F 6E 66 |f ;load.new.conf| 000003D0: 69 67 0D 20 73 74 61 20 64 64 72 61 20 3B 34 A0 |ig. sta ddra ;4.| 000003E0: 6F 2F 70 27 73 0D 20 6C 64 61 20 23 24 66 20 3B |o/p's. lda #$f ;| 000003F0: 73 74 61 74 65 73 0D 20 73 74 61 20 64 72 61 20 |states. sta dra | 00000400: 3B 63 65 A0 74 72 75 65 2C A0 73 63 6C 6B A0 6C |;ce.true,.sclk.l| 00000410: 6F 77 0D 2A 0D 2A 0D 2A 0D 2A A0 72 65 61 64 A0 |ow.*.*.*.*.read.| 00000420: 72 6F 75 74 69 6E 65 0D 2A 0D 20 6C 64 61 20 23 |routine.*. lda #| 00000430: 24 64 63 30 66 20 3B 72 65 61 64 A0 63 72 62 A0 |$dc0f ;read.crb.| 00000440: 66 6F 72 A0 63 75 72 72 65 6E 74 A0 73 65 74 74 |for.current.sett| 00000450: 69 6E 67 0D 20 73 74 61 20 74 6D 70 31 20 3B 73 |ing. sta tmp1 ;s| 00000460: 61 76 65 A0 69 74 A0 66 6F 72 A0 6E 6F 77 0D 20 |ave.it.for.now. | 00000470: 61 6E 64 20 23 24 37 66 20 3B 74 6F 64 A0 73 65 |and #$7f ;tod.se| 00000480: 6C 65 63 74 0D 20 73 74 61 20 24 64 63 30 66 20 |lect. sta $dc0f | 00000490: 3B 73 74 6F 72 65 A0 69 74 0D 20 6A 73 72 20 73 |;store.it. jsr s| 000004A0: 6C 63 74 20 3B 73 65 6C 65 63 74 A0 63 6C 6F 63 |lct ;select.cloc| 000004B0: 6B A0 63 68 69 70 0D 20 6A 73 72 20 72 64 62 79 |k.chip. jsr rdby| 000004C0: 74 20 3B 72 65 61 64 A0 73 65 63 73 2F 31 30 30 |t ;read.secs/100| 000004D0: 0D 20 6C 73 72 20 20 3B 73 68 69 66 74 A0 72 69 |. lsr ;shift.ri| 000004E0: 67 68 74 A0 34 A0 70 6C 61 63 65 73 0D 20 6C 73 |ght.4.places. ls| 000004F0: 72 20 20 3B 0D 20 6C 73 72 20 20 3B 0D 20 6C 73 |r ;. lsr ;. ls| 00000500: 72 20 20 3B 0D 20 73 74 61 20 68 73 65 63 73 20 |r ;. sta hsecs | 00000510: 3B 73 61 76 65 A0 66 6F 72 A0 6E 6F 77 0D 20 6A |;save.for.now. j| 00000520: 73 72 20 72 64 62 79 74 20 3B 72 65 61 64 A0 73 |sr rdbyt ;read.s| 00000530: 65 63 73 0D 20 73 74 61 20 73 65 63 73 20 3B 73 |ecs. sta secs ;s| 00000540: 61 76 65 A0 66 6F 72 A0 6E 6F 77 0D 20 6A 73 72 |ave.for.now. jsr| 00000550: 20 72 64 62 79 74 20 3B 72 65 61 64 A0 6D 69 6E | rdbyt ;read.min| 00000560: 73 0D 20 73 74 61 20 6D 69 6E 73 20 3B 73 61 76 |s. sta mins ;sav| 00000570: 65 A0 69 74 A0 66 6F 72 A0 6E 6F 77 0D 20 6A 73 |e.it.for.now. js| 00000580: 72 20 72 64 62 79 74 20 3B 72 65 61 64 A0 68 6F |r rdbyt ;read.ho| 00000590: 75 72 73 0D 20 74 61 78 20 20 3B 74 72 61 6E 73 |urs. tax ;trans| 000005A0: 66 65 72 A0 74 6F A0 78 A0 72 65 67 2E 0D 20 61 |fer.to.x.reg.. a| 000005B0: 6E 64 20 23 24 31 66 20 3B 63 6C 65 61 72 A0 33 |nd #$1f ;clear.3| 000005C0: A0 6D 73 62 27 73 0D 20 63 6D 70 20 23 24 31 32 |.msb's. cmp #$12| 000005D0: 20 3B 69 73 A0 69 74 A0 74 77 65 6C 76 65 3F 0D | ;is.it.twelve?.| 000005E0: 20 62 6E 65 20 6E 6F 77 61 79 20 3B 6E 6F A0 69 | bne noway ;no.i| 000005F0: 74 A0 69 73 6E 27 74 A0 74 77 65 6C 76 65 0D 20 |t.isn't.twelve. | 00000600: 74 78 61 20 20 3B 72 65 74 72 69 65 76 65 0D 20 |txa ;retrieve. | 00000610: 65 6F 72 20 23 24 32 30 20 3B 74 6F 67 67 6C 65 |eor #$20 ;toggle| 00000620: A0 61 6D 2F 70 6D A0 62 69 74 0D 20 74 61 78 0D |.am/pm.bit. tax.| 00000630: 6E 6F 77 61 79 20 74 78 61 20 20 3B 72 65 74 72 |noway txa ;retr| 00000640: 69 65 76 65 0D 20 61 6E 64 20 23 24 31 66 20 3B |ieve. and #$1f ;| 00000650: 63 6C 65 61 72 A0 33 A0 6D 73 62 27 73 0D 20 73 |clear.3.msb's. s| 00000660: 74 61 20 68 6F 75 72 73 0D 20 74 78 61 20 20 3B |ta hours. txa ;| 00000670: 72 65 74 72 69 65 76 65 A0 69 74 A0 66 72 6F 6D |retrieve.it.from| 00000680: A0 78 A0 72 65 67 0D 20 61 6E 64 20 23 24 32 30 |.x.reg. and #$20| 00000690: 20 3B 69 73 6F 6C 61 74 65 A0 61 6D 2F 70 6D A0 | ;isolate.am/pm.| 000006A0: 62 69 74 0D 20 61 73 6C 0D 20 61 73 6C 0D 20 6F |bit. asl. asl. o| 000006B0: 72 61 20 68 6F 75 72 73 20 3B 70 75 74 A0 68 6F |ra hours ;put.ho| 000006C0: 75 72 73 A0 62 61 63 6B A0 69 6E 0D 20 73 74 61 |urs.back.in. sta| 000006D0: 20 74 6D 70 32 20 3B 73 61 76 65 A0 69 74 A0 66 | tmp2 ;save.it.f| 000006E0: 6F 72 A0 6C 61 74 65 72 0D 20 73 74 61 20 24 64 |or.later. sta $d| 000006F0: 63 30 62 20 3B 73 61 76 65 A0 74 6F A0 74 68 65 |c0b ;save.to.the| 00000700: A0 63 69 61 A0 74 6F 64 0D 20 63 6D 70 20 23 24 |.cia.tod. cmp #$| 00000710: 31 32 20 3B 69 73 A0 69 74 A0 74 77 65 6C 76 65 |12 ;is.it.twelve| 00000720: 3F 0D 20 62 6E 65 20 74 65 73 74 20 3B 6E 6F 3F |?. bne test ;no?| 00000730: A0 67 6F 74 6F A0 74 65 73 74 0D 20 6C 64 61 20 |.goto.test. lda | 00000740: 23 24 30 20 3B 6F 74 68 65 72 77 69 73 65 A0 73 |#$0 ;otherwise.s| 00000750: 65 74 A0 68 6F 75 72 A0 74 6F A0 30 0D 74 65 73 |et.hour.to.0.tes| 00000760: 74 20 62 69 74 20 74 6D 70 32 20 3B 61 6D 2F 70 |t bit tmp2 ;am/p| 00000770: 6D A0 74 65 73 74 0D 20 62 70 6C 20 69 74 73 61 |m.test. bpl itsa| 00000780: 6D 20 3B 6F 6E A0 61 6D A0 67 6F 74 6F A0 69 74 |m ;on.am.goto.it| 00000790: 73 61 6D 0D 20 73 65 64 20 20 3B 64 65 63 69 6D |sam. sed ;decim| 000007A0: 61 6C A0 6D 6F 64 65 0D 20 63 6C 63 20 20 3B 63 |al.mode. clc ;c| 000007B0: 6C 65 61 72 A0 63 61 72 72 79 0D 20 61 64 63 20 |lear.carry. adc | 000007C0: 23 24 31 32 20 3B 6D 61 6B 65 A0 69 74 A0 32 34 |#$12 ;make.it.24| 000007D0: A0 68 72 A0 63 6C 6F 63 6B A0 66 6F 72 6D 61 74 |.hr.clock.format| 000007E0: 0D 20 63 6C 64 20 20 3B 6C 65 61 76 65 A0 64 65 |. cld ;leave.de| 000007F0: 63 69 6D 61 6C A0 6D 6F 64 65 0D 69 74 73 61 6D |cimal.mode.itsam| 00000800: 20 6A 73 72 20 62 63 64 74 68 78 20 3B 63 6F 6E | jsr bcdthx ;con| 00000810: 76 65 72 74 A0 74 6F A0 68 65 78 0D 20 73 74 61 |vert.to.hex. sta| 00000820: 20 24 38 35 31 39 20 3B 73 61 76 65 A0 74 6F A0 | $8519 ;save.to.| 00000830: 67 65 6F 73 A0 68 6F 75 72 73 0D 20 6C 64 61 20 |geos.hours. lda | 00000840: 6D 69 6E 73 20 3B 72 65 74 72 69 65 76 65 A0 6D |mins ;retrieve.m| 00000850: 69 6E 75 74 65 73 0D 20 73 74 61 20 24 64 63 30 |inutes. sta $dc0| 00000860: 61 20 3B 73 61 76 65 A0 74 6F A0 74 6F 64 0D 20 |a ;save.to.tod. | 00000870: 6A 73 72 20 62 63 64 74 68 78 20 3B 63 6F 6E 76 |jsr bcdthx ;conv| 00000880: 65 72 74 A0 74 6F A0 68 65 78 0D 20 73 74 61 20 |ert.to.hex. sta | 00000890: 24 38 35 31 61 20 3B 73 61 76 65 A0 74 6F A0 67 |$851a ;save.to.g| 000008A0: 65 6F 73 A0 6D 69 6E 73 0D 20 6C 64 61 20 73 65 |eos.mins. lda se| 000008B0: 63 73 20 3B 72 65 74 72 69 65 76 65 A0 73 65 63 |cs ;retrieve.sec| 000008C0: 6F 6E 64 73 0D 20 73 74 61 20 24 64 63 30 39 20 |onds. sta $dc09 | 000008D0: 3B 73 61 76 65 A0 74 6F A0 74 6F 64 0D 20 6A 73 |;save.to.tod. js| 000008E0: 72 20 62 63 64 74 68 78 20 3B 63 6F 6E 76 65 72 |r bcdthx ;conver| 000008F0: 74 A0 74 6F A0 68 65 78 0D 20 73 74 61 20 24 38 |t.to.hex. sta $8| 00000900: 35 31 62 20 3B 73 61 76 65 A0 74 6F A0 67 65 6F |51b ;save.to.geo| 00000910: 73 A0 73 65 63 73 0D 20 6C 64 61 20 68 73 65 63 |s.secs. lda hsec| 00000920: 73 20 3B 72 65 74 72 69 65 76 65 A0 73 65 63 73 |s ;retrieve.secs| 00000930: 2F 31 30 30 0D 20 73 74 61 20 24 64 63 30 38 20 |/100. sta $dc08 | 00000940: 3B 26 A0 73 74 61 72 74 A0 75 70 A0 74 68 65 A0 |;&.start.up.the.| 00000950: 74 6F 64 A0 63 6C 6F 63 6B 0D 20 6A 73 72 20 62 |tod.clock. jsr b| 00000960: 63 64 74 68 78 20 3B 63 6F 6E 76 65 72 74 0D 20 |cdthx ;convert. | 00000970: 73 74 61 20 24 38 35 31 63 20 3B 73 61 76 65 A0 |sta $851c ;save.| 00000980: 74 6F A0 67 65 6F 73 A0 73 65 63 73 2F 31 30 30 |to.geos.secs/100| 00000990: 0D 20 6A 73 72 20 72 64 62 79 74 20 3B 72 65 61 |. jsr rdbyt ;rea| 000009A0: 64 A0 64 61 79 A0 26 A0 69 67 6E 6F 72 65 0D 20 |d.day.&.ignore. | 000009B0: 6A 73 72 20 72 64 62 79 74 20 3B 72 65 61 64 A0 |jsr rdbyt ;read.| 000009C0: 64 61 74 65 0D 20 6A 73 72 20 62 63 64 74 68 78 |date. jsr bcdthx| 000009D0: 20 3B 63 6F 6E 76 65 72 74 A0 74 6F A0 68 65 78 | ;convert.to.hex| 000009E0: 0D 20 73 74 61 20 24 38 35 31 38 20 3B 73 61 76 |. sta $8518 ;sav| 000009F0: 65 A0 74 6F A0 67 65 6F 73 A0 64 61 79 0D 20 6A |e.to.geos.day. j| 00000A00: 73 72 20 72 64 62 79 74 20 3B 72 65 61 64 A0 6D |sr rdbyt ;read.m| 00000A10: 6F 6E 74 68 0D 20 6A 73 72 20 62 63 64 74 68 78 |onth. jsr bcdthx| 00000A20: 20 3B 63 6F 6E 76 65 72 74 A0 74 6F A0 68 65 78 | ;convert.to.hex| 00000A30: 0D 20 73 74 61 20 24 38 35 31 37 20 3B 73 61 76 |. sta $8517 ;sav| 00000A40: 65 A0 74 6F A0 67 65 6F 73 A0 6D 6F 6E 74 68 0D |e.to.geos.month.| 00000A50: 20 6A 73 72 20 72 64 62 79 74 20 3B 72 65 61 64 | jsr rdbyt ;read| 00000A60: A0 79 65 61 72 0D 20 6A 73 72 20 62 63 64 74 68 |.year. jsr bcdth| 00000A70: 78 20 3B 63 6F 6E 76 65 72 74 A0 74 6F A0 68 65 |x ;convert.to.he| 00000A80: 78 0D 20 73 74 61 20 24 38 35 31 36 20 3B 73 61 |x. sta $8516 ;sa| 00000A90: 76 65 A0 74 6F A0 67 65 6F 73 A0 79 65 61 72 0D |ve.to.geos.year.| 00000AA0: 20 6C 64 61 20 23 24 65 20 3B 64 65 73 65 6C 65 | lda #$e ;desele| 00000AB0: 63 74 A0 74 68 65 A0 63 68 69 70 0D 20 73 74 61 |ct.the.chip. sta| 00000AC0: 20 64 72 61 0D 66 69 6E 69 73 68 20 70 6C 61 20 | dra.finish pla | 00000AD0: 20 3B 67 65 74 A0 6F 6C 64 A0 6D 65 6D A0 63 6F | ;get.old.mem.co| 00000AE0: 6E 66 69 67 0D 20 73 74 61 20 24 30 31 20 3B 73 |nfig. sta $01 ;s| 00000AF0: 65 74 A0 69 74 0D 20 63 6C 69 20 20 3B 65 6E 61 |et.it. cli ;ena| 00000B00: 62 6C 65 A0 69 6E 74 65 72 72 75 70 74 73 0D 20 |ble.interrupts. | 00000B10: 6A 73 72 20 24 63 32 32 63 20 3B 72 65 6C 6F 61 |jsr $c22c ;reloa| 00000B20: 64 A0 64 65 73 6B 74 6F 70 0D 2A 0D 2A 0D 2A 0D |d.desktop.*.*.*.| 00000B30: 2A 0D 2A A0 77 72 69 74 65 A0 61 A0 62 79 74 65 |*.*.write.a.byte| 00000B40: A0 74 6F A0 74 68 65 A0 72 74 63 0D 2A 0D 77 72 |.to.the.rtc.*.wr| 00000B50: 74 62 79 74 20 74 61 78 20 20 3B 73 61 76 65 A0 |tbyt tax ;save.| 00000B60: 64 61 74 61 A0 62 79 74 65 0D 20 6C 64 79 20 23 |data.byte. ldy #| 00000B70: 24 38 20 3B 73 65 74 A0 75 70 A0 63 6F 75 6E 74 |$8 ;set.up.count| 00000B80: 0D 20 6C 64 61 20 23 24 65 20 3B 69 6E 69 74 69 |. lda #$e ;initi| 00000B90: 61 6C A0 63 6F 6E 66 69 67 0D 20 73 74 61 20 64 |al.config. sta d| 00000BA0: 72 61 20 3B 6F 75 74 70 75 74 A0 65 6E 61 62 6C |ra ;output.enabl| 00000BB0: 65 A0 6F 66 66 0D 20 74 78 61 20 20 3B 72 65 74 |e.off. txa ;ret| 00000BC0: 72 69 65 76 65 A0 64 61 74 61 0D 77 6C 6F 6F 70 |rieve.data.wloop| 00000BD0: 20 61 6E 64 20 23 24 31 20 3B 63 6C 72 A0 61 6C | and #$1 ;clr.al| 00000BE0: 6C A0 62 75 74 A0 6C 73 62 0D 20 6F 72 61 20 23 |l.but.lsb. ora #| 00000BF0: 24 34 20 3B 73 65 74 A0 75 70 A0 66 6F 72 A0 77 |$4 ;set.up.for.w| 00000C00: 72 69 74 65 0D 20 73 74 61 20 64 72 61 0D 20 6F |rite. sta dra. o| 00000C10: 72 61 20 23 24 65 20 3B 77 72 69 74 65 A0 64 61 |ra #$e ;write.da| 00000C20: 74 61 A0 62 69 74 0D 20 73 74 61 20 64 72 61 0D |ta.bit. sta dra.| 00000C30: 20 64 65 79 20 20 3B 64 65 63 72 65 6D 65 6E 74 | dey ;decrement| 00000C40: A0 63 6F 75 6E 74 0D 20 62 65 71 20 77 64 6F 6E |.count. beq wdon| 00000C50: 65 20 3B 66 69 6E 69 73 68 65 64 3F 0D 20 74 78 |e ;finished?. tx| 00000C60: 61 20 20 3B 67 65 74 A0 64 61 74 61 0D 20 6C 73 |a ;get.data. ls| 00000C70: 72 20 20 3B 73 65 6C 65 63 74 A0 6E 65 78 74 A0 |r ;select.next.| 00000C80: 62 69 74 0D 20 74 61 78 20 20 3B 73 61 76 65 A0 |bit. tax ;save.| 00000C90: 6E 65 77 A0 64 61 74 61 0D 20 6A 6D 70 20 77 6C |new.data. jmp wl| 00000CA0: 6F 6F 70 20 3B 6C 6F 6F 70 0D 77 64 6F 6E 65 20 |oop ;loop.wdone | 00000CB0: 72 74 73 0D 2A 0D 2A 0D 2A 0D 2A 0D 2A A0 72 65 |rts.*.*.*.*.*.re| 00000CC0: 61 64 A0 61 A0 62 79 74 65 A0 66 72 6F 6D A0 74 |ad.a.byte.from.t| 00000CD0: 68 65 A0 72 74 63 0D 2A 0D 72 64 62 79 74 20 6C |he.rtc.*.rdbyt l| 00000CE0: 64 61 20 23 24 65 20 3B 63 6F 6E 66 69 67 A0 6C |da #$e ;config.l| 00000CF0: 73 62 A0 61 73 A0 69 2F 70 0D 20 73 74 61 20 64 |sb.as.i/p. sta d| 00000D00: 64 72 61 20 3B 0D 20 6C 64 61 20 23 24 30 20 3B |dra ;. lda #$0 ;| 00000D10: 0D 20 73 74 61 20 74 65 6D 70 20 3B 63 6C 72 A0 |. sta temp ;clr.| 00000D20: 74 65 6D 70 0D 20 6C 64 78 20 23 24 38 20 3B 63 |temp. ldx #$8 ;c| 00000D30: 6F 75 6E 74 3D 38 0D 72 6C 6F 6F 70 20 6C 64 61 |ount=8.rloop lda| 00000D40: 20 23 24 65 20 3B 73 65 74 75 70 A0 66 6F 72 A0 | #$e ;setup.for.| 00000D50: 72 65 61 64 0D 20 73 74 61 20 64 72 61 20 3B 61 |read. sta dra ;a| 00000D60: 6C 6C A0 6F 2F 70 A0 62 69 74 73 A0 68 69 0D A0 |ll.o/p.bits.hi..| 00000D70: 20 6C 64 61 20 23 24 32 20 3B 65 6E 61 62 6C 65 | lda #$2 ;enable| 00000D80: A0 64 61 74 61 A0 74 6F A0 72 65 61 64 0D 20 73 |.data.to.read. s| 00000D90: 74 61 20 64 72 61 0D 20 6C 64 61 20 64 72 61 20 |ta dra. lda dra | 00000DA0: 3B 72 65 61 64 A0 64 61 74 61 0D 20 72 6F 72 20 |;read.data. ror | 00000DB0: 61 20 3B 72 6F 74 61 74 65 A0 64 61 74 61 A0 62 |a ;rotate.data.b| 00000DC0: 69 74 A0 74 6F A0 63 0D 20 6C 64 61 20 74 65 6D |it.to.c. lda tem| 00000DD0: 70 20 3B 72 65 61 64 A0 74 65 6D 70 A0 74 6F A0 |p ;read.temp.to.| 00000DE0: 61 63 63 0D 20 72 6F 72 20 61 0D 20 73 74 61 20 |acc. ror a. sta | 00000DF0: 74 65 6D 70 20 3B 73 61 76 65 A0 74 65 6D 70 0D |temp ;save.temp.| 00000E00: 20 64 65 78 20 20 3B 75 70 64 61 74 65 A0 63 6F | dex ;update.co| 00000E10: 75 6E 74 0D 20 62 6E 65 20 72 6C 6F 6F 70 0D 20 |unt. bne rloop. | 00000E20: 6C 64 61 20 74 65 6D 70 20 3B 74 65 6D 70 A0 74 |lda temp ;temp.t| 00000E30: 6F A0 61 63 63 0D 20 72 74 73 0D 2A 0D 2A 0D 2A |o.acc. rts.*.*.*| 00000E40: 0D 2A 0D 2A A0 62 63 64 A0 74 6F A0 68 65 78 A0 |.*.*.bcd.to.hex.| 00000E50: 63 6F 6E 76 65 72 74 A0 72 6F 75 74 69 6E 65 0D |convert.routine.| 00000E60: 2A A0 A0 74 68 61 6E 6B 73 A0 74 6F A0 62 73 77 |*..thanks.to.bsw| 00000E70: A0 66 6F 72 A0 74 68 65 A0 68 65 6C 70 0D 2A 0D |.for.the.help.*.| 00000E80: 2A 0D 62 63 64 74 68 78 20 70 68 61 20 20 3B 73 |*.bcdthx pha ;s| 00000E90: 61 76 65 A0 62 63 64 A0 76 61 6C 75 65 0D 20 61 |ave.bcd.value. a| 00000EA0: 6E 64 20 23 24 66 30 20 3B 69 73 6F 6C 61 74 65 |nd #$f0 ;isolate| 00000EB0: A0 6C 65 66 74 A0 6E 69 62 62 6C 65 0D 20 6C 73 |.left.nibble. ls| 00000EC0: 72 20 20 3B 61 6E 64 A0 73 68 69 66 74 A0 74 6F |r ;and.shift.to| 00000ED0: A0 72 68 73 0D 20 6C 73 72 0D 20 6C 73 72 0D 20 |.rhs. lsr. lsr. | 00000EE0: 6C 73 72 0D 20 74 61 78 20 20 3B 6D 61 72 6B A0 |lsr. tax ;mark.| 00000EF0: 6E 75 6D 62 65 72 0D 20 70 6C 61 20 20 3B 67 65 |number. pla ;ge| 00000F00: 74 A0 62 63 64 A0 76 61 6C 75 65 0D 20 61 6E 64 |t.bcd.value. and| 00000F10: 20 23 24 30 66 20 3B 63 6C 65 61 72 A0 6C 65 66 | #$0f ;clear.lef| 00000F20: 74 A0 6E 69 62 62 6C 65 0D 20 63 6C 63 20 20 3B |t.nibble. clc ;| 00000F30: 61 64 64 A0 78 A0 74 69 6D 65 73 A0 31 30 0D 62 |add.x.times.10.b| 00000F40: 68 6C 6F 6F 70 20 64 65 78 0D 20 62 6D 69 20 62 |hloop dex. bmi b| 00000F50: 68 78 6F 75 74 0D 20 61 64 63 20 23 24 30 61 0D |hxout. adc #$0a.| 00000F60: 20 62 6E 65 20 62 68 6C 6F 6F 70 0D 62 68 78 6F | bne bhloop.bhxo| 00000F70: 75 74 20 72 74 73 0D 2A 0D 2A 0D 2A 0D 2A 0D 2A |ut rts.*.*.*.*.*| 00000F80: 0D 2A 0D 2A 0D 2A 0D 2A 73 65 6C 65 63 74 A0 63 |.*.*.*.*select.c| 00000F90: 6C 6F 63 6B A0 63 68 69 70 0D 2A 0D 2A 0D 2A 0D |lock.chip.*.*.*.| 00000FA0: 73 6C 63 74 20 6C 64 61 20 23 24 65 20 3B 72 65 |slct lda #$e ;re| 00000FB0: 61 64 A0 63 79 63 6C 65 A0 74 6F A0 73 74 61 72 |ad.cycle.to.star| 00000FC0: 74 A0 64 61 6C 6C 61 73 A0 63 68 69 70 0D 20 73 |t.dallas.chip. s| 00000FD0: 74 61 20 64 72 61 0D 20 6C 64 61 20 23 24 32 0D |ta dra. lda #$2.| 00000FE0: 20 73 74 61 20 64 72 61 0D 20 6C 64 61 20 23 24 | sta dra. lda #$| 00000FF0: 65 0D 20 73 74 61 20 64 72 61 0D 20 6C 64 61 20 |e. sta dra. lda | 00001000: 23 24 32 20 3B 6C 6F 6F 70 A0 63 6F 75 6E 74 0D |#$2 ;loop.count.| 00001010: 20 73 74 61 20 63 6F 75 6E 74 0D 73 6C 6F 6F 70 | sta count.sloop| 00001020: 20 6C 64 61 20 23 24 63 35 0D 20 6A 73 72 20 77 | lda #$c5. jsr w| 00001030: 72 74 62 79 74 0D 20 6C 64 61 20 23 24 33 61 0D |rtbyt. lda #$3a.| 00001040: 20 6A 73 72 20 77 72 74 62 79 74 0D 20 6C 64 61 | jsr wrtbyt. lda| 00001050: 20 23 24 61 33 0D 20 6A 73 72 20 77 72 74 62 79 | #$a3. jsr wrtby| 00001060: 74 0D 20 6C 64 61 20 23 24 35 63 0D 20 6A 73 72 |t. lda #$5c. jsr| 00001070: 20 77 72 74 62 79 74 0D 20 64 65 63 20 63 6F 75 | wrtbyt. dec cou| 00001080: 6E 74 20 3B 64 65 63 72 65 6D 65 6E 74 A0 63 6F |nt ;decrement.co| 00001090: 75 6E 74 0D 20 62 6E 65 20 73 6C 6F 6F 70 0D 20 |unt. bne sloop. | 000010A0: 72 74 73 0D |rts. |
********************************.* READ
OF REAL TIME CLOCK #2.0 *.**************
******************.*
*.* MAY 29 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.HSECS EQU $4576.COUNT EQU $45
77.*.*.*.*.*. LDA $01 ;GET MEM CONFIG. P
HA ;SAVE IT. LDA #$35 ;TURN ON I/O REGI
ON. STA $01.START SEI ;INT OFF.RDRTC LD
A DRA ;READ DRA. STA $02 ;SAVE IT. LDA D
DRA ;READ DDRA. STA $03 ;SAVE IT. LDA #$
F ;LOAD NEW CONFIG. STA DDRA ;4 O/P'S. L
DA #$F ;STATES. STA DRA ;CE TRUE, SCLK L
OW.*.*.*.* READ ROUTINE.*. LDA #$DC0F ;R
EAD CRB FOR CURRENT SETTING. STA TMP1 ;S
AVE IT FOR NOW. AND #$7F ;TOD SELECT. ST
A $DC0F ;STORE IT. JSR SLCT ;SELECT CLOC
K CHIP. JSR RDBYT ;READ SECS/100. LSR ;
SHIFT RIGHT 4 PLACES. LSR ;. LSR ;. LS
R ;. STA HSECS ;SAVE FOR NOW. JSR RDBYT
;READ SECS. STA SECS ;SAVE FOR NOW. JSR
RDBYT ;READ MINS. STA MINS ;SAVE IT FOR
NOW. JSR RDBYT ;READ HOURS. TAX ;TRANS
FER TO X REG.. AND #$1F ;CLEAR 3 MSB'S.
CMP #$12 ;IS IT TWELVE?. BNE NOWAY ;NO I
T ISN'T TWELVE. TXA ;RETRIEVE. EOR #$20
;TOGGLE AM/PM BIT. TAX.NOWAY TXA ;RETR
IEVE. AND #$1F ;CLEAR 3 MSB'S. STA HOURS
. TXA ;RETRIEVE IT FROM X REG. AND #$20
;ISOLATE AM/PM BIT. ASL. ASL. ORA HOURS
;PUT HOURS BACK IN. STA TMP2 ;SAVE IT F
OR LATER. 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 ITSA
M ;ON AM GOTO ITSAM. SED ;DECIMAL MODE.
CLC ;CLEAR CARRY. ADC #$12 ;MAKE IT 24
HR CLOCK FORMAT. CLD ;LEAVE DECIMAL MO
DE.ITSAM JSR BCDTHX ;CONVERT TO HEX. STA
$8519 ;SAVE TO GEOS HOURS. LDA MINS ;RE
TRIEVE MINUTES. STA $DC0A ;SAVE TO TOD.
JSR BCDTHX ;CONVERT TO HEX. STA $851A ;S
AVE TO GEOS MINS. LDA SECS ;RETRIEVE SEC
ONDS. STA $DC09 ;SAVE TO TOD. JSR BCDTHX
;CONVERT TO HEX. STA $851B ;SAVE TO GEO
S SECS. LDA HSECS ;RETRIEVE SECS/100. ST
A $DC08 ;& START UP THE TOD CLOCK. JSR B
CDTHX ;CONVERT. STA $851C ;SAVE TO GEOS
SECS/100. JSR RDBYT ;READ DAY & IGNORE.
JSR RDBYT ;READ DATE. JSR BCDTHX ;CONVER
T TO HEX. STA $8518 ;SAVE TO GEOS DAY. J
SR RDBYT ;READ MONTH. JSR BCDTHX ;CONVER
T TO HEX. STA $8517 ;SAVE TO GEOS MONTH.
JSR RDBYT ;READ YEAR. JSR BCDTHX ;CONVE
RT TO HEX. STA $8516 ;SAVE TO GEOS YEAR.
LDA #$E ;DESELECT THE CHIP. STA DRA.FIN
ISH PLA ;GET OLD MEM CONFIG. STA $01 ;S
ET IT. CLI ;ENABLE INTERRUPTS. JSR $C22
C ;RELOAD DESKTOP.*.*.*.*.* WRITE A BYTE
TO THE RTC.*.WRTBYT TAX ;SAVE DATA BYT
E. LDY #$8 ;SET UP COUNT. LDA #$E ;INITI
AL CONFIG. STA DRA ;OUTPUT ENABLE OFF. T
XA ;RETRIEVE DATA.WLOOP AND #$1 ;CLR AL
L BUT LSB. ORA #$4 ;SET UP FOR WRITE. ST
A DRA. ORA #$E ;WRITE DATA BIT. STA DRA.
DEY ;DECREMENT COUNT. BEQ WDONE ;FINIS
HED?. TXA ;GET DATA. LSR ;SELECT NEXT
BIT. TAX ;SAVE NEW DATA. JMP WLOOP ;LOO
P.WDONE RTS.*.*.*.*.* READ A BYTE FROM T
HE RTC.*.RDBYT LDA #$E ;CONFIG LSB AS I/
P. STA DDRA ;. LDA #$0 ;. STA TEMP ;CLR
TEMP. LDX #$8 ;COUNT=8.RLOOP LDA #$E ;SE
TUP FOR READ. STA DRA ;ALL O/P BITS HI.
LDA #$2 ;ENABLE DATA TO READ. STA DRA.
LDA DRA ;READ DATA. ROR A ;ROTATE DATA B
IT TO C. LDA TEMP ;READ TEMP TO ACC. ROR
A. STA TEMP ;SAVE TEMP. DEX ;UPDATE CO
UNT. BNE RLOOP. LDA TEMP ;TEMP TO ACC. R
TS.*.*.*.*.* BCD TO HEX CONVERT ROUTINE.
* THANKS TO BSW FOR THE HELP.*.*.BCDTHX
PHA ;SAVE BCD VALUE. AND #$F0 ;ISOLATE
LEFT NIBBLE. LSR ;AND SHIFT TO RHS. LS
R. LSR. LSR. TAX ;MARK NUMBER. PLA ;GE
T BCD VALUE. AND #$0F ;CLEAR LEFT NIBBLE
. CLC ;ADD X TIMES 10.BHLOOP DEX. BMI B
HXOUT. ADC #$0A. BNE BHLOOP.BHXOUT RTS.*
.*.*.*.*.*.*.*.*SELECT CLOCK CHIP.*.*.*.
SLCT LDA #$E ;READ CYCLE TO START DALLAS
CHIP. STA DRA. LDA #$2. STA DRA. LDA #$
E. STA DRA. LDA #$2 ;LOOP COUNT. STA COU
NT.SLOOP LDA #$C5. JSR WRTBYT. LDA #$3A.
JSR WRTBYT. LDA #$A3. JSR WRTBYT. LDA #
$5C. JSR WRTBYT. DEC COUNT ;DECREMENT CO
UNT. BNE SLOOP. RTS.
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL