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.HZ .DA MSG.HZ
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.SLOT .DA MSG.SLOT
L.MSG.QUIT .DA MSG.QUIT
@ -97,6 +99,7 @@ CS.RUN.REPaint >LDYA L.MSG.FCONF
CS.RUN.Loop >SYSCALL Sleep
>SYSCALL GetC
bcs CS.RUN.Loop
cmp #17 Ctrl-Q
beq .8
@ -109,16 +112,16 @@ CS.RUN.Loop >SYSCALL Sleep
>LDYA L.MSG.QUIT.ERR
bra .9
.1 cmp #8 Ctrl-H
.1 cmp #20 Ctrl-T
bne .2
>DEBUG
jsr CS.RUN.HZ
jsr CS.RUN.ToggleHZ
bra CS.RUN.REPaint
.2 cmp #3 Ctrl-C
bne .3
jsr CS.RUN.CHRoot
jsr CS.RUN.ToggleCHRoot
bra CS.RUN.REPaint
.3 cmp #'1'
@ -126,7 +129,7 @@ CS.RUN.Loop >SYSCALL Sleep
cmp #'8'
bcs CS.RUN.Loop
and #$0f
jsr CS.RUN.Slot
jsr CS.RUN.ToggleSlotA
bra CS.RUN.REPaint
.8 >LDYA L.MSG.QUIT
@ -135,7 +138,7 @@ CS.RUN.Loop >SYSCALL Sleep
sec
rts
*--------------------------------------
CS.RUN.HZ ldy #hFileBuf
CS.RUN.ToggleHZ ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtrA
>STYA ZPTmp1
@ -145,7 +148,8 @@ CS.RUN.HZ ldy #hFileBuf
sta (ZPTmp1)
rts
*--------------------------------------
CS.RUN.CHRoot ldy #hFileBuf
CS.RUN.ToggleCHRoot
ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtrA
>STYA ZPTmp1
@ -156,7 +160,8 @@ CS.RUN.CHRoot ldy #hFileBuf
sta (ZPTmp1),y
rts
*--------------------------------------
CS.RUN.Slot pha
CS.RUN.ToggleSlotA
pha
ldy #hFileBuf
lda (pData),y
@ -178,6 +183,7 @@ CS.RUN.Load >PUSHWI UsrBuf256
>SYSCALL GetMemPtrA
>PUSHYA
>SYSCALL Stat
>DEBUG
bcs .99
sec
@ -226,8 +232,25 @@ CS.RUN.Load >PUSHWI UsrBuf256
sec
rts
*--------------------------------------
CS.RUN.Save
sec
CS.RUN.Save ldy #hFileBuf
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
*--------------------------------------
CS.RUN.DumpConfYA
@ -239,8 +262,13 @@ CS.RUN.DumpConfYA
>SYSCALL PPrintFYA
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
>SYSCALL PPrintFYA
@ -311,14 +339,16 @@ SLOTS .DA #0
.DA #A2osX.SLOTS.NET
.DA #A2osX.SLOTS.DISABLE
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.OK >PSTR "KCONFIG File Successfully Loaded. \e[0m\r\n"
MSG.TOPBAR.KO >PSTR "Invalid/missing KCONFIG File. \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.KCONF >PSTR "------ Actual Kernel Configuration ------\r\n"
MSG.FCONF >PSTR "\e[13;1H------ KCONFIG File Configuration ------\r\n"
MSG.HZ >PSTR " Machine Type : %d0Hz\r\n"
MSG.CHROOT >PSTR " CHRoot to RAM : %d\r\n"
MSG.HZ >PSTR " Machine Timing : %d0Hz\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.NODEV >PSTR "<NO DEVICE>"
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.NET >PSTR "Network Interface Card"
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.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
sta K.S.STAT,y
dex
bpl .1
bne .1
*--------------------------------------
K.ReadDirA.AddAccess
ldy #$1E ProDOS Access

View File

@ -364,10 +364,41 @@ K.Stat jsr PFT.CheckPathSTK
>PULLW ZPPtr2
>MLICALL MLIGETFILEINFO
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
*--------------------------------------
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
>PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE
jsr K.GetMem
@ -386,30 +417,6 @@ FILE.SetupPrt1A jsr K.GetMemPtrA
sta K.MLI.PARAMS+1
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
SAVE /A2OSX.SRC/SYS/KERNEL.S.FILE
LOAD /A2OSX.SRC/SYS/KERNEL.S

View File

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

View File

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