Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-10-08 14:47:47 +02:00
parent d2f384b08e
commit 61f93343af
5 changed files with 147 additions and 106 deletions

Binary file not shown.

Binary file not shown.

View File

@ -296,15 +296,9 @@ StrMode .BS 1
bPause .BS 1 bPause .BS 1
hFullPath .BS 1
hSrcFullPath .BS 1 hSrcFullPath .BS 1
STAT .BS S.STAT
Index .BS 1 .INB USR/SRC/BIN/X.FILEENUM.G
hDIRs .BS X.MAX.RECURSE
hDIRENTs .BS X.MAX.RECURSE
oDIRENTs .BS X.MAX.RECURSE*2
hSrcBasePath .BS 1
hFilter .BS 1
DS.END DS.END
.ED .ED

View File

@ -19,6 +19,17 @@ ZPPtr1 .BS 2
ZPPtr2 .BS 2 ZPPtr2 .BS 2
ZPPtrFD .BS 2 ZPPtrFD .BS 2
ZPPtrDevName .BS 2 ZPPtrDevName .BS 2
ArgIndex .BS 1
hDevID .BS 1
bLL .BS 1
bCustomBlkSize .BS 1
MediaBlkSize .BS 2
CatSize .BS 1
CatBlkCnt .BS 1
CatOptions .BS 1
ZS.END ZS.END
.ED .ED
*-------------------------------------- *--------------------------------------
@ -51,77 +62,93 @@ L.MSG.INIT .DA MSG.INIT
L.FMT.BLANK .DA FMT.BLANK L.FMT.BLANK .DA FMT.BLANK
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT ldy #S.PS.ARGC CS.INIT >LDYA L.LIBBLKDEV
lda (pPs),y >SYSCALL LoadLib
beq .90 bcs .9
sta hLIBBLKDEV
.1 >INC.G ArgIndex .9 rts
*--------------------------------------
CS.RUN ldy #S.PS.ARGC
lda (pPs),y
beq .99
.1 inc ArgIndex
lda ArgIndex
>SYSCALL ArgV >SYSCALL ArgV
bcc .11 bcc .11
jmp .8 jmp .8
.11 >STYA ZPPtr1 .11 >STYA ZPPtr1
lda (ZPPtr1) lda (ZPPtr1)
cmp #'-' cmp #'-'
bne .4 bne .4
ldy #1 ldy #1
lda (ZPPtr1),y lda (ZPPtr1),y
beq .90 beq .99
cmp #'0' cmp #'0'
bcc .20 bcc .2
cmp #'9'+1 cmp #'9'+1
bcs .20 bcs .2
and #$0F and #$0F
>STA.G CatSize sta CatSize
bra .1 .10 bra .1
.20 ldx OptionList
.2 cmp OptionList,x
beq .3
dex
bne .2
.90 bra .99
.3 ldy OptionVars-1,x
lda #$80
sta (pData),y
bra .1
.4 >LDA.G hDevID
bne .5 Already have a dev...go get VolName
>LDYA ZPPtr1 .2 jsr CS.RUN.CheckOpt
>SYSCALL GetDevByName
bcs .99 bcs .99
>STYA ZPPtrFD
txa cpy #bCustomBlkSize
>STA.G hDevID bne .1
>LDYA ZPPtr1
>STYA ZPPtrDevName inc ArgIndex
lda ArgIndex
>SYSCALL ArgV
bcs .99
>SYSCALL atoi
>STYA MediaBlkSize
bra .1 bra .1
.5 ldy #$ff
.6 iny
lda (ZPPtr1),y
beq .61
cpy #15
beq .99 VolName too long
.61 >PUSHW ZPPtr1
>LEA.G VolName
>SYSCALL StrCpy
jmp .1 success, scan for any other args
.8 >LDYA L.LIBBLKDEV
>SYSCALL LoadLib
bcs .9
sta hLIBBLKDEV
clc
.9 rts
.99 >PUSHBI 0 .99 >PUSHBI 0
>LDYA L.MSG.USAGE >LDYA L.MSG.USAGE
>SYSCALL printf >SYSCALL printf
lda #E.SYN lda #E.SYN
sec sec
rts rts
.4 lda hDevID
bne .5 Already have a dev...go get VolName
>LDYA ZPPtr1
>SYSCALL GetDevByName
bcs .99
>STYA ZPPtrFD
stx hDevID
>LDYA ZPPtr1
>STYA ZPPtrDevName
bra .10
.5 ldy #$ff
.6 iny
lda (ZPPtr1),y
sta (pData),y VolName
beq .10
cpy #16
bcc .6
bra .99 VolName too long
.8 lda hDevID
beq .99
*-------------------------------------- *--------------------------------------
CS.RUN jsr CS.RUN.InitCat CS.RUN.Format jsr CS.RUN.GetBlockSize
bcs .9
jsr CS.RUN.InitCat
bcs .9 bcs .9
jsr CS.RUN.BuildCat jsr CS.RUN.BuildCat
bcs .9 bcs .9
@ -133,6 +160,7 @@ CS.RUN jsr CS.RUN.InitCat
lda #0 lda #0
sec sec
rts rts
.9 pha .9 pha
>PUSHA >PUSHA
>PUSHBI 1 >PUSHBI 1
@ -142,10 +170,39 @@ CS.RUN jsr CS.RUN.InitCat
sec sec
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.InitCat >LDA.G CatSize CS.RUN.GetBlockSize
lda bCustomBlkSize
bmi .8
>PUSHEA.G DIB
lda hDevID
>SYSCALL GetDevStatus
bcs .9
>LDA.G DIB+S.DIB.SIZE
tax
iny
ora (pData),y
beq .9
lda (pData),y
sta MediaBlkSize+1
stx MediaBlkSize
.8 clc
rts
.9 >LDYA L.MSG.NOSIZE
>SYSCALL puts
lda #MLI.E.IO
sec
rts
*--------------------------------------
CS.RUN.InitCat lda CatSize
bne .1 bne .1
lda #4 lda #4
sta (pData),y sta CatSize
.1 >LDA.G VolName .1 >LDA.G VolName
bne .8 Volume name ok bne .8 Volume name ok
@ -157,44 +214,26 @@ CS.RUN.InitCat >LDA.G CatSize
>LEA.G VolName >LEA.G VolName
>SYSCALL sprintf >SYSCALL sprintf
rts rts
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.BuildCat >PUSHEA.G DIB CS.RUN.BuildCat >PUSHEA.G VolName
>LDA.G hDevID >PUSHW MediaBlkSize
>SYSCALL GetDevStatus
bcs .99
>LDA.G DIB+S.DIB.SIZE
iny
ora (pData),y
bne .1
>PUSHBI 0
>LDYA L.MSG.NOSIZE
>SYSCALL printf
lda #MLI.E.IO
sec
rts
.1 >PUSHEA.G VolName
>PUSHW.G DIB+S.DIB.SIZE
>PUSHW ZPPtrDevName >PUSHW ZPPtrDevName
>PUSHBI 6 >PUSHBI 6
>LDYA L.MSG.INIT >LDYA L.MSG.INIT
>SYSCALL printf >SYSCALL printf
.99 bcs .9 bcs .9
jsr .7 jsr .7
>LIBCALL hLIBBLKDEV,LIBBLKDEV.GetProDOSCatSize >LIBCALL hLIBBLKDEV,LIBBLKDEV.GetProDOSCatSize
bcs .9 bcs .9
phy stx CatBlkCnt
pha
txa
>STA.G BlkCnt
pla
ply
>SYSCALL GetMem0 BufferSize >SYSCALL GetMem0 BufferSize
bcs .9 bcs .9
phx phx
@ -207,14 +246,14 @@ CS.RUN.BuildCat >PUSHEA.G DIB
>LIBCALL hLIBBLKDEV,LIBBLKDEV.BuildProDOSCat >LIBCALL hLIBBLKDEV,LIBBLKDEV.BuildProDOSCat
.9 rts .9 rts
.7 >PUSHW.G DIB+S.DIB.SIZE .7 >PUSHW MediaBlkSize
>PUSHB.G CatSize >PUSHB CatSize
>PUSHB.G CatOptions >PUSHB CatOptions
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.WriteCat >PUSHEA.G IOCTL CS.RUN.WriteCat >PUSHEA.G IOCTL
>PUSHBI IOCTL.WRITEBLOCK >PUSHBI IOCTL.WRITEBLOCK
>LDA.G hDevID lda hDevID
>SYSCALL IOCTL >SYSCALL IOCTL
bcs .9 bcs .9
@ -226,7 +265,7 @@ CS.RUN.WriteCat >PUSHEA.G IOCTL
sta (pData),y sta (pData),y
>INC.G IOCTL+S.IOCTL.BLKNUM >INC.G IOCTL+S.IOCTL.BLKNUM
>SLEEP >SLEEP
>DEC.G BlkCnt dec CatBlkCnt
bne CS.RUN.WriteCat bne CS.RUN.WriteCat
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
@ -242,6 +281,25 @@ CS.QUIT >LDA.G hBuf
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.CheckOpt ldy #1
lda (ZPPtr1),y
ldx #OptionVars-OptionList-1
.2 cmp OptionList,x
beq .3
dex
bpl .2
sec
rts
.3 ldy OptionVars,x
ldx #$ff
stx 0,y
clc
rts
*--------------------------------------
CS.END CS.END
*-------------------------------------- *--------------------------------------
LIBBLKDEV .AZ "libblkdev" LIBBLKDEV .AZ "libblkdev"
@ -249,6 +307,7 @@ hLIBBLKDEV .BS 1
*-------------------------------------- *--------------------------------------
MSG.USAGE .AS "Usage : FORMAT <BLOCKDEV> [VOLUME.NAME]\r\n" MSG.USAGE .AS "Usage : FORMAT <BLOCKDEV> [VOLUME.NAME]\r\n"
.AS " -L : Low-Level Format\r\n" .AS " -L : Low-Level Format\r\n"
.AS " -B xxxx : override Device block size\r\n"
.AZ " -1-9 : Catalog Size (Blocks)\r\n" .AZ " -1-9 : Catalog Size (Blocks)\r\n"
MSG.OK .AZ "[OK]" MSG.OK .AZ "[OK]"
MSG.ERR .AZ "[%h]\r\n" MSG.ERR .AZ "[%h]\r\n"
@ -256,19 +315,14 @@ MSG.NOSIZE .AZ "Unable to get media size."
MSG.INIT .AZ "Formatting %s (%D Blks),Volname:%s..." MSG.INIT .AZ "Formatting %s (%D Blks),Volname:%s..."
FMT.BLANK .AZ "BLANK%H%H" FMT.BLANK .AZ "BLANK%H%H"
*-------------------------------------- *--------------------------------------
OptionList >PSTR "Ll" OptionList .AS "LlBb"
OptionVars .DA #bLL,#bLL OptionVars .DA #bLL,#bLL,#bCustomBlkSize,#bCustomBlkSize
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
ArgIndex .BS 1
bLL .BS 1
VolName .BS 16 VolName .BS 16
hDevID .BS 1
CatSize .BS 1
CatOptions .BS 1
BlkCnt .BS 1
IOCTL .BS S.IOCTL IOCTL .BS S.IOCTL
hBuf .BS 1 hBuf .BS 1
DIB .BS S.DIB DIB .BS S.DIB

View File

@ -560,23 +560,18 @@ DevMgrInit >LDYAI MSG.DEV
bpl .5 bpl .5
ldy #7 ldy #7
lda (ZPPtr1),y lda (ZPPtr1),y
beq .51 $Cn07=00 : SmartPort bne .6 $Cn07=00 : SmartPort
ldx #AWSmartPort.SIG-AWSmartPort.OFS-1
.50 ldy AWSmartPort.OFS,x Check if there is AWsmartport firmware
lda (ZPPtr1),y
cmp AWSmartPort.SIG,x
bne .6 not on AW
dex
bpl .50
.51 lda ZPPtr1+1 get $Cn lda ZPPtr1+1 get $Cn
and #$f get $0n and #$f get $0n
cmp FD.BDEV+S.FD.DEV.BUSID same as SSS ? cmp FD.BDEV+S.FD.DEV.BUSID same as SSS ?
beq .52 beq .52
inc FD.BDEV+S.FD.DEV.DEVID Remapped SP devices.... inc FD.BDEV+S.FD.DEV.DEVID Remapped SP devices....
inc FD.BDEV+S.FD.DEV.DEVID Add 2 to DEVID (2 & 3) inc FD.BDEV+S.FD.DEV.DEVID Add 2 to DEVID (2 & 3)
jsr DevMgrInit.SP jsr DevMgrInit.SP
bra .8 Phantom slot... bra .8 Phantom slot...
.52 jsr DevMgrInit.SP .52 jsr DevMgrInit.SP
lda #A2osX.S.SP lda #A2osX.S.SP
bra .7 bra .7
@ -1071,8 +1066,6 @@ FD.BDEV.NAME .AZ "S1D1"
*-------------------------------------- *--------------------------------------
SmartPort.OFS .HS 010305 SmartPort.OFS .HS 010305
SmartPort.SIG .HS 200003 SmartPort.SIG .HS 200003
AWSmartPort.OFS .HS 12131415161718191A1B
AWSmartPort.SIG .HS A9008DF2C0A9708DF3C0
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/SYS/KERNEL.S.INIT SAVE USR/SRC/SYS/KERNEL.S.INIT