NEW PREFIX AUTO 4,1 .LIST OFF .OP 65C02 .OR $2000 .TF SBIN/KCONFIG *-------------------------------------- .INB INC/MACROS.I .INB INC/MLI.I .INB INC/A2OSX.I *-------------------------------------- ZPCfgPtr .EQ ZPBIN ZPTmp1 .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 CS .DA DS.END-DS.START DS .DA #16 SS .DA #4 ZP .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.PMODE .DA MSG.PMODE 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 txa >STA.G hFileName >PUSHBI 0 >LDYA L.MSG.TOPBAR >SYSCALL printf jsr CS.RUN.Load bcs .1 >PUSHBI 0 >LDYA L.MSG.TOPBAR.OK bra .2 .1 >PUSHBI 0 >LDYA L.MSG.TOPBAR.KO .2 >SYSCALL printf >PUSHBI 0 >LDYA L.MSG.KCONF >SYSCALL printf >LDYAI A2osX.KCONFIG jsr CS.RUN.DumpConfYA >PUSHBI 0 >LDYA L.MSG.STATUSBAR >SYSCALL printf CS.RUN.REPaint >PUSHBI 0 >LDYA L.MSG.FCONF >SYSCALL printf >LDYA ZPCfgPtr jsr CS.RUN.DumpConfYA CS.RUN.Loop >SLEEP >SYSCALL GetChar bcs CS.RUN.Loop cmp #17 Ctrl-Q beq .8 cmp #19 Ctrl-S bne .1 jsr CS.RUN.Save bcc .8 >PUSHA >PUSHBI 1 >LDYA L.MSG.QUIT.ERR bra .9 .1 cmp #20 Ctrl-T bne .2 lda (ZPCfgPtr) eor #3 sta (ZPCfgPtr) bra CS.RUN.REPaint .2 cmp #3 Ctrl-C bne .3 ldy #8 lda (ZPCfgPtr),y eor #A2osX.F.CHROOT sta (ZPCfgPtr),y bra CS.RUN.REPaint .3 cmp #16 Ctrl-P bne .4 ldy #8 lda (ZPCfgPtr),y eor #A2osX.F.PMODE sta (ZPCfgPtr),y bra CS.RUN.REPaint .4 cmp #'1' bcc CS.RUN.Loop cmp #'8' bcs CS.RUN.Loop and #$0f clc adc #8 tay lda (ZPCfgPtr),y eor #$FF sta (ZPCfgPtr),y jmp CS.RUN.REPaint .8 >PUSHBI 0 >LDYA L.MSG.QUIT .9 >SYSCALL printf lda #0 sec rts *-------------------------------------- CS.RUN.Load >PUSHEA.G StatBuf >LDA.G hFileName >SYSCALL GetMemPtr >PUSHYA >SYSCALL Stat bcs .99 sec >LDA.G StatBuf+S.STAT.SIZE eor #16 bne .99 iny lda (pData),y iny ora (pData),y iny ora (pData),y bne .99 >LDA.G StatBuf+S.STAT.P.TYPE eor #S.FI.T.SYS bne .99 >PUSHWI A2osX.KCONFIG >PUSHBI S.FI.T.SYS >PUSHBI O.RDONLY >LDA.G hFileName >SYSCALL GetMemPtr >SYSCALL LoadFile bcs .99 txa >STA.G hFileBuf >SYSCALL GetMemPtr >STYA ZPCfgPtr * clc rts .99 >LDYAI 16 >SYSCALL GetMem0 >STYA ZPCfgPtr txa >STA.G hFileBuf lda #6 sta (ZPCfgPtr) sec rts *-------------------------------------- CS.RUN.Save >PUSHWI A2osX.KCONFIG >PUSHBI S.FI.T.SYS >PUSHBI O.WRONLY+O.CREATE+O.TRUNC >LDA.G hFileName >SYSCALL GetMemPtr >SYSCALL FOpen bcs .9 pha save hFile >PUSHWI 16 LEN >PUSHW ZPCfgPtr pla pha >SYSCALL FWrite bcc .1 tax pla phx >SYSCALL FClose pla sec rts .1 pla >SYSCALL FClose .9 rts *-------------------------------------- CS.RUN.DumpConfYA >STYA ZPTmp1 >PUSHB (ZPTmp1) >PUSHBI 1 >LDYA L.MSG.HZ >SYSCALL printf ldy #8 lda (ZPTmp1),y and #A2osX.F.CHROOT bne .10 >LDYA L.MSG.DISABLED bra .12 .10 >LDYA L.MSG.ENABLED .12 >PUSHYA >PUSHBI 2 >LDYA L.MSG.CHROOT >SYSCALL printf ldy #8 lda (ZPTmp1),y and #A2osX.F.PMODE bne .13 >LDYA L.MSG.DISABLED bra .14 .13 >LDYA L.MSG.ENABLED .14 >PUSHYA >PUSHBI 2 >LDYA L.MSG.PMODE >SYSCALL printf 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 >PUSHBI 3 >LDYA L.MSG.SLOT >SYSCALL printf ply iny cpy #16 bne .1 >PUSHBI 0 >LDYA L.MSG.PROMPT >SYSCALL printf clc rts *-------------------------------------- CS.DOEVENT sec do not discard TIMER event rts *-------------------------------------- CS.QUIT >LDA.G hFileBuf beq .1 >SYSCALL FreeMem .1 >LDA.G hFileName beq .8 >SYSCALL FreeMem .8 clc rts *-------------------------------------- CS.END SLOTS .DA #0 .DA #A2osX.S.Z80 .DA #A2osX.S.VSDRIVE .DA #A2osX.S.ATCARD .DA #A2osX.S.DII .DA #A2osX.S.BLK .DA #A2osX.S.SP .DA #A2osX.S.COM .DA #A2osX.S.XY .DA #A2osX.S.NIC .DA #A2osX.S.DISABLE SLOTS.MAX .EQ *-SLOTS *-------------------------------------- FILENAME .AZ "${A2OSX}A2osX.KCONFIG" MSG.TOPBAR .AZ "\ec\e[7m\e[1;1HA2osX Kernel Config Utility : " MSG.TOPBAR.OK .AZ "KCONFIG File Successfully Loaded. \e[0m" MSG.TOPBAR.KO .AZ "Invalid/missing KCONFIG File. \e[0m" MSG.STATUSBAR .AZ "\e[7m\e[24;1HCtrl-Q:Quit,Ctrl-S:Save,Ctrl-T:Time,Ctrl-P:Preemptive,Ctrl-C:CHRoot,1-7:En/Dis \e[0m" MSG.KCONF .AZ "\e[2;1H------ Actual Kernel Configuration ------\r\n" MSG.FCONF .AZ "\e[13;1H------ KCONFIG File Configuration -------\r\n" MSG.HZ .AZ " Machine Timing : %d0 Hz\r\n" MSG.PMODE .AZ " Preemptive Mode : %s\r\n" MSG.CHROOT .AZ " CHRoot to /RAMx : %s\r\n" MSG.ENABLED .AZ "Enabled " MSG.DISABLED .AZ "Disabled" MSG.SLOT .AZ " Slot #%d : %s\r\n" MSG.SLOT.NODEV .AZ " " MSG.SLOT.Z80 .AZ "Z80 CPU Board" MSG.SLOT.VSD .AZ "SSC Shared Driver for VSDRIVE" MSG.SLOT.ATK .AZ "AppleTalk Board" MSG.SLOT.DII .AZ "Disk II Controller" MSG.SLOT.BLK .AZ "Generic Block/SCSI Controller" MSG.SLOT.PRT .AZ "SmartPort Controller" MSG.SLOT.COM .AZ "Communication Card" MSG.SLOT.XY .AZ "XY Pointing Device" MSG.SLOT.NET .AZ "Network Interface Card" MSG.SLOT.DIS .AZ "" MSG.PROMPT .AZ "\e[24;80H" MSG.QUIT .AZ "\ec" MSG.QUIT.ERR .AZ "\ecError [$%h] While Writing KCONFIG File.\r\n\r\n" *-------------------------------------- .DUMMY .OR 0 DS.START hFileName .BS 1 hFileBuf .BS 1 StatBuf .BS S.STAT DS.END .ED MAN SAVE USR/SRC/SBIN/KCONFIG.S ASM