A2osX/SBIN/KCONFIG.S.txt

379 lines
7.8 KiB
Plaintext
Raw Normal View History

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.STATUSBAR .DA MSG.STATUSBAR
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.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
L.MSG.PROMPT .DA MSG.PROMPT
.DA 0 End Of Reloc Table
*--------------------------------------
CS.INIT clc
rts
*--------------------------------------
CS.RUN >LDYA L.FILENAME
>SYSCALL ExpandStr.YA
txa
ldy #hFileName
sta (pData),y
>LDYA L.MSG.TOPBAR
>SYSCALL PrintF.YA
jsr CS.RUN.Load
bcs .1
>LDYA L.MSG.TOPBAR.OK
bra .2
.1 >LDYA L.MSG.TOPBAR.KO
.2 >SYSCALL PrintF.YA
>LDYA L.MSG.KCONF
>SYSCALL PrintF.YA
>LDYAI A2osX.HZ
jsr CS.RUN.DumpConfYA
>LDYA L.MSG.STATUSBAR
>SYSCALL PrintF.YA
CS.RUN.REPaint >LDYA L.MSG.FCONF
>SYSCALL PrintF.YA
ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtr.A
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 #20 Ctrl-T
bne .2
jsr CS.RUN.ToggleHZ
bra CS.RUN.REPaint
.2 cmp #3 Ctrl-C
bne .3
jsr CS.RUN.ToggleCHRoot
bra CS.RUN.REPaint
.3 cmp #'1'
bcc CS.RUN.Loop
cmp #'8'
bcs CS.RUN.Loop
and #$0f
jsr CS.RUN.ToggleSlotA
bra CS.RUN.REPaint
.8 >LDYA L.MSG.QUIT
.9 >SYSCALL PrintF.YA
lda #0
sec
rts
*--------------------------------------
CS.RUN.ToggleHZ ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtr.A
>STYA ZPTmp1
lda (ZPTmp1)
eor #3
sta (ZPTmp1)
rts
*--------------------------------------
CS.RUN.ToggleCHRoot
ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtr.A
>STYA ZPTmp1
ldy #8
lda (ZPTmp1),y
eor #$FF
sta (ZPTmp1),y
rts
*--------------------------------------
CS.RUN.ToggleSlotA
pha
ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtr.A
>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 GetMemPtr.A
>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 GetMemPtr.A
>PUSHYA
>SYSCALL LoadFile
bcs .99
txa
ldy #hFileBuf
sta (pData),y
rts
.99 >LDYAI 16
>SYSCALL GetMem0.YA
>STYA ZPTmp1
txa
ldy #hFileBuf
sta (pData),y
lda #6
sta (ZPTmp1)
sec
rts
*--------------------------------------
CS.RUN.Save ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtr.A
>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 GetMemPtr.A
>PUSHYA
>SYSCALL SaveFile
rts
*--------------------------------------
CS.RUN.DumpConfYA
>STYA ZPTmp1
>PUSHB (ZPTmp1)
>LDYA L.MSG.HZ
>SYSCALL PrintF.YA
ldy #8
lda (ZPTmp1),y
bne .10
>PUSHW L.MSG.DISABLED
bra .12
.10 >PUSHW L.MSG.ENABLED
.12 >LDYA L.MSG.CHROOT
>SYSCALL PrintF.YA
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 PrintF.YA
ply
iny
cpy #16
bne .1
>LDYA L.MSG.PROMPT
>SYSCALL PrintF.YA
clc
rts
*--------------------------------------
CS.DOEVENT sec do not discard TIMER event
rts
*--------------------------------------
CS.QUIT ldy #hFileBuf
lda (pData),y
beq .1
>SYSCALL FreeMem.A
.1 ldy #hFileName
lda (pData),y
beq .8
>SYSCALL FreeMem.A
.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}A2osX.KCONFIG"
MSG.TOPBAR >CSTR "\ec\e[7m\e[1;1HA2osX Kernel Config Utility : "
MSG.TOPBAR.OK >CSTR "KCONFIG File Successfully Loaded. \e[0m"
MSG.TOPBAR.KO >CSTR "Invalid/missing KCONFIG File. \e[0m"
MSG.STATUSBAR >CSTR "\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.KCONF >CSTR "\e[2;1H------ Actual Kernel Configuration ------\r\n"
MSG.FCONF >CSTR "\e[13;1H------ KCONFIG File Configuration ------\r\n"
MSG.HZ >CSTR " Machine Timing : %d0 Hz\r\n"
MSG.CHROOT >CSTR " CHRoot to /RAMx : %s\r\n"
MSG.ENABLED >CSTR "Enabled "
MSG.DISABLED >CSTR "Disabled"
MSG.SLOT >CSTR " Slot #%d : %s\r\n"
MSG.SLOT.NODEV >CSTR "<ENABLED> "
MSG.SLOT.Z80 >CSTR "Z80 CPU Board"
MSG.SLOT.VSD >CSTR "SSC Shared Driver for VSDRIVE"
MSG.SLOT.ATK >CSTR "AppleTalk Board"
MSG.SLOT.DII >CSTR "Disk II Controller"
MSG.SLOT.BLK >CSTR "Generic Block/SCSI Controller"
MSG.SLOT.PRT >CSTR "SmartPort Controller"
MSG.SLOT.COM >CSTR "Communication Card"
MSG.SLOT.XY >CSTR "XY Pointing Device"
MSG.SLOT.NET >CSTR "Network Interface Card"
MSG.SLOT.DIS >CSTR "<DISABLED>"
MSG.PROMPT >CSTR "\e[24;80H"
MSG.QUIT >CSTR "\ec"
MSG.QUIT.ERR >CSTR "\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