A2osX/ProDOS.FX/ProDOS.S.NCLK.txt
2021-05-30 22:34:03 +02:00

124 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 RDC3ROM because no IRQ handler at $C3FA...
php
* sta CLRC8ROM Make cards release $C8xx space
sta SETC3ROM ... after this
sta $C300
lda $C304 Reset DS1216E comparison register with READ A2=1
ldx #8 Read 8 bytes...
.1 ldy #8 ....of 8 bits
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
bne .2
dex
bne .1
ldx #8
.4 ldy #8
.5 pha
lda $C304 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 CLRC3ROM
.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