mirror of
https://github.com/A2osX/A2osX.git
synced 2025-03-01 13:30:54 +00:00
Kernel version 0.8 : KM.VSDRIVE, work in progress
This commit is contained in:
parent
8f5c5f448b
commit
63e97cd7d5
@ -97,6 +97,17 @@ SSC.Detect stz TmpPtr1
|
|||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
|
tax
|
||||||
|
|
||||||
|
stz SSC.RESET,x
|
||||||
|
|
||||||
|
lda #SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP
|
||||||
|
sta SSC.CTL,x
|
||||||
|
|
||||||
|
lda #SSC.CMD.RIRQDIS
|
||||||
|
sta SSC.CMD,x
|
||||||
|
txa
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -235,7 +246,7 @@ DRV.Slotn0 ldx #$ff Self Modified
|
|||||||
inc W=2,R=3
|
inc W=2,R=3
|
||||||
ldx DRV.UNITNUM
|
ldx DRV.UNITNUM
|
||||||
bpl .1
|
bpl .1
|
||||||
adc #2
|
adc #2 CC from bcs .9
|
||||||
|
|
||||||
.1 jsr DRV.DO.CMD
|
.1 jsr DRV.DO.CMD
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -251,16 +262,15 @@ DRV.Slotn0 ldx #$ff Self Modified
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.DO.CMD sta DRV.CmdBuf.Cmd store cmd
|
DRV.DO.CMD sta DRV.CmdBuf.Cmd store cmd
|
||||||
eor #VS.CMD
|
eor #VS.CMD
|
||||||
sta DRV.CmdBuf.Sum
|
eor DRV.BLKNUM
|
||||||
|
eor DRV.BLKNUM+1
|
||||||
|
|
||||||
lda DRV.BLKNUM
|
ldy DRV.BLKNUM
|
||||||
sta DRV.CmdBuf.Blk
|
sty DRV.CmdBuf.Blk
|
||||||
eor DRV.CmdBuf.Sum
|
|
||||||
sta DRV.CmdBuf.Sum
|
ldy DRV.BLKNUM+1
|
||||||
|
sty DRV.CmdBuf.Blk+1
|
||||||
|
|
||||||
lda DRV.BLKNUM+1
|
|
||||||
sta DRV.CmdBuf.Blk+1
|
|
||||||
eor DRV.CmdBuf.Sum
|
|
||||||
sta DRV.CmdBuf.Sum
|
sta DRV.CmdBuf.Sum
|
||||||
|
|
||||||
lda DRV.BUFF
|
lda DRV.BUFF
|
||||||
@ -269,13 +279,6 @@ DRV.DO.CMD sta DRV.CmdBuf.Cmd store cmd
|
|||||||
inc
|
inc
|
||||||
sta DRV.A2H
|
sta DRV.A2H
|
||||||
|
|
||||||
stz SSC.RESET,x
|
|
||||||
|
|
||||||
lda #SSC.CTL.B115200+SSC.CTL.8D+SSC.CTL.1S+SSC.CMD.NOP
|
|
||||||
sta SSC.CTL,x
|
|
||||||
|
|
||||||
lda #SSC.CMD.RIRQDIS
|
|
||||||
sta SSC.CMD,x
|
|
||||||
* send CMD+CS
|
* send CMD+CS
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
@ -304,15 +307,14 @@ DRV.DO.CMD sta DRV.CmdBuf.Cmd store cmd
|
|||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
* Read block
|
* Read block
|
||||||
iny Skip Checksum
|
ldy #4 Read 4 bytes
|
||||||
|
|
||||||
.3 jsr DRV.SSCGet
|
.3 jsr DRV.SSCGet
|
||||||
bcs .9
|
bcs .9
|
||||||
sta DRV.CmdBuf,y
|
|
||||||
eor DRV.CmdBuf.Sum
|
eor DRV.CmdBuf.Sum
|
||||||
sta DRV.CmdBuf.Sum
|
sta DRV.CmdBuf.Sum
|
||||||
iny
|
dey
|
||||||
cpy #9
|
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
* recieve Header CS and check
|
* recieve Header CS and check
|
||||||
@ -323,6 +325,7 @@ DRV.DO.CMD sta DRV.CmdBuf.Cmd store cmd
|
|||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.4 jsr DRV.SSCGet
|
.4 jsr DRV.SSCGet
|
||||||
bcs .9
|
bcs .9
|
||||||
sta (DRV.BUFF),y
|
sta (DRV.BUFF),y
|
||||||
@ -346,13 +349,28 @@ DRV.DO.CMD sta DRV.CmdBuf.Cmd store cmd
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
* Write Block
|
* Write Block
|
||||||
.6
|
.6 ldy #0
|
||||||
|
|
||||||
|
.7 lda (DRV.BUFF),y
|
||||||
|
jsr DRV.SSCSend
|
||||||
|
bcs .9
|
||||||
|
iny
|
||||||
|
bne .7
|
||||||
|
|
||||||
|
.8 lda (DRV.A2L),y
|
||||||
|
jsr DRV.SSCSend
|
||||||
|
bcs .9
|
||||||
|
iny
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
jsr DRV.BufCheckSum
|
||||||
|
jsr DRV.SSCSend
|
||||||
|
bcs .9
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 sec
|
.9
|
||||||
|
DRV.CS sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.CmdBuf .DA #VS.CMD
|
DRV.CmdBuf .DA #VS.CMD
|
||||||
@ -369,26 +387,24 @@ DRV.BufCheckSum lda #0
|
|||||||
bne .1
|
bne .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.SSCSend pha
|
DRV.SSCSend sta .2+1
|
||||||
.1 lda SSC.STATUS,x
|
.1 lda SSC.STATUS,x
|
||||||
bit #SSC.STATUS.DCD+SSC.STATUS.DSR
|
bit #SSC.STATUS.DCD+SSC.STATUS.DSR
|
||||||
beq .9
|
beq DRV.CS
|
||||||
|
|
||||||
and #SSC.STATUS.TDRE Outgoing char?
|
and #SSC.STATUS.TDRE Outgoing char?
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
pla
|
.2 lda #$ff
|
||||||
sta SSC.DATA,x
|
sta SSC.DATA,x
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 pla
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.SSCGet
|
DRV.SSCGet
|
||||||
.1 lda SSC.STATUS,x
|
.1 lda SSC.STATUS,x
|
||||||
|
bit #SSC.STATUS.DCD+SSC.STATUS.DSR
|
||||||
|
beq DRV.CS
|
||||||
|
|
||||||
and #SSC.STATUS.RDRF incoming char?
|
and #SSC.STATUS.RDRF incoming char?
|
||||||
beq .1
|
beq .1
|
||||||
@ -399,12 +415,14 @@ DRV.SSCGet
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.EP
|
.EP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
.LIST ON
|
||||||
DRV.SIZE .EQ *-DRV
|
DRV.SIZE .EQ *-DRV
|
||||||
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* CONTROL SECTION :
|
* CONTROL SECTION :
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DO DRV.SIZE>255
|
.DO DRV.SIZE>255
|
||||||
ERROR:DRV.SIZE too big
|
* ERROR:DRV.SIZE too big
|
||||||
.FIN
|
.FIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
Loading…
x
Reference in New Issue
Block a user