Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-12-09 16:53:14 +01:00
parent bfd315c387
commit 518bd1a81d
8 changed files with 93 additions and 42 deletions

Binary file not shown.

View File

@ -37,30 +37,33 @@ A2osX.QC.Start1 sei
sec sec
>LDYAI MSG.INIT1 >LDYAI MSG.INIT1
jsr A2osX.QC.PrintYA jsr A2osX.QC.PrintYA
sec
>LDYAI A2osX.QC.BOOT
jsr A2osX.QC.PrintYA
sec
>LDYAI A2osX.QC.ROOT
jsr A2osX.QC.PrintYA
.3 jsr MLI .3 jsr MLI
.DA #MLISETPREFIX .DA #MLISETPREFIX
.DA MLISETPREFIX00 .DA MLISETPREFIX00
bcc .4 bcc .4
>LDYAI MSG.SETPREFIXKO >LDYAI MSG.SETPREFIXKO
clc
jsr A2osX.QC.PrintYA jsr A2osX.QC.PrintYA
>LDYAI A2osX.QC.BOOT >LDYAI A2osX.QC.BOOT
sec sec
jsr A2osX.QC.PrintYA jsr A2osX.QC.PrintYA
bra .3 bra .3
.4 >LDYAI MSG.SETPREFIXOK .4 >LDYAI MSG.SETPREFIXOK
clc
jsr A2osX.QC.PrintYA
>LDYAI A2osX.QC.BOOT
sec sec
jsr A2osX.QC.PrintYA jsr A2osX.QC.PrintYA
ldx A2osX.QC.BOOT ldx A2osX.QC.BOOT
stx $280 For appending SYS/KERNEL stx $280 For appending SYS/KERNEL
stz $2C0,x stz $2C0,x
.5 lda A2osX.QC.BOOT,x .5 lda A2osX.QC.BOOT,x
sta $280,x sta $280,x
sta $2C0-1,x BOOT sz for KERNEL sta $2C0-1,x BOOT sz for KERNEL
@ -101,9 +104,7 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD
cpy SYSKERNEL cpy SYSKERNEL
bne .2 bne .2
stx $280 stx $280
>LDYAI $280
clc
jsr A2osX.QC.PrintYA
jsr MLI jsr MLI
.DA #MLIOPEN .DA #MLIOPEN
.DA MLIOPENK .DA MLIOPENK
@ -125,14 +126,20 @@ A2osX.QC.KLoad >LDYAI MSG.KLOAD
pla pla
plp plp
bcc .8 bcc .8
.9 pha
.9 jsr PRBYTE
>LDYAI MSG.KLOAD.KO >LDYAI MSG.KLOAD.KO
clc
jsr A2osX.QC.PrintYA
pla
jsr PRBYTE
sec sec
.8 rts jsr A2osX.QC.PrintYA
sec
rts
.8 >LDYAI MSG.KLOAD.OK
sec
jsr A2osX.QC.PrintYA
clc
rts
*-------------------------------------- *--------------------------------------
A2osX.QC.PrintYA A2osX.QC.PrintYA
php php
@ -174,10 +181,11 @@ MLICLOSEK .DA #1
SYSKERNEL >PSTR "sys/kernel" SYSKERNEL >PSTR "sys/kernel"
*-------------------------------------- *--------------------------------------
MSG.INIT1 >PSTR "A2osX[Stage1]:Init" MSG.INIT1 >PSTR "A2osX[Stage1]:Init"
MSG.SETPREFIXOK >PSTR "Set Prefix OK" MSG.SETPREFIXOK >PSTR "Prefix Set: "
MSG.SETPREFIXKO >PSTR "Insert Vol:" MSG.SETPREFIXKO >PSTR "Insert Vol:"
MSG.KLOAD >PSTR "Loading Kernel:" MSG.KLOAD >PSTR "Loading Kernel..."
MSG.KLOAD.KO >PSTR "Error While Loading Kernel." MSG.KLOAD.KO >PSTR " Error While Loading Kernel."
MSG.KLOAD.OK >PSTR "Done."
MSG.INIT1OK >PSTR "A2osX[Stage1]:Complete." MSG.INIT1OK >PSTR "A2osX[Stage1]:Complete."
*-------------------------------------- *--------------------------------------
.BS $1300-* .BS $1300-*

View File

@ -73,6 +73,7 @@ A2osX.Init1.128 jsr MLI
bcs * bcs *
ldx Boot.Prefix ldx Boot.Prefix
.1 lda Boot.Prefix,x .1 lda Boot.Prefix,x
sta A2osX.QC.B.BOOT,x sta A2osX.QC.B.BOOT,x
sta A2osX.QC.B.ROOT,x sta A2osX.QC.B.ROOT,x
@ -137,7 +138,9 @@ A2osX.RamDrv >LDYAI MSG.RAMDRV
*-------------------------------------- *--------------------------------------
A2osX.EnumKM >LDYAI MSG.KMENUM A2osX.EnumKM >LDYAI MSG.KMENUM
jsr PrintFYA jsr PrintFYA
jsr EnumKM jsr EnumKM
bcs * bcs *
*-------------------------------------- *--------------------------------------
A2osX.SetupQC lda RRAMWRAMBNK2 A2osX.SetupQC lda RRAMWRAMBNK2
@ -195,6 +198,7 @@ A2osX.Screen80 lda #$8C Reset 80 col screen ($0C:HOME)
bcs .98 bcs .98
jsr .98 jsr .98
bra A2osX.ScreenDLGR bra A2osX.ScreenDLGR
.98 jsr MLI .98 jsr MLI
.DA #MLICLOSE .DA #MLICLOSE
.DA MLICLOSE00 .DA MLICLOSE00
@ -343,6 +347,7 @@ EnumKM ldx #0
iny iny
cpx SYS cpx SYS
bne .1 bne .1
sty Boot.Prefix sty Boot.Prefix
jsr MLI jsr MLI
.DA #MLIOPEN .DA #MLIOPEN
@ -352,21 +357,28 @@ EnumKM ldx #0
lda MLIOPEN01+5 lda MLIOPEN01+5
sta MLIREAD01+1 sta MLIREAD01+1
sta MLICLOSE01+1 sta MLICLOSE01+1
.2 jsr MLI .2 jsr MLI
.DA #MLIREAD .DA #MLIREAD
.DA MLIREAD01 .DA MLIREAD01
bcs .98 bcs .98
lda #EnumKM.EPB lda #EnumKM.EPB
sta EnumKM.EC sta EnumKM.EC
>LDYAI A2osX.ReadBuff+4 >LDYAI A2osX.ReadBuff+4
>STYA EnumKM.BPTR >STYA EnumKM.BPTR
.3 >LDYA EnumKM.BPTR .3 >LDYA EnumKM.BPTR
>STYA TmpPtr1 >STYA TmpPtr1
lda (TmpPtr1) lda (TmpPtr1)
and #$F0 Empty ? and #$F0 Empty ?
beq .5 yes, skip beq .5 yes, skip
and #$C0 anything out of type 1,2 or 3 ? and #$C0 anything out of type 1,2 or 3 ?
bne .5 yes, skip bne .5 yes, skip
lda (TmpPtr1) lda (TmpPtr1)
and #$0F and #$0F
cmp KM.PREFIX at least enough chars for KM.*? cmp KM.PREFIX at least enough chars for KM.*?
@ -376,25 +388,34 @@ EnumKM ldx #0
lda (TmpPtr1),y lda (TmpPtr1),y
cmp #$06 'BIN'? cmp #$06 'BIN'?
bne .5 skip bne .5 skip
ldy KM.PREFIX ldy KM.PREFIX
.4 lda (TmpPtr1),y .4 lda (TmpPtr1),y
cmp KM.PREFIX,y cmp KM.PREFIX,y
bne .5 bne .5
dey dey
bne .4 bne .4
jsr LoadKM jsr LoadKM
.5 lda EnumKM.BPTR .5 lda EnumKM.BPTR
clc clc
adc #EnumKM.EL adc #EnumKM.EL
sta EnumKM.BPTR sta EnumKM.BPTR
bcc .6 bcc .6
inc EnumKM.BPTR+1 inc EnumKM.BPTR+1
.6 dec EnumKM.EC .6 dec EnumKM.EC
bne .3 bne .3
bra .2 bra .2
.98 cmp #MLI.E.EOF .98 cmp #MLI.E.EOF
beq .8 beq .8
pha pha
jsr .8 jsr .8
pla pla
@ -411,10 +432,12 @@ EnumKM.EC .BS 1
EnumKM.BPTR .BS 2 EnumKM.BPTR .BS 2
*-------------------------------------- *--------------------------------------
LoadKM ldx Boot.Prefix LoadKM ldx Boot.Prefix
.1 lda Boot.Prefix,x .1 lda Boot.Prefix,x
sta KM.Filename,x sta KM.Filename,x
dex dex
bne .1 bne .1
ldx Boot.Prefix ldx Boot.Prefix
lda (TmpPtr1) lda (TmpPtr1)
and #$0F and #$0F
@ -423,11 +446,13 @@ LoadKM ldx Boot.Prefix
adc Boot.Prefix adc Boot.Prefix
sta KM.Filename sta KM.Filename
tax tax
.2 lda (TmpPtr1),y .2 lda (TmpPtr1),y
sta KM.Filename,x sta KM.Filename,x
dex dex
dey dey
bne .2 bne .2
lda #KM.Filename lda #KM.Filename
pha pha
lda /KM.Filename lda /KM.Filename
@ -443,17 +468,22 @@ LoadKM ldx Boot.Prefix
lda MLIOPEN02+5 lda MLIOPEN02+5
sta MLIREAD02+1 sta MLIREAD02+1
sta MLICLOSE02+1 sta MLICLOSE02+1
jsr MLI jsr MLI
.DA #MLIREAD .DA #MLIREAD
.DA MLIREAD02 .DA MLIREAD02
bcs .98 bcs .98
jsr .9 jsr .9
jsr A2osX.KMLOAD jsr A2osX.KMLOAD
.98 pha .98 pha
jsr .9 jsr .9
pla pla
sec sec
rts rts
.9 jsr MLI .9 jsr MLI
.DA #MLICLOSE .DA #MLICLOSE
.DA MLICLOSE02 .DA MLICLOSE02
@ -530,7 +560,7 @@ MLIQUIT01 .DA #4
.DA #0 .DA #0
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
A2osX.LOGO >PSTR "A2OSX.LOGO" A2osX.LOGO >PSTR "A2osX.logo"
SYS >PSTR "sys/" SYS >PSTR "sys/"
KM.PREFIX >PSTR "KM." KM.PREFIX >PSTR "KM."
*-------------------------------------- *--------------------------------------

View File

@ -354,7 +354,7 @@ SLOTS .DA #0
.DA #A2osX.S.DISABLE .DA #A2osX.S.DISABLE
SLOTS.MAX .EQ *-SLOTS SLOTS.MAX .EQ *-SLOTS
*-------------------------------------- *--------------------------------------
FILENAME .AZ "${ROOT}A2osX.KCONFIG" FILENAME .AZ "${ROOT}A2osX.kconfig"
MSG.TOPBAR .AZ "\e[40;37m\e[7m\e[1;1HA2osX Kernel Config Utility : " MSG.TOPBAR .AZ "\e[40;37m\e[7m\e[1;1HA2osX Kernel Config Utility : "
MSG.TOPBAR.OK .AZ "KCONFIG File Successfully Loaded. \e[0m" MSG.TOPBAR.OK .AZ "KCONFIG File Successfully Loaded. \e[0m"
MSG.TOPBAR.KO .AZ "Invalid/missing KCONFIG File. \e[0m" MSG.TOPBAR.KO .AZ "Invalid/missing KCONFIG File. \e[0m"
@ -382,8 +382,8 @@ MSG.SLOT.CLK .AZ "Clock Card"
MSG.SLOT.DIS .AZ "<Disabled>" MSG.SLOT.DIS .AZ "<Disabled>"
MSG.PROMPT .AZ "\e[24;80H" MSG.PROMPT .AZ "\e[24;80H"
MSG.QUIT .AZ "\ec" MSG.QUIT .AZ "\ec"
MSG.QUIT.SAVED .AZ "\ecA2osX.KCONFIG file saved.\r\n\r\n" MSG.QUIT.SAVED .AZ "\ecA2osX.kconfig file saved.\r\n\r\n"
MSG.QUIT.ERR .AZ "\ecError [$%h] while writing A2osX.KCONFIG file.\r\n\r\n" MSG.QUIT.ERR .AZ "\ecError [$%h] while writing A2osX.kconfig file.\r\n\r\n"
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0

View File

@ -3,7 +3,7 @@ NEW
.LIST OFF .LIST OFF
.OP 65816 .OP 65816
.OR $2000 .OR $2000
.TF PRODOS.203,TSYS .TF PRODOS.203TC,TSYS
*-------------------------------------- *--------------------------------------
.INB INC/ZP.I .INB INC/ZP.I
.INB INC/IO.I .INB INC/IO.I

View File

@ -24,6 +24,11 @@ XDOS.MLI cld no decimal.
stz p8error clear any previous errors. stz p8error clear any previous errors.
ldy #$01 find out if command is valid. ldy #$01 find out if command is valid.
lda (A3L),y get command # lda (A3L),y get command #
* cmp #$D5
* bne .77
* >DEBUG
*.77
lsr and hash it to a range of 0-$1F lsr and hash it to a range of 0-$1F
lsr lsr
lsr lsr

View File

@ -394,23 +394,31 @@ XDOS.NewLine ldy #$02 adjust newline status for open file.
rts rts
*-------------------------------------- *--------------------------------------
XDOS.GetFileInfoEx XDOS.GetFileInfoEx
jsr lookfile see if file exists jsr findfile see if file exists
bcs .9 bcs .9
ldy #3 ldy #3
lda (A3L),y lda (A3L),y
sta .2+1 sta zpt
iny iny
lda (A3L),y lda (A3L),y
sta .2+2 sta zpt+1
ldy h_entln * ldy #S.FIEX.BLKPTR+2-1
.1 dey *.1 lda d_filid,y
lda (zpt),y * sta (zpt),y
.2 sta $ffff,y * dey
tya * bpl .1
bne .1
* ldx #7
* ldy #S.FIEX.ACL+7
*.2 lda h_acl,x
* sta (zpt),y
* dex
* dey
* bpl .2
.9 rts .9 rts
*-------------------------------------- *--------------------------------------

View File

@ -198,11 +198,13 @@ KConfigLoad >LDYAI MSG.KCREAD
.DA MLIGETFILEINFOEX00 .DA MLIGETFILEINFOEX00
bcc .1 bcc .1
eor #MLI.E.BADCALL eor #MLI.E.BADCALL
beq .2 beq .2 regular ProDOS
.1 ror CORE.FSID ProDOS.FX detected ror CORE.FSID Bad file, but ProDOS.FX detected
bra .9 bra .9
.1 ror CORE.FSID File Present & ProDOS.FX detected
.2 jsr MLI .2 jsr MLI
.DA #MLIOPEN .DA #MLIOPEN
.DA MLIOPEN00 .DA MLIOPEN00
@ -224,13 +226,12 @@ KConfigLoad >LDYAI MSG.KCREAD
bcs .9 bcs .9
>LDYAI MSG.KCREAD.OK >LDYAI MSG.KCREAD.OK
jsr PrintFYA
bra .8 bra .8
.9 >LDYAI MSG.KCREAD.KO .9 >LDYAI MSG.KCREAD.KO
jsr PrintFYA
.8 jsr PrintFYA
.8 lda CORE.FSID lda CORE.FSID
beq .99 beq .99
>LDYAI MSG.PRODOSFX >LDYAI MSG.PRODOSFX
@ -1126,7 +1127,6 @@ MSG.IRQ.POLL .AZ " Polling Mode."
MSG.EVT .AZ "Event Manager..." MSG.EVT .AZ "Event Manager..."
MSG.TSK .AZ "Task Manager..." MSG.TSK .AZ "Task Manager..."
MSG.PWD .AZ "Password Manager..." MSG.PWD .AZ "Password Manager..."
MSG.BOOTROOT .AZ "Boot Path:%S\r\nRoot Path:%S\r\n"
MSG.CTRLR .AZ "Ctrl-R Pressed, entering ROOT mode..." MSG.CTRLR .AZ "Ctrl-R Pressed, entering ROOT mode..."
MSG.PWDINIT .AZ "Loading ETC/PASSWD file..." MSG.PWDINIT .AZ "Loading ETC/PASSWD file..."
MSG.ETCINIT .AZ "Executing %s..." MSG.ETCINIT .AZ "Executing %s..."
@ -1172,15 +1172,15 @@ PwdMgr.ROOT.Size .EQ *-PwdMgr.ROOT
*-------------------------------------- *--------------------------------------
MLIGETFILEINFOEX00 MLIGETFILEINFOEX00
.DA #2 .DA #2
>PSTR "A2osX.KCONFIG" .DA MLIOPEN00.FN
.DA FIEX .DA FIEX
FIEX .BS S.FIEX FIEX .BS S.FIEX
*-------------------------------------- *--------------------------------------
MLIOPEN00 .DA #3 MLIOPEN00 .DA #3
.DA .1 .DA MLIOPEN00.FN
.DA $B000 .DA $B000
.BS 1 .BS 1
.1 >PSTR "A2osX.KCONFIG" MLIOPEN00.FN >PSTR "A2osX.kconfig"
*-------------------------------------- *--------------------------------------
MLIREAD00 .DA #4 MLIREAD00 .DA #4
.BS 1 .BS 1