mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-18 00:30:40 +00:00
ProDOS.FX:Added DCLK support and //c related Fixes
NSC: Reverted to $C3xx I/O space
This commit is contained in:
parent
631571cc6e
commit
64b71db7b3
Binary file not shown.
@ -6,13 +6,22 @@ NEW
|
|||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF bin/nscutil
|
.TF bin/nscutil
|
||||||
|
*--------------------------------------
|
||||||
|
NSC.IOBASE .EQ $C300
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB inc/macros.i
|
.INB inc/macros.i
|
||||||
.INB inc/io.i
|
.INB inc/io.i
|
||||||
.INB inc/a2osx.i
|
.INB inc/a2osx.i
|
||||||
.INB inc/mli.e.i
|
.INB inc/mli.e.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPtr1 .EQ ZPBIN
|
.DUMMY
|
||||||
|
.OR ZPBIN
|
||||||
|
ZS.START
|
||||||
|
DS121x.DATA0 .BS 8
|
||||||
|
DS121x.DATA1 .BS 8 Reverted YY MM DD Day HH mm SS CS
|
||||||
|
ZPPtr1 .BS 2
|
||||||
|
TmpByte .BS 1
|
||||||
|
ZS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -20,12 +29,12 @@ CS.START cld
|
|||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.DA #$61 6502,Level 1 (65c02)
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
|
.DA #0 S.PS.F.EVENT
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA #0
|
.DA CS.END-CS.START Code Size (without Constants)
|
||||||
.DA CS.END-CS.START CS
|
.DA DS.END-DS.START Data Segment Size
|
||||||
.DA DS.END-DS.START DS
|
.DA #16 Stack Size
|
||||||
.DA #16 SS
|
.DA #ZS.END-ZS.START Zero Page Size
|
||||||
.DA #2 ZP
|
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
@ -55,8 +64,8 @@ CS.RUN.READ jsr NSC.Init
|
|||||||
jsr NSC.Read
|
jsr NSC.Read
|
||||||
ldx #7
|
ldx #7
|
||||||
|
|
||||||
.1 lda DS1216E.DETECT,x
|
.1 lda DS121x.DATA0,x
|
||||||
eor DS1216E.DATA,x
|
eor DS121x.DATA1,x
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
dex
|
dex
|
||||||
@ -86,11 +95,11 @@ CS.RUN.SET lda #1
|
|||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
stz DS1216E.DATA+7
|
stz DS121x.DATA1+7
|
||||||
jsr GetBCD
|
jsr GetBCD
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta DS1216E.DATA
|
sta DS121x.DATA1
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp #'/'
|
cmp #'/'
|
||||||
bne .9
|
bne .9
|
||||||
@ -100,7 +109,7 @@ CS.RUN.SET lda #1
|
|||||||
jsr GetBCD
|
jsr GetBCD
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta DS1216E.DATA+1
|
sta DS121x.DATA1+1
|
||||||
|
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp #'/'
|
cmp #'/'
|
||||||
@ -111,7 +120,7 @@ CS.RUN.SET lda #1
|
|||||||
jsr GetBCD
|
jsr GetBCD
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta DS1216E.DATA+2
|
sta DS121x.DATA1+2
|
||||||
|
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp #','
|
cmp #','
|
||||||
@ -121,7 +130,7 @@ CS.RUN.SET lda #1
|
|||||||
|
|
||||||
jsr GetBCD
|
jsr GetBCD
|
||||||
bcs .9
|
bcs .9
|
||||||
sta DS1216E.DATA+4
|
sta DS121x.DATA1+4
|
||||||
|
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp #':'
|
cmp #':'
|
||||||
@ -132,7 +141,7 @@ CS.RUN.SET lda #1
|
|||||||
jsr GetBCD
|
jsr GetBCD
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta DS1216E.DATA+5
|
sta DS121x.DATA1+5
|
||||||
|
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp #':'
|
cmp #':'
|
||||||
@ -143,8 +152,8 @@ CS.RUN.SET lda #1
|
|||||||
jsr GetBCD
|
jsr GetBCD
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta DS1216E.DATA+6
|
sta DS121x.DATA1+6
|
||||||
stz DS1216E.DATA+7
|
stz DS121x.DATA1+7
|
||||||
jsr NSC.Write
|
jsr NSC.Write
|
||||||
|
|
||||||
lda #0 tell TSKMGR that all done ok, but
|
lda #0 tell TSKMGR that all done ok, but
|
||||||
@ -173,9 +182,9 @@ NSC.Init php
|
|||||||
|
|
||||||
.1 ldy #8
|
.1 ldy #8
|
||||||
|
|
||||||
.2 lda $C104
|
.2 lda NSC.IOBASE+4
|
||||||
lsr
|
lsr
|
||||||
ror DS1216E.DETECT-1,x
|
ror DS121x.DATA0-1,x
|
||||||
dey
|
dey
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
@ -204,9 +213,9 @@ NSC.Read php
|
|||||||
|
|
||||||
.1 ldy #8
|
.1 ldy #8
|
||||||
|
|
||||||
.2 lda $C104
|
.2 lda NSC.IOBASE+4
|
||||||
lsr
|
lsr
|
||||||
ror DS1216E.DATA-1,x
|
ror DS121x.DATA1-1,x
|
||||||
dey
|
dey
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
@ -233,7 +242,7 @@ NSC.Write php
|
|||||||
|
|
||||||
ldx #8 Write 8 bytes...
|
ldx #8 Write 8 bytes...
|
||||||
|
|
||||||
.3 lda DS1216E.DATA-1,x
|
.3 lda DS121x.DATA1-1,x
|
||||||
phx
|
phx
|
||||||
|
|
||||||
ldx #8 ....of 8 bits
|
ldx #8 ....of 8 bits
|
||||||
@ -245,7 +254,7 @@ NSC.Write php
|
|||||||
iny
|
iny
|
||||||
|
|
||||||
.5 pha
|
.5 pha
|
||||||
lda $C100,y Write Pattern bit in A0, with A2=0
|
lda NSC.IOBASE,y Write Pattern bit in A0, with A2=0
|
||||||
pla
|
pla
|
||||||
dex
|
dex
|
||||||
bne .4
|
bne .4
|
||||||
@ -262,15 +271,14 @@ NSC.Write php
|
|||||||
.8 plp
|
.8 plp
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
NSC.Select
|
NSC.Select sta NSC.IOBASE
|
||||||
sta $C100
|
|
||||||
* lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
lda $C104 Reset DS1216E comparison register with READ A2=1
|
lda NSC.IOBASE+4 Reset DS1216E comparison register with READ A2=1
|
||||||
|
|
||||||
ldy #8 Read 8 bytes...
|
ldy #8 Read 8 bytes...
|
||||||
|
|
||||||
.3 lda DS1216E.PATTERN-1,y
|
.3 lda DS121x.SIG-1,y
|
||||||
phy
|
phy
|
||||||
|
|
||||||
ldy #8 ....of 8 bits
|
ldy #8 ....of 8 bits
|
||||||
@ -281,7 +289,7 @@ NSC.Select
|
|||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
.5 bit $C100,x Write Pattern bit in A0, with A2=0
|
.5 bit NSC.IOBASE,x Write Pattern bit in A0, with A2=0
|
||||||
|
|
||||||
dey
|
dey
|
||||||
bne .4
|
bne .4
|
||||||
@ -295,7 +303,7 @@ NSC.Select
|
|||||||
NSC.Dump >PUSHW L.MSG.READ.OK1
|
NSC.Dump >PUSHW L.MSG.READ.OK1
|
||||||
ldx #1
|
ldx #1
|
||||||
ldy #1
|
ldy #1
|
||||||
lda DS1216E.DATA+3
|
lda DS121x.DATA1+3
|
||||||
bit #%00010000
|
bit #%00010000
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
@ -314,7 +322,7 @@ NSC.Dump >PUSHW L.MSG.READ.OK1
|
|||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
>LDYA L.MSG.READ.OK2.24
|
>LDYA L.MSG.READ.OK2.24
|
||||||
bit DS1216E.DATA+4
|
bit DS121x.DATA1+4
|
||||||
bpl .3
|
bpl .3
|
||||||
|
|
||||||
>LDYA L.MSG.READ.OK2.12
|
>LDYA L.MSG.READ.OK2.12
|
||||||
@ -325,25 +333,25 @@ NSC.Dump >PUSHW L.MSG.READ.OK1
|
|||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
lda DS1216E.DATA
|
lda DS121x.DATA1
|
||||||
jsr PrintBCD
|
jsr PrintBCD
|
||||||
|
|
||||||
lda #'/'
|
lda #'/'
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
lda DS1216E.DATA+1
|
lda DS121x.DATA1+1
|
||||||
jsr PrintBCD
|
jsr PrintBCD
|
||||||
|
|
||||||
lda #'/'
|
lda #'/'
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
lda DS1216E.DATA+2
|
lda DS121x.DATA1+2
|
||||||
jsr PrintBCD
|
jsr PrintBCD
|
||||||
|
|
||||||
lda #','
|
lda #','
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
lda DS1216E.DATA+4
|
lda DS121x.DATA1+4
|
||||||
bpl .4
|
bpl .4
|
||||||
and #$1F
|
and #$1F
|
||||||
|
|
||||||
@ -353,18 +361,18 @@ NSC.Dump >PUSHW L.MSG.READ.OK1
|
|||||||
lda #':'
|
lda #':'
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
lda DS1216E.DATA+5
|
lda DS121x.DATA1+5
|
||||||
jsr PrintBCD
|
jsr PrintBCD
|
||||||
|
|
||||||
lda #':'
|
lda #':'
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
|
||||||
lda DS1216E.DATA+6
|
lda DS121x.DATA1+6
|
||||||
jsr PrintBCD
|
jsr PrintBCD
|
||||||
|
|
||||||
lda #'.'
|
lda #'.'
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
lda DS1216E.DATA+7
|
lda DS121x.DATA1+7
|
||||||
jsr PrintBCD
|
jsr PrintBCD
|
||||||
|
|
||||||
>PUSHW L.MSG.CRLF
|
>PUSHW L.MSG.CRLF
|
||||||
@ -424,10 +432,7 @@ MSG.READ.OK2.24 .AZ "24h"
|
|||||||
MSG.READ.OK3 .AZ "\r\nCurrent Date/Time : "
|
MSG.READ.OK3 .AZ "\r\nCurrent Date/Time : "
|
||||||
MSG.USAGE .AS "\r\nTo Reset the chip and set clock, type:\r\nNSCUTIL YY/MM/DD,hh:mm:ss"
|
MSG.USAGE .AS "\r\nTo Reset the chip and set clock, type:\r\nNSCUTIL YY/MM/DD,hh:mm:ss"
|
||||||
MSG.CRLF .AZ "\r\n"
|
MSG.CRLF .AZ "\r\n"
|
||||||
DS1216E.PATTERN .HS 5CA33AC55CA33AC5 Reverted 7->0
|
DS121x.SIG .HS 5CA33AC55CA33AC5 Reverted 7->0
|
||||||
DS1216E.DETECT .BS 8
|
|
||||||
DS1216E.DATA .BS 8 Reverted YY MM DD Day HH mm SS CS
|
|
||||||
TmpByte .BS 1
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DS.START
|
DS.START
|
||||||
DS.END
|
DS.END
|
||||||
|
118
ProDOS.FX/ProDOS.S.DCLK.txt
Normal file
118
ProDOS.FX/ProDOS.S.DCLK.txt
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
NEW
|
||||||
|
AUTO 3,1
|
||||||
|
*--------------------------------------
|
||||||
|
* Driver For DS1215
|
||||||
|
*--------------------------------------
|
||||||
|
* we can safely use $200 (used by TCLK)
|
||||||
|
*--------------------------------------
|
||||||
|
DS1215.DATA .EQ $200 Reverted YY MM DD Day HH mm SS CS
|
||||||
|
*--------------------------------------
|
||||||
|
DCLK.START php
|
||||||
|
sei
|
||||||
|
|
||||||
|
lda $C400
|
||||||
|
|
||||||
|
stz $C0C0
|
||||||
|
|
||||||
|
ldy #8
|
||||||
|
stz $C0C2
|
||||||
|
|
||||||
|
lda $C0C3
|
||||||
|
pha
|
||||||
|
|
||||||
|
.1 lda DS1215.SIG-1,y
|
||||||
|
|
||||||
|
ldx #8
|
||||||
|
|
||||||
|
.2 sta $C0C3
|
||||||
|
stz $C0C0
|
||||||
|
|
||||||
|
lsr
|
||||||
|
dex
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
dey
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ldx #8
|
||||||
|
|
||||||
|
.4 ldy #8
|
||||||
|
|
||||||
|
.5 pha
|
||||||
|
lda $C0C3
|
||||||
|
|
||||||
|
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 DS1215.DATA-1,x
|
||||||
|
dex
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
pha DS1215.DATA
|
||||||
|
|
||||||
|
lda DS1215.DATA+1 Get MM
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
ora DS1215.DATA+2 Get DD
|
||||||
|
sta DATELO
|
||||||
|
|
||||||
|
* lda DS1215.DATA Get YY
|
||||||
|
|
||||||
|
pla
|
||||||
|
rol
|
||||||
|
sta DATELO+1
|
||||||
|
|
||||||
|
lda DS1215.DATA+5 Get mm
|
||||||
|
sta TIMELO
|
||||||
|
|
||||||
|
lda DS1215.DATA+4 Get HH
|
||||||
|
sta TIMELO+1
|
||||||
|
|
||||||
|
stz $C0C0
|
||||||
|
|
||||||
|
pla
|
||||||
|
sta $C0C3
|
||||||
|
|
||||||
|
plp
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DS1215.SIG .HS 5CA33AC55CA33AC5 Reverted 7->0
|
||||||
|
*--------------------------------------
|
||||||
|
.LIST ON
|
||||||
|
DCLK.LEN .EQ *-DCLK.START
|
||||||
|
.LIST OFF
|
||||||
|
*--------------------------------------
|
||||||
|
* CONTROL SECTION :
|
||||||
|
*--------------------------------------
|
||||||
|
.DO DCLK.LEN>125
|
||||||
|
ERROR:NCLK Driver too big
|
||||||
|
.FIN
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE usr/src/prodos.fx/prodos.s.dclk
|
||||||
|
LOAD usr/src/prodos.fx/prodos.s
|
||||||
|
ASM
|
@ -351,10 +351,84 @@ LDR.LCBNK1 lda RRAMWRAMBNK1 switch in LC bank 1
|
|||||||
lda RRAMWRAMBNK1
|
lda RRAMWRAMBNK1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DS1216E.DATA1 .EQ idxl
|
DS121x.DATA1 .EQ idxl
|
||||||
DS1216E.DATA2 .EQ A1L
|
DS121x.DATA2 .EQ A1L
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.ClkDevScan php
|
LDR.ClkDevScan jsr LDR.IsIIc
|
||||||
|
bcc LDR.ClkDevNCLK
|
||||||
|
|
||||||
|
php
|
||||||
|
sei
|
||||||
|
|
||||||
|
lda $CFFF
|
||||||
|
lda $C400
|
||||||
|
|
||||||
|
ldy #8
|
||||||
|
stz $C0C0
|
||||||
|
stz $C0C1
|
||||||
|
sty $C0C2
|
||||||
|
|
||||||
|
lda $C0C3
|
||||||
|
pha
|
||||||
|
|
||||||
|
.1 lda DS121x.SIG-1,y
|
||||||
|
|
||||||
|
ldx #8
|
||||||
|
|
||||||
|
.2 sta $C0C3
|
||||||
|
stz $C0C0
|
||||||
|
|
||||||
|
lsr
|
||||||
|
dex
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
dey
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ldx #8
|
||||||
|
|
||||||
|
.4 ldy #8
|
||||||
|
|
||||||
|
.5 lda $C0C3
|
||||||
|
|
||||||
|
lsr
|
||||||
|
ror DS121x.DATA1-1,x
|
||||||
|
dey
|
||||||
|
bne .5
|
||||||
|
|
||||||
|
dex
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
pla
|
||||||
|
sta $C0C3
|
||||||
|
|
||||||
|
plp
|
||||||
|
sed
|
||||||
|
|
||||||
|
ldx #DS121x.ValidHI-DS121x.ValidLO
|
||||||
|
|
||||||
|
.6 lda DS121x.DATA1-1,x
|
||||||
|
cmp DS121x.ValidLO-1,x
|
||||||
|
bcc LDR.ClkDevNCLK
|
||||||
|
|
||||||
|
cmp DS121x.ValidHI-1,x
|
||||||
|
bcc .7
|
||||||
|
|
||||||
|
bne LDR.ClkDevNCLK
|
||||||
|
|
||||||
|
.7 dex
|
||||||
|
bne .6
|
||||||
|
|
||||||
|
cld
|
||||||
|
|
||||||
|
lda #'D'
|
||||||
|
ldx PAKME.DCLK
|
||||||
|
ldy PAKME.DCLK+1
|
||||||
|
jmp LDR.SetupCLK
|
||||||
|
*--------------------------------------
|
||||||
|
LDR.ClkDevNCLK cld
|
||||||
|
|
||||||
|
php
|
||||||
sei
|
sei
|
||||||
|
|
||||||
lda RDCXROM
|
lda RDCXROM
|
||||||
@ -362,30 +436,30 @@ LDR.ClkDevScan php
|
|||||||
|
|
||||||
sta SETCXROM
|
sta SETCXROM
|
||||||
|
|
||||||
* sta $C100
|
sta NSC.IOBASE
|
||||||
lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
ldx #8
|
ldx #8
|
||||||
|
|
||||||
.1 ldy #8
|
.1 ldy #8
|
||||||
|
|
||||||
.2 lda $C104
|
.2 lda NSC.IOBASE+4
|
||||||
lsr
|
lsr
|
||||||
ror DS1216E.DATA1-1,x
|
ror DS121x.DATA1-1,x
|
||||||
dey
|
dey
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
sta $C100
|
sta NSC.IOBASE
|
||||||
* lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
lda $C104 Reset DS1216E comparison register with READ A2=1
|
lda NSC.IOBASE+4 Reset DS1216E comparison register with READ A2=1
|
||||||
|
|
||||||
ldy #8 Read 8 bytes...
|
ldy #8 Read 8 bytes...
|
||||||
|
|
||||||
.3 lda DS1216E.SIG-1,y
|
.3 lda DS121x.SIG-1,y
|
||||||
phy
|
phy
|
||||||
|
|
||||||
ldy #8 ....of 8 bits
|
ldy #8 ....of 8 bits
|
||||||
@ -396,7 +470,7 @@ LDR.ClkDevScan php
|
|||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
.5 bit $C100,x Write Pattern bit in A0, with A2=0
|
.5 bit NSC.IOBASE,x Write Pattern bit in A0, with A2=0
|
||||||
|
|
||||||
dey
|
dey
|
||||||
bne .4
|
bne .4
|
||||||
@ -409,9 +483,9 @@ LDR.ClkDevScan php
|
|||||||
|
|
||||||
.6 ldy #8
|
.6 ldy #8
|
||||||
|
|
||||||
.7 lda $C104
|
.7 lda NSC.IOBASE+4
|
||||||
lsr
|
lsr
|
||||||
ror DS1216E.DATA2-1,x
|
ror DS121x.DATA2-1,x
|
||||||
dey
|
dey
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
@ -427,8 +501,8 @@ LDR.ClkDevScan php
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ldx #8
|
ldx #8
|
||||||
|
|
||||||
.9 lda DS1216E.DATA1-1,x
|
.9 lda DS121x.DATA1-1,x
|
||||||
cmp DS1216E.DATA2-1,x
|
cmp DS121x.DATA2-1,x
|
||||||
bne .90
|
bne .90
|
||||||
|
|
||||||
dex
|
dex
|
||||||
@ -441,7 +515,10 @@ LDR.ClkDevScan php
|
|||||||
ldy PAKME.NCLK+1
|
ldy PAKME.NCLK+1
|
||||||
bra LDR.SetupCLK
|
bra LDR.SetupCLK
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.ClkDevTCLK stz idxl
|
LDR.ClkDevTCLK jsr LDR.IsIIc
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
stz idxl
|
||||||
lda #$C1
|
lda #$C1
|
||||||
sta idxl+1
|
sta idxl+1
|
||||||
|
|
||||||
@ -488,14 +565,13 @@ LDR.ClkDevTCLK stz idxl
|
|||||||
cmp #$C8
|
cmp #$C8
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.SetupCLK stx ZPInBufPtr
|
LDR.SetupCLK stx ZPInBufPtr
|
||||||
sty ZPInBufPtr+1
|
sty ZPInBufPtr+1
|
||||||
|
|
||||||
sta LDR.MSG.CLK
|
sta LDR.MSG.CLK
|
||||||
|
|
||||||
bit RROMBNK2
|
|
||||||
ldx #LDR.MSG.CLK
|
ldx #LDR.MSG.CLK
|
||||||
jsr LDR.PrintX
|
jsr LDR.PrintX
|
||||||
|
|
||||||
@ -1072,6 +1148,7 @@ LDR.Scr80Init lda #$8C Reset 80 col screen ($0C:HOME)
|
|||||||
ldx #LDR.MSG.PRODOS
|
ldx #LDR.MSG.PRODOS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LDR.PrintX bit RROMBNK2
|
LDR.PrintX bit RROMBNK2
|
||||||
|
|
||||||
lda INVFLG
|
lda INVFLG
|
||||||
pha
|
pha
|
||||||
jsr SETINV
|
jsr SETINV
|
||||||
@ -1180,7 +1257,9 @@ L2C4D lda 1,s
|
|||||||
sec
|
sec
|
||||||
rtl
|
rtl
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DS1216E.SIG .HS 5CA33AC55CA33AC5 Reverted 7->0
|
DS121x.SIG .HS 5CA33AC55CA33AC5 Reverted 7->0
|
||||||
|
DS121x.ValidLO .HS 00010101 Y,M,D,DoW
|
||||||
|
DS121x.ValidHI .HS 990C1F07
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* id bytes: evens for clock, odds for disk
|
* id bytes: evens for clock, odds for disk
|
||||||
dskid .HS 08.20.28.00.58.03.70
|
dskid .HS 08.20.28.00.58.03.70
|
||||||
|
@ -15,14 +15,14 @@ NCLK.START php
|
|||||||
|
|
||||||
sta SETCXROM
|
sta SETCXROM
|
||||||
|
|
||||||
sta $C100
|
sta NSC.IOBASE
|
||||||
* lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
lda $C104 Reset DS1216E comparison register with READ A2=1
|
lda NSC.IOBASE+4 Reset DS1216E comparison register with READ A2=1
|
||||||
|
|
||||||
ldy #8 Read 8 bytes...
|
ldy #8 Read 8 bytes...
|
||||||
|
|
||||||
.1 lda DS1216E.PATTERN-1,y
|
.1 lda DS1216E.SIG-1,y
|
||||||
phy
|
phy
|
||||||
|
|
||||||
ldy #8 ....of 8 bits
|
ldy #8 ....of 8 bits
|
||||||
@ -33,7 +33,7 @@ NCLK.START php
|
|||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
.3 bit $C100,x Write Pattern bit in A0, with A2=0
|
.3 bit NSC.IOBASE,x Write Pattern bit in A0, with A2=0
|
||||||
|
|
||||||
dey
|
dey
|
||||||
bne .2
|
bne .2
|
||||||
@ -47,7 +47,7 @@ NCLK.START php
|
|||||||
.4 ldy #8
|
.4 ldy #8
|
||||||
|
|
||||||
.5 pha
|
.5 pha
|
||||||
lda $C104 Read Byte...
|
lda NSC.IOBASE+4 Read Byte...
|
||||||
|
|
||||||
lsr
|
lsr
|
||||||
pla
|
pla
|
||||||
@ -108,7 +108,7 @@ NCLK.START php
|
|||||||
.8 plp
|
.8 plp
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DS1216E.PATTERN .HS 5CA33AC55CA33AC5 Reverted 7->0
|
DS1216E.SIG .HS 5CA33AC55CA33AC5 Reverted 7->0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.LIST ON
|
.LIST ON
|
||||||
NCLK.LEN .EQ *-NCLK.START
|
NCLK.LEN .EQ *-NCLK.START
|
||||||
|
@ -12,6 +12,8 @@ ACL .EQ 1
|
|||||||
LOGO .EQ 1
|
LOGO .EQ 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XRWDBG .EQ 0
|
XRWDBG .EQ 0
|
||||||
|
*--------------------------------------
|
||||||
|
NSC.IOBASE .EQ $C300
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB inc/zp.i
|
.INB inc/zp.i
|
||||||
.INB inc/io.i
|
.INB inc/io.i
|
||||||
@ -214,6 +216,7 @@ PAKME.XDOS .DA XDOS.PAK
|
|||||||
PAKME.IRQ .DA IRQ.PAK
|
PAKME.IRQ .DA IRQ.PAK
|
||||||
PAKME.RAM .DA RAM.PAK
|
PAKME.RAM .DA RAM.PAK
|
||||||
PAKME.RAMX .DA RAMX.PAK
|
PAKME.RAMX .DA RAMX.PAK
|
||||||
|
PAKME.DCLK .DA DCLK.PAK
|
||||||
PAKME.NCLK .DA NCLK.PAK
|
PAKME.NCLK .DA NCLK.PAK
|
||||||
PAKME.TCLK .DA TCLK.PAK
|
PAKME.TCLK .DA TCLK.PAK
|
||||||
PAKME.CCLK .DA CCLK.PAK
|
PAKME.CCLK .DA CCLK.PAK
|
||||||
@ -267,6 +270,12 @@ RAMX.PAK .DA #0
|
|||||||
.INB usr/src/prodos.fx/prodos.s.ramx
|
.INB usr/src/prodos.fx/prodos.s.ramx
|
||||||
.EP
|
.EP
|
||||||
|
|
||||||
|
DCLK.PAK .DA #0
|
||||||
|
.DA DCLK.LEN
|
||||||
|
.PH XDOS.ClockDrv
|
||||||
|
.INB usr/src/prodos.fx/prodos.s.dclk
|
||||||
|
.EP
|
||||||
|
|
||||||
NCLK.PAK .DA #0
|
NCLK.PAK .DA #0
|
||||||
.DA NCLK.LEN
|
.DA NCLK.LEN
|
||||||
.PH XDOS.ClockDrv
|
.PH XDOS.ClockDrv
|
||||||
@ -299,7 +308,7 @@ SEL2.PAK .DA #0
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.AS "PAKME" TAG
|
.AS "PAKME" TAG
|
||||||
.DA $2000 BIN ORG
|
.DA $2000 BIN ORG
|
||||||
.DA #12 Chunk Count
|
.DA #13 Chunk Count
|
||||||
.DA PAKME.Table Chunks
|
.DA PAKME.Table Chunks
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -10,6 +10,8 @@ NEW
|
|||||||
.INB inc/monitor.i
|
.INB inc/monitor.i
|
||||||
.INB inc/mli.i
|
.INB inc/mli.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
NSC.IOBASE .EQ $C300
|
||||||
|
*--------------------------------------
|
||||||
TmpPtr1 .EQ $0
|
TmpPtr1 .EQ $0
|
||||||
TmpPtr2 .EQ $2
|
TmpPtr2 .EQ $2
|
||||||
offset .EQ $4
|
offset .EQ $4
|
||||||
@ -60,14 +62,14 @@ NSC.Detect php
|
|||||||
|
|
||||||
sta SETCXROM
|
sta SETCXROM
|
||||||
|
|
||||||
sta $C100
|
sta NSC.IOBASE
|
||||||
* lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
ldx #8
|
ldx #8
|
||||||
|
|
||||||
.1 ldy #8
|
.1 ldy #8
|
||||||
|
|
||||||
.2 lda $C104
|
.2 lda NSC.IOBASE+4
|
||||||
lsr
|
lsr
|
||||||
ror DS1216E.DATA1-1,x
|
ror DS1216E.DATA1-1,x
|
||||||
dey
|
dey
|
||||||
@ -76,10 +78,10 @@ NSC.Detect php
|
|||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
sta $C100
|
sta NSC.IOBASE
|
||||||
* lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
lda $C104 Reset DS1216E comparison register with READ A2=1
|
lda NSC.IOBASE+4 Reset DS1216E comparison register with READ A2=1
|
||||||
|
|
||||||
ldy #8 Read 8 bytes...
|
ldy #8 Read 8 bytes...
|
||||||
|
|
||||||
@ -94,7 +96,7 @@ NSC.Detect php
|
|||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
.5 bit $C100,x Write Pattern bit in A0, with A2=0
|
.5 bit NSC.IOBASE,x Write Pattern bit in A0, with A2=0
|
||||||
|
|
||||||
dey
|
dey
|
||||||
bne .4
|
bne .4
|
||||||
@ -107,7 +109,7 @@ NSC.Detect php
|
|||||||
|
|
||||||
.6 ldy #8
|
.6 ldy #8
|
||||||
|
|
||||||
.7 lda $C104
|
.7 lda NSC.IOBASE+4
|
||||||
lsr
|
lsr
|
||||||
ror DS1216E.DATA2-1,x
|
ror DS1216E.DATA2-1,x
|
||||||
dey
|
dey
|
||||||
@ -199,6 +201,7 @@ NSC.MSG2 .AZ -"No DS1216E Detected!"
|
|||||||
NSC.MSG3 .AZ -"DS1216E Driver Successfully Installed."
|
NSC.MSG3 .AZ -"DS1216E Driver Successfully Installed."
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Driver For DS1216E
|
* Driver For DS1216E
|
||||||
|
*--------------------------------------
|
||||||
DS1216E.DATA .EQ $200 Reverted YY MM DD Day HH mm SS CS
|
DS1216E.DATA .EQ $200 Reverted YY MM DD Day HH mm SS CS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
NSCDRV.B.START .EQ *
|
NSCDRV.B.START .EQ *
|
||||||
@ -210,10 +213,10 @@ NSCDRV php
|
|||||||
|
|
||||||
sta SETCXROM
|
sta SETCXROM
|
||||||
|
|
||||||
sta $C100
|
sta NSC.IOBASE
|
||||||
* lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
lda $C104 Reset DS1216E comparison register with READ A2=1
|
lda NSC.IOBASE+4 Reset DS1216E comparison register with READ A2=1
|
||||||
|
|
||||||
ldy #8 Read 8 bytes...
|
ldy #8 Read 8 bytes...
|
||||||
|
|
||||||
@ -228,7 +231,7 @@ NSCDRV.2 ldx #0
|
|||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
NSCDRV.3 bit $C100,x Write Pattern bit in A0, with A2=0
|
NSCDRV.3 bit NSC.IOBASE,x Write Pattern bit in A0, with A2=0
|
||||||
|
|
||||||
dey
|
dey
|
||||||
bne NSCDRV.2
|
bne NSCDRV.2
|
||||||
@ -242,7 +245,7 @@ NSCDRV.3 bit $C100,x Write Pattern bit in A0, with A2=0
|
|||||||
NSCDRV.4 ldy #8
|
NSCDRV.4 ldy #8
|
||||||
|
|
||||||
NSCDRV.5 pha
|
NSCDRV.5 pha
|
||||||
lda $C104 Read Byte...
|
lda NSC.IOBASE+4 Read Byte...
|
||||||
|
|
||||||
lsr
|
lsr
|
||||||
pla
|
pla
|
||||||
|
Loading…
x
Reference in New Issue
Block a user