A2osX/ProDOS.FX/ProDOS.S.NCLK.txt

123 lines
2.0 KiB
Plaintext
Raw Normal View History

2019-11-04 07:21:40 +00:00
NEW
AUTO 3,1
*--------------------------------------
* Driver For DS1216E
*--------------------------------------
2021-05-30 20:34:03 +00:00
* we can safely use $200 (used by TCLK)
*--------------------------------------
DS1216E.DATA .EQ $200 Reverted YY MM DD Day HH mm SS CS
*--------------------------------------
2021-06-06 19:06:49 +00:00
NCLK.START lda RDCXROM
php
2021-05-30 20:34:03 +00:00
sei NO IRQ !!!
2021-06-06 19:06:49 +00:00
sta SETCXROM
2021-05-30 20:34:03 +00:00
2019-11-04 07:21:40 +00:00
sta $C300
2021-06-06 19:06:49 +00:00
lda $C00B Workaround for Ultrawarp bug
2019-11-04 07:21:40 +00:00
lda $C304 Reset DS1216E comparison register with READ A2=1
2021-05-30 20:34:03 +00:00
ldx #8 Read 8 bytes...
2019-11-04 07:21:40 +00:00
2021-05-30 20:34:03 +00:00
.1 ldy #8 ....of 8 bits
2019-11-04 07:21:40 +00:00
2021-05-30 20:34:03 +00:00
lda DS1216E.PATTERN-1,x
.2 lsr
bcs .3
bit $C300
bra .30
.3 bit $C301 Write Pattern bit in A0, with A2=0
.30 dey
2019-11-04 07:21:40 +00:00
bne .2
2021-05-30 20:34:03 +00:00
dex
bne .1
2019-11-04 07:21:40 +00:00
2021-05-30 20:34:03 +00:00
ldx #8
2019-11-04 07:21:40 +00:00
.4 ldy #8
2021-05-30 20:34:03 +00:00
.5 pha
lda $C304 Read Byte...
2019-11-04 07:21:40 +00:00
lsr
2021-05-30 20:34:03 +00:00
pla
ror
2019-11-04 07:21:40 +00:00
dey
bne .5
pha
lsr
lsr
lsr
lsr
tay
pla
and #$0F
clc
.HS 2C Bit Absolute to skip adc #$0A
.6 adc #$0A
dey
2021-05-30 20:34:03 +00:00
bpl .6
2019-11-04 07:21:40 +00:00
2021-05-30 20:34:03 +00:00
sta DS1216E.DATA-1,x
2019-11-04 07:21:40 +00:00
dex
2021-05-30 20:34:03 +00:00
bne .4
pha DS1216E.DATA
2019-11-04 07:21:40 +00:00
lda DS1216E.DATA+1 Get MM
asl
asl
asl
asl
asl
ora DS1216E.DATA+2 Get DD
sta DATELO
2021-05-30 20:34:03 +00:00
* lda DS1216E.DATA Get YY
pla
rol
sta DATELO+1
lda DS1216E.DATA+5 Get mm
sta TIMELO
lda DS1216E.DATA+4 Get HH
sta TIMELO+1
2019-11-04 07:21:40 +00:00
plp
2021-06-03 17:43:28 +00:00
bmi .8
2021-05-30 20:34:03 +00:00
2021-06-03 17:43:28 +00:00
sta CLRCXROM
2021-05-30 20:34:03 +00:00
2021-06-06 19:06:49 +00:00
.8 rts
2019-11-04 07:21:40 +00:00
*--------------------------------------
DS1216E.PATTERN .HS 5CA33AC55CA33AC5 Reverted 7->0
*--------------------------------------
2021-05-30 20:34:03 +00:00
.LIST ON
2019-11-04 07:21:40 +00:00
NCLK.LEN .EQ *-NCLK.START
2021-05-30 20:34:03 +00:00
.LIST OFF
*--------------------------------------
* CONTROL SECTION :
*--------------------------------------
.DO NCLK.LEN>125
ERROR:NCLK Driver too big
.FIN
2019-11-04 07:21:40 +00:00
*--------------------------------------
MAN
2020-08-30 17:50:57 +00:00
SAVE usr/src/prodos.fx/prodos.s.nclk
LOAD usr/src/prodos.fx/prodos.s
2019-11-04 07:21:40 +00:00
ASM