A2osX/SBIN/KCONFIG.S.txt
2017-08-22 08:37:03 +02:00

379 lines
7.8 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 ExpandPStrYA
txa
ldy #hFileName
sta (pData),y
>LDYA L.MSG.TOPBAR
>SYSCALL PrintFYA
jsr CS.RUN.Load
bcs .1
>LDYA L.MSG.TOPBAR.OK
bra .2
.1 >LDYA L.MSG.TOPBAR.KO
.2 >SYSCALL PrintFYA
>LDYA L.MSG.KCONF
>SYSCALL PrintFYA
>LDYAI A2osX.HZ
jsr CS.RUN.DumpConfYA
>LDYA L.MSG.STATUSBAR
>SYSCALL PrintFYA
CS.RUN.REPaint >LDYA L.MSG.FCONF
>SYSCALL PrintFYA
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 #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 PrintFYA
lda #0
sec
rts
*--------------------------------------
CS.RUN.ToggleHZ ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtrA
>STYA ZPTmp1
lda (ZPTmp1)
eor #3
sta (ZPTmp1)
rts
*--------------------------------------
CS.RUN.ToggleCHRoot
ldy #hFileBuf
lda (pData),y
>SYSCALL GetMemPtrA
>STYA ZPTmp1
ldy #8
lda (ZPTmp1),y
eor #$FF
sta (ZPTmp1),y
rts
*--------------------------------------
CS.RUN.ToggleSlotA
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 >LDYAI 16
>SYSCALL GetMem0YA
>STYA ZPTmp1
txa
ldy #hFileBuf
sta (pData),y
lda #6
sta (ZPTmp1)
sec
rts
*--------------------------------------
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
>STYA ZPTmp1
>PUSHB (ZPTmp1)
>LDYA L.MSG.HZ
>SYSCALL PrintFYA
ldy #8
lda (ZPTmp1),y
bne .10
>PUSHW L.MSG.DISABLED
bra .12
.10 >PUSHW L.MSG.ENABLED
.12 >LDYA L.MSG.CHROOT
>SYSCALL PrintFYA
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 PrintFYA
ply
iny
cpy #16
bne .1
>LDYA L.MSG.PROMPT
>SYSCALL PrintFYA
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}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