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

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 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL