From dc10f1715e5527676d9970e533193a71265c948c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sun, 2 Feb 2020 15:58:01 +0100 Subject: [PATCH] Kernel 0.93++ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.HIS.txt | 106 +++++++++----------------------- INC/A2osX.I.txt | 12 ++-- SYS/KERNEL.S.DEF.txt | 1 - SYS/KERNEL.S.ENV.txt | 126 ++++++++++++--------------------------- SYS/KERNEL.S.ENVX.txt | 66 +++----------------- SYS/KERNEL.S.INIT.txt | 10 +--- SYS/KERNEL.S.JMP.txt | 20 +++---- SYS/KERNEL.S.MEM.txt | 21 +++++-- SYS/KERNEL.S.PS.txt | 4 -- SYS/KERNEL.S.STRV.txt | 26 ++++---- SYS/KERNEL.S.txt | 13 ++-- 12 files changed, 127 insertions(+), 278 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index cfc71fbbd6e4e93494db580a978c7f227b13b535..90299f1a25475e1bf01137c49d5038d351ed114b 100644 GIT binary patch delta 41396 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 N1NhUi2lr(}{vW%$^bG(2 delta 42148 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 diff --git a/BIN/SH.S.HIS.txt b/BIN/SH.S.HIS.txt index 474cf479..299f5080 100644 --- a/BIN/SH.S.HIS.txt +++ b/BIN/SH.S.HIS.txt @@ -19,117 +19,67 @@ HIS.Init >LDYAI HISTORY.MAX Get a buffer for History *-------------------------------------- HIS.Add >LDA.G HIS.hBuf beq .9 - >SYSCALL GetMemPtr - >STYA ZPPTR1 -.10 lda #$ff - jsr HIS.GetA Y=ending 0 - phy - tya - sec add len+1 - >ADC.G CL.Len CmdBuffer length - pla - bcc .2 enough room - jsr GetPtr1LenY get len of oldest string - tya -* sec - adc ZPPTR1 - sta ZPPTR2 - lda ZPPTR1+1 - adc #0 - sta ZPPTR2+1 - ldy #$FF -.1 iny - lda (ZPPTR2),y move back until String ending 0 found - sta (ZPPTR1),y - bne .1 - iny - lda (ZPPTR2),y move back until Array ending 0 found - sta (ZPPTR1),y - bne .1 + >PUSHA + >PUSHW ZPCLBuf + >SYSCALL StrVAdd + bcc .1 + + >PUSHB.G HIS.hBuf + lda #0 + >PUSHA + >SYSCALL StrVShift >DEC.G HIS.Count - bra .10 retry.... -.2 jsr AddAPtr1 A = ending O offset - - ldy #$ff -.4 iny - lda (ZPCLBuf),y - sta (ZPPTR1),y - bne .4 - - iny - sta (ZPPTR1),y set new array ending 0 -* lda #0 - >STA.G HIS.Index Reset Index + bra HIS.Add + +.1 >STZ.G HIS.Index Reset Index >INC.G HIS.Count .9 rts *-------------------------------------- HIS.GetPrev >LDA.G HIS.hBuf beq HISTORY.RTS - >SYSCALL GetMemPtr - >STYA ZPPTR1 + >LDA.G HIS.Count beq HISTORY.RTS empty history,nothing to do + >LDA.G HIS.Index bne .1 + >LDA.G HIS.Count .1 dec - >STA.G HIS.Index - bra HIS.SetA + bra HIS.GetToCl History.RTS rts *-------------------------------------- HIS.GetNext >LDA.G HIS.hBuf beq HISTORY.RTS - >SYSCALL GetMemPtr - >STYA ZPPTR1 >LDA.G HIS.Count beq HISTORY.RTS empty history,nothing to do + >LDA.G HIS.Index inc >CMP.G HIS.Count - bne .1 + bne HIS.GetToCl + lda #0 >STA.G HIS.Index jmp CL.CLR -.1 >STA.G HIS.Index *-------------------------------------- -HIS.SetA jsr HIS.GetA +HIS.GetToCl >STA.G HIS.Index - tya - jsr AddAPtr1 jsr CL.CLR - ldy #$ff -.2 iny - lda (ZPPTR1),y - sta (ZPCLBuf),y - bne .2 - tya - >STA.G CL.Ptr + + >PUSHB.G HIS.hBuf + >PUSHB.G HIS.Index + >PUSHW ZPCLBuf + + >SYSCALL StrVGet + + >STZ.G CL.Ptr >STA.G CL.Len jmp CL.PrintCLBuf *-------------------------------------- -HIS.GetA ldy #0 - tax - beq .80 - lda (ZPPTR1),y - beq .9 -.1 iny - lda (ZPPTR1),y - bne .1 - dex - beq .8 - iny - lda (ZPPTR1),y - bne .1 -.9 sec Found ending 0.... - rts -.8 iny - -.80 clc - rts -*-------------------------------------- MAN SAVE USR/SRC/BIN/SH.S.HIS LOAD USR/SRC/BIN/SH.S diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 09d63828..cb0b9b24 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -266,9 +266,9 @@ SYS.Kill .EQ $A6 SYS.LoadFile .EQ $A8 SYS.LoadTxtFile .EQ $AA SYS.GetMemStat .EQ $AC -SYS.StrVDup .EQ $AE +* .EQ $AE -SYS.StrVGet .EQ $B0 +* .EQ $B0 SYS.ArgV .EQ $B2 SYS.Expand .EQ $B4 SYS.FileSearch .EQ $B6 @@ -293,10 +293,10 @@ SYS.GetPWName .EQ $D2 SYS.PutPW .EQ $D4 SYS.FlushEtcPasswd .EQ $D6 -* .EQ $D8 -* .EQ $DA -* .EQ $DC -* .EQ $DE +SYS.StrVShift .EQ $D8 +SYS.StrVGet .EQ $DA +SYS.StrVAdd .EQ $DC +SYS.StrVDup .EQ $DE *-------------------------------------- SYS.GetMem .EQ $E0 SYS.Realloc .EQ $E2 diff --git a/SYS/KERNEL.S.DEF.txt b/SYS/KERNEL.S.DEF.txt index 8b4091da..2687273f 100644 --- a/SYS/KERNEL.S.DEF.txt +++ b/SYS/KERNEL.S.DEF.txt @@ -2,7 +2,6 @@ NEW AUTO 3,1 *-------------------------------------- AUXPIPE .EQ 1 -AUXENV .EQ 1 *-------------------------------------- ZPKERNEL .EQ $0 *-------------------------------------- diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index 5b53d7cd..d9076f32 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -353,9 +353,7 @@ K.SetEnv.I jsr K.UnsetEnv.I jsr ENV.NextEnvP4Y bra .10 -.15 .DO AUXENV=1 - sta CLRREADAUX - .FIN +.15 sta CLRREADAUX ldy #$ff @@ -395,12 +393,8 @@ K.SetEnv.I jsr K.UnsetEnv.I ldy #S.PS.hENV lda (pPs),y - .DO AUXENV=1 ldx #SYS.FreeStkObj jsr K.SYSCALL2.AUX - .ELSE - jsr K.Freemem - .FIN pla hEnv ldy #S.PS.hENV @@ -412,9 +406,7 @@ K.SetEnv.I jsr K.UnsetEnv.I .22 ldy #$ff - .DO AUXENV=1 sta SETWRITEAUX - .FIN .23 iny lda (TXTPTR),y @@ -438,10 +430,8 @@ K.SetEnv.I jsr K.UnsetEnv.I sta (ZPPtr3),y don't forget array ending 0 clc -.9 .DO AUXENV=1 - sta CLRREADAUX +.9 sta CLRREADAUX sta CLRWRITEAUX - .FIN rts */-------------------------------------- * # GetEnv @@ -461,8 +451,34 @@ K.SetEnv.I jsr K.UnsetEnv.I K.GetEnv >PULLW FORPNT value >PULLW TXTPTR name -K.GetEnv.I lda TXTPTR - beq K.GetEnvDump +K.GetEnv.I ldy #S.PS.hENV + lda (pPs),y + tax + + ldy TXTPTR+1 + bne .10 + + sta SETREADAUX + jsr MEM.GetMemByID + + ldy #S.MEM.LEN + lda (ZPMemMgrSPtr),y + pha + iny + lda (ZPMemMgrSPtr),y + ply + sta CLRREADAUX + + jmp MEM.CopyToMain + +.10 +* sta SETREADAUX +* sta SETWRITEAUX +* stx ENVX.hEnv +* jsr ENVX.GetEnv +* sta CLRREADAUX +* sta CLRWRITEAUX +* rts jsr ENV.FindVar bcs .9 @@ -474,35 +490,27 @@ K.GetEnv.I lda TXTPTR ldy #$ff - .DO AUXENV=1 sta SETREADAUX - .FIN .1 iny lda (ZPPtr3),y bne .1 - .DO AUXENV=1 sta CLRREADAUX - .FIN iny bne .2 inc -.2 .DO AUXENV=1 - sta CLRREADAUX +.2 sta CLRREADAUX sta CLRWRITEAUX - .FIN jsr K.getmem bcs .99 >STYA FORPNT -.3 .DO AUXENV=1 - sta SETREADAUX - .FIN +.3 sta SETREADAUX ldy #$ff @@ -512,9 +520,7 @@ K.GetEnv.I lda TXTPTR bne .4 >LDYA FORPNT - .DO AUXENV=1 sta CLRREADAUX - .FIN clc rts @@ -522,42 +528,6 @@ K.GetEnv.I lda TXTPTR .9 >LDYAI 0 * sec .99 rts - -K.GetEnvDump ldy #S.PS.ENVPAGECNT - lda (pPs),y - sta .1+1 - - ldy #0 - jsr K.getmem - bcs .9 - - >STYA FORPNT - sty .80+1 - sta .81+1 - stx .82+1 - - jsr ENV.InitEnvP3 SETREADAUX - -.1 ldx #$ff SELF MODIFIED - - ldy #0 - -.2 lda (ZPPtr3),y - sta (FORPNT),y - iny - bne .2 - - -.80 ldy #$ff SELF MODIFIED -.81 lda #$ff SELF MODIFIED -.82 ldx #$ff SELF MODIFIED - - .DO AUXENV=1 - sta CLRREADAUX - .FIN - - clc -.9 rts */-------------------------------------- * # UnsetEnv * Remove an environment variable @@ -591,10 +561,8 @@ K.UnsetEnv.I jsr ENV.FindVar * ZPPtr3 -> PTR to Ending 0 *-------------------------------------- ENV.FindVar - .DO AUXENV=1 sta SETREADAUX sta SETWRITEAUX - .FIN jsr ENV.InitEnvP3 Store ENV @@ -604,11 +572,7 @@ ENV.FindVar ldy #$ff .2 iny - .DO AUXENV=1 jsr SHARED.TXTPTR.GetY - .ELSE - lda (TXTPTR),y - .FIN beq .3 jsr SHARED.IsIDValid @@ -623,20 +587,16 @@ ENV.FindVar cmp #'=' bne .4 - .DO AUXENV=1 sta CLRREADAUX sta CLRWRITEAUX - .FIN clc rts .4 jsr ENV.NextEnvP3 Skip NAME=VALUE bra .1 -.9 .DO AUXENV=1 - sta CLRREADAUX +.9 sta CLRREADAUX sta CLRWRITEAUX - .FIN sec rts *-------------------------------------- @@ -644,10 +604,8 @@ ENV.FindVar * In: * ZPPtr3 -> ENV.NAME to Discard *-------------------------------------- -ENV.DelVarP3 .DO AUXENV=1 - sta SETREADAUX +ENV.DelVarP3 sta SETREADAUX sta SETWRITEAUX - .FIN >LDYA ZPPtr3 save actual Ptr >STYA ZPPtr4 jsr ENV.NextEnvP3 Skip NAME=VALUE @@ -667,20 +625,14 @@ ENV.DelVarP3 .DO AUXENV=1 jsr ENV.NextEnvP4Y bra .1 -.8 .DO AUXENV=1 - sta CLRREADAUX +.8 sta CLRREADAUX sta CLRWRITEAUX - .FIN rts *-------------------------------------- -ENV.InitEnvP3 .DO AUXENV=1 - sta CLRREADAUX - .FIN +ENV.InitEnvP3 sta CLRREADAUX ldy #S.PS.hENV lda (pPs),y - .DO AUXENV=1 sta SETREADAUX - .FIN jsr K.GetMemPtr >STYA ZPPtr3 Store ENV @@ -728,10 +680,8 @@ ENV.Dup.A sta .8+1 Store target page Count ldy #S.PS.hENV lda (pPs),y - .DO AUXENV=1 sta SETREADAUX sta SETWRITEAUX - .FIN jsr K.GetMemPtr >STYA .1+1 @@ -762,10 +712,8 @@ ENV.Dup.A sta .8+1 Store target page Count pla hMem clc -.9 .DO AUXENV=1 - sta CLRREADAUX +.9 sta CLRREADAUX sta CLRWRITEAUX - .FIN rts *-------------------------------------- MAN diff --git a/SYS/KERNEL.S.ENVX.txt b/SYS/KERNEL.S.ENVX.txt index d301b244..5b723ef5 100644 --- a/SYS/KERNEL.S.ENVX.txt +++ b/SYS/KERNEL.S.ENVX.txt @@ -1,6 +1,8 @@ NEW AUTO 3,1 *-------------------------------------- +ENVX.hEnv .BS 1 +*-------------------------------------- ENVX.PutEnv ldy #$ff .1 iny @@ -70,7 +72,7 @@ ENVX.SetEnv jsr ENVX.UnsetEnv bcs .22 env is large enough lda ZPPtr4+1 - jsr ENV.Dup.A + jsr ENVX.Dup.A bcs .9 pha @@ -113,10 +115,7 @@ ENVX.SetEnv jsr ENVX.UnsetEnv .9 rts *-------------------------------------- -ENVX.GetEnv lda TXTPTR - beq ENVX.Dump - - jsr ENVX.FindVar +ENVX.GetEnv jsr ENVX.FindVar bcs .9 jsr ENVX.NextEnvP3Y Skip NAME= @@ -162,55 +161,11 @@ ENVX.GetEnv lda TXTPTR * sec .99 rts *-------------------------------------- -ENVX.Dump sta CLRREADAUX - sta CLRWRITEAUX - - ldy #S.PS.ENVPAGECNT - lda (pPs),y - sta .1+1 - - ldy #0 - jsr K.getmem - - sta SETREADAUX - sta SETWRITEAUX - - bcs .9 - - >STYA FORPNT - sty .80+1 - sta .81+1 - stx .82+1 - - jsr ENV.InitEnvP3 SETREADAUX - -.1 ldx #$ff SELF MODIFIED - - ldy #0 - -.2 lda (ZPPtr3),y - jsr SHARED.FORPNT.PutY - iny - bne .2 - - inc ZPPtr3+1 - inc FORPNT+1 - - dex - bne .2 - -.80 ldy #$ff SELF MODIFIED -.81 lda #$ff SELF MODIFIED -.82 ldx #$ff SELF MODIFIED - - clc -.9 rts -*-------------------------------------- ENVX.UnsetEnv jsr ENVX.FindVar - bcs . 8 not found, quit + bcs .8 not found, quit jsr ENVX.DelVarP3 Ptr3 -> NAME=VALUE - clc +.8 clc rts *-------------------------------------- @@ -283,10 +238,7 @@ ENVX.DelVarP3 >LDYA ZPPtr3 save actual Ptr .8 rts *-------------------------------------- -ENVX.InitEnvP3 sta CLRREADAUX - ldy #S.PS.hENV - lda (pPs),y - sta SETREADAUX +ENVX.InitEnvP3 lda ENVX.hEnv jsr K.GetMemPtr >STYA ZPPtr3 Store ENV @@ -323,10 +275,10 @@ ENVX.NextEnvP4Y tya * A = hMem to new ENV * X = Page Count *-------------------------------------- -ENV.Dup ldy #S.PS.ENVPAGECNT +ENVX.Dup ldy #S.PS.ENVPAGECNT lda (pPs),y -ENV.Dup.A sta .8+1 Store target page Count +ENVX.Dup.A sta .8+1 Store target page Count ldy #S.PS.ENVPAGECNT get SOURCE page count lda (pPs),y diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 8268c487..6a26f71d 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -992,12 +992,8 @@ TskMgrInit >LDYAI MSG.TSK >SYSCALL2 puts >LDYAI K.ENV.SIZE get a buffer for ENV - .DO AUXENV=1 ldx #SYS.NewStkObj jsr K.SYSCALL2.AUX Buffer in AUX mem - .ELSE - jsr K.GetMem - .FIN bcs EvtMgrInit.RTS >STYA ZPPtr1 ldy #S.PS.ENVPAGECNT @@ -1009,16 +1005,12 @@ TskMgrInit >LDYAI MSG.TSK iny #S.PS.hENV sta (pPs),y - .DO AUXENV=1 sta SETWRITEAUX - .FIN lda #0 sta (ZPPtr1) make sure blank!! - .DO AUXENV=1 sta CLRWRITEAUX - .FIN - + >LDYAI $2E0 Get ROOT from QC >SYSCALL2 strdup bcs .9 diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 32f71c27..3ea6bbd2 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -104,9 +104,9 @@ K.SYSCALL .DA 0 $00 .DA K.LoadFile .DA K.LoadTxtFile .DA K.GetMemStat - .DA K.StrVDup + .DA 0 - .DA K.StrVGet $B0 + .DA 0 $B0 .DA K.ArgV .DA K.Expand .DA K.FileSearch @@ -128,10 +128,10 @@ K.SYSCALL .DA 0 $00 .DA K.GetPWName .DA K.PutPW .DA K.FlushEtcPasswd - .DA 0 - .DA 0 - .DA 0 - .DA 0 X.OSD + .DA K.StrVShift + .DA K.StrVGet + .DA K.StrVAdd + .DA K.StrVDup *-------------------------------------- * $E000 *-------------------------------------- @@ -386,13 +386,13 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #$80 .DA #0 PWD .DA #$80 - .DA #RRAMWRAMBNK2 + .DA #0 StrV .DA #$80 - .DA #RRAMWRAMBNK2 + .DA #0 .DA #$80 - .DA #RRAMWRAMBNK2 + .DA #0 .DA #$80 - .DA #$C0 Off Screen Driver + .DA #0 .DA #$80 *-------------------------------------- .DA #0 $E0 : MemMgr at $E000 diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index 38c91ae6..6f7bfc4f 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -29,12 +29,13 @@ K.Realloc ldy #2 src hMem ldy #S.MEM.LEN lda (ZPMemMgrSPtr),y - sta .2+1 pha iny lda (ZPMemMgrSPtr),y - sta .3+1 ply + + sty .2+1 + sta .3+1 jsr MEM.MoveToAux x = Src hMem, YA = LEN bcs .99 @@ -498,8 +499,12 @@ K.LoadStkObj ldx #SYS.LoadTxtFile To get ending \0 * none. * (X,Y unmodified) *\-------------------------------------- -MEM.MoveToMain stx .1+1 Save AUX hMem - >STYA A2L Save LEN to move +MEM.CopyToMain clc + .HS B0 BCS +MEM.MoveToMain sec + ror .1+1 + stx .2+1 Save AUX hMem + >STYA A2L Save LEN to copy/move jsr K.GetMem bcs .9 @@ -507,7 +512,7 @@ MEM.MoveToMain stx .1+1 Save AUX hMem stx .8+1 Save MAIN hMem >STYA A4L Save MAIN Ptr - lda .1+1 + lda .2+1 >SYSCALL2 GetStkObjPtr >STYA A1L Save AUX base Ptr pha Add Allocated LEN @@ -523,10 +528,14 @@ MEM.MoveToMain stx .1+1 Save AUX hMem jsr AuxMove .1 lda #$ff SELF MODIFIED + bpl .8 + +.2 lda #$ff SELF MODIFIED >SYSCALL2 FreeStkObj release AUX memory .8 ldx #$ff Returns MAIN hMem -* clc + txa + jmp K.GetMemPtr Y,A = Ptr .9 rts *-------------------------------------- diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 0619ff4f..3e268008 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -581,12 +581,8 @@ K.Kill.2 ldy #S.PS.hSID ldy #S.PS.hENV lda (ZPPtr1),y - .DO AUXENV=1 ldx #SYS.FreeStkObj jsr K.SYSCALL2.AUX - .ELSE - jsr K.Freemem - .FIN ldx #4 diff --git a/SYS/KERNEL.S.STRV.txt b/SYS/KERNEL.S.STRV.txt index 84660ffd..ca858818 100644 --- a/SYS/KERNEL.S.STRV.txt +++ b/SYS/KERNEL.S.STRV.txt @@ -43,14 +43,14 @@ K.StrVShift >PULLA index * CC: Y,A = Ptr * CS: Y,A = NULL *\-------------------------------------- -K.StrVGet >PULLW ZPPtr2 ptr +K.StrVGet >PULLW FORPNT ptr >PULLA index eor #$ff tax >PULLA - >SYSCALL GetMemPtr + jsr K.GetMemPtr >STYA ZPPtr1 strV .1 inx @@ -63,20 +63,22 @@ K.StrVGet >PULLW ZPPtr2 ptr .2 lda (ZPPtr1) tay - sec - beq .9 Y,A = 0 + bne .3 - lda ZPPtr2+1 + sec + rts Y,A = 0 + +.3 lda FORPNT+1 beq .8 .4 ldy #$ff .5 iny lda (ZPPtr1),y - sta (ZPPtr2),y + sta (FORPNT),y bne .5 - >LDYA ZPPtr2 + >LDYA FORPNT clc rts @@ -93,7 +95,7 @@ K.StrVGet >PULLW ZPPtr2 ptr * CC : str added to hSTRV * CS : hSTRV full *\-------------------------------------- -K.StrVAdd >PULLW ZPPtr2 str +K.StrVAdd >PULLW TXTPTR str >PULLA >SYSCALL GetMemPtr >STYA ZPPtr1 @@ -105,13 +107,13 @@ K.StrVAdd >PULLW ZPPtr2 str .1 jsr STRV.NStrPtr1 bcs .2 - jsr SHARED.AddYp1ToPtr1 + jsr SHARED.AddYp1ToPtr2 bra .1 .2 ldy #$ff .3 iny - lda (ZPPtr1),y + lda (TXTPTR),y bne .3 tya @@ -137,12 +139,12 @@ K.StrVAdd >PULLW ZPPtr2 str .4 ldy #$ff .5 iny - lda (ZPPtr2),y + lda (TXTPTR),y sta (ZPPtr1),y bne .5 iny - sta (ZPPtr1),y + sta (ZPPtr1),y StrV Ending \0 clc rts diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index bf9817b0..019d28a1 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -45,9 +45,10 @@ A2osX.AUX .DA #0 A2osX.AUX.B .PH Mem.XHiMem .INB USR/SRC/SYS/KERNEL.S.TERMX + .INB USR/SRC/SYS/KERNEL.S.ENVX + .INB USR/SRC/SYS/KERNEL.S.TIMEX .INB USR/SRC/SYS/KERNEL.S.MD5X .INB USR/SRC/SYS/KERNEL.S.PWDX - .INB USR/SRC/SYS/KERNEL.S.TIMEX .INB USR/SRC/SYS/KERNEL.S.SLISTX .EP A2osX.AUX.S .EQ *-A2osX.AUX.B @@ -95,16 +96,16 @@ A2osX.E0 .DA #0 A2osX.E0.B .PH $E000 .INB USR/SRC/SYS/KERNEL.S.JMP .INB USR/SRC/SYS/KERNEL.S.IRQ - .INB USR/SRC/SYS/KERNEL.S.MEM + .INB USR/SRC/SYS/KERNEL.S.SHARED .INB USR/SRC/SYS/KERNEL.S.MATH - .INB USR/SRC/SYS/KERNEL.S.STRV .INB USR/SRC/SYS/KERNEL.S.TERM + .INB USR/SRC/SYS/KERNEL.S.TIME .INB USR/SRC/SYS/KERNEL.S.MD5 .INB USR/SRC/SYS/KERNEL.S.PWD - .INB USR/SRC/SYS/KERNEL.S.TIME - .INB USR/SRC/SYS/KERNEL.S.SHARED - .INB USR/SRC/SYS/KERNEL.S.STDIO2 + .INB USR/SRC/SYS/KERNEL.S.STRV + .INB USR/SRC/SYS/KERNEL.S.MEM * go to A2osX.D1 + .INB USR/SRC/SYS/KERNEL.S.STDIO2 .INB USR/SRC/SYS/KERNEL.S.IO .INB USR/SRC/SYS/KERNEL.S.PIPE .INB USR/SRC/SYS/KERNEL.S.PFT