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