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

127 lines
2.0 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*--------------------------------------
* Driver For DS1216E
*--------------------------------------
* we can safely use $200 (used by TCLK)
*--------------------------------------
DS1216E.DATA .EQ $200 Reverted YY MM DD Day HH mm SS CS
*--------------------------------------
NCLK.START php
sei NO IRQ !!!
lda RDCXROM
php
sta SETCXROM
* sta $C300
lda $C00B Workaround for Ultrawarp bug
lda $C104 Reset DS1216E comparison register with READ A2=1
ldy #8 Read 8 bytes...
.1 lda DS1216E.PATTERN-1,y
phy
ldy #8 ....of 8 bits
.2 ldx #0
lsr
bcc .3
inx
.3 bit $C100,x Write Pattern bit in A0, with A2=0
dey
bne .2
ply
dey
bne .1
ldx #8
.4 ldy #8
.5 pha
lda $C104 Read Byte...
lsr
pla
ror
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
bpl .6
sta DS1216E.DATA-1,x
dex
bne .4
pha DS1216E.DATA
lda DS1216E.DATA+1 Get MM
asl
asl
asl
asl
asl
ora DS1216E.DATA+2 Get DD
sta DATELO
* 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
plp
bmi .8
sta CLRCXROM
.8 plp
rts
*--------------------------------------
DS1216E.PATTERN .HS 5CA33AC55CA33AC5 Reverted 7->0
*--------------------------------------
.LIST ON
NCLK.LEN .EQ *-NCLK.START
.LIST OFF
*--------------------------------------
* CONTROL SECTION :
*--------------------------------------
.DO NCLK.LEN>125
ERROR:NCLK Driver too big
.FIN
*--------------------------------------
MAN
SAVE usr/src/prodos.fx/prodos.s.nclk
LOAD usr/src/prodos.fx/prodos.s
ASM