From b9c8617882d7a13bb5bd80808d3bc37d8eaf6b9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 13 Mar 2020 17:10:36 +0100 Subject: [PATCH] Kernel 0.94 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes SBIN/INITD.S.txt | 31 ++++++++++---------- SBIN/LOGIN.S.txt | 61 ++++++++++++++++++++------------------- SYS/KERNEL.S.ENV.txt | 20 ++++--------- SYS/KERNEL.S.ENVX.txt | 11 +++---- SYS/KERNEL.S.INIT.txt | 37 ++++++++++++------------ SYS/KERNEL.S.PS.txt | 8 ++--- SYS/KERNEL.S.PWDX.txt | 3 +- SYS/KERNEL.S.STDLIB.txt | 25 +++++++--------- SYS/KERNEL.S.UNISTD.txt | 9 +++++- _MAKEBOOT.txt | 25 ---------------- _MAKEDEV.txt | 13 --------- _RUN.txt | 6 ---- 13 files changed, 100 insertions(+), 149 deletions(-) delete mode 100644 _MAKEBOOT.txt delete mode 100644 _MAKEDEV.txt delete mode 100644 _RUN.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index a6a4723da700d0df8e24ce528c30f25ea118cba8..2363a12816034137a6c799f02d9cc7d3eb5f8afb 100644 GIT binary patch delta 28427 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 KcCkHF=l=n?je~Rm diff --git a/SBIN/INITD.S.txt b/SBIN/INITD.S.txt index 55018cfc..1b9f0c0c 100644 --- a/SBIN/INITD.S.txt +++ b/SBIN/INITD.S.txt @@ -55,28 +55,27 @@ CS.RUN ldy #S.PS.PID cmp #1 bne .9 -* ldy #S.PS.hStdIn -* lda (pPS),y -* >SYSCALL feof -* bcs .99 -* tay -* bne .1 + ldy #S.PS.hStdIn + lda (pPS),y + >SYSCALL feof + bcs .99 + tay + bne .1 -* >SYSCALL getchar -* bcs .99 + >SYSCALL getchar + bcs .99 -* cmp #18 CTRL-R for Root mode -* bne .1 + cmp #18 CTRL-R for Root mode + bne .1 >LDYA L.MSG.CTRLR >SYSCALL PutS >LDYA L.BINSH jsr CS.RUN.EXEC.YA - - >LDYA L.BINPS - jsr CS.RUN.EXEC.YA - + + >SLEEP + .1 jsr CS.RUN.ETCINIT bcs .99 @@ -153,7 +152,7 @@ CS.RUN.ETCINIT >LDYAI 256 rts *-------------------------------------- CS.RUN.EXEC.YA >PUSHYA - >PUSHBI S.PS.F.HOLD+S.PS.F.SLEEP+S.PS.F.NOHUP + >PUSHBI S.PS.F.HOLD >SYSCALL ExecL rts *-------------------------------------- @@ -165,7 +164,7 @@ CS.QUIT clc *-------------------------------------- CS.END *-------------------------------------- -MSG.CTRLR .AZ "INITD:Ctrl-R Pressed, entering ROOT mode..." +MSG.CTRLR .AZ "INITD:Entering ROOT mode..." BINSH .AZ "${ROOT}bin/sh" ETCINIT .AZ "${ROOT}etc/init" BINMEM .AZ "${ROOT}bin/mem" diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index 67f0c666..df7ef8e1 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -146,31 +146,32 @@ CS.RUN.AUTH lda #3 *-------------------------------------- CS.RUN.EXEC ldx #1 -.1 lda S.Table.hSID-1,x - beq .2 +*.1 lda S.Table.hSID-1,x +* beq .2 - inx - cpx #K.USR.MAX+1 - bne .1 +* inx +* cpx #K.USR.MAX+1 +* bne .1 - lda #E.OOH -* sec - rts +* lda #E.OOH +** sec +* rts -.2 stx ZPNewSession - ldy #S.PS.hSession - lda (pPS),y - sta ZPOldSession +.2 +* stx ZPNewSession +* ldy #S.PS.hSession +* lda (pPS),y +* sta ZPOldSession - txa - sta (pPS),y +* txa +* sta (pPS),y - lda ZPNewSID - sta S.Table.hSID-1,x +* lda ZPNewSID +* sta S.Table.hSID-1,x - ldy #S.PS.hStdIn - lda (pPS),y - sta S.Table.hFILE-1,x +* ldy #S.PS.hStdIn +* lda (pPS),y +* sta S.Table.hFILE-1,x >LDYA L.ETCMOTD jsr CS.RUN.DumpFile @@ -183,22 +184,22 @@ CS.RUN.EXEC ldx #1 >SLEEP - lda ZPOldSID - beq .8 +* lda ZPOldSID +* beq .8 - >SYSCALL CloseSession +* >SYSCALL CloseSession - stz ZPOldSID +* stz ZPOldSID -.8 ldx ZPNewSession - lda S.Table.hSID-1,x - stz S.Table.hSID-1,x - stz S.Table.hFILE-1,x +*.8 ldx ZPNewSession +* lda S.Table.hSID-1,x +* stz S.Table.hSID-1,x +* stz S.Table.hFILE-1,x * >SYSCALL FreeMem - ldy #S.PS.hSession - lda ZPOldSession - sta (pPS),y +* ldy #S.PS.hSession +* lda ZPOldSession +* sta (pPS),y sec .9 rts diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 7ca78917..d48c5506 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -6,7 +6,6 @@ NEW * ## C / CSH * `int setenv(const char *name, const char *value);` * ## ASM -* **In:** * `>PUSHW name` * `>PUSHW value` * `>SYSCALL setenv` @@ -27,7 +26,6 @@ K.SetEnv * ## C / CSH * `char *getenv(const char *name, char *value);` * ## ASM -* **In:** * `>PUSHW name` * `>PUSHW value` * `>SYSCALL getenv` @@ -36,12 +34,6 @@ K.SetEnv * CS : not found *\-------------------------------------- K.GetEnv >PULLW FORPNT value -* >PULLW TXTPTR name -* -* ldy #S.PS.hENV -* lda (pPS),y - -* jmp K.SYSCALL.JMPX */-------------------------------------- * # PutEnv * Change or add an environment variable, string is 'NAME=VALUE' @@ -53,31 +45,31 @@ K.GetEnv >PULLW FORPNT value * `>SYSCALL putenv` * ## RETURN VALUE *\-------------------------------------- -K.PutEnv >PULLW TXTPTR NAME=VALUE +K.PutEnv +* >PULLW TXTPTR name=value */-------------------------------------- * # UnsetEnv * Remove an environment variable * ## C / CSH * `int unsetenv(const char *name);` * ## ASM -* **In:** * `>PUSHW name` * `>SYSCALL unsetenv` * ## RETURN VALUE *\-------------------------------------- -K.UnsetEnv -* >PULLW TXTPTR name +K.UnsetEnv >PULLW TXTPTR name - ldy #S.PS.hENV +K.GetEnv.I ldy #S.PS.hENV FROM STDLIB:EXPAND lda (pPS),y pha ldy #S.PS.hSession lda (pPS),y + tay lda S.Table.hSID-1,y + tay - pla jmp K.SYSCALL.JMPX diff --git a/SYS/KERNEL.S.ENVX.txt b/SYS/KERNEL.S.ENVX.txt index 09013e29..c661a5b6 100644 --- a/SYS/KERNEL.S.ENVX.txt +++ b/SYS/KERNEL.S.ENVX.txt @@ -30,6 +30,7 @@ ENVX.PutEnv tax save hEnv sta FORPNT+1 txa get back hEnv + ldy ENVX.hSID *-------------------------------------- ENVX.SetEnv jsr ENVX.UnsetEnv @@ -117,9 +118,9 @@ ENVX.SetEnv jsr ENVX.UnsetEnv .9 rts *-------------------------------------- -ENVX.GetEnv sty ENVX.hSID - sta ENVX.hEnv - +ENVX.GetEnv sta ENVX.hEnv + sty ENVX.hSID + ldy TXTPTR+1 bne .10 @@ -327,7 +328,7 @@ ENVX.SIDVarsGID ldx #S.SESSION.GID jsr MATH.A2STR10NP - >LDYA A2osX.NumStrBuf + >LDYAI A2osX.NumStrBuf clc rts @@ -361,7 +362,7 @@ ENVX.InitEnvP3 lda ENVX.hEnv bra ENVX.InitP3 *-------------------------------------- ENVX.InitSIDP3 lda ENVX.hSID - >DEBUG + ENVX.InitP3 jsr K.GetMemPtr >STYA ZPPtr3 rts diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 4dc5d9c7..2aeda66a 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -1008,6 +1008,21 @@ TskMgrInit >LDYAI MSG.TSK sta CLRWRITEAUX + >PUSHWI 0 + >PUSHWI 0 + >SYSCALL OpenSession + bcs .99 + + sta S.Table.hSID + + ldy #S.PS.hStdIn + lda (pPS),y + sta S.Table.hFile + + lda #1 + ldy #S.PS.hSession + sta (pPS),y + >LDYAI $2E0 Get ROOT from QC >SYSCALL2 strdup bcs .9 @@ -1019,7 +1034,7 @@ TskMgrInit >LDYAI MSG.TSK >PUSHWI I.ENV.BOOT >PUSHWI $2C0 Get BOOT from QC >SYSCALL2 SetEnv - bcs .9 +.99 bcs .9 >PUSHWI I.ENV.ROOT >PUSHWI $2E0 Get ROOT from QC @@ -1055,21 +1070,7 @@ PwdMgrInit >LDYAI MSG.PWD stx PWD.hGrpDB >STYA PWD.GrpDBSize -.1 >PUSHWI 0 - >PUSHWI 0 - >SYSCALL OpenSession - bcs .9 - - sta S.Table.hSID - - ldy #S.PS.hStdIn - lda (pPS),y - sta S.Table.hFile - - lda #1 - ldy #S.PS.hSession - sta (pPS),y - +.1 * clc .9 rts *-------------------------------------- @@ -1121,9 +1122,7 @@ MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n" MSG.PRODOSFX .AZ "!!!Running under ProDOS.FX!!! Enabling lowercase mode.\n" MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n" *-------------------------------------- -SYSSCREEN.TOP .AZ "A2osX 0.94 Console" -MSG.Init3 .AS "A2osX[Stage3]:Init" - .AZ "\r\n*** Press Ctrl-R for ROOT Mode ***\r\n" +MSG.Init3 .AZ "A2osX[Stage3]:Init *** Press Ctrl-R for entering ROOT Mode ***\r\n" MSG.DEV .AZ "Device Manager..." *-------------------------------------- MSG.BLKDEV .AZ " Adding Device: /dev/%s, Addr:%H, Type: %s\r\n" diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 1e600cdd..9702d70d 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -178,10 +178,10 @@ PS.CreateChild ldx #0 lda (ZPPtr1),y sta (PS.NewPSPtr),y - tax - lda S.Table.hSID-1,x - jsr MEM.GetMemByID - jsr MEM.IncRefCnt +* tax +* lda S.Table.hSID-1,x +* jsr MEM.GetMemByID +* jsr MEM.IncRefCnt lda #S.PS.F.HOLD bit PS.Flags diff --git a/SYS/KERNEL.S.PWDX.txt b/SYS/KERNEL.S.PWDX.txt index 86cb4fe0..fd7349a7 100644 --- a/SYS/KERNEL.S.PWDX.txt +++ b/SYS/KERNEL.S.PWDX.txt @@ -198,8 +198,7 @@ PWDX.OpenSession sta (ZPPtr1),y dey bpl .2 - >DEBUG - + txa clc rts diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index c7315e6f..cd9dcdda 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -319,7 +319,7 @@ K.RealPath.RemoveAtX *\-------------------------------------- .DUMMY .OR ZPDRV -ENV.BufLen .BS 1 +ENV.BufPtr .BS 1 ENV.VarEndChar .BS 1 ENV.bNoExp .BS 1 ENV.bExp .BS 1 @@ -340,7 +340,7 @@ K.Expand ldy #2 .1 phx Save temp string... >STYA TXTPTR - stz ENV.BufLen init Expanded String len=0 + stz ENV.BufPtr init Expanded String len=0 stz ENV.bExp No var found yet stz ENV.bNoExp Reset no expand flag @@ -393,25 +393,22 @@ K.Expand ldy #2 .40 jsr ENV.ExpandStrVar bcc .70 -.50 ldy ENV.BufLen +.50 ldy ENV.BufPtr lda /K.Buf256 >STYA FORPNT - ldy #S.PS.hENV - lda (pPS),y - ldx #SYS.GetEnv - jsr K.SYSCALL.JMPX + jsr K.GetEnv.I bcs .70 - ldx ENV.BufLen + ldx ENV.BufPtr .51 lda K.Buf256,x beq .52 inx bra .51 -.52 stx ENV.BufLen +.52 stx ENV.BufPtr .70 lda (TXTPTR) beq .72 @@ -426,7 +423,7 @@ K.Expand ldy #2 bra .10 -.80 ldx ENV.BufLen +.80 ldx ENV.BufPtr stz K.Buf256,x pla discard temp string @@ -552,7 +549,7 @@ ENV.StrVarsPWD ldy #S.PS.hCWD *-------------------------------------- ENV.AddYAToBuf >STYA ZPPtr3 *-------------------------------------- -ENV.AddP3ToBuf ldx ENV.BufLen +ENV.AddP3ToBuf ldx ENV.BufPtr ldy #$ff dex @@ -563,12 +560,12 @@ ENV.AddP3ToBuf ldx ENV.BufLen sta K.Buf256,x bne .1 - stx ENV.BufLen + stx ENV.BufPtr rts *-------------------------------------- -ENV.AddAToBuf ldx ENV.BufLen +ENV.AddAToBuf ldx ENV.BufPtr sta K.Buf256,x - inc ENV.BufLen + inc ENV.BufPtr rts *-------------------------------------- ENV.NextEnvP3 jsr ENV.GetP3LenY diff --git a/SYS/KERNEL.S.UNISTD.txt b/SYS/KERNEL.S.UNISTD.txt index f2d23d1a..caf820b9 100644 --- a/SYS/KERNEL.S.UNISTD.txt +++ b/SYS/KERNEL.S.UNISTD.txt @@ -43,7 +43,7 @@ UNISTD.Open ldx #5 /DEV/ *-------------------------------------- >LDYAI K.MLI.PATH+6 skip $/DEV/ - >SYSCALL2 GetDevByName + jsr K.GetDevByName bcc .7 ldx #2 @@ -52,13 +52,18 @@ UNISTD.Open ldx #5 /DEV/ jsr K.GetMemPtr >STYA ZPPtr1 + ldy #0 + .2 lda (ZPPtr1),y iny cmp K.MLI.PATH,y bne .3 + cmp #0 end of string ? + bne .2 + lda Nod.Table.hFD-2,x return hFD jsr UNISTD.GetPFD bra .71 @@ -89,10 +94,12 @@ UNISTD.Open ldx #5 /DEV/ *-------------------------------------- IO.OPEN.REG >MLICALL MLIGETFILEINFO bcc IO.OPEN.REG.E Already Exists + bit IO.Open.FLAGS Create if not exists ? bpl IO.OPEN.RTS No, return MLI error ldx #2 Yes, Create... + .1 lda IO.Open.TYPE,x sta K.MLI.PARAMS+4,x File type,Aux type dex diff --git a/_MAKEBOOT.txt b/_MAKEBOOT.txt deleted file mode 100644 index 884fe3db..00000000 --- a/_MAKEBOOT.txt +++ /dev/null @@ -1,25 +0,0 @@ -NEW -PREFIX -AUTO 4,1 -echo \fBuilding A2OSX.BOOT Media... -format S6D1 A2OSX.BOOT -echo Copying Files... -cp ProDOS /A2OSX.BOOT -md /A2OSX.BOOT/SYS -cp SYS/* /A2OSX.BOOT/SYS -md /A2OSX.BOOT/DRV -cp DRV/* /A2OSX.BOOT/DRV -md /A2OSX.BOOT/LIB -cp LIB/* /A2OSX.BOOT/LIB -md /A2OSX.BOOT/SBIN -cp SBIN/* /A2OSX.BOOT/SBIN -md /A2OSX.BOOT/BIN -cp BIN/* /A2OSX.BOOT/BIN -md /A2OSX.BOOT/ETC -echo Done! -cp A2OSX.SYSTEM /A2OSX.BOOT -chtyp /A2OSX.BOOT/A2OSX.SYSTEM SYS -cp A2OSX.STARTUP /A2OSX.BOOT - -MAN -TEXT MAKEBOOT diff --git a/_MAKEDEV.txt b/_MAKEDEV.txt deleted file mode 100644 index dae3d03e..00000000 --- a/_MAKEDEV.txt +++ /dev/null @@ -1,13 +0,0 @@ -NEW -PREFIX -AUTO 4,1 -echo \fBuilding A2OSX.DEV Media... -format S6D2 A2OSX.DEV -echo Copying Files... -md /A2OSX.DEV/BIN -cp -q BIN/DEV/* /A2OSX.DEV/BIN -md /A2OSX.DEV/INC -cp -q INC/* /A2OSX.DEV/INC -echo Done! -MAN -TEXT MAKEDEV diff --git a/_RUN.txt b/_RUN.txt deleted file mode 100644 index d1bf39b2..00000000 --- a/_RUN.txt +++ /dev/null @@ -1,6 +0,0 @@ -NEW -PREFIX -AUTO 4,1 --A2OSX.SYSTEM -MAN -TEXT RUN