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

WRITE.SEQ2.0

FILE INFORMATION

FILENAME(S): WRITE.SEQ2.0

FILE TYPE(S): SEQ

FILE SIZE: 3K

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

APPEARS ON: 1 disk(s)

FILE HASH

ef1a3342dd546c559ee32d0fd4065e57731670b499382098a515cabd934bf856

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
TIM S TIMER 2 0 WRITE.SEQ2.0 SEQ The BAM Archive 13 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 0D 2A  |**************.*|
00000020: A0 77 72 69 74 65 A0 72  65 61 6C A0 74 69 6D 65  |.write.real.time|
00000030: A0 63 6C 6F 63 6B A0 23  32 2E 30 A0 2A 0D 2A A0  |.clock.#2.0.*.*.|
00000040: A0 A0 A0 A0 A0 64 61 6C  6C 61 73 A0 76 65 72 73  |.....dallas.vers|
00000050: 69 6F 6E A0 A0 A0 A0 A0  A0 A0 A0 2A 0D 2A 2A 2A  |ion........*.***|
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 0D 2A A0 A0 A0  |***********.*...|
00000080: A0 A0 A0 A0 A0 6D 61 79  A0 32 39 A0 A0 31 39 38  |.....may.29..198|
00000090: 37 A0 A0 A0 A0 A0 A0 A0  A0 2A 0D 2A A0 A0 A0 A0  |7........*.*....|
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  2A 0D 2A A0 A0 A0 A0 A0  |........*.*.....|
000000C0: A0 62 79 A0 74 69 6D A0  67 A0 63 6F 72 63 6F 72  |.by.tim.g.corcor|
000000D0: 61 6E A0 A0 A0 A0 A0 2A  0D 2A A0 A0 A0 A0 A0 A0  |an.....*.*......|
000000E0: A0 A0 A0 A0 A0 A0 A0 A0  A0 A0 A0 A0 A0 A0 A0 A0  |................|
000000F0: A0 A0 A0 A0 A0 A0 2A 0D  2A A0 A0 A0 74 68 69 73  |......*.*...this|
00000100: A0 73 2F 77 A0 69 73 A0  70 61 72 74 A0 6F 66 A0  |.s/w.is.part.of.|
00000110: 74 68 65 A0 A0 2A 0D 2A  A0 72 74 63 A0 73 68 61  |the..*.*.rtc.sha|
00000120: 72 65 77 61 72 65 A0 70  61 63 6B 61 67 65 2E A0  |reware.package..|
00000130: 69 74 A0 A0 2A 0D 2A A0  69 73 A0 6F 6B 61 79 A0  |it..*.*.is.okay.|
00000140: 74 6F A0 64 69 73 74 72  69 62 75 74 65 A0 61 6E  |to.distribute.an|
00000150: 64 A0 A0 2A 0D 2A A0 73  68 61 72 65 2C A0 62 75  |d..*.*.share,.bu|
00000160: 74 A0 6E 6F 74 A0 74 6F  A0 73 65 6C 6C 2E A0 A0  |t.not.to.sell...|
00000170: A0 A0 2A 0D 2A A0 A0 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 2A 0D 2A A0 70 6C 65  61 73 65 A0 63 6F 6E 73  |.*.*.please.cons|
000001A0: 69 64 65 72 A0 73 75 70  70 6F 72 74 69 6E 67 A0  |ider.supporting.|
000001B0: 2A 0D 2A A0 6D 79 73 74  69 63 A0 6A 69 6D 27 73  |*.*.mystic.jim's|
000001C0: A0 73 2F 77 A0 73 79 73  74 65 6D A0 A0 A0 A0 2A  |.s/w.system....*|
000001D0: 0D 2A A0 A0 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 2A 0D  |..............*.|
000001F0: 2A 2A 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 0D 2A  |**************.*|
00000210: 0D 2A 0D 2A 0D 20 6F 72  67 20 24 34 35 38 30 0D  |.*.*. org $4580.|
00000220: 64 64 72 61 20 65 71 75  20 24 64 63 30 32 0D 64  |ddra equ $dc02.d|
00000230: 72 61 20 65 71 75 20 24  64 63 30 30 0D 68 6F 75  |ra equ $dc00.hou|
00000240: 72 73 20 65 71 75 20 24  34 35 37 30 0D 74 65 6D  |rs equ $4570.tem|
00000250: 70 20 65 71 75 20 24 34  35 37 31 0D 74 6D 70 31  |p equ $4571.tmp1|
00000260: 20 65 71 75 20 24 34 35  37 32 0D 74 6D 70 32 20  | equ $4572.tmp2 |
00000270: 65 71 75 20 24 34 35 37  33 0D 73 65 63 73 20 65  |equ $4573.secs e|
00000280: 71 75 20 24 34 35 37 34  0D 6D 69 6E 73 20 65 71  |qu $4574.mins eq|
00000290: 75 20 24 34 35 37 35 0D  63 6F 75 6E 74 20 65 71  |u $4575.count eq|
000002A0: 75 20 24 34 35 37 36 0D  2A 0D 2A 0D 2A 0D 2A 0D  |u $4576.*.*.*.*.|
000002B0: 20 6C 64 61 20 24 30 31  20 3B 67 65 74 A0 6D 65  | lda $01 ;get.me|
000002C0: 6D A0 63 6F 6E 66 69 67  0D 20 70 68 61 20 20 3B  |m.config. pha  ;|
000002D0: 73 61 76 65 A0 69 74 0D  20 6C 64 61 20 23 24 33  |save.it. lda #$3|
000002E0: 35 20 3B 74 75 72 6E A0  6F 6E A0 69 2F 6F A0 72  |5 ;turn.on.i/o.r|
000002F0: 65 67 69 6F 6E 0D 20 73  74 61 20 24 30 31 0D 20  |egion. sta $01. |
00000300: 73 65 69 20 20 3B 69 6E  74 A0 6F 66 66 0D 20 6C  |sei  ;int.off. l|
00000310: 64 61 20 64 72 61 20 3B  72 65 61 64 A0 64 72 61  |da dra ;read.dra|
00000320: 0D 20 73 74 61 20 74 6D  70 31 20 3B 73 61 76 65  |. sta tmp1 ;save|
00000330: A0 69 74 0D 20 6C 64 61  20 64 64 72 61 20 3B 72  |.it. lda ddra ;r|
00000340: 65 61 64 A0 64 64 72 61  0D 20 73 74 61 20 74 6D  |ead.ddra. sta tm|
00000350: 70 32 0D 20 6C 64 61 20  23 24 66 20 3B 6E 65 77  |p2. lda #$f ;new|
00000360: A0 63 6F 6E 66 69 67 75  72 61 74 69 6F 6E 0D 20  |.configuration. |
00000370: 73 74 61 20 64 64 72 61  20 3B 61 6C 6C A0 6F 2F  |sta ddra ;all.o/|
00000380: 70 27 73 0D 20 6C 64 61  20 23 24 65 20 3B 69 6E  |p's. lda #$e ;in|
00000390: 69 74 69 61 6C A0 73 74  61 74 65 A0 6F 66 A0 69  |itial.state.of.i|
000003A0: 2F 6F 0D 20 73 74 61 20  64 72 61 20 3B 61 6C 6C  |/o. sta dra ;all|
000003B0: A0 6C 69 6E 65 73 A0 66  61 6C 73 65 0D 2A 0D 2A  |.lines.false.*.*|
000003C0: 0D 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |.***************|
000003D0: 2A 2A 0D 2A A0 77 72 69  74 65 A0 72 6F 75 74 69  |**.*.write.routi|
000003E0: 6E 65 A0 2A 0D 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |ne.*.***********|
000003F0: 2A 2A 2A 2A 2A 2A 0D 2A  0D 2A 0D 20 6A 73 72 20  |******.*.*. jsr |
00000400: 73 6C 63 74 20 3B 73 65  6C 65 63 74 A0 74 68 65  |slct ;select.the|
00000410: A0 63 6C 6F 63 6B A0 63  68 69 70 0D 20 6C 64 61  |.clock.chip. lda|
00000420: 20 24 64 63 30 62 20 3B  72 65 61 64 A0 68 6F 75  | $dc0b ;read.hou|
00000430: 72 73 A0 66 72 6F 6D A0  74 6F 64 0D 20 73 74 61  |rs.from.tod. sta|
00000440: 20 74 65 6D 70 20 3B 73  74 6F 72 65 A0 69 6E A0  | temp ;store.in.|
00000450: 74 65 6D 70 0D 20 6C 73  72 0D 20 6C 73 72 20 20  |temp. lsr. lsr  |
00000460: 3B 62 72 69 6E 67 A0 70  6D A0 69 6E 74 6F A0 70  |;bring.pm.into.p|
00000470: 6C 61 63 65 0D 20 61 6E  64 20 23 24 32 30 20 3B  |lace. and #$20 ;|
00000480: 69 73 6F 6C 61 74 65 A0  70 6D A0 62 69 74 0D 20  |isolate.pm.bit. |
00000490: 6F 72 61 20 74 65 6D 70  20 3B 72 65 74 72 69 65  |ora temp ;retrie|
000004A0: 76 65 A0 68 6F 75 72 73  0D 20 61 6E 64 20 23 24  |ve.hours. and #$|
000004B0: 33 66 20 3B 63 6C 65 61  72 A0 32 A0 6D 73 62 27  |3f ;clear.2.msb'|
000004C0: 73 0D 20 6F 72 61 20 23  24 38 30 20 3B 73 65 74  |s. ora #$80 ;set|
000004D0: A0 31 32 2F 32 34 A0 62  69 74 0D 20 73 74 61 20  |.12/24.bit. sta |
000004E0: 68 6F 75 72 73 20 3B 73  61 76 65 A0 69 6E A0 68  |hours ;save.in.h|
000004F0: 6F 75 72 73 0D 20 6C 64  61 20 24 64 63 30 39 20  |ours. lda $dc09 |
00000500: 3B 72 65 61 64 A0 73 65  63 73 A0 66 72 6F 6D A0  |;read.secs.from.|
00000510: 63 69 61 0D 20 73 74 61  20 73 65 63 73 0D 20 6C  |cia. sta secs. l|
00000520: 64 61 20 24 64 63 30 61  20 3B 72 65 61 64 A0 6D  |da $dc0a ;read.m|
00000530: 69 6E 75 74 65 73 0D 20  73 74 61 20 6D 69 6E 73  |inutes. sta mins|
00000540: 0D 20 6C 64 61 20 24 64  63 30 38 20 3B 72 65 61  |. lda $dc08 ;rea|
00000550: 64 A0 73 65 63 73 2F 31  30 30 A0 26 A0 63 6C 6F  |d.secs/100.&.clo|
00000560: 73 65 A0 63 69 61 A0 74  6F 64 0D 20 61 73 6C 20  |se.cia.tod. asl |
00000570: 20 3B 73 68 69 66 74 A0  72 69 67 68 74 A0 34 A0  | ;shift.right.4.|
00000580: 70 6C 61 63 65 73 0D 20  61 73 6C 0D 20 61 73 6C  |places. asl. asl|
00000590: 0D 20 61 73 6C 0D 20 6A  73 72 20 77 72 74 62 79  |. asl. jsr wrtby|
000005A0: 74 20 3B 77 72 69 74 65  A0 74 6F A0 63 6C 6F 63  |t ;write.to.cloc|
000005B0: 6B 0D 20 6C 64 61 20 73  65 63 73 20 3B 72 65 61  |k. lda secs ;rea|
000005C0: 64 A0 73 65 63 6F 6E 64  73 A0 66 72 6F 6D A0 63  |d.seconds.from.c|
000005D0: 69 61 0D 20 6A 73 72 20  77 72 74 62 79 74 0D 20  |ia. jsr wrtbyt. |
000005E0: 6C 64 61 20 6D 69 6E 73  20 3B 72 65 61 64 A0 6D  |lda mins ;read.m|
000005F0: 69 6E 75 74 65 73 A0 66  72 6F 6D A0 63 69 61 0D  |inutes.from.cia.|
00000600: 20 6A 73 72 20 77 72 74  62 79 74 0D 20 6C 64 61  | jsr wrtbyt. lda|
00000610: 20 68 6F 75 72 73 20 3B  72 65 74 72 69 65 76 65  | hours ;retrieve|
00000620: A0 68 6F 75 72 73 0D 20  6A 73 72 20 77 72 74 62  |.hours. jsr wrtb|
00000630: 79 74 0D 20 6C 64 61 20  23 24 30 20 3B 63 6C 65  |yt. lda #$0 ;cle|
00000640: 61 72 A0 64 61 79 0D 20  6A 73 72 20 77 72 74 62  |ar.day. jsr wrtb|
00000650: 79 74 0D 20 6C 64 61 20  24 38 35 31 38 20 3B 72  |yt. lda $8518 ;r|
00000660: 65 61 64 A0 64 61 74 65  A0 66 72 6F 6D A0 67 65  |ead.date.from.ge|
00000670: 6F 73 0D 20 6A 73 72 20  68 78 74 62 63 64 20 3B  |os. jsr hxtbcd ;|
00000680: 63 6F 6E 76 65 72 74 A0  74 6F A0 62 63 64 0D 20  |convert.to.bcd. |
00000690: 6A 73 72 20 77 72 74 62  79 74 0D 20 6C 64 61 20  |jsr wrtbyt. lda |
000006A0: 24 38 35 31 37 20 3B 72  65 61 64 A0 6D 6F 6E 74  |$8517 ;read.mont|
000006B0: 68 A0 66 72 6F 6D A0 67  65 6F 73 0D 20 6A 73 72  |h.from.geos. jsr|
000006C0: 20 68 78 74 62 63 64 20  3B 63 6F 6E 76 65 72 74  | hxtbcd ;convert|
000006D0: A0 74 6F A0 62 63 64 0D  20 6A 73 72 20 77 72 74  |.to.bcd. jsr wrt|
000006E0: 62 79 74 0D 20 6C 64 61  20 24 38 35 31 36 20 3B  |byt. lda $8516 ;|
000006F0: 72 65 61 64 A0 79 65 61  72 0D 20 6A 73 72 20 68  |read.year. jsr h|
00000700: 78 74 62 63 64 20 3B 63  6F 6E 76 65 72 74 A0 74  |xtbcd ;convert.t|
00000710: 6F A0 62 63 64 0D 20 6A  73 72 20 77 72 74 62 79  |o.bcd. jsr wrtby|
00000720: 74 0D 2A 0D 2A 0D 20 6C  64 61 20 74 6D 70 31 20  |t.*.*. lda tmp1 |
00000730: 3B 72 65 73 74 6F 72 65  A0 64 72 61 A0 63 6F 6E  |;restore.dra.con|
00000740: 66 69 67 75 72 61 74 69  6F 6E 0D 20 73 74 61 20  |figuration. sta |
00000750: 64 72 61 0D 20 6C 64 61  20 74 6D 70 32 20 3B 72  |dra. lda tmp2 ;r|
00000760: 65 73 74 6F 72 65 A0 64  64 72 61 A0 63 6F 6E 66  |estore.ddra.conf|
00000770: 69 67 75 72 61 74 69 6F  6E 0D 20 73 74 61 20 64  |iguration. sta d|
00000780: 64 72 61 0D 20 70 6C 61  20 20 3B 72 65 73 74 6F  |dra. pla  ;resto|
00000790: 72 65 A0 6F 6C 64 A0 6D  65 6D 6F 72 79 A0 63 6F  |re.old.memory.co|
000007A0: 6E 66 69 67 75 72 61 74  69 6F 6E 0D 20 73 74 61  |nfiguration. sta|
000007B0: 20 24 30 31 0D 20 63 6C  69 0D 20 6A 6D 70 20 24  | $01. cli. jmp $|
000007C0: 63 32 32 63 20 3B 72 65  6C 6F 61 64 A0 64 65 73  |c22c ;reload.des|
000007D0: 6B 74 6F 70 0D 2A 0D 2A  0D 2A 2A 2A 2A 2A 2A 2A  |ktop.*.*.*******|
000007E0: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
000007F0: 2A 0D 2A A0 65 6E 64 A0  6F 66 A0 77 72 69 74 65  |*.*.end.of.write|
00000800: A0 72 6F 75 74 69 6E 65  A0 2A 0D 2A 2A 2A 2A 2A  |.routine.*.*****|
00000810: 2A 2A 2A 2A 2A 2A 2A 2A  2A 2A 2A 2A 2A 2A 2A 2A  |****************|
00000820: 2A 2A 2A 0D 0D 0D 2A 0D  2A 0D 2A 0D 2A 0D 2A A0  |***...*.*.*.*.*.|
00000830: 77 72 69 74 65 A0 61 A0  62 79 74 65 A0 74 6F A0  |write.a.byte.to.|
00000840: 74 68 65 A0 72 74 63 0D  2A 0D 77 72 74 62 79 74  |the.rtc.*.wrtbyt|
00000850: 20 74 61 78 20 20 3B 73  61 76 65 A0 64 61 74 61  | tax  ;save.data|
00000860: A0 62 79 74 65 0D 20 6C  64 79 20 23 24 38 20 3B  |.byte. ldy #$8 ;|
00000870: 73 65 74 A0 75 70 A0 63  6F 75 6E 74 0D 20 6C 64  |set.up.count. ld|
00000880: 61 20 23 24 65 20 3B 69  6E 69 74 69 61 6C A0 63  |a #$e ;initial.c|
00000890: 6F 6E 66 69 67 0D 20 73  74 61 20 64 72 61 20 3B  |onfig. sta dra ;|
000008A0: 6F 75 74 70 75 74 A0 65  6E 61 62 6C 65 A0 6F 66  |output.enable.of|
000008B0: 66 0D 20 74 78 61 20 20  3B 72 65 74 72 69 65 76  |f. txa  ;retriev|
000008C0: 65 A0 64 61 74 61 0D 77  6C 6F 6F 70 20 61 6E 64  |e.data.wloop and|
000008D0: 20 23 24 30 31 20 3B 63  6C 72 A0 61 6C 6C A0 62  | #$01 ;clr.all.b|
000008E0: 75 74 A0 6C 73 62 0D 20  6F 72 61 20 23 24 34 20  |ut.lsb. ora #$4 |
000008F0: 3B 73 65 74 A0 75 70 A0  66 6F 72 A0 77 72 69 74  |;set.up.for.writ|
00000900: 65 0D 20 73 74 61 20 64  72 61 0D 20 6F 72 61 20  |e. sta dra. ora |
00000910: 23 24 65 20 3B 77 72 69  74 65 A0 74 68 65 A0 62  |#$e ;write.the.b|
00000920: 69 74 0D 20 73 74 61 20  64 72 61 0D 20 64 65 79  |it. sta dra. dey|
00000930: 20 20 3B 64 65 63 72 65  6D 65 6E 74 A0 63 6F 75  |  ;decrement.cou|
00000940: 6E 74 0D 20 62 65 71 20  77 64 6F 6E 65 20 3B 66  |nt. beq wdone ;f|
00000950: 69 6E 69 73 68 65 64 3F  0D 20 74 78 61 20 20 3B  |inished?. txa  ;|
00000960: 67 65 74 A0 64 61 74 61  0D 20 6C 73 72 20 20 3B  |get.data. lsr  ;|
00000970: 73 65 6C 65 63 74 A0 6E  65 78 74 A0 62 69 74 0D  |select.next.bit.|
00000980: 20 74 61 78 20 20 3B 73  61 76 65 A0 64 61 74 61  | tax  ;save.data|
00000990: A0 61 67 61 69 6E 0D 20  6A 6D 70 20 77 6C 6F 6F  |.again. jmp wloo|
000009A0: 70 20 3B 6C 6F 6F 70 0D  77 64 6F 6E 65 20 72 74  |p ;loop.wdone rt|
000009B0: 73 0D 2A 0D 2A 0D 2A 0D  2A 0D 2A 0D 2A A0 68 65  |s.*.*.*.*.*.*.he|
000009C0: 78 A0 74 6F A0 62 63 64  A0 63 6F 6E 76 65 72 74  |x.to.bcd.convert|
000009D0: A0 72 6F 75 74 69 6E 65  0D 2A 0D 68 78 74 62 63  |.routine.*.hxtbc|
000009E0: 64 20 6C 64 78 20 23 24  30 30 20 3B 63 6C 65 61  |d ldx #$00 ;clea|
000009F0: 72 A0 78 A0 72 65 67 0D  68 62 6C 6F 6F 70 20 73  |r.x.reg.hbloop s|
00000A00: 74 61 20 74 6D 70 31 20  3B 73 61 76 65 A0 68 65  |ta tmp1 ;save.he|
00000A10: 78 A0 76 61 6C 75 65 0D  20 73 65 63 20 20 3B 73  |x.value. sec  ;s|
00000A20: 65 74 A0 63 61 72 72 79  A0 62 69 74 0D 20 73 62  |et.carry.bit. sb|
00000A30: 63 20 23 24 30 61 20 3B  73 75 62 74 72 61 63 74  |c #$0a ;subtract|
00000A40: A0 31 30 0D 20 62 6D 69  20 68 62 6F 75 74 20 3B  |.10. bmi hbout ;|
00000A50: 6E 65 67 3F 2E 2E 2E 69  74 27 73 A0 64 6F 6E 65  |neg?...it's.done|
00000A60: 0D 20 69 6E 78 20 20 3B  69 6E 63 A0 78 A0 72 65  |. inx  ;inc.x.re|
00000A70: 67 0D 20 6A 6D 70 20 68  62 6C 6F 6F 70 20 3B 6C  |g. jmp hbloop ;l|
00000A80: 6F 6F 70 0D 68 62 6F 75  74 20 74 78 61 20 20 3B  |oop.hbout txa  ;|
00000A90: 63 6F 75 6E 74 A0 6F 66  A0 30 61 27 73 0D 20 61  |count.of.0a's. a|
00000AA0: 73 6C 0D 20 61 73 6C 0D  20 61 73 6C 0D 20 61 73  |sl. asl. asl. as|
00000AB0: 6C 20 20 3B 73 68 69 66  74 A0 6C 73 A0 6E 69 62  |l  ;shift.ls.nib|
00000AC0: 62 6C 65 A0 74 6F A0 6D  73 A0 6E 69 62 62 6C 65  |ble.to.ms.nibble|
00000AD0: 0D 20 6F 72 61 20 74 6D  70 31 20 3B 61 73 73 65  |. ora tmp1 ;asse|
00000AE0: 6D 62 6C 65 A0 62 63 64  A0 77 6F 72 64 0D 20 72  |mble.bcd.word. r|
00000AF0: 74 73 0D 2A 0D 2A 0D 2A  0D 2A 73 65 6C 65 63 74  |ts.*.*.*.*select|
00000B00: A0 63 6C 6F 63 6B A0 63  68 69 70 0D 2A 0D 2A 0D  |.clock.chip.*.*.|
00000B10: 73 6C 63 74 20 6C 64 61  20 23 24 65 20 3B 72 65  |slct lda #$e ;re|
00000B20: 61 64 A0 63 79 63 6C 65  A0 74 6F A0 73 74 61 72  |ad.cycle.to.star|
00000B30: 74 A0 64 61 6C 6C 61 73  A0 63 68 69 70 0D 20 73  |t.dallas.chip. s|
00000B40: 74 61 20 64 72 61 0D 20  6C 64 61 20 23 24 32 0D  |ta dra. lda #$2.|
00000B50: 20 73 74 61 20 64 72 61  0D 20 6C 64 61 20 23 24  | sta dra. lda #$|
00000B60: 65 0D 20 73 74 61 20 64  72 61 0D 20 6C 64 61 20  |e. sta dra. lda |
00000B70: 23 24 32 20 3B 6C 6F 6F  70 A0 63 6F 75 6E 74 0D  |#$2 ;loop.count.|
00000B80: 20 73 74 61 20 63 6F 75  6E 74 0D 73 6C 6F 6F 70  | sta count.sloop|
00000B90: 20 6C 64 61 20 23 24 63  35 0D 20 6A 73 72 20 77  | lda #$c5. jsr w|
00000BA0: 72 74 62 79 74 0D 20 6C  64 61 20 23 24 33 61 0D  |rtbyt. lda #$3a.|
00000BB0: 20 6A 73 72 20 77 72 74  62 79 74 0D 20 6C 64 61  | jsr wrtbyt. lda|
00000BC0: 20 23 24 61 33 0D 20 6A  73 72 20 77 72 74 62 79  | #$a3. jsr wrtby|
00000BD0: 74 0D 20 6C 64 61 20 23  24 35 63 0D 20 6A 73 72  |t. lda #$5c. jsr|
00000BE0: 20 77 72 74 62 79 74 0D  20 64 65 63 20 63 6F 75  | wrtbyt. dec cou|
00000BF0: 6E 74 20 3B 64 65 63 72  65 6D 65 6E 74 A0 63 6F  |nt ;decrement.co|
00000C00: 75 6E 74 0D 20 62 6E 65  20 73 6C 6F 6F 70 0D 20  |unt. bne sloop. |
00000C10: 72 74 73 0D                                       |rts.            |
******************************.* WRITE R
EAL TIME CLOCK #2.0 *.*      DALLAS VERS
ION        *.***************************
***.*        MAY 29  1987        *.*    
                        *.*      BY TIM 
G CORCORAN     *.*                      
      *.*   THIS S/W IS PART OF THE  *.*
 RTC SHAREWARE PACKAGE. IT  *.* IS OKAY 
TO DISTRIBUTE AND  *.* SHARE, BUT NOT TO
 SELL.    *.*                           
 *.* PLEASE CONSIDER SUPPORTING *.* MYST
IC JIM'S S/W SYSTEM    *.*              
              *.************************
******.*.*.*. ORG $4580.DDRA EQU $DC02.D
RA EQU $DC00.HOURS EQU $4570.TEMP EQU $4
571.TMP1 EQU $4572.TMP2 EQU $4573.SECS E
QU $4574.MINS EQU $4575.COUNT EQU $4576.
*.*.*.*. LDA $01 ;GET MEM CONFIG. PHA  ;
SAVE IT. LDA #$35 ;TURN ON I/O REGION. S
TA $01. SEI  ;INT OFF. LDA DRA ;READ DRA
. STA TMP1 ;SAVE IT. LDA DDRA ;READ DDRA
. STA TMP2. LDA #$F ;NEW CONFIGURATION. 
STA DDRA ;ALL O/P'S. LDA #$E ;INITIAL ST
ATE OF I/O. STA DRA ;ALL LINES FALSE.*.*
.*****************.* WRITE ROUTINE *.***
**************.*.*. JSR SLCT ;SELECT THE
 CLOCK CHIP. LDA $DC0B ;READ HOURS FROM 
TOD. STA TEMP ;STORE IN TEMP. LSR. LSR  
;BRING PM INTO PLACE. AND #$20 ;ISOLATE 
PM BIT. ORA TEMP ;RETRIEVE HOURS. AND #$
3F ;CLEAR 2 MSB'S. ORA #$80 ;SET 12/24 B
IT. STA HOURS ;SAVE IN HOURS. LDA $DC09 
;READ SECS FROM CIA. STA SECS. LDA $DC0A
 ;READ MINUTES. STA MINS. LDA $DC08 ;REA
D SECS/100 & CLOSE CIA TOD. ASL  ;SHIFT 
RIGHT 4 PLACES. ASL. ASL. ASL. JSR WRTBY
T ;WRITE TO CLOCK. LDA SECS ;READ SECOND
S FROM CIA. JSR WRTBYT. LDA MINS ;READ M
INUTES FROM CIA. JSR WRTBYT. LDA HOURS ;
RETRIEVE HOURS. JSR WRTBYT. LDA #$0 ;CLE
AR DAY. JSR WRTBYT. LDA $8518 ;READ DATE
 FROM GEOS. JSR HXTBCD ;CONVERT TO BCD. 
JSR WRTBYT. LDA $8517 ;READ MONTH FROM G
EOS. JSR HXTBCD ;CONVERT TO BCD. JSR WRT
BYT. LDA $8516 ;READ YEAR. JSR HXTBCD ;C
ONVERT TO BCD. JSR WRTBYT.*.*. LDA TMP1 
;RESTORE DRA CONFIGURATION. STA DRA. LDA
 TMP2 ;RESTORE DDRA CONFIGURATION. STA D
DRA. PLA  ;RESTORE OLD MEMORY CONFIGURAT
ION. STA $01. CLI. JMP $C22C ;RELOAD DES
KTOP.*.*.************************.* END 
OF WRITE ROUTINE *.*********************
***...*.*.*.*.* WRITE A BYTE TO THE RTC.
*.WRTBYT TAX  ;SAVE DATA BYTE. LDY #$8 ;
SET UP COUNT. LDA #$E ;INITIAL CONFIG. S
TA DRA ;OUTPUT ENABLE OFF. TXA  ;RETRIEV
E DATA.WLOOP AND #$01 ;CLR ALL BUT LSB. 
ORA #$4 ;SET UP FOR WRITE. STA DRA. ORA 
#$E ;WRITE THE BIT. STA DRA. DEY  ;DECRE
MENT COUNT. BEQ WDONE ;FINISHED?. TXA  ;
GET DATA. LSR  ;SELECT NEXT BIT. TAX  ;S
AVE DATA AGAIN. JMP WLOOP ;LOOP.WDONE RT
S.*.*.*.*.*.* HEX TO BCD CONVERT ROUTINE
.*.HXTBCD LDX #$00 ;CLEAR X REG.HBLOOP S
TA TMP1 ;SAVE HEX VALUE. SEC  ;SET CARRY
 BIT. SBC #$0A ;SUBTRACT 10. BMI HBOUT ;
NEG?...IT'S DONE. INX  ;INC X REG. JMP H
BLOOP ;LOOP.HBOUT TXA  ;COUNT OF 0A'S. A
SL. ASL. ASL. ASL  ;SHIFT LS NIBBLE TO M
S NIBBLE. ORA TMP1 ;ASSEMBLE BCD WORD. R
TS.*.*.*.*SELECT CLOCK CHIP.*.*.SLCT LDA
 #$E ;READ CYCLE TO START DALLAS CHIP. S
TA DRA. LDA #$2. STA DRA. LDA #$E. STA D
RA. LDA #$2 ;LOOP COUNT. STA COUNT.SLOOP
 LDA #$C5. JSR WRTBYT. LDA #$3A. JSR WRT
BYT. LDA #$A3. JSR WRTBYT. LDA #$5C. JSR
 WRTBYT. DEC COUNT ;DECREMENT COUNT. BNE
 SLOOP. RTS.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL