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

View File

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

View File

@ -354,7 +354,7 @@ SLOTS .DA #0
.DA #A2osX.S.DISABLE
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.OK .AZ "KCONFIG File Successfully Loaded. \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.PROMPT .AZ "\e[24;80H"
MSG.QUIT .AZ "\ec"
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.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"
*--------------------------------------
.DUMMY
.OR 0

View File

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

View File

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

View File

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

View File

@ -198,11 +198,13 @@ KConfigLoad >LDYAI MSG.KCREAD
.DA MLIGETFILEINFOEX00
bcc .1
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
.1 ror CORE.FSID File Present & ProDOS.FX detected
.2 jsr MLI
.DA #MLIOPEN
.DA MLIOPEN00
@ -224,13 +226,12 @@ KConfigLoad >LDYAI MSG.KCREAD
bcs .9
>LDYAI MSG.KCREAD.OK
jsr PrintFYA
bra .8
.9 >LDYAI MSG.KCREAD.KO
jsr PrintFYA
.8 lda CORE.FSID
.8 jsr PrintFYA
lda CORE.FSID
beq .99
>LDYAI MSG.PRODOSFX
@ -1126,7 +1127,6 @@ MSG.IRQ.POLL .AZ " Polling Mode."
MSG.EVT .AZ "Event Manager..."
MSG.TSK .AZ "Task 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.PWDINIT .AZ "Loading ETC/PASSWD file..."
MSG.ETCINIT .AZ "Executing %s..."
@ -1172,15 +1172,15 @@ PwdMgr.ROOT.Size .EQ *-PwdMgr.ROOT
*--------------------------------------
MLIGETFILEINFOEX00
.DA #2
>PSTR "A2osX.KCONFIG"
.DA MLIOPEN00.FN
.DA FIEX
FIEX .BS S.FIEX
*--------------------------------------
MLIOPEN00 .DA #3
.DA .1
.DA MLIOPEN00.FN
.DA $B000
.BS 1
.1 >PSTR "A2osX.KCONFIG"
MLIOPEN00.FN >PSTR "A2osX.kconfig"
*--------------------------------------
MLIREAD00 .DA #4
.BS 1