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

View File

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

View File

@ -161,17 +161,16 @@ BuildProDOSCat >PULLW ZPPtr1 DstBuf
* 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
tay
ora #$F0 Volume Directory Header
sta VolDirHdr.Name
.3 lda (ZPPtr2),y
sta VolDirHdr.Name,y
dey
bne .3
ldy #VolDirHdr.size-1
.4 lda VolDirHdr,y
@ -326,11 +325,11 @@ D2TrkWNIB >PULLB DrvSlt
ldy #TrkWriter.Size
.7 lda TrkWriter,y
sta UsrBuf256,y
dey
bne .7
jmp UsrBuf256
*.7 lda TrkWriter,y
* sta UsrBuf256,y
* dey
* bne .7
* jmp UsrBuf256
clc