Kernel 0.9.1 : Code reorganization & move to CSTR : FORMAT & Block devices

This commit is contained in:
Rémy GIBERT 2017-10-04 08:16:39 +02:00
parent 886ca8ec0a
commit c29cc70671
5 changed files with 91 additions and 72 deletions

Binary file not shown.

Binary file not shown.

View File

@ -35,7 +35,6 @@ CS.START cld
.DA CS.DOEVENT .DA CS.DOEVENT
.DA CS.QUIT .DA CS.QUIT
L.LIBBLKDEV .DA LIBBLKDEV L.LIBBLKDEV .DA LIBBLKDEV
L.BlkParams.Ptr .DA BlkParams.Ptr
L.MSG.USAGE .DA MSG.USAGE L.MSG.USAGE .DA MSG.USAGE
L.MSG.INIT .DA MSG.INIT L.MSG.INIT .DA MSG.INIT
L.MSG.OK .DA MSG.OK L.MSG.OK .DA MSG.OK
@ -45,7 +44,7 @@ L.MSG.ERR .DA MSG.ERR
CS.INIT ldy #S.PS.ARGC CS.INIT ldy #S.PS.ARGC
lda (pPs),y lda (pPs),y
beq .99 beq .99
.1 >INC.G ArgIndex .1 >INC.G ArgIndex
>SYSCALL GetArg.A >SYSCALL GetArg.A
@ -78,16 +77,14 @@ CS.INIT ldy #S.PS.ARGC
sta (pData),y sta (pData),y
bra .1 bra .1
.4 ldy #hDev .4 >LDA.G hDev
lda (pData),y
bne .5 Already have a dev name...go get VolName bne .5 Already have a dev name...go get VolName
>LDYA ZPPtr1 >LDYA ZPPtr1
>SYSCALL GetDevByName.YA >SYSCALL GetDevByName.YA
bcs .99 bcs .99
txa txa
ldy #hDev >STA.G hDev
sta (pData),y
bra .1 bra .1
.5 ldy #$ff .5 ldy #$ff
@ -99,46 +96,63 @@ CS.INIT ldy #S.PS.ARGC
lda (ZPPtr1),y lda (ZPPtr1),y
sta (pData),y sta (pData),y
bne .6 success, scan for any other args bne .6
bra .1 bra .1 success, scan for any other args
.7 lda (pData) .7 >LDA.G VolName
bne .8 Volume name ok bne .8 Volume name ok
ldx #$ff
ldy #VolName-1
.71 inx
iny
lda BLANK,x
sta (pData),y
bne .71
lda A2osX.TIMER16 lda A2osX.TIMER16
jsr A2CharAX jsr A2CharAX
sta DefaultVolName+6 sta (pData),y
stx DefaultVolName+7 iny
txa
sta (pData),y
iny
lda A2osX.TIMER16+1 lda A2osX.TIMER16+1
jsr A2CharAX jsr A2CharAX
sta DefaultVolName+8 sta (pData),y
stx DefaultVolName+9 iny
txa
sta (pData),y
iny
lda A2osX.RANDOM16 lda A2osX.RANDOM16
jsr A2CharAX jsr A2CharAX
sta DefaultVolName+10 sta (pData),y
stx DefaultVolName+11 iny
txa
sta (pData),y
iny
lda A2osX.RANDOM16+1 lda A2osX.RANDOM16+1
jsr A2CharAX jsr A2CharAX
sta DefaultVolName+12
stx DefaultVolName+13
ldy DefaultVolName
.71 lda DefaultVolName,y
sta (pData),y sta (pData),y
dey iny
bpl .71 txa
sta (pData),y
iny
lda #0
sta (pData),y
.8 >LDYA L.LIBBLKDEV .8 >LDYA L.LIBBLKDEV
>SYSCALL LoadLib.YA >SYSCALL LoadLib.YA
sta hLIBBLKDEV sta hLIBBLKDEV
lda (pPs) * lda (pPs)
ora #S.PS.F.EVENT Now accept events * ora #S.PS.F.EVENT Now accept events
sta (pPs) * sta (pPs)
clc clc
rts rts
@ -163,20 +177,19 @@ CS.RUN jsr CS.RUN.BuildCat
sec sec
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.BuildCat ldy #hDev CS.RUN.BuildCat >LDA.G hDev
lda (pData),y
>SYSCALL GetDevStatus.A >SYSCALL GetDevStatus.A
bcs .99 bcs .99
>STYA ZPPtr1 >STYA ZPPtr1
ldy #S.DEVSTAT.SIZE ldy #S.DEVSTAT.SIZE
lda (ZPPtr1),y lda (ZPPtr1),y
sta SizeInBlocks >STA.G SizeInBlocks
iny ldy #S.DEVSTAT.SIZE+1
lda (ZPPtr1),y lda (ZPPtr1),y
sta SizeInBlocks+1 >STA.G SizeInBlocks+1
ldy #hDev >LDA.G hDev
lda (pData),y lda (pData),y
>SYSCALL GetDevByID.A >SYSCALL GetDevByID.A
bcs .99 bcs .99
@ -189,59 +202,59 @@ CS.RUN.BuildCat ldy #hDev
adc /S.DEV.NAME adc /S.DEV.NAME
sta ZPPtr2+1 sta ZPPtr2+1
>PUSHW pData >PUSHEA.G VolName
>PUSHW SizeInBlocks >PUSHW.G SizeInBlocks
>PUSHW ZPPtr2 >PUSHW ZPPtr2
>LDYA L.MSG.INIT >LDYA L.MSG.INIT
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
bcs .9 .99 bcs .9
>PUSHW SizeInBlocks >PUSHW.G SizeInBlocks
>LIBCALL hLIBBLKDEV,LIBBLKDEV.GetProDOSCatSize >LIBCALL hLIBBLKDEV,LIBBLKDEV.GetProDOSCatSize
.99 bcs .9 bcs .9
stx BlkCnt phy
pha
>STA.G BlkCnt
pla
ply
>SYSCALL GetMem0.YA BufferSize >SYSCALL GetMem0.YA BufferSize
bcs .9 bcs .9
>STYA BlkParams.Ptr >STYA BlkParams.Ptr
txa txa
ldy #hBuf >STA.G hBuf
sta (pData),y
>PUSHW SizeInBlocks >PUSHW.G SizeInBlocks
>PUSHW pData >PUSHEA.G VolName
>PUSHW BlkParams.Ptr >PUSHW BlkParams.Ptr
>LIBCALL hLIBBLKDEV,LIBBLKDEV.BuildProDOSCat >LIBCALL hLIBBLKDEV,LIBBLKDEV.BuildProDOSCat
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.WriteCat stz BlkParams.Num CS.RUN.WriteCat >LDA.G hDev
stz BlkParams.Num+1
ldy #hDev
lda (pData),y
>SYSCALL GetDevByID.A >SYSCALL GetDevByID.A
bcs .9 bcs .9
>STYA pDev >STYA pDev
.1 >LDYA L.BlkParams.Ptr .1 >LEA.G BlkParams.Ptr
ldx #DEVMGR.WRITEBLOCK ldx #DEVMGR.WRITEBLOCK
jsr pDevJmp jsr pDevJmp
bcs .9 bcs .9
inc BlkParams.Ptr+1 >LDA.G BlkParams.Ptr+1
inc BlkParams.Ptr+1 * clc
inc BlkParams.Num adc #2
dec BlkCnt sta (pData),y
>DEC.G BlkCnt
bne .1 bne .1
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.DOEVENT sec CS.DOEVENT sec
rts rts
*-------------------------------------- *--------------------------------------
CS.QUIT ldy #hBuf CS.QUIT >LDA.G hBuf
lda (pData),y
beq .1 beq .1
>SYSCALL FreeMem.A >SYSCALL FreeMem.A
@ -283,21 +296,21 @@ MSG.ERR >CSTR "[%h]\r\n"
MSG.INIT >CSTR "Formatting %s (%D Blks),Volname:%s..." MSG.INIT >CSTR "Formatting %s (%D Blks),Volname:%s..."
*-------------------------------------- *--------------------------------------
LIBBLKDEV >CSTR "libblkdev.o" LIBBLKDEV >CSTR "libblkdev.o"
DefaultVolName >CSTR "BLANKXXXXXXXX" BLANK >CSTR "BLANK"
hLIBBLKDEV .BS 1 hLIBBLKDEV .BS 1
SizeInBlocks .BS 2
BlkCnt .BS 1
BlkParams.Ptr .BS 2
BlkParams.Num .BS 2
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
ArgIndex .BS 1 ArgIndex .BS 1
bLL .BS 1
VolName .BS 16 VolName .BS 16
hDev .BS 5 hDev .BS 5
SizeInBlocks .BS 2
BlkCnt .BS 1
BlkParams.Ptr .BS 2
BlkParams.Num .BS 2
hBuf .BS 1 hBuf .BS 1
bLL .BS 1
DS.END DS.END
.ED .ED
*-------------------------------------- *--------------------------------------

View File

@ -126,6 +126,13 @@ AUTO 6
>LEA.G ]1 >LEA.G ]1
>PUSHYA >PUSHYA
.EM .EM
*--------------------------------------
.MA PUSHW.G
>LDA.G ]1+1
>PUSHA
>LDA.G ]1
>PUSHA
.EM
*-------------------------------------- *--------------------------------------
.MA LDA.G .MA LDA.G
ldy #]1 ldy #]1

View File

@ -161,17 +161,16 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf
* Directory Blocks * Directory Blocks
lda (ZPPtr2) VolName Len .3 lda (ZPPtr2),y
iny
sta VolDirHdr.Name,y
bne .3
tya
and #$0f make sure 15 bytes max and #$0f make sure 15 bytes max
tay
ora #$F0 Volume Directory Header ora #$F0 Volume Directory Header
sta VolDirHdr.Name sta VolDirHdr.Name
.3 lda (ZPPtr2),y
sta VolDirHdr.Name,y
dey
bne .3
ldy #VolDirHdr.size-1 ldy #VolDirHdr.size-1
.4 lda VolDirHdr,y .4 lda VolDirHdr,y
@ -326,11 +325,11 @@ D2TrkWNIB >PULLB DrvSlt
ldy #TrkWriter.Size ldy #TrkWriter.Size
.7 lda TrkWriter,y *.7 lda TrkWriter,y
sta UsrBuf256,y * sta UsrBuf256,y
dey * dey
bne .7 * bne .7
jmp UsrBuf256 * jmp UsrBuf256
clc clc