mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-25 00:23:52 +00:00
Kernel version 0.9 : Implementing Block Device Support
This commit is contained in:
parent
89058db18a
commit
89f0b22a7a
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -125,11 +125,6 @@ CS.RUN ldy #bCANCEL
|
|||||||
lda (pData),y
|
lda (pData),y
|
||||||
bmi .99
|
bmi .99
|
||||||
|
|
||||||
ldy #bSTOP
|
|
||||||
lda (pData),y
|
|
||||||
bmi .8
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
@ -139,42 +134,7 @@ CS.RUN ldy #bCANCEL
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
CS.DOEVENT sec
|
||||||
lda (pEvent),y
|
|
||||||
ldy #S.PS.hStdIn
|
|
||||||
cmp (pPs),y
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
lda (pEvent)
|
|
||||||
and #S.EVT.F.KEY is it a KEY event?
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
ldy #S.EVT.DATAHI is it an O or SAPPLE key ?
|
|
||||||
lda (pEvent),y
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
ldy #S.EVT.DATALO
|
|
||||||
lda (pEvent),y
|
|
||||||
cmp #$03 Ctrl-C
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
lda #$FF
|
|
||||||
ldy #bCANCEL
|
|
||||||
sta (pData),y
|
|
||||||
bra .8
|
|
||||||
|
|
||||||
.1 cmp #$13 Ctrl-S
|
|
||||||
bne .8
|
|
||||||
|
|
||||||
ldy #bSTOP
|
|
||||||
lda (pData),y
|
|
||||||
eor #$FF
|
|
||||||
sta (pData),y
|
|
||||||
|
|
||||||
.8 clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 sec
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda hLIBBLKDEV
|
CS.QUIT lda hLIBBLKDEV
|
||||||
@ -190,9 +150,9 @@ CS.END
|
|||||||
OptionList >PSTR "L"
|
OptionList >PSTR "L"
|
||||||
OptionVars .DA #bLL
|
OptionVars .DA #bLL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.USAGE >CSTR "Usage : FORMAT <BLOCKDEV> [VOLUME.NAME]\n -L : Low-Level Format\n"
|
MSG.USAGE >CSTR "Usage : FORMAT <BLOCKDEV> [VOLUME.NAME]\r\n -L : Low-Level Format\r\n"
|
||||||
MSG.OK >CSTR "[OK]\n"
|
MSG.OK >CSTR "[OK]\r\n"
|
||||||
MSG.ERR >CSTR "[%h]\n"
|
MSG.ERR >CSTR "[%h]\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIBBLKDEV >PSTR "libblkdev.o"
|
LIBBLKDEV >PSTR "libblkdev.o"
|
||||||
DefaultVolName >PSTR "BLANK"
|
DefaultVolName >PSTR "BLANK"
|
||||||
@ -206,7 +166,6 @@ DS.START
|
|||||||
VolName .BS 16
|
VolName .BS 16
|
||||||
DevName .BS 4
|
DevName .BS 4
|
||||||
bCANCEL .BS 1
|
bCANCEL .BS 1
|
||||||
bSTOP .BS 1
|
|
||||||
bLL .BS 1
|
bLL .BS 1
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
|
@ -75,9 +75,13 @@ L.TrkWriter .DA TrkWriter
|
|||||||
L.ProDOS.Boot .DA ProDOS.Boot
|
L.ProDOS.Boot .DA ProDOS.Boot
|
||||||
.DA 0
|
.DA 0
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* In PUSHW = DevSize (in 512b blocks)
|
* #GetProDOSCatSize
|
||||||
* Out: X=BlockCount (max 22)
|
* Compute space needed for ProDOS Catalog
|
||||||
* A=PageCount (max 44)
|
* ##In :
|
||||||
|
* PUSHW = DevSize (in 512b blocks)
|
||||||
|
* ##Out :
|
||||||
|
* X=BlockCount (max 22)
|
||||||
|
* A=PageCount (max 44)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
GetProDOSCatSize
|
GetProDOSCatSize
|
||||||
>PULLAX A=DevSizeLo
|
>PULLAX A=DevSizeLo
|
||||||
@ -105,18 +109,19 @@ GetProDOSCatSizeAX
|
|||||||
asl A = Total pages needed to build catalog.
|
asl A = Total pages needed to build catalog.
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* BuildProDOSCat
|
* #BuildProDOSCat
|
||||||
* In: PUSHW = DevSize (in 512b blocks)
|
* ##In :
|
||||||
* PUSHW = VolName (PSTR)
|
* PUSHW = DevSize (in 512b blocks)
|
||||||
* PUSHW = DstBuf (Zero filled)
|
* PUSHW = VolName (PSTR)
|
||||||
* Blk0 : ProDOS.BootBlk
|
* PUSHW = DstBuf (Zero filled)
|
||||||
* Blk1 : SOS.BootBlk
|
* Blk0 : ProDOS.BootBlk
|
||||||
* Blk2,3,4,5 : Volume Directory
|
* Blk1 : SOS.BootBlk
|
||||||
* Blk6.... : Volume Bitmap (4096/Blk)
|
* Blk2,3,4,5 : Volume Directory
|
||||||
* max devSize = 65535 -> max 16 Bitmap Blk
|
* Blk6.... : Volume Bitmap (4096/Blk)
|
||||||
* absolute MAX DstBuf size=
|
* max devSize = 65535 -> max 16 Bitmap Blk
|
||||||
* 7 for Disk II(280blk),3.5(1600),3.5HD(2880)
|
* absolute MAX DstBuf size=
|
||||||
* 22 for 32mb Hardisk...
|
* 7 for Disk II(280blk),3.5(1600),3.5HD(2880)
|
||||||
|
* 22 for 32mb Hardisk...
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
BuildProDOSCat >PULLW ZPPtr1 DstBuf
|
BuildProDOSCat >PULLW ZPPtr1 DstBuf
|
||||||
>PULLW ZPPtr2 VolName
|
>PULLW ZPPtr2 VolName
|
||||||
|
@ -353,8 +353,19 @@ DevMgrInit.AddDev
|
|||||||
inc DevMgr.Count
|
inc DevMgr.Count
|
||||||
jsr K.GetDevByIDA
|
jsr K.GetDevByIDA
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
ldy #S.DEV-1
|
||||||
|
|
||||||
|
.1 lda SP.DEV,y
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
dey
|
||||||
|
bne .1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
SP.DEV .BS 2 JMP
|
||||||
|
.DA #S.DEV.S.BLOCK S
|
||||||
|
>PSTR "S1D1" 5 bytes
|
||||||
|
*--------------------------------------
|
||||||
SmartPort.OFS .HS 07010305
|
SmartPort.OFS .HS 07010305
|
||||||
SmartPort.SIG .HS 00200003
|
SmartPort.SIG .HS 00200003
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -369,10 +380,6 @@ SP.DEV.STATUS .DA #3
|
|||||||
SP.STATUS1 .BS 4
|
SP.STATUS1 .BS 4
|
||||||
SP.STATUS2 .BS S.DEVSTAT
|
SP.STATUS2 .BS S.DEVSTAT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SP.DEV .BS 2 JMP
|
|
||||||
.BS 1 S
|
|
||||||
>PSTR "S1D1" 5 bytes
|
|
||||||
*--------------------------------------
|
|
||||||
SP.DRV cld
|
SP.DRV cld
|
||||||
ldy #7
|
ldy #7
|
||||||
lda (pDev),y
|
lda (pDev),y
|
||||||
@ -382,6 +389,17 @@ SP.DRV.lo ldy #$ff
|
|||||||
SP.DRV.hi lda #$ff
|
SP.DRV.hi lda #$ff
|
||||||
jmp A2osX.PRTCALL
|
jmp A2osX.PRTCALL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
DII.DRV cld
|
||||||
|
lda #$ff DSSS0000
|
||||||
|
cpx #DEVMGR.CONTROL
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.9 lda #MLI.ERR.BADCALL
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
BLK.DRV
|
BLK.DRV
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EvtMgrInit lda #$A5
|
EvtMgrInit lda #$A5
|
||||||
|
Loading…
Reference in New Issue
Block a user