Kernel version 0.9 : New KCONFIG utility for Kernel Tuning

This commit is contained in:
Rémy GIBERT 2017-04-11 18:07:39 +02:00
parent c2a1526ce7
commit 8c20ced888
3 changed files with 346 additions and 0 deletions

Binary file not shown.

Binary file not shown.

346
SBIN/KCONFIG.S.txt Normal file
View File

@ -0,0 +1,346 @@
PR#3
PREFIX /A2OSX.BUILD
NEW
INC 1
AUTO 6
.LIST OFF
.OP 65C02
.OR $2000
.TF /A2OSX.BUILD/SBIN/KCONFIG
*--------------------------------------
.INB /A2OSX.BUILD/INC/MACROS.I
.INB /A2OSX.BUILD/INC/A2OSX.I
*--------------------------------------
ZPTmp1 .EQ ZPBIN
ZPTmp2 .EQ ZPBIN+2
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA CS.END-CS.START
.DA DS.END-DS.START Data Segment to Allocate
.DA 0
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.FILENAME .DA FILENAME
L.MSG.TOPBAR .DA MSG.TOPBAR
L.MSG.TOPBAR.OK .DA MSG.TOPBAR.OK
L.MSG.TOPBAR.KO .DA MSG.TOPBAR.KO
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.STATUSBAR .DA MSG.STATUSBAR
L.MSG.SLOT .DA MSG.SLOT
L.MSG.QUIT .DA MSG.QUIT
L.MSG.QUIT.ERR .DA MSG.QUIT.ERR
T.MSG.SLOT.DESC .DA MSG.SLOT.NODEV
.DA MSG.SLOT.Z80
.DA MSG.SLOT.VSD
.DA MSG.SLOT.ATK
.DA MSG.SLOT.DII
.DA MSG.SLOT.BLK
.DA MSG.SLOT.PRT
.DA MSG.SLOT.COM
.DA MSG.SLOT.XY
.DA MSG.SLOT.NET
.DA MSG.SLOT.DIS
.DA 0 End Of Reloc Table
*--------------------------------------
CS.INIT clc
rts
*--------------------------------------
CS.RUN >LDYA L.FILENAME
>SYSCALL ExpandPStrYA
txa
ldy #hFileName
sta (pData),y
>LDYA L.MSG.TOPBAR
>SYSCALL PPrintFYA
jsr CS.RUN.Load
bcs .1
>LDYA L.MSG.TOPBAR.OK
bra .2
.1 >LDYA L.MSG.TOPBAR.KO
.2 >SYSCALL PPrintFYA
>LDYA L.MSG.KCONF
>SYSCALL PPrintFYA
>LDYAI A2osX.HZ
jsr CS.RUN.DumpConfYA
>LDYA L.MSG.STATUSBAR
>SYSCALL PPrintFYA
CS.RUN.REPaint >LDYA L.MSG.FCONF
>SYSCALL PPrintFYA
ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtrA
jsr CS.RUN.DumpConfYA
CS.RUN.Loop >SYSCALL Sleep
>SYSCALL GetC
bcs CS.RUN.Loop
cmp #17 Ctrl-Q
beq .8
cmp #19 Ctrl-S
bne .1
jsr CS.RUN.Save
bcc .8
>PUSHA
>LDYA L.MSG.QUIT.ERR
bra .9
.1 cmp #8 Ctrl-H
bne .2
>DEBUG
jsr CS.RUN.HZ
bra CS.RUN.REPaint
.2 cmp #3 Ctrl-C
bne .3
jsr CS.RUN.CHRoot
bra CS.RUN.REPaint
.3 cmp #'1'
bcc CS.RUN.Loop
cmp #'8'
bcs CS.RUN.Loop
and #$0f
jsr CS.RUN.Slot
bra CS.RUN.REPaint
.8 >LDYA L.MSG.QUIT
.9 >SYSCALL PPrintFYA
lda #0
sec
rts
*--------------------------------------
CS.RUN.HZ ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtrA
>STYA ZPTmp1
lda (ZPTmp1)
eor #3
sta (ZPTmp1)
rts
*--------------------------------------
CS.RUN.CHRoot ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtrA
>STYA ZPTmp1
ldy #8
lda (ZPTmp1),y
eor #$FF
sta (ZPTmp1),y
rts
*--------------------------------------
CS.RUN.Slot pha
ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtrA
>STYA ZPTmp1
pla
clc
adc #8
tay
lda (ZPTmp1),y
eor #$FF
sta (ZPTmp1),y
rts
*--------------------------------------
CS.RUN.Load >PUSHWI UsrBuf256
ldy #hFileName
lda (pData),y
>SYSCALL GetMemPtrA
>PUSHYA
>SYSCALL Stat
bcs .99
sec
lda UsrBuf256+S.STAT.SIZE
eor #16
bne .99
lda UsrBuf256+S.STAT.SIZE+1
ora UsrBuf256+S.STAT.SIZE+2
ora UsrBuf256+S.STAT.SIZE+3
bne .99
lda UsrBuf256+S.STAT.P.TYPE
eor #6
bne .99
>PUSHWI 0 Aux type
>PUSHBI 6 S.FILEINFO.TYPE.BIN
>PUSHBI SYS.FOpen.R
ldy #hFileName
lda (pData),y
>SYSCALL GetMemPtrA
>PUSHYA
>SYSCALL LoadFile
bcs .99
txa
ldy #hFileBuf
sta (pData),y
rts
.99 >PUSHWI 16
>PUSHB S.MEM.F.INIT0
>SYSCALL GetMem
>STYA ZPTmp1
txa
ldy #hFileBuf
sta (pData),y
lda #6
sta (ZPTmp1)
sec
rts
*--------------------------------------
CS.RUN.Save
sec
rts
*--------------------------------------
CS.RUN.DumpConfYA
>STYA ZPTmp1
>PUSHB (ZPTmp1)
>LDYA L.MSG.HZ
>SYSCALL PPrintFYA
ldy #8
>PUSHB (ZPTmp1),y
>LDYA L.MSG.CHROOT
>SYSCALL PPrintFYA
ldy #9 Slot 1
.1 lda (ZPTmp1),y
ldx #SLOTS.MAX-1
.2 cmp SLOTS,x
beq .3
dex
bne .2
.3 phy
txa
asl
tax
>PUSHB T.MSG.SLOT.DESC+1,x
>PUSHB T.MSG.SLOT.DESC,x
pla
pha
sec
sbc #8
>PUSHA Slot
>LDYA L.MSG.SLOT
>SYSCALL PPrintFYA
ply
iny
cpy #16
bne .1
clc
rts
*--------------------------------------
CS.DOEVENT sec do not discard TIMER event
rts
*--------------------------------------
CS.QUIT ldy #hFileBuf
lda (pData),y
beq .1
>SYSCALL FreeMemA
.1 ldy #hFileName
lda (pData),y
beq .8
>SYSCALL FreeMemA
.8 clc
rts
*--------------------------------------
CS.END
SLOTS .DA #0
.DA #A2osX.SLOTS.Z80
.DA #A2osX.SLOTS.VSDRIVE
.DA #A2osX.SLOTS.ATCARD
.DA #A2osX.SLOTS.DII
.DA #A2osX.SLOTS.BLK
.DA #A2osX.SLOTS.SP
.DA #A2osX.SLOTS.COM
.DA #A2osX.SLOTS.XY
.DA #A2osX.SLOTS.NET
.DA #A2osX.SLOTS.DISABLE
SLOTS.MAX .EQ *-SLOTS
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.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.SLOT >PSTR " Slot #%d : %S\r\n"
MSG.SLOT.NODEV >PSTR "<NO DEVICE>"
MSG.SLOT.Z80 >PSTR "Z80 CPU Board"
MSG.SLOT.VSD >PSTR "SSC Shared Driver for VSDRIVE"
MSG.SLOT.ATK >PSTR "AppleTalk Board"
MSG.SLOT.DII >PSTR "Disk II Controller"
MSG.SLOT.BLK >PSTR "Generic Block/SCSI Controller"
MSG.SLOT.PRT >PSTR "SmartPort Controller"
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.QUIT >PSTR "\ec"
MSG.QUIT.ERR >PSTR "\ecError [$%h] While Writing KCONFIG File.\r\n\r\n"
*--------------------------------------
.DUMMY
.OR 0
DS.START
hFileName .BS 1
hFileBuf .BS 1
DS.END .ED
MAN
SAVE /A2OSX.SRC/SBIN/KCONFIG.S
ASM