Fix DS1216E properly detected in //c

This commit is contained in:
Rémy GIBERT 2016-02-21 21:42:55 +01:00
parent 0a5eced59a
commit 361f14050e

View File

@ -15,6 +15,7 @@ AUTO 6
*-------------------------------------- *--------------------------------------
TmpPtr1 .EQ $0 TmpPtr1 .EQ $0
TmpPtr2 .EQ $2 TmpPtr2 .EQ $2
DS1216E.DATA .EQ $200
*-------------------------------------- *--------------------------------------
NSC.Init >LDAXI NSC.MSG0 NSC.Init >LDAXI NSC.MSG0
jsr NSC.Print jsr NSC.Print
@ -45,8 +46,10 @@ NSC.Init >LDAXI NSC.MSG0
*-------------------------------------- *--------------------------------------
NSC.Detect php NSC.Detect php
sei sei
sta $CFFF lda $CFFF
sta $C00A pha
sta $C300
ldx #7 ldx #7
@ -74,7 +77,9 @@ NSC.Detect php
lsr lsr
bcc .5 bcc .5
iny iny
.5 sta $C300,y Write Pattern bit in A0, with A2=0 .5 pha
lda $C300,y Write Pattern bit in A0, with A2=0
pla
dex dex
bne .4 bne .4
@ -96,19 +101,22 @@ NSC.Detect php
dex dex
bpl .6 bpl .6
pla
bmi .8
sta $CFFF
.8 plp
ldx #7 ldx #7
.8 lda DS1216E.DATA1,x .81 lda DS1216E.DATA1,x
cmp DS1216E.DATA2,x cmp DS1216E.DATA2,x
bne .9 bne .9
dex dex
bpl .8 bpl .81
plp
sec sec
rts rts
.9 plp .9 clc
clc
rts rts
*-------------------------------------- *--------------------------------------
DS1216E.DATA1 .BS 8 DS1216E.DATA1 .BS 8
@ -166,6 +174,7 @@ NSC.Install lda DATETIME+1
*-------------------------------------- *--------------------------------------
NSCDRV.OFFSET .BS 2 NSCDRV.OFFSET .BS 2
NSCDRV.RELOC .DA NSCDRV.R1+1 NSCDRV.RELOC .DA NSCDRV.R1+1
.DA 0
.DA NSCDRV.R2+1 .DA NSCDRV.R2+1
.DA NSCDRV.R3+1 .DA NSCDRV.R3+1
.DA NSCDRV.R4+1 .DA NSCDRV.R4+1
@ -197,28 +206,31 @@ NSC.MSG3 >CSTRING "DS1216E Driver Successfully Installed."
NSCDRV.B.START .EQ * NSCDRV.B.START .EQ *
NSCDRV php NSCDRV php
sei sei
sta $CFFF Make cards release $C8xx space lda $CFFF Make cards release $C8xx space
sta $C00A Force IIe/IIc Internal C300 rom pha
sta $C300
lda $C304 Reset DS1216E comparison register with READ A2=1 lda $C304 Reset DS1216E comparison register with READ A2=1
ldx #7 Read 8 bytes... ldy #7 Read 8 bytes...
NSCDRV.1 NSCDRV.1
NSCDRV.R1 lda DS1216E.PATTERN,x NSCDRV.R1 lda DS1216E.PATTERN,y
phx phy
ldx #8 ....of 8 bits ldy #8 ....of 8 bits
NSCDRV.2 ldy #0 NSCDRV.2 ldx #0
lsr lsr
bcc NSCDRV.21 bcc NSCDRV.21
iny inx
NSCDRV.21 sta $C300,y Write Pattern bit in A0, with A2=0
dex NSCDRV.21 bit $C300,x Write Pattern bit in A0, with A2=0
dey
bne NSCDRV.2 bne NSCDRV.2
plx ply
dex dey
bpl NSCDRV.1 bpl NSCDRV.1
ldx #7 ldx #7
@ -273,11 +285,14 @@ NSCDRV.R9 lda DS1216E.DATA Get YY
rol rol
sta DATELO+1 sta DATELO+1
plp pla
bmi .99
sta $CFFF
.99 plp
rts rts
*-------------------------------------- *--------------------------------------
DS1216E.PATTERN .HS 5CA33AC55CA33AC5 Reverted 7->0 DS1216E.PATTERN .HS 5CA33AC55CA33AC5 Reverted 7->0
DS1216E.DATA .BS 8 Reverted YY MM DD Day HH mm SS CS *DS1216E.DATA .BS 8 Reverted YY MM DD Day HH mm SS CS
*-------------------------------------- *--------------------------------------
NSCDRV.B.END .EQ * NSCDRV.B.END .EQ *
NSCDRV.SIZE .EQ NSCDRV.B.END-NSCDRV.B.START NSCDRV.SIZE .EQ NSCDRV.B.END-NSCDRV.B.START