From 3115c7dff3b0fb982970bf3a1e9b635d80a1f430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Wed, 27 Nov 2019 23:04:55 +0100 Subject: [PATCH] Kernel 0.93+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes A2osX.S.QC.txt | 3 ++- A2osX.S.txt | 2 +- BIN/X.FILEENUM.S.txt | 10 +++++----- ETC/INIT.txt | 12 ++++++------ INC/A2osX.I.txt | 1 - INC/MLI.I.txt | 5 +++++ SYS/KERNEL.S.DIRENT.txt | 7 +++++-- SYS/KERNEL.S.GP.txt | 3 +++ SYS/KERNEL.S.INIT.txt | 37 +++++++++++++++++++++++++++---------- 10 files changed, 54 insertions(+), 26 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 7b96141d830ade34a4ae6d12ee690978561534fc..1124b0267726f50b01907a19bf9a33b8d6dbfa77 100644 GIT binary patch delta 41294 zcma%kc|cXg_xRj95#@kAt}-IIUz z9XCSmdHIz=J{IKm2zofu)B7IHpRC)Hf8`znZ0*Uvc8p<6dm?V!daL1f)GNEu5!LU_ z@~+n8_Gn>&X$NE3$y%1pYASCnYS%2QXqqitj%#-5+QC_N$|xMQtL$)D*A5rUPFFj8 zpB?VrHDD?Ex5M4C)5D(HEu{`v)dl}{xLJ0l%KNA7P*`?)+JP7C8CG@ygHr@!$j+Vv zS*;}^qpd;hF~BeWdIRI@d+fl*;|H3RUCq|6=1E=6OjmPZSMwuX!c5GyFu^+0r)Qr# z+n!2(whn4HZ5c11?}V@L&=$tn5Y;|#iy6K$_cBMU5%qD#q?YSQ+4a+b(|5+2?mXgzGrbSa z-46dF-Dh@8FzqZbVdYlFFf7m1JTcTzF}nF|&(3o_&H1M0Nud>}`CQMIQJe1HKcc$3 zbAl=PW@EFM<)#~yUnI4|Y&>HtQy$hJRo4!FUiub(4r{)4AX@3Mecx+)+Zc{h?NgxC z@Bs=K8tLU^cy_AWnK$zq{G(8APPR3pFf%(RBYS*iUdEJVri=+sg{3DV|7emn=3mm1 zkUR#(bVUqAKC#GZ%FH&Utbts%FmnRZ43HqEf^`&TL7IVf*klP7k2EHL4JBDksT3G* zM%p+#V!`;eV(vsU(wObQbc&d4MtTb#^(Uj76Hk*0rQ#EjEk6naD60cm2ueW0IxB)SPkFm6UuEQV*d}YvFSg zG#KfJV&*QRGYqq*n0m`dN4nuS?k=MpID)3;rl%BUNYql0ZlnY)%+9q#(~xcyo)1|X zM$^Q!-b9NTxul>Nq)HW&XuDbBkvvW6qjV9TF@-i#{9q){pecMN>EZPv SaX#X)N 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

L3AUcDDy?pzsgA!b=`Gt^$tSn2_ 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 "SYS/KERNEL" +SYSKERNEL >PSTR "sys/kernel" *-------------------------------------- MSG.INIT1 >PSTR "A2osX[Stage1]:Init" MSG.SETPREFIXOK >PSTR "Set Prefix OK" diff --git a/A2osX.S.txt b/A2osX.S.txt index 4ac8323e..2f5e19e7 100644 --- a/A2osX.S.txt +++ b/A2osX.S.txt @@ -531,7 +531,7 @@ MLIQUIT01 .DA #4 .DA 0 *-------------------------------------- A2osX.LOGO >PSTR "A2OSX.LOGO" -SYS >PSTR "SYS/" +SYS >PSTR "sys/" KM.PREFIX >PSTR "KM." *-------------------------------------- SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0 diff --git a/BIN/X.FILEENUM.S.txt b/BIN/X.FILEENUM.S.txt index f8908d0d..7e0bfb45 100644 --- a/BIN/X.FILEENUM.S.txt +++ b/BIN/X.FILEENUM.S.txt @@ -27,12 +27,12 @@ FilterMatch >LDA.G index >SYSCALL GetMemPtr >STYA ZPPtr2 -* ldy #S.STAT.FSID -* lda (ZPFileStat),y -* bne .10 not prodos... + ldy #S.STAT.FSID + lda (ZPFileStat),y + bne .10 not prodos... -* >LDYA ZPPtr2 CI compare -* >SYSCALL strupr + >LDYA ZPPtr2 CI compare + >SYSCALL strupr .10 lda (ZPPtr2) Get first pattern byte beq .8 Match always if empty diff --git a/ETC/INIT.txt b/ETC/INIT.txt index 629f450e..d808f164 100644 --- a/ETC/INIT.txt +++ b/ETC/INIT.txt @@ -1,16 +1,16 @@ NEW AUTO 3,1 -#!/bin/sh +#!/BIN/SH ECHO *** A2osX INIT Script *** # Main Screens -NOHUP getty /dev/tty1 ${ROOT}sbin/login & -NOHUP getty /dev/tty2 ${ROOT}sbin/login & -NOHUP getty /dev/tty3 ${ROOT}sbin/login & -NOHUP getty /dev/tty4 ${ROOT}sbin/login & +NOHUP GETTY /dev/tty1 ${ROOT}SBIN/LOGIN & +NOHUP GETTY /dev/tty2 ${ROOT}SBIN/LOGIN & +NOHUP GETTY /dev/tty3 ${ROOT}SBIN/LOGIN & +NOHUP GETTY /dev/tty4 ${ROOT}SBIN/LOGIN & # Serial Login #INSDRV SSC.DRV 9600,N,8,1,X #INSDRV SSC.I.DRV 9600,N,8,1,X -#NOHUP getty /DEV/COM2 ${ROOT}SBIN/LOGIN & +#NOHUP GETTY /DEV/COM2 ${ROOT}SBIN/LOGIN & #INSDRV PIC.DRV # GUI Section #INSDRV MOUSE.DRV diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 33716414..d78ee8f9 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -629,7 +629,6 @@ S.STAT.P.DEVSTATUS .EQ 57 BYTE S.STAT.P.DEVCNFLCT .EQ 58 BYTE S.STAT.P.DEVBLOCKS .EQ 59 WORD S.STAT.FSID .EQ 61 BYTE -S.STAT.FSID.PRODOS .EQ 0 * S.STAT .EQ 64 *-------------------------------------- diff --git a/INC/MLI.I.txt b/INC/MLI.I.txt index c8b35b0b..39135507 100644 --- a/INC/MLI.I.txt +++ b/INC/MLI.I.txt @@ -36,6 +36,9 @@ MLISETEOF .EQ $D0 MLIGETEOF .EQ $D1 MLISETBUF .EQ $D2 MLIGETBUF .EQ $D3 + +MLISETFILEINFOEX .EQ $D4 +MLIGETFILEINFOEX .EQ $D5 *-------------------------------------- S.FI.A .EQ $03 S.FI.A.R .EQ $01 @@ -62,6 +65,8 @@ S.FI.CTIME .EQ $10 * S.FI .EQ $12 *-------------------------------------- +S.FIEX .EQ $27 +*-------------------------------------- MLI .EQ $BF00 *JSPARE .EQ $BF03 DATETIME .EQ $BF06 diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index 1e545bb8..a8fba2bf 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -99,8 +99,8 @@ K.ReadDir.ROOT sta K.ReadDir.BufSize bcc .2 inc K.ReadDir.BufSize+1 - .2 - tya + +.2 tya clc adc #16 tay @@ -391,6 +391,9 @@ K.ReadDir.ADDF bne .1 *-------------------------------------- K.ReadDir.AddAccess + ldy CORE.FSID + sta K.S.STAT+S.STAT.FSID + ldy #$1E ProDOS Access lda (ZPPtr3),y diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 6890c0f2..d7c0c360 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -349,10 +349,12 @@ GP.SUB32 sec ldx #3 plp bcs .1 + lda #$79 ADC Absolute,Y .HS 2C BIT ABS .1 lda #$F9 SBC Absolute,Y sta .3 + .2 lda (pStack),y .3 adc ACC32,y SELF MODIFIED sta (pStack),y @@ -583,6 +585,7 @@ CORE.TickSec .BS 1 CORE.Tick10t .BS 1 CORE.CPUStatCnt .DA #100 CORE.LastPSID .DA #0 +CORE.FSID .BS 1 *-------------------------------------- IRQ.InKernel .BS 1 IRQ.InLib .BS 1 diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 1ed74b6d..e9a9ba03 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -151,11 +151,11 @@ Kernel.Init3C >PUSHBI 0 jsr PwdMgrInit -* lda KBD -* bpl .7 -* sta KBDSTROBE -* cmp #146 CTRL-R for ROOT mode -* bne .7 + lda KBD + bpl .7 + sta KBDSTROBE + cmp #146 CTRL-R for ROOT mode + bne .7 >PUSHBI 0 >LDYAI MSG.CTRLR @@ -194,6 +194,16 @@ KConfigLoad >LDYAI MSG.KCREAD jsr PrintFYA jsr MLI + .DA #MLIGETFILEINFOEX + .DA MLIGETFILEINFOEX00 + bcs .1 + + >LDYAI MSG.PRODOSFX + jsr PrintFYA + + inc CORE.FSID + +.1 jsr MLI .DA #MLIOPEN .DA MLIOPEN00 bcs .9 @@ -1076,6 +1086,7 @@ TClock.SIG.Cnt .EQ *-TClock.SIG *-------------------------------------- MSG.Init2 .AZ "A2osX[Stage2]:Init\nRelocating Kernel...\n" MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n" +MSG.PRODOSFX .AS "Running under ProDOS FX! Enabling lowercase mode.\n" MSG.KCREAD .AZ "Reading Kernel Config File..." MSG.KCREAD.OK .AZ "OK\n" MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n" @@ -1134,12 +1145,12 @@ DEV.CONSOLE .AZ "/dev/console" RAMx .AZ "/RAMx" I.ENV.BOOT .AZ "BOOT" I.ENV.ROOT .AZ "ROOT" -I.ENV.PATH .AZ "PATH=${BOOT}sbin/:${BOOT}bin/" -I.ENV.LIB .AZ "LIB=${BOOT}lib/" -I.ENV.DRV .AZ "DRV=${BOOT}drv/" +I.ENV.PATH .AZ "PATH=${BOOT}SBIN/:${BOOT}BIN/" +I.ENV.LIB .AZ "LIB=${BOOT}LIB/" +I.ENV.DRV .AZ "DRV=${BOOT}DRV/" CTRLR.SHELL .AZ "${BOOT}BIN/SH" -ETCINIT.CMDLINE .AZ "${ROOT}etc/init" -ETCPASSWD .AZ "${ROOT}etc/passwd" +ETCINIT.CMDLINE .AZ "${ROOT}ETC/INIT" +ETCPASSWD .AZ "${ROOT}ETC/PASSWD" *-------------------------------------- PwdMgr.ROOT .DA #S.SESSION.P.ROOT .DA #0 UID @@ -1150,6 +1161,12 @@ PwdMgr.ROOT .DA #S.SESSION.P.ROOT .AZ "${ROOT}bin/sh" SHELL PwdMgr.ROOT.Size .EQ *-PwdMgr.ROOT *-------------------------------------- +MLIGETFILEINFOEX00 + .DA #2 + >PSTR "A2osX.KCONFIG" + .DA FIEX +FIEX .BS S.FIEX +*-------------------------------------- MLIOPEN00 .DA #3 .DA .1 .DA $B000