diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7aad878c..a77b2cd5 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/A2osX.S.QC.txt b/A2osX.S.QC.txt index 70a163bb..63ad40e2 100644 --- a/A2osX.S.QC.txt +++ b/A2osX.S.QC.txt @@ -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-* diff --git a/A2osX.S.txt b/A2osX.S.txt index 2f5e19e7..03a4fb61 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -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." *-------------------------------------- diff --git a/BIN/KCONFIG.S.txt b/BIN/KCONFIG.S.txt index e0ec808b..815f2232 100644 --- a/BIN/KCONFIG.S.txt +++ b/BIN/KCONFIG.S.txt @@ -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 "" 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 diff --git a/ProDOS.203/ProDOS.S.txt b/ProDOS.203/ProDOS.S.txt index 0005bd68..e778f582 100644 --- a/ProDOS.203/ProDOS.S.txt +++ b/ProDOS.203/ProDOS.S.txt @@ -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 diff --git a/ProDOS.FX/ProDOS.S.XDOS.A.txt b/ProDOS.FX/ProDOS.S.XDOS.A.txt index 227173d0..ecf12ced 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.A.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.A.txt @@ -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 diff --git a/ProDOS.FX/ProDOS.S.XDOS.E.txt b/ProDOS.FX/ProDOS.S.XDOS.E.txt index 3787db07..1f862dc9 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.E.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.E.txt @@ -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 *-------------------------------------- diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index cd973f9e..7d11df03 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -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