Kernel 0.9.1 : BugFix in KM.VSDRIVE & USR Block devices

This commit is contained in:
Rémy GIBERT 2018-01-09 16:31:56 +00:00
parent b93f1d2b3c
commit 3c71f0d14b
4 changed files with 27 additions and 26 deletions

Binary file not shown.

Binary file not shown.

View File

@ -60,7 +60,7 @@ A2osx.DII.Stat .DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ
.BS 4
.DA #S.DSTAT.T.DISKII
.DA #0
.DA #0,#9
.DA #0,#91
*--------------------------------------
* A2osX.RamDrv
* X = DEVMGR.cmd
@ -107,7 +107,7 @@ A2osx.RamDrv.Stat
>PSTR "ProDOS /RAM Disk"
.DA #S.DSTAT.T.RAM
.DA #0
.DA #0,#9
.DA #0,#91
*--------------------------------------
* A2osX.BlkDrv
* X = DEVMGR.cmd
@ -200,7 +200,7 @@ A2osX.Blk.Stat .DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ
>PSTR "ProDOS Block Dev"
.DA #S.DSTAT.T.PRODOS
.DA #0
.DA #0,#9
.DA #0,#91
*--------------------------------------
* Smartport Driver
*--------------------------------------
@ -292,7 +292,7 @@ DevMgr.NUL.Code .DA .1 STATUS
>PSTR "NULL DEVICE "
.DA #S.DSTAT.T.CHAR
.DA #0
.DA $0900
.DA #0,#91
*--------------------------------------
* SYS DEVICE
*--------------------------------------
@ -316,7 +316,7 @@ DevMgr.SYS.Code .DA .1 STATUS
>PSTR "A2osX SYS Screen"
.DA #S.DSTAT.T.CHAR
.DA #0
.DA $0900
.DA #0,#91
*--------------------------------------
DevMgr.SYS.Open lda #1
sta A2osX.SCRNDEVS

View File

@ -802,9 +802,14 @@ DevMgrInit >LDYAI MSG.DEV
and #$7
sta DEV.HEADER+S.DEV.BUSID
stz ZPPtr1
lda DEVPTRS,x
sta DEV.HEADER+S.DEV.ROM.JMP
lda DEVPTRS+1,x
sta ZPPtr1+1
sta DEV.HEADER+S.DEV.ROM.JMP+1
sta ZPPtr1+1
stz ZPPtr1
plp
lda #0
@ -825,11 +830,11 @@ DevMgrInit >LDYAI MSG.DEV
jsr DevMgrInit.RAM
bra .8
.3 and #$f
.3 and #$F0
cmp #$C0
beq .4
jsr DevMgrInit.BLK Outside ROM space, ram loaded BLK dev
jsr DevMgrInit.USR Outside ROM space, User loaded BLK dev
bra .8
.4 ldx #SmartPort.SIG-SmartPort.OFS-1
@ -864,7 +869,8 @@ DevMgrInit >LDYAI MSG.DEV
sta A2osX.S,x
.8 dec DevMgrInit.DEVCNT
bpl .1
bmi .80
jmp .1
.80 clc
rts
@ -872,41 +878,34 @@ DevMgrInit.DEVCNT
.BS 1
*--------------------------------------
DevMgrInit.DII >LDYAI A2osX.DIIDrv
>STYA DEV.HEADER+S.DEV.DRV.JMP
jmp DevMgrInit.AddDev
*--------------------------------------
DevMgrInit.RAM >LDYAI A2osX.RamDrv
>STYA DEV.HEADER+S.DEV.DRV.JMP
jmp DevMgrInit.AddDev
*--------------------------------------
DevMgrInit.USR >LDYAI A2osX.BlkDrv
jmp DevMgrInit.AddDev
*--------------------------------------
DevMgrInit.BLK ldy #$ff
lda (ZPPtr1),y
sta DEV.HEADER+S.DEV.ROM.JMP
lda ZPPtr1+1
sta DEV.HEADER+S.DEV.ROM.JMP+1
>LDYAI A2osX.BlkDrv
>STYA DEV.HEADER+S.DEV.DRV.JMP
>LDYAI A2osX.BlkDrv
jmp DevMgrInit.AddDev
*--------------------------------------
DevMgrInit.SP ldy #$ff
lda (ZPPtr1),y
clc
adc #3 Compute smartport entry point
sta .3+1
sta .1+1
sta DEV.HEADER+S.DEV.ROM.JMP
lda ZPPtr1+1
sta .3+2
sta DEV.HEADER+S.DEV.ROM.JMP+1
>LDYAI A2osX.PrtDrv
>STYA DEV.HEADER+S.DEV.DRV.JMP
sta .1+2
.2 lda DEV.HEADER+S.DEV.DEVID
lda DEV.HEADER+S.DEV.DEVID
sta SP.DEV.STATUS.DEVID
.3 jsr $ffff Self Modified
.1 jsr $ffff Self Modified
.DA #0 Status
.DA SP.DEV.STATUS
bcs .9
@ -914,11 +913,13 @@ DevMgrInit.SP ldy #$ff
lda SP.DEV.STATUS.DATA+S.DSTAT.S
sta DEV.HEADER+S.DEV.S
>LDYAI A2osX.PrtDrv
jsr DevMgrInit.AddDev
.9 rts
*--------------------------------------
DevMgrInit.AddDev
>STYA DEV.HEADER+S.DEV.DRV.JMP
lda DevMgr.Count
cmp #K.DEV.MAX
beq .9
@ -949,7 +950,7 @@ DevMgrInit.AddDev
sec
rts
*--------------------------------------
DEV.HEADER clc
DEV.HEADER cld
jmp ($ffff,x)
.DA #S.DEV.S.BLOCK S
.BS 1 F