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

WRITE.2.0─

FILE INFORMATION

FILENAME(S): WRITE.2.0─

FILE TYPE(S): PRG

FILE SIZE: 3K

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

APPEARS ON: 1 disk(s)

FILE HASH

613db2639b799e404200f3edaeac458cf1ac45916b546a360b0340c8724e0a82

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
TIM S TIMER 2 0 WRITE.2.0─ PRG The BAM Archive 11 11 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 23 32 2E 30 A0 2A 0D  |me.clock.#2.0.*.|
00000040: 2A A0 A0 A0 A0 A0 A0 64  61 6C 6C 61 73 A0 76 65  |*......dallas.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 32 39 A0 A0 31  |.......may.29..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 73 65 63 73  |2 equ $4573.secs|
00000280: 20 65 71 75 20 24 34 35  37 34 0D 6D 69 6E 73 20  | equ $4574.mins |
00000290: 65 71 75 20 24 34 35 37  35 0D 63 6F 75 6E 74 20  |equ $4575.count |
000002A0: 65 71 75 20 24 34 35 37  36 0D 2A 0D 2A 0D 2A 0D  |equ $4576.*.*.*.|
000002B0: 2A 0D 20 6C 64 61 20 24  30 31 20 3B 67 65 74 A0  |*. lda $01 ;get.|
000002C0: 6D 65 6D A0 63 6F 6E 66  69 67 0D 20 70 68 61 20  |mem.config. pha |
000002D0: 20 3B 73 61 76 65 A0 69  74 0D 20 6C 64 61 20 23  | ;save.it. lda #|
000002E0: 24 33 35 20 3B 74 75 72  6E A0 6F 6E A0 69 2F 6F  |$35 ;turn.on.i/o|
000002F0: A0 72 65 67 69 6F 6E 0D  20 73 74 61 20 24 30 31  |.region. sta $01|
00000300: 0D 20 73 65 69 20 20 3B  69 6E 74 A0 6F 66 66 0D  |. sei  ;int.off.|
00000310: 20 6C 64 61 20 64 72 61  20 3B 72 65 61 64 A0 64  | lda dra ;read.d|
00000320: 72 61 0D 20 73 74 61 20  74 6D 70 31 20 3B 73 61  |ra. sta tmp1 ;sa|
00000330: 76 65 A0 69 74 0D 20 6C  64 61 20 64 64 72 61 20  |ve.it. lda ddra |
00000340: 3B 72 65 61 64 A0 64 64  72 61 0D 20 73 74 61 20  |;read.ddra. sta |
00000350: 74 6D 70 32 0D 20 6C 64  61 20 23 24 66 20 3B 6E  |tmp2. lda #$f ;n|
00000360: 65 77 A0 63 6F 6E 66 69  67 75 72 61 74 69 6F 6E  |ew.configuration|
00000370: 0D 20 73 74 61 20 64 64  72 61 20 3B 61 6C 6C A0  |. sta ddra ;all.|
00000380: 6F 2F 70 27 73 0D 20 6C  64 61 20 23 24 65 20 3B  |o/p's. lda #$e ;|
00000390: 69 6E 69 74 69 61 6C A0  73 74 61 74 65 A0 6F 66  |initial.state.of|
000003A0: A0 69 2F 6F 0D 20 73 74  61 20 64 72 61 20 3B 61  |.i/o. sta dra ;a|
000003B0: 6C 6C A0 6C 69 6E 65 73  A0 66 61 6C 73 65 0D 2A  |ll.lines.false.*|
000003C0: 0D 2A 0D 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |.*.*************|
000003D0: 2A 2A 2A 2A 0D 2A A0 77  72 69 74 65 A0 72 6F 75  |****.*.write.rou|
000003E0: 74 69 6E 65 A0 2A 0D 2A  2A 2A 2A 2A 2A 2A 2A 2A  |tine.*.*********|
000003F0: 2A 2A 2A 2A 2A 2A 2A 2A  0D 2A 0D 2A 0D 20 6A 73  |********.*.*. js|
00000400: 72 20 73 6C 63 74 20 3B  73 65 6C 65 63 74 A0 74  |r slct ;select.t|
00000410: 68 65 A0 63 6C 6F 63 6B  A0 63 68 69 70 0D 20 6C  |he.clock.chip. l|
00000420: 64 61 20 24 64 63 30 62  20 3B 72 65 61 64 A0 68  |da $dc0b ;read.h|
00000430: 6F 75 72 73 A0 66 72 6F  6D A0 74 6F 64 0D 20 73  |ours.from.tod. s|
00000440: 74 61 20 74 65 6D 70 20  3B 73 74 6F 72 65 A0 69  |ta temp ;store.i|
00000450: 6E A0 74 65 6D 70 0D 20  6C 73 72 0D 20 6C 73 72  |n.temp. lsr. lsr|
00000460: 20 20 3B 62 72 69 6E 67  A0 70 6D A0 69 6E 74 6F  |  ;bring.pm.into|
00000470: A0 70 6C 61 63 65 0D 20  61 6E 64 20 23 24 32 30  |.place. and #$20|
00000480: 20 3B 69 73 6F 6C 61 74  65 A0 70 6D A0 62 69 74  | ;isolate.pm.bit|
00000490: 0D 20 6F 72 61 20 74 65  6D 70 20 3B 72 65 74 72  |. ora temp ;retr|
000004A0: 69 65 76 65 A0 68 6F 75  72 73 0D 20 61 6E 64 20  |ieve.hours. and |
000004B0: 23 24 33 66 20 3B 63 6C  65 61 72 A0 32 A0 6D 73  |#$3f ;clear.2.ms|
000004C0: 62 27 73 0D 20 6F 72 61  20 23 24 38 30 20 3B 73  |b's. ora #$80 ;s|
000004D0: 65 74 A0 31 32 2F 32 34  A0 62 69 74 0D 20 73 74  |et.12/24.bit. st|
000004E0: 61 20 68 6F 75 72 73 20  3B 73 61 76 65 A0 69 6E  |a hours ;save.in|
000004F0: A0 68 6F 75 72 73 0D 20  6C 64 61 20 24 64 63 30  |.hours. lda $dc0|
00000500: 39 20 3B 72 65 61 64 A0  73 65 63 73 A0 66 72 6F  |9 ;read.secs.fro|
00000510: 6D A0 63 69 61 0D 20 73  74 61 20 73 65 63 73 0D  |m.cia. sta secs.|
00000520: 20 6C 64 61 20 24 64 63  30 61 20 3B 72 65 61 64  | lda $dc0a ;read|
00000530: A0 6D 69 6E 75 74 65 73  0D 20 73 74 61 20 6D 69  |.minutes. sta mi|
00000540: 6E 73 0D 20 6C 64 61 20  24 64 63 30 38 20 3B 72  |ns. lda $dc08 ;r|
00000550: 65 61 64 A0 73 65 63 73  2F 31 30 30 A0 26 A0 63  |ead.secs/100.&.c|
00000560: 6C 6F 73 65 A0 63 69 61  A0 74 6F 64 0D 20 61 73  |lose.cia.tod. as|
00000570: 6C 20 20 3B 73 68 69 66  74 A0 72 69 67 68 74 A0  |l  ;shift.right.|
00000580: 34 A0 70 6C 61 63 65 73  0D 20 61 73 6C 0D 20 61  |4.places. asl. a|
00000590: 73 6C 0D 20 61 73 6C 0D  20 6A 73 72 20 77 72 74  |sl. asl. jsr wrt|
000005A0: 62 79 74 20 3B 77 72 69  74 65 A0 74 6F A0 63 6C  |byt ;write.to.cl|
000005B0: 6F 63 6B 0D 20 6C 64 61  20 73 65 63 73 20 3B 72  |ock. lda secs ;r|
000005C0: 65 61 64 A0 73 65 63 6F  6E 64 73 A0 66 72 6F 6D  |ead.seconds.from|
000005D0: A0 63 69 61 0D 20 6A 73  72 20 77 72 74 62 79 74  |.cia. jsr wrtbyt|
000005E0: 0D 20 6C 64 61 20 6D 69  6E 73 20 3B 72 65 61 64  |. lda mins ;read|
000005F0: A0 6D 69 6E 75 74 65 73  A0 66 72 6F 6D A0 63 69  |.minutes.from.ci|
00000600: 61 0D 20 6A 73 72 20 77  72 74 62 79 74 0D 20 6C  |a. jsr wrtbyt. l|
00000610: 64 61 20 68 6F 75 72 73  20 3B 72 65 74 72 69 65  |da hours ;retrie|
00000620: 76 65 A0 68 6F 75 72 73  0D 20 6A 73 72 20 77 72  |ve.hours. jsr wr|
00000630: 74 62 79 74 0D 20 6C 64  61 20 23 24 30 20 3B 63  |tbyt. lda #$0 ;c|
00000640: 6C 65 61 72 A0 64 61 79  0D 20 6A 73 72 20 77 72  |lear.day. jsr wr|
00000650: 74 62 79 74 0D 20 6C 64  61 20 24 38 35 31 38 20  |tbyt. lda $8518 |
00000660: 3B 72 65 61 64 A0 64 61  74 65 A0 66 72 6F 6D A0  |;read.date.from.|
00000670: 67 65 6F 73 0D 20 6A 73  72 20 68 78 74 62 63 64  |geos. jsr hxtbcd|
00000680: 20 3B 63 6F 6E 76 65 72  74 A0 74 6F A0 62 63 64  | ;convert.to.bcd|
00000690: 0D 20 6A 73 72 20 77 72  74 62 79 74 0D 20 6C 64  |. jsr wrtbyt. ld|
000006A0: 61 20 24 38 35 31 37 20  3B 72 65 61 64 A0 6D 6F  |a $8517 ;read.mo|
000006B0: 6E 74 68 A0 66 72 6F 6D  A0 67 65 6F 73 0D 20 6A  |nth.from.geos. j|
000006C0: 73 72 20 68 78 74 62 63  64 20 3B 63 6F 6E 76 65  |sr hxtbcd ;conve|
000006D0: 72 74 A0 74 6F A0 62 63  64 0D 20 6A 73 72 20 77  |rt.to.bcd. jsr w|
000006E0: 72 74 62 79 74 0D 20 6C  64 61 20 24 38 35 31 36  |rtbyt. lda $8516|
000006F0: 20 3B 72 65 61 64 A0 79  65 61 72 0D 20 6A 73 72  | ;read.year. jsr|
00000700: 20 68 78 74 62 63 64 20  3B 63 6F 6E 76 65 72 74  | hxtbcd ;convert|
00000710: A0 74 6F A0 62 63 64 0D  20 6A 73 72 20 77 72 74  |.to.bcd. jsr wrt|
00000720: 62 79 74 0D 2A 0D 2A 0D  20 6C 64 61 20 74 6D 70  |byt.*.*. lda tmp|
00000730: 31 20 3B 72 65 73 74 6F  72 65 A0 64 72 61 A0 63  |1 ;restore.dra.c|
00000740: 6F 6E 66 69 67 75 72 61  74 69 6F 6E 0D 20 73 74  |onfiguration. st|
00000750: 61 20 64 72 61 0D 20 6C  64 61 20 74 6D 70 32 20  |a dra. lda tmp2 |
00000760: 3B 72 65 73 74 6F 72 65  A0 64 64 72 61 A0 63 6F  |;restore.ddra.co|
00000770: 6E 66 69 67 75 72 61 74  69 6F 6E 0D 20 73 74 61  |nfiguration. sta|
00000780: 20 64 64 72 61 0D 20 70  6C 61 20 20 3B 72 65 73  | ddra. pla  ;res|
00000790: 74 6F 72 65 A0 6F 6C 64  A0 6D 65 6D 6F 72 79 A0  |tore.old.memory.|
000007A0: 63 6F 6E 66 69 67 75 72  61 74 69 6F 6E 0D 20 73  |configuration. s|
000007B0: 74 61 20 24 30 31 0D 20  63 6C 69 0D 20 6A 6D 70  |ta $01. cli. jmp|
000007C0: 20 24 63 32 32 63 20 3B  72 65 6C 6F 61 64 A0 64  | $c22c ;reload.d|
000007D0: 65 73 6B 74 6F 70 0D 2A  0D 2A 0D 2A 2A 2A 2A 2A  |esktop.*.*.*****|
000007E0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000007F0: 2A 2A 2A 0D 2A A0 65 6E  64 A0 6F 66 A0 77 72 69  |***.*.end.of.wri|
00000800: 74 65 A0 72 6F 75 74 69  6E 65 A0 2A 0D 2A 2A 2A  |te.routine.*.***|
00000810: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000820: 2A 2A 2A 2A 2A 0D 0D 0D  2A 0D 2A 0D 2A 0D 2A 0D  |*****...*.*.*.*.|
00000830: 2A A0 77 72 69 74 65 A0  61 A0 62 79 74 65 A0 74  |*.write.a.byte.t|
00000840: 6F A0 74 68 65 A0 72 74  63 0D 2A 0D 77 72 74 62  |o.the.rtc.*.wrtb|
00000850: 79 74 20 74 61 78 20 20  3B 73 61 76 65 A0 64 61  |yt tax  ;save.da|
00000860: 74 61 A0 62 79 74 65 0D  20 6C 64 79 20 23 24 38  |ta.byte. ldy #$8|
00000870: 20 3B 73 65 74 A0 75 70  A0 63 6F 75 6E 74 0D 20  | ;set.up.count. |
00000880: 6C 64 61 20 23 24 65 20  3B 69 6E 69 74 69 61 6C  |lda #$e ;initial|
00000890: A0 63 6F 6E 66 69 67 0D  20 73 74 61 20 64 72 61  |.config. sta dra|
000008A0: 20 3B 6F 75 74 70 75 74  A0 65 6E 61 62 6C 65 A0  | ;output.enable.|
000008B0: 6F 66 66 0D 20 74 78 61  20 20 3B 72 65 74 72 69  |off. txa  ;retri|
000008C0: 65 76 65 A0 64 61 74 61  0D 77 6C 6F 6F 70 20 61  |eve.data.wloop a|
000008D0: 6E 64 20 23 24 30 31 20  3B 63 6C 72 A0 61 6C 6C  |nd #$01 ;clr.all|
000008E0: A0 62 75 74 A0 6C 73 62  0D 20 6F 72 61 20 23 24  |.but.lsb. ora #$|
000008F0: 34 20 3B 73 65 74 A0 75  70 A0 66 6F 72 A0 77 72  |4 ;set.up.for.wr|
00000900: 69 74 65 0D 20 73 74 61  20 64 72 61 0D 20 6F 72  |ite. sta dra. or|
00000910: 61 20 23 24 65 20 3B 77  72 69 74 65 A0 74 68 65  |a #$e ;write.the|
00000920: A0 62 69 74 0D 20 73 74  61 20 64 72 61 0D 20 64  |.bit. sta dra. d|
00000930: 65 79 20 20 3B 64 65 63  72 65 6D 65 6E 74 A0 63  |ey  ;decrement.c|
00000940: 6F 75 6E 74 0D 20 62 65  71 20 77 64 6F 6E 65 20  |ount. beq wdone |
00000950: 3B 66 69 6E 69 73 68 65  64 3F 0D 20 74 78 61 20  |;finished?. txa |
00000960: 20 3B 67 65 74 A0 64 61  74 61 0D 20 6C 73 72 20  | ;get.data. lsr |
00000970: 20 3B 73 65 6C 65 63 74  A0 6E 65 78 74 A0 62 69  | ;select.next.bi|
00000980: 74 0D 20 74 61 78 20 20  3B 73 61 76 65 A0 64 61  |t. tax  ;save.da|
00000990: 74 61 A0 61 67 61 69 6E  0D 20 6A 6D 70 20 77 6C  |ta.again. jmp wl|
000009A0: 6F 6F 70 20 3B 6C 6F 6F  70 0D 77 64 6F 6E 65 20  |oop ;loop.wdone |
000009B0: 72 74 73 0D 2A 0D 2A 0D  2A 0D 2A 0D 2A 0D 2A A0  |rts.*.*.*.*.*.*.|
000009C0: 68 65 78 A0 74 6F A0 62  63 64 A0 63 6F 6E 76 65  |hex.to.bcd.conve|
000009D0: 72 74 A0 72 6F 75 74 69  6E 65 0D 2A 0D 68 78 74  |rt.routine.*.hxt|
000009E0: 62 63 64 20 6C 64 78 20  23 24 30 30 20 3B 63 6C  |bcd ldx #$00 ;cl|
000009F0: 65 61 72 A0 78 A0 72 65  67 0D 68 62 6C 6F 6F 70  |ear.x.reg.hbloop|
00000A00: 20 73 74 61 20 74 6D 70  31 20 3B 73 61 76 65 A0  | sta tmp1 ;save.|
00000A10: 68 65 78 A0 76 61 6C 75  65 0D 20 73 65 63 20 20  |hex.value. sec  |
00000A20: 3B 73 65 74 A0 63 61 72  72 79 A0 62 69 74 0D 20  |;set.carry.bit. |
00000A30: 73 62 63 20 23 24 30 61  20 3B 73 75 62 74 72 61  |sbc #$0a ;subtra|
00000A40: 63 74 A0 31 30 0D 20 62  6D 69 20 68 62 6F 75 74  |ct.10. bmi hbout|
00000A50: 20 3B 6E 65 67 3F 2E 2E  2E 69 74 27 73 A0 64 6F  | ;neg?...it's.do|
00000A60: 6E 65 0D 20 69 6E 78 20  20 3B 69 6E 63 A0 78 A0  |ne. inx  ;inc.x.|
00000A70: 72 65 67 0D 20 6A 6D 70  20 68 62 6C 6F 6F 70 20  |reg. jmp hbloop |
00000A80: 3B 6C 6F 6F 70 0D 68 62  6F 75 74 20 74 78 61 20  |;loop.hbout txa |
00000A90: 20 3B 63 6F 75 6E 74 A0  6F 66 A0 30 61 27 73 0D  | ;count.of.0a's.|
00000AA0: 20 61 73 6C 0D 20 61 73  6C 0D 20 61 73 6C 0D 20  | asl. asl. asl. |
00000AB0: 61 73 6C 20 20 3B 73 68  69 66 74 A0 6C 73 A0 6E  |asl  ;shift.ls.n|
00000AC0: 69 62 62 6C 65 A0 74 6F  A0 6D 73 A0 6E 69 62 62  |ibble.to.ms.nibb|
00000AD0: 6C 65 0D 20 6F 72 61 20  74 6D 70 31 20 3B 61 73  |le. ora tmp1 ;as|
00000AE0: 73 65 6D 62 6C 65 A0 62  63 64 A0 77 6F 72 64 0D  |semble.bcd.word.|
00000AF0: 20 72 74 73 0D 2A 0D 2A  0D 2A 0D 2A 73 65 6C 65  | rts.*.*.*.*sele|
00000B00: 63 74 A0 63 6C 6F 63 6B  A0 63 68 69 70 0D 2A 0D  |ct.clock.chip.*.|
00000B10: 2A 0D 73 6C 63 74 20 6C  64 61 20 23 24 65 20 3B  |*.slct lda #$e ;|
00000B20: 72 65 61 64 A0 63 79 63  6C 65 A0 74 6F A0 73 74  |read.cycle.to.st|
00000B30: 61 72 74 A0 64 61 6C 6C  61 73 A0 63 68 69 70 0D  |art.dallas.chip.|
00000B40: 20 73 74 61 20 64 72 61  0D 20 6C 64 61 20 23 24  | sta dra. lda #$|
00000B50: 32 0D 20 73 74 61 20 64  72 61 0D 20 6C 64 61 20  |2. sta dra. lda |
00000B60: 23 24 65 0D 20 73 74 61  20 64 72 61 0D 20 6C 64  |#$e. sta dra. ld|
00000B70: 61 20 23 24 32 20 3B 6C  6F 6F 70 A0 63 6F 75 6E  |a #$2 ;loop.coun|
00000B80: 74 0D 20 73 74 61 20 63  6F 75 6E 74 0D 73 6C 6F  |t. sta count.slo|
00000B90: 6F 70 20 6C 64 61 20 23  24 63 35 0D 20 6A 73 72  |op lda #$c5. jsr|
00000BA0: 20 77 72 74 62 79 74 0D  20 6C 64 61 20 23 24 33  | wrtbyt. lda #$3|
00000BB0: 61 0D 20 6A 73 72 20 77  72 74 62 79 74 0D 20 6C  |a. jsr wrtbyt. l|
00000BC0: 64 61 20 23 24 61 33 0D  20 6A 73 72 20 77 72 74  |da #$a3. jsr wrt|
00000BD0: 62 79 74 0D 20 6C 64 61  20 23 24 35 63 0D 20 6A  |byt. lda #$5c. j|
00000BE0: 73 72 20 77 72 74 62 79  74 0D 20 64 65 63 20 63  |sr wrtbyt. dec c|
00000BF0: 6F 75 6E 74 20 3B 64 65  63 72 65 6D 65 6E 74 A0  |ount ;decrement.|
00000C00: 63 6F 75 6E 74 0D 20 62  6E 65 20 73 6C 6F 6F 70  |count. bne sloop|
00000C10: 0D 20 72 74 73 0D                                 |. rts.          |
..******************************.* WRITE
 REAL TIME CLOCK #2.0 *.*      DALLAS VE
RSION        *.*************************
*****.*        MAY 29  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.SECS
 EQU $4574.MINS EQU $4575.COUNT EQU $457
6.*.*.*.*. LDA $01 ;GET MEM CONFIG. PHA 
 ;SAVE IT. LDA #$35 ;TURN ON I/O REGION.
 STA $01. SEI  ;INT OFF. LDA DRA ;READ D
RA. STA TMP1 ;SAVE IT. LDA DDRA ;READ DD
RA. STA TMP2. LDA #$F ;NEW CONFIGURATION
. STA DDRA ;ALL O/P'S. LDA #$E ;INITIAL 
STATE OF I/O. STA DRA ;ALL LINES FALSE.*
.*.*****************.* WRITE ROUTINE *.*
****************.*.*. JSR SLCT ;SELECT T
HE CLOCK CHIP. LDA $DC0B ;READ HOURS FRO
M TOD. STA TEMP ;STORE IN TEMP. LSR. LSR
  ;BRING PM INTO PLACE. AND #$20 ;ISOLAT
E PM BIT. ORA TEMP ;RETRIEVE HOURS. AND 
#$3F ;CLEAR 2 MSB'S. ORA #$80 ;SET 12/24
 BIT. STA HOURS ;SAVE IN HOURS. LDA $DC0
9 ;READ SECS FROM CIA. STA SECS. LDA $DC
0A ;READ MINUTES. STA MINS. LDA $DC08 ;R
EAD SECS/100 & CLOSE CIA TOD. ASL  ;SHIF
T RIGHT 4 PLACES. ASL. ASL. ASL. JSR WRT
BYT ;WRITE TO CLOCK. LDA SECS ;READ SECO
NDS FROM CIA. JSR WRTBYT. LDA MINS ;READ
 MINUTES FROM CIA. JSR WRTBYT. LDA HOURS
 ;RETRIEVE HOURS. JSR WRTBYT. LDA #$0 ;C
LEAR DAY. JSR WRTBYT. LDA $8518 ;READ DA
TE FROM GEOS. JSR HXTBCD ;CONVERT TO BCD
. JSR WRTBYT. LDA $8517 ;READ MONTH FROM
 GEOS. JSR HXTBCD ;CONVERT TO BCD. JSR W
RTBYT. LDA $8516 ;READ YEAR. JSR HXTBCD 
;CONVERT TO BCD. JSR WRTBYT.*.*. LDA TMP
1 ;RESTORE DRA CONFIGURATION. STA DRA. L
DA TMP2 ;RESTORE DDRA CONFIGURATION. STA
 DDRA. PLA  ;RESTORE OLD MEMORY CONFIGUR
ATION. STA $01. CLI. JMP $C22C ;RELOAD D
ESKTOP.*.*.************************.* EN
D OF WRITE ROUTINE *.*******************
*****...*.*.*.*.* WRITE A BYTE TO THE RT
C.*.WRTBYT TAX  ;SAVE DATA BYTE. LDY #$8
 ;SET UP COUNT. LDA #$E ;INITIAL CONFIG.
 STA DRA ;OUTPUT ENABLE OFF. TXA  ;RETRI
EVE DATA.WLOOP AND #$01 ;CLR ALL BUT LSB
. ORA #$4 ;SET UP FOR WRITE. STA DRA. OR
A #$E ;WRITE THE BIT. STA DRA. DEY  ;DEC
REMENT COUNT. BEQ WDONE ;FINISHED?. TXA 
 ;GET DATA. LSR  ;SELECT NEXT BIT. TAX  
;SAVE DATA AGAIN. JMP WLOOP ;LOOP.WDONE 
RTS.*.*.*.*.*.* HEX TO BCD CONVERT ROUTI
NE.*.HXTBCD LDX #$00 ;CLEAR X REG.HBLOOP
 STA TMP1 ;SAVE HEX VALUE. SEC  ;SET CAR
RY BIT. SBC #$0A ;SUBTRACT 10. BMI HBOUT
 ;NEG?...IT'S DONE. INX  ;INC X REG. JMP
 HBLOOP ;LOOP.HBOUT TXA  ;COUNT OF 0A'S.
 ASL. ASL. ASL. ASL  ;SHIFT LS NIBBLE TO
 MS NIBBLE. ORA TMP1 ;ASSEMBLE BCD WORD.
 RTS.*.*.*.*SELECT CLOCK CHIP.*.*.SLCT L
DA #$E ;READ CYCLE TO START DALLAS CHIP.
 STA DRA. LDA #$2. STA DRA. LDA #$E. STA
 DRA. LDA #$2 ;LOOP COUNT. STA COUNT.SLO
OP LDA #$C5. JSR WRTBYT. LDA #$3A. JSR W
RTBYT. LDA #$A3. JSR WRTBYT. LDA #$5C. J
SR WRTBYT. DEC COUNT ;DECREMENT COUNT. B
NE SLOOP. RTS.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL