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 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL