Kernel version 0.9 : KCONFIG, bugfix in Stat and Loadfile....#1

This commit is contained in:
Rémy GIBERT 2017-04-12 17:46:03 +02:00
parent e495429cbd
commit aa032994d8
7 changed files with 83 additions and 46 deletions

Binary file not shown.

Binary file not shown.

View File

@ -40,6 +40,8 @@ L.MSG.KCONF .DA MSG.KCONF
L.MSG.FCONF .DA MSG.FCONF L.MSG.FCONF .DA MSG.FCONF
L.MSG.HZ .DA MSG.HZ L.MSG.HZ .DA MSG.HZ
L.MSG.CHROOT .DA MSG.CHROOT L.MSG.CHROOT .DA MSG.CHROOT
L.MSG.DISABLED .DA MSG.DISABLED
L.MSG.ENABLED .DA MSG.ENABLED
L.MSG.STATUSBAR .DA MSG.STATUSBAR L.MSG.STATUSBAR .DA MSG.STATUSBAR
L.MSG.SLOT .DA MSG.SLOT L.MSG.SLOT .DA MSG.SLOT
L.MSG.QUIT .DA MSG.QUIT L.MSG.QUIT .DA MSG.QUIT
@ -97,6 +99,7 @@ CS.RUN.REPaint >LDYA L.MSG.FCONF
CS.RUN.Loop >SYSCALL Sleep CS.RUN.Loop >SYSCALL Sleep
>SYSCALL GetC >SYSCALL GetC
bcs CS.RUN.Loop bcs CS.RUN.Loop
cmp #17 Ctrl-Q cmp #17 Ctrl-Q
beq .8 beq .8
@ -109,16 +112,16 @@ CS.RUN.Loop >SYSCALL Sleep
>LDYA L.MSG.QUIT.ERR >LDYA L.MSG.QUIT.ERR
bra .9 bra .9
.1 cmp #8 Ctrl-H .1 cmp #20 Ctrl-T
bne .2 bne .2
>DEBUG
jsr CS.RUN.HZ jsr CS.RUN.ToggleHZ
bra CS.RUN.REPaint bra CS.RUN.REPaint
.2 cmp #3 Ctrl-C .2 cmp #3 Ctrl-C
bne .3 bne .3
jsr CS.RUN.CHRoot jsr CS.RUN.ToggleCHRoot
bra CS.RUN.REPaint bra CS.RUN.REPaint
.3 cmp #'1' .3 cmp #'1'
@ -126,7 +129,7 @@ CS.RUN.Loop >SYSCALL Sleep
cmp #'8' cmp #'8'
bcs CS.RUN.Loop bcs CS.RUN.Loop
and #$0f and #$0f
jsr CS.RUN.Slot jsr CS.RUN.ToggleSlotA
bra CS.RUN.REPaint bra CS.RUN.REPaint
.8 >LDYA L.MSG.QUIT .8 >LDYA L.MSG.QUIT
@ -135,7 +138,7 @@ CS.RUN.Loop >SYSCALL Sleep
sec sec
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.HZ ldy #hFileBuf CS.RUN.ToggleHZ ldy #hFileBuf
lda (pData),y lda (pData),y
>SYSCALL GetMemPtrA >SYSCALL GetMemPtrA
>STYA ZPTmp1 >STYA ZPTmp1
@ -145,7 +148,8 @@ CS.RUN.HZ ldy #hFileBuf
sta (ZPTmp1) sta (ZPTmp1)
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.CHRoot ldy #hFileBuf CS.RUN.ToggleCHRoot
ldy #hFileBuf
lda (pData),y lda (pData),y
>SYSCALL GetMemPtrA >SYSCALL GetMemPtrA
>STYA ZPTmp1 >STYA ZPTmp1
@ -156,7 +160,8 @@ CS.RUN.CHRoot ldy #hFileBuf
sta (ZPTmp1),y sta (ZPTmp1),y
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.Slot pha CS.RUN.ToggleSlotA
pha
ldy #hFileBuf ldy #hFileBuf
lda (pData),y lda (pData),y
@ -178,6 +183,7 @@ CS.RUN.Load >PUSHWI UsrBuf256
>SYSCALL GetMemPtrA >SYSCALL GetMemPtrA
>PUSHYA >PUSHYA
>SYSCALL Stat >SYSCALL Stat
>DEBUG
bcs .99 bcs .99
sec sec
@ -226,8 +232,25 @@ CS.RUN.Load >PUSHWI UsrBuf256
sec sec
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.Save CS.RUN.Save ldy #hFileBuf
sec lda (pData),y
>SYSCALL GetMemPtrA
>PUSHYA ptr
>PUSHWI 16 LEN
>PUSHWI 0 AUXTYPE
>PUSHBI 6 S.FILEINFO.TYPE.BIN
>PUSHBI SYS.FOpen.W+SYS.FOpen.X
ldy #hFileName
lda (pData),y
>SYSCALL GetMemPtrA
>PUSHYA
>SYSCALL SaveFile
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.DumpConfYA CS.RUN.DumpConfYA
@ -239,8 +262,13 @@ CS.RUN.DumpConfYA
>SYSCALL PPrintFYA >SYSCALL PPrintFYA
ldy #8 ldy #8
>PUSHB (ZPTmp1),y lda (ZPTmp1),y
beq .10
>LDYA L.MSG.ENABLED
bra .12
.10 >LDYA L.MSG.DISABLED
.12 >PUSHYA
>LDYA L.MSG.CHROOT >LDYA L.MSG.CHROOT
>SYSCALL PPrintFYA >SYSCALL PPrintFYA
@ -311,14 +339,16 @@ SLOTS .DA #0
.DA #A2osX.SLOTS.NET .DA #A2osX.SLOTS.NET
.DA #A2osX.SLOTS.DISABLE .DA #A2osX.SLOTS.DISABLE
SLOTS.MAX .EQ *-SLOTS SLOTS.MAX .EQ *-SLOTS
FILENAME >PSTR "%{A2OSX}KCONFIG" FILENAME >PSTR "${A2OSX}KCONFIG"
MSG.TOPBAR >PSTR "\ec\e[7m\e[1;1HA2osX Kernel Config Utility : " MSG.TOPBAR >PSTR "\ec\e[7m\e[1;1HA2osX Kernel Config Utility : "
MSG.TOPBAR.OK >PSTR "KCONFIG File Successfully Loaded. \e[0m\r\n" MSG.TOPBAR.OK >PSTR "KCONFIG File Successfully Loaded. \e[0m\r\n"
MSG.TOPBAR.KO >PSTR "Invalid/missing KCONFIG File. \e[0m\r\n" MSG.TOPBAR.KO >PSTR "Invalid/missing KCONFIG File. \e[0m\r\n"
MSG.KCONF >PSTR "------ Actual Kernel Configuration ------\r\n" MSG.KCONF >PSTR "------ Actual Kernel Configuration ------\r\n"
MSG.FCONF >PSTR "\e[13;1H------ KCONFIG File Configuration ------\r\n" MSG.FCONF >PSTR "\e[13;1H------ KCONFIG File Configuration ------\r\n"
MSG.HZ >PSTR " Machine Type : %d0Hz\r\n" MSG.HZ >PSTR " Machine Timing : %d0Hz\r\n"
MSG.CHROOT >PSTR " CHRoot to RAM : %d\r\n" MSG.CHROOT >PSTR " CHRoot to /RAMx : %S\r\n"
MSG.ENABLED >PSTR "Enabled"
MSG.DISABLED >PSTR "Disabled"
MSG.SLOT >PSTR " Slot #%d : %S\r\n" MSG.SLOT >PSTR " Slot #%d : %S\r\n"
MSG.SLOT.NODEV >PSTR "<NO DEVICE>" MSG.SLOT.NODEV >PSTR "<NO DEVICE>"
MSG.SLOT.Z80 >PSTR "Z80 CPU Board" MSG.SLOT.Z80 >PSTR "Z80 CPU Board"
@ -331,7 +361,7 @@ MSG.SLOT.COM >PSTR "Communication Card"
MSG.SLOT.XY >PSTR "XY Pointing Device" MSG.SLOT.XY >PSTR "XY Pointing Device"
MSG.SLOT.NET >PSTR "Network Interface Card" MSG.SLOT.NET >PSTR "Network Interface Card"
MSG.SLOT.DIS >PSTR "<DISABLED>" MSG.SLOT.DIS >PSTR "<DISABLED>"
MSG.STATUSBAR >PSTR "\e[7m\e[24;1HCtrl-Q:Quit,Ctrl-S:Save,Ctrl-H:Toggle Hz,Ctrl-C:Toggle CHRoot,1-7:En/Dis Slot# \e[0m" MSG.STATUSBAR >PSTR "\e[7m\e[24;1HCtrl-Q:Quit,Ctrl-S:Save,Ctrl-T:Toggle Time,Ctrl-C:Toggle CHRoot,1-7:En/Dis Slot \e[0m"
MSG.QUIT >PSTR "\ec" MSG.QUIT >PSTR "\ec"
MSG.QUIT.ERR >PSTR "\ecError [$%h] While Writing KCONFIG File.\r\n\r\n" MSG.QUIT.ERR >PSTR "\ecError [$%h] While Writing KCONFIG File.\r\n\r\n"
*-------------------------------------- *--------------------------------------

View File

@ -476,7 +476,7 @@ K.ReadDirA.ADDF lda /S.STAT.MODE.REG
ldy ADDF.DST-1,x ldy ADDF.DST-1,x
sta K.S.STAT,y sta K.S.STAT,y
dex dex
bpl .1 bne .1
*-------------------------------------- *--------------------------------------
K.ReadDirA.AddAccess K.ReadDirA.AddAccess
ldy #$1E ProDOS Access ldy #$1E ProDOS Access

View File

@ -364,10 +364,41 @@ K.Stat jsr PFT.CheckPathSTK
>PULLW ZPPtr2 >PULLW ZPPtr2
>MLICALL MLIGETFILEINFO >MLICALL MLIGETFILEINFO
bcs .9 bcs .9
jsr FILE.MLI2STAT
clc lda #S.STAT.MODE.XO+S.STAT.MODE.WO+S.STAT.MODE.RO
ldx K.MLI.PARAMS+S.FILEINFO.ACCESS
cpx #S.FILEINFO.ACCESS.FULL
beq .2
* cpx #S.FILEINFO.ACCESS.R
txa
beq .2
lda #S.STAT.MODE.XO+S.STAT.MODE.RO
.2 ldy #S.STAT.MODE
sta (ZPPtr2),y
ldx #K.Stat.DST-K.Stat.SRC
.3 ldy K.Stat.SRC-1,x
lda K.MLI.PARAMS,y
ldy K.Stat.DST-1,x
sta (ZPPtr2),y
dex
bne .3
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
K.Stat.SRC .DA #S.FILEINFO.TYPE
* .DA #S.FILEINFO.BLOCKSUSED,#S.FILEINFO.BLOCKSUSED+1
* .DA #
.DA #S.FILEINFO.AUXTYPE,#S.FILEINFO.AUXTYPE+1
K.Stat.DST .DA #S.STAT.P.TYPE
* .DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
* .DA #S.STAT.SIZE,#S.STAT.SIZE+1,#S.STAT.SIZE+2
.DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
*--------------------------------------
FILE.SetIOBUF >PUSHWI 1024 get a ProDOS IOBUF FILE.SetIOBUF >PUSHWI 1024 get a ProDOS IOBUF
>PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE >PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE
jsr K.GetMem jsr K.GetMem
@ -386,30 +417,6 @@ FILE.SetupPrt1A jsr K.GetMemPtrA
sta K.MLI.PARAMS+1 sta K.MLI.PARAMS+1
rts rts
*-------------------------------------- *--------------------------------------
FILE.MLI2STAT lda K.MLI.PARAMS+S.FILEINFO.ACCESS
cmp #S.FILEINFO.ACCESS.FULL
bne .1
lda #S.STAT.MODE.XO+S.STAT.MODE.WO+S.STAT.MODE.RO
bra .2
.1 and #S.FILEINFO.ACCESS.R
beq .2
lda #S.STAT.MODE.XO+S.STAT.MODE.RO
.2 ldy #S.STAT.MODE
sta (ZPPtr2),y
ldx #2
ldy #S.STAT.P.TYPE+2
.3 lda K.MLI.PARAMS+S.FILEINFO.TYPE,x
sta (ZPPtr2),y
dey
dex
bpl .3
rts
*--------------------------------------
MAN MAN
SAVE /A2OSX.SRC/SYS/KERNEL.S.FILE SAVE /A2OSX.SRC/SYS/KERNEL.S.FILE
LOAD /A2OSX.SRC/SYS/KERNEL.S LOAD /A2OSX.SRC/SYS/KERNEL.S

View File

@ -192,8 +192,8 @@ K.LoadFile.Seek >PUSHWI 0
*/-------------------------------------- */--------------------------------------
* # SaveFile * # SaveFile
* ## In: * ## In:
* PUSHW = SrcLen
* PUSHW = SrcPtr * PUSHW = SrcPtr
* PUSHW = SrcLen
* PUSHW = AUXTYPE (Handled by.... * PUSHW = AUXTYPE (Handled by....
* PUSHB = TYPE ... * PUSHB = TYPE ...
* PUSHB = MODE ... * PUSHB = MODE ...

View File

@ -446,8 +446,8 @@ And return, if found, the full path to it.
# SaveFile # SaveFile
## In: ## In:
+ PUSHW = SrcLen
+ PUSHW = SrcPtr + PUSHW = SrcPtr
+ PUSHW = SrcLen
+ PUSHW = AUXTYPE (Handled by.... + PUSHW = AUXTYPE (Handled by....
+ PUSHB = TYPE ... + PUSHB = TYPE ...
+ PUSHB = MODE ... + PUSHB = MODE ...