A2osX/ProDOS.FX/ProDOS.S.NCLK.txt
2023-11-04 15:42:28 +01:00

131 lines
2.1 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 .PH CLK
NCLK.START1 php
sei NO IRQ !!!
lda IO.RDCXROM
php
sta IO.SETCXROM
sta NSC.IOBASE
* lda $C00B Workaround for Ultrawarp bug
lda NSC.IOBASE+4 Reset DS1216E comparison register with READ A2=1
ldy #8 Read 8 bytes...
.1 lda DS1216E.SIG-1,y
phy
ldy #8 ....of 8 bits
.2 ldx #0
lsr
bcc .3
inx
.3 bit NSC.IOBASE,x Write Pattern bit in A0, with A2=0
dey
bne .2
ply
dey
bne .1
ldx #8
.4 ldy #8
.5 pha
lda NSC.IOBASE+4 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 GP.DATE
* lda DS1216E.DATA Get YY
pla
rol
sta GP.DATE+1
lda DS1216E.DATA+5 Get mm
sta GP.TIME
lda DS1216E.DATA+4 Get HH
sta GP.TIME+1
plp
bmi .8
sta IO.CLRCXROM
.8 plp
rts
*--------------------------------------
DS1216E.SIG .HS 5CA33AC55CA33AC5 Reverted 7->0
*--------------------------------------
.EP
*--------------------------------------
* .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