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

View File

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