diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index 2236c33b..7fabda42 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -540,11 +540,11 @@ CS : not found # GetPWUID ## C -`int getpwuid(short int uid, S.PW* passwd );` +`int getpwuid(short int uid, S.PW *passwd);` ## ASM +`PUSHB uid` `>PUSHW passwd` -`lda uid` `>SYSCALL getpwuid` ## RETURN VALUE @@ -552,11 +552,11 @@ CS : not found # GetPWName ## C -`int getpwname(const char* name, S.PW* passwd );` +`int getpwname(const char* name, S.PW *passwd);` ## ASM +`>PUSHW name` `>PUSHW passwd` -`>LDYA name` `>SYSCALL getpwname` ## RETURN VALUE @@ -567,11 +567,46 @@ CS : not found `int putpw( S.PW* passwd );` ## ASM -`>LDYA passwd` +`>PUSHW passwd` `>SYSCALL putpw` ## RETURN VALUE +# GetGRGID + +## C +`int getgrgid(short int gid, S.GRP *group);` + +## ASM +`>PUSHB gid` +`>PUSHW group` +`>SYSCALL getpwname` + +## RETURN VALUE + +# GetGRName + +## C +`int getgrgid(const char* name, S.GRP *group);` + +## ASM +`>PUSHW name` +`>PUSHW group` +`>SYSCALL getpwname` + +## RETURN VALUE + +# PutGR + +## C +`int putgr(S.GRP *group);` + +## ASM +`>PUSHW group` +`>SYSCALL putgr` + +## RETURN VALUE + # SListGetData ## ASM diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 8d703019..cfa14932 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.MAKE-old.po b/.Floppies/A2OSX.MAKE-old.po deleted file mode 100644 index b8ffa1a0..00000000 Binary files a/.Floppies/A2OSX.MAKE-old.po and /dev/null differ diff --git a/.Floppies/BLANK140.po b/.Floppies/BLANK140.po deleted file mode 100644 index 148430b2..00000000 Binary files a/.Floppies/BLANK140.po and /dev/null differ diff --git a/.Floppies/BLANK32MB.po b/.Floppies/BLANK32MB.po deleted file mode 100644 index 3e384a6f..00000000 Binary files a/.Floppies/BLANK32MB.po and /dev/null differ diff --git a/.Floppies/BLANK800.po b/.Floppies/BLANK800.po deleted file mode 100644 index 8442f91d..00000000 Binary files a/.Floppies/BLANK800.po and /dev/null differ diff --git a/.Floppies/DEBUG.po b/.Floppies/DEBUG.po deleted file mode 100644 index 3399e0fa..00000000 Binary files a/.Floppies/DEBUG.po and /dev/null differ diff --git a/.Floppies/ProDOS_2_5_a7_143k.dsk b/.Floppies/ProDOS_2_5_a7_143k.dsk deleted file mode 100644 index 20e841ec..00000000 Binary files a/.Floppies/ProDOS_2_5_a7_143k.dsk and /dev/null differ diff --git a/.Floppies/ProDOS_2_5_a8_143k.dsk b/.Floppies/ProDOS_2_5_a8_143k.dsk deleted file mode 100644 index 71bf9d22..00000000 Binary files a/.Floppies/ProDOS_2_5_a8_143k.dsk and /dev/null differ diff --git a/.Floppies/RC.140.po b/.Floppies/RC.140.po deleted file mode 100644 index e746409f..00000000 Binary files a/.Floppies/RC.140.po and /dev/null differ diff --git a/.Floppies/RC.32MB.po b/.Floppies/RC.32MB.po deleted file mode 100644 index f3e94426..00000000 Binary files a/.Floppies/RC.32MB.po and /dev/null differ diff --git a/.Floppies/RC.800.po b/.Floppies/RC.800.po deleted file mode 100644 index b8373565..00000000 Binary files a/.Floppies/RC.800.po and /dev/null differ diff --git a/.Floppies/RELEASE.140.po b/.Floppies/RELEASE.140.po deleted file mode 100644 index 426bf58e..00000000 Binary files a/.Floppies/RELEASE.140.po and /dev/null differ diff --git a/.Floppies/RELEASE.32MB.po b/.Floppies/RELEASE.32MB.po deleted file mode 100644 index 2127e3be..00000000 Binary files a/.Floppies/RELEASE.32MB.po and /dev/null differ diff --git a/.Floppies/RELEASE.800.po b/.Floppies/RELEASE.800.po deleted file mode 100644 index 89975cf8..00000000 Binary files a/.Floppies/RELEASE.800.po and /dev/null differ diff --git a/.Floppies/lctest.po b/.Floppies/lctest.po deleted file mode 100644 index e0dddcbb..00000000 Binary files a/.Floppies/lctest.po and /dev/null differ diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index 51ddd63b..128ad2bd 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -381,9 +381,10 @@ CS.RUN.PushGidUid .2 >PUSHYA - >PUSHW ZPPW ldy #S.STAT.UID lda (ZPFileStat),y + >PUSHA + >PUSHW ZPPW >SYSCALL GetPWUID bcs .3 diff --git a/BIN/USERADD.S.txt b/BIN/USERADD.S.txt index b4c253cc..3de8fe7c 100644 --- a/BIN/USERADD.S.txt +++ b/BIN/USERADD.S.txt @@ -85,8 +85,9 @@ CS.RUN >LDYAI S.PW >STYA ZPStrPtr stx ZPhStr - >PUSHW ZPPWPtr lda #0 + >PUSHA + >PUSHW ZPPWPtr >SYSCALL GetPWUID bcc .1 @@ -109,9 +110,6 @@ CS.RUN >LDYAI S.PW >SYSCALL putpw bcs .99 - >SYSCALL FlushEtcPasswd - bcs .99 - lda #0 sec rts @@ -165,9 +163,6 @@ CS.RUN.ROOT ldy #0 >SYSCALL putpw bcs .9 - >SYSCALL FlushEtcPasswd - bcs .9 - lda #0 sec .9 rts diff --git a/BIN/USERDEL.S.txt b/BIN/USERDEL.S.txt index e7529aa0..9bc4c262 100644 --- a/BIN/USERDEL.S.txt +++ b/BIN/USERDEL.S.txt @@ -80,9 +80,6 @@ CS.RUN >LDYAI S.PW >SYSCALL putpw bcs .99 - >SYSCALL FlushEtcPasswd - bcs .99 - jsr CS.RUN.RmDir bcs .99 diff --git a/DRV/MKBOARD.DRV.S.txt b/DRV/MKBOARD.DRV.S.txt new file mode 100644 index 00000000..4dbdd0de --- /dev/null +++ b/DRV/MKBOARD.DRV.S.txt @@ -0,0 +1,339 @@ +NEW + AUTO 3,1 + .LIST OFF + .OP 65C02 + .OR $2000 + .TF drv/mkboard.drv +*-------------------------------------- +S.DCB.SND .EQ 16 +*-------------------------------------- + .INB INC/MACROS.I + .INB INC/A2OSX.I + .INB INC/MLI.E.I +*-------------------------------------- +ZPArgPtr .EQ ZPBIN +*-------------------------------------- +* File Header (16 Bytes) +*-------------------------------------- +CS.START cld + jmp Dev.Detect cld,jmp abs=DRV + .DA #$61 6502,Level 1 (65c02) + .DA #1 DRV Layout Version 1 + .DA 0 + .DA CS.END-CS.START Code Length + .DA 0 + .DA 0 + .DA 0 +*-------------------------------------- +* Relocation Table +*-------------------------------------- +L.MSG.DETECT.OK .DA MSG.DETECT.OK +L.MSG.DETECT.KO .DA MSG.DETECT.KO +L.DRV.CS.START .DA DRV.CS.START +L.FD.DEV .DA FD.DEV +L.FD.DEV.NAME .DA FD.DEV.NAME + .DA 0 End Of Reloc Table +*-------------------------------------- +Dev.Detect >STYA ARGS + + stz ZPArgPtr + lda #$C1 + sta ZPArgPtr+1 + +.1 and #$0f + tay + lda A2osX.S,y + bne .3 + + ldy #4 + + sec + lda (ZPArgPtr),y + sbc (ZPArgPtr),y + cmp #5 + beq .4 + +.3 inc FD.DEV.NAME+3 + inc ZPArgPtr+1 no match, try next slot.... + lda ZPArgPtr+1 + cmp #$C8 + bne .1 + + >LDYA L.MSG.DETECT.KO + >SYSCALL puts + + lda #MLI.E.NODEV Not Found in any slot, exiting + sec + rts + +.4 lda ZPArgPtr+1 + and #$0F + pha + tay + lda #A2osX.S.SND + sta A2osX.S,y + pla + asl + asl + asl + asl + clc + adc #$8F + sta DEVSLOTn08F + jsr Dev.ParseArgs + bcs .9 + +.8 >PUSHW L.MSG.DETECT.OK + >PUSHW L.FD.DEV.NAME + >PUSHBI 2 + >SYSCALL printf + + >PUSHWI DRV.END + >PUSHWI DRV.CS.END-DRV.CS.START + >PUSHWI DRV.CS.START + >LDYA L.DRV.CS.START + >SYSCALL InsDrv + bcs .9 + + >STYA FD.DEV+S.FD.DEV.DRVPTR + >PUSHW L.FD.DEV.NAME + >LDYA L.FD.DEV + >SYSCALL MKDEV + +.9 rts +*-------------------------------------- +Dev.ParseArgs >LDYA ARGS + >STYA ZPArgPTR + lda (ZPArgPTR) + bne .1 + clc + rts + +.1 + +.92 lda #E.SYN + sec + rts +*-------------------------------------- +CS.END +MSG.DETECT.OK .AZ "MockingBoard Installed As Device : %s\r\n" +MSG.DETECT.KO .AZ "HW Not Found." +ARGS .BS 2 +*-------------------------------------- +FD.DEV .DA #S.FD.T.CDEV + .DA #0 HANDLER + .DA #0 BUSID + .DA #0 DEVID + .DA 0 BUSPTR + .BS 2 DRVPTR + .DA 0 DCBPTR + .DA 0 BUFPTR +FD.DEV.NAME .AZ "snd1" +*-------------------------------------- +* Driver Code +*-------------------------------------- +ZPIOCTL .EQ ZPDRV +ZPBufPtr .EQ ZPDRV+2 +ZPCount .EQ ZPDRV+4 +*-------------------------------------- +DRV.CS.START cld + jmp (.1,x) +.1 .DA STATUS + .DA A2osX.BADCALL + .DA A2osX.BADCALL + .DA A2osX.BADCALL + .DA CONTROL + .DA A2osX.BADCALL + .DA OPEN + .DA CLOSE + .DA READ + .DA WRITE + .DA IRQ + .DA 0 end or relocation +*-------------------------------------- +STATUS jsr STATUS.CONTROL.Init + ldy #S.IOCTL.STATCODE + lda (ZPIOCTL),y + beq .1 + cmp #S.IOCTL.STATCODE.GETDIB + bne STATUS.DCB + ldy #S.DIB-1 + .HS 2C bit abs +.1 ldy #3 + +.2 lda DIB,y + sta (ZPBufPtr),y + dey + bpl .2 + clc + rts + +STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB + bne .3 + + ldy #S.DCB.SND-1 +.2 lda DCB,y + sta (ZPBufPtr),y + dey + bpl .2 + + clc + rts +.3 cmp #S.IOCTL.STATCODE.EOF + bne STATUS.9 + + lda DIB+S.DIB.S + and #S.DIB.S.OPENED + beq OPEN.E +.8 clc + rts + +STATUS.9 lda #MLI.E.BADCTL + sec + rts +*-------------------------------------- +CONTROL jsr STATUS.CONTROL.Init + + ldy #S.IOCTL.CTRLCODE + lda (ZPIOCTL),y + cmp #S.IOCTL.CTRLCODE.SETDCB + bne STATUS.9 + ldy #S.DCB.SND-1 +.2 lda (ZPBufPtr),y + sta DCB,y + dey + bpl .2 +*-------------------------------------- +OPEN lda DIB+S.DIB.S + bit #S.DIB.S.OPENED + beq OPEN.1 + +OPEN.E lda #MLI.E.OPEN + sec + rts + +OPEN.1 php + sei + ldx DEVSLOTn08F + + + + + + lda #S.DIB.S.OPENED + tsb DIB+S.DIB.S + + plp + clc + rts +*-------------------------------------- +CLOSE php + sei + ldx DEVSLOTn08F + + + + + + lda #S.DIB.S.OPENED + trb DIB+S.DIB.S + + plp + clc + rts +*-------------------------------------- +READ php + sei + +.8 plp + clc + rts + +.9 lda #MLI.E.IO + .HS 2C BIT ABS + +.99 lda #E.NODATA + plp + sec + rts +*-------------------------------------- +WRITE php + sei + +.8 plp + clc + rts + +.9 lda #MLI.E.IO + .HS 2C BIT ABS + +.99 lda #E.NODATA + plp + sec + rts +*-------------------------------------- +READ.WRITE.Init ldx DEVSLOTn08F + +STATUS.CONTROL.Init + >STYA ZPIOCTL + + ldy #S.IOCTL.BUFPTR + lda (ZPIOCTL),y + sta ZPBufPtr + + iny + + lda (ZPIOCTL),y + sta ZPBufPtr+1 + iny #S.IOCTL.BYTECNT + + lda (ZPIOCTL),y + eor #$ff + sta ZPCount + + iny + + lda (ZPIOCTL),y + eor #$ff + sta ZPCount+1 + rts +*-------------------------------------- +* IRQ Handler +* on exit, CC if handled +*-------------------------------------- +IRQ ldx DEVSLOTn08F + + + bra .9 + +.8 clc + rts + +.9 sec + rts +*-------------------------------------- +DRV.CS.END +DEVSLOTn08F .BS 1 +*-------------------------------------- +DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.IRQ + .DA #0,#0,#0 + >PSTR "MockingBoard " + .DA #S.DIB.T.CHAR + .DA #0 + .DA K.VER +*-------------------------------------- +DCB .DA #S.DCB.T.SND + .DA #0 FLAGS + .DA #0 + .DA #0 + .DA #0 + .DA #0 + .DA #0 + .DA #0 + .DA #0 + .DA #0 +*-------------------------------------- +DRV.END +MAN +SAVE USR/SRC/DRV/MKBOARD.DRV.S +ASM diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 451ac556..f86d4ff3 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -91,6 +91,7 @@ A2osX.S.COM .EQ $E0 A2osX.S.XY .EQ $E1 A2osX.S.NIC .EQ $E2 A2osX.S.CLK .EQ $E3 +A2osX.S.SND .EQ $E4 A2osX.S.DISABLE .EQ $FF *-------------------------------------- * NON BLOCKING Entry point (From libs) @@ -221,17 +222,16 @@ SYS.SScanF .EQ $52 * .EQ $5A * .EQ $5C * .EQ $5E - +*--------------------------------------D2 * .EQ $60 * .EQ $62 * .EQ $64 * .EQ $66 - -* .EQ $68 -* .EQ $6A -* .EQ $6C +* ARG +SYS.Shift .EQ $68 +SYS.ArgV .EQ $6A +SYS.ArgVDup .EQ $6C * .EQ $6E -*--------------------------------------D2 * STDLIB SYS.AToF .EQ $70 SYS.AToI .EQ $72 @@ -269,12 +269,12 @@ SYS.LoadFile .EQ $A8 SYS.LoadTxtFile .EQ $AA SYS.FileSearch .EQ $AC SYS.GetMemStat .EQ $AE -* ARG -SYS.Shift .EQ $B0 -SYS.ArgV .EQ $B2 -SYS.ArgVDup .EQ $B4 -* .EQ $B6 *--------------------------------------E0/AUX +* STRV / STRVX +SYS.StrVShift .EQ $B0 +SYS.StrVGet .EQ $B2 +SYS.StrVAdd .EQ $B4 +* .EQ $B6 * ENV / ENVX SYS.PutEnv .EQ $B8 SYS.SetEnv .EQ $BA @@ -294,33 +294,32 @@ SYS.MD5Finalize .EQ $CE SYS.GetPWUID .EQ $D0 SYS.GetPWName .EQ $D2 SYS.PutPW .EQ $D4 -SYS.FlushEtcPasswd .EQ $D6 -* STRV / STRVX -SYS.StrVShift .EQ $D8 -SYS.StrVGet .EQ $DA -SYS.StrVAdd .EQ $DC +SYS.GetGRGID .EQ $D6 +SYS.GetGRName .EQ $D8 +SYS.PutGR .EQ $DA +* .EQ $DC * .EQ $DE -*--------------------------------------E0 -* MEM -SYS.GetMem .EQ $E0 -SYS.Realloc .EQ $E2 -SYS.GetMemPtr .EQ $E4 -SYS.FreeMem .EQ $E6 - -SYS.NewStkObj .EQ $E8 -SYS.LoadStkObj .EQ $EA -SYS.GetStkObjPtr .EQ $EC -SYS.FreeStkObj .EQ $EE * SLISTX -SYS.SListGetData .EQ $F0 -SYS.SListAddData .EQ $F2 -SYS.SListSetData .EQ $F4 -SYS.SListGetByID .EQ $F6 +SYS.SListGetData .EQ $E0 +SYS.SListAddData .EQ $E2 +SYS.SListSetData .EQ $E4 +SYS.SListGetByID .EQ $E6 -SYS.SListNewKey .EQ $F8 -SYS.SListLookup .EQ $FA -SYS.SListNew .EQ $FC -SYS.SListFree .EQ $FE +SYS.SListNewKey .EQ $E8 +SYS.SListLookup .EQ $EA +SYS.SListNew .EQ $EC +SYS.SListFree .EQ $EE +*--------------------------------------F0 +* MEM +SYS.GetMem .EQ $F0 +SYS.Realloc .EQ $F2 +SYS.GetMemPtr .EQ $F4 +SYS.FreeMem .EQ $F6 + +SYS.NewStkObj .EQ $F8 +SYS.LoadStkObj .EQ $FA +SYS.GetStkObjPtr .EQ $FC +SYS.FreeStkObj .EQ $FE *-------------------------------------- * MEM STRUCT *-------------------------------------- @@ -397,6 +396,7 @@ S.DCB.T .EQ 0 S.DCB.T.NIC .EQ $81 S.DCB.T.COM .EQ $82 S.DCB.T.GFX .EQ $83 +S.DCB.T.SND .EQ $84 *-------------------------------------- S.DIB.S .EQ 0 S.DIB.S.BLOCK .EQ %10000000 @@ -432,7 +432,7 @@ S.DIB.T.NIC .EQ $12 Network Interface Card S.DIB.T.XY .EQ $13 X,Y Pointing Device S.DIB.T.CHAR .EQ $14 S.DIB.T.GFX .EQ $15 -*S.DIB.T.SND .EQ $17 +S.DIB.T.SND .EQ $16 S.DIB.ST .EQ 22 S.DIB.ST.EXT .EQ $80 S.DIB.ST.DSKSW .EQ $40 @@ -642,6 +642,10 @@ S.PW.SHELL .EQ 182 64+1 * S.PW .EQ 247 *-------------------------------------- +S.GRP.GID .EQ 0 +S.GRP.NAME .EQ 1 16+1 +S.GRP.MEMBERS .EQ 18 +*-------------------------------------- S.SESSION.P .EQ 0 S.SESSION.P.ROOT .EQ %10000000 S.SESSION.P.SYSADMIN .EQ %01000000 diff --git a/INC/IO.IIC.I.txt b/INC/IO.IIC.I.txt index f4d7ba9f..abdd69dc 100644 --- a/INC/IO.IIC.I.txt +++ b/INC/IO.IIC.I.txt @@ -2,11 +2,24 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -IO.IIC.RDVBLMSK .EQ $C041 R, B7=1: VBL interrupts enabled -*-------------------------------------- * The action taken for the soft switches * from $C058 ... $C05F is only taken if access -* has first been enabled by writing to IOUDISOFF ($C07F).] +* has first been enabled by writing to IOUDISOFF ($C07F) +*-------------------------------------- +* Apple IIc Tech Note #9 : Detecting VBL +* Written by Dan Strnad (November 1989) +* This Technical Note describes how the VBLInt flag at $C019 behaves differently +* than documented in the Apple IIc Technical Reference Manual, Second Edition, when being polled. +* The Apple IIc Technical Reference Manual, Second Edition, claims that reading +* $C019 reads and resets the VBLInt flag. This is not correct. +* +* After reading $C019 once the high bit has been set to flag VBL, +* the high bit remains set. A program polling VBL at $C019 would have to access +* either PTrig at $C070 or RdIOUDis at $C07E to reset the high-bit for $C019. +* Note that IOUDis must have been turned off by writing to $C07F +* then ENVBL accessed at $C05B in order to poll for $C019 on the IIc. +*-------------------------------------- +IO.IIC.RDVBLMSK .EQ $C041 R, B7=1: VBL interrupts enabled *-------------------------------------- IO.IIC.DISVBL .EQ $C05A W, Disable VBL interrupts IO.IIC.ENVBL .EQ $C05B W, Enable VBL interrupts diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index c1ec0de1..9c072eb6 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -83,8 +83,9 @@ CS.RUN >LDYAI 33 Enough for HASH >LDYA L.ETCISSUE jsr CS.RUN.DUMPFILE + lda #0 + >PUSHA ROOT user >PUSHWZ Dry Run, no output -* lda #0 ROOT user >SYSCALL GetPWUID bcc CS.RUN.AUTH @@ -218,8 +219,10 @@ CS.RUN.CHECKPWD rol ZPbValidUser >STYA ZPPWPtr stx ZPhPW + pha + >PUSHB ZPUID + pla >PUSHYA - lda ZPUID >SYSCALL GetPWUID bcs CS.RUN.CHECK.9 diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 3ddba225..3ab87fba 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -456,29 +456,34 @@ CPU.Init.6502 >PUSHWI MSG.CPU bne .1 sec -.1 ror ZPPtr1 save //c flag +.1 ror ZPPtr1 save //c flag bpl .11 sta CLRIOUDIS lda IO.IIC.RDVBLMSK - sta ZPPtr1+1 Save VBLIRQ enable + sta ZPPtr1+1 Save VBLIRQ enable sta IO.IIC.ENVBL .11 bit VBL bpl .11 + + bit ZPPtr1 //c ? + bpl .2 + + lda IO.IIC.CLRVBLIRQ yes, clear IRQ .2 lda VBL bmi .2 ldx #2 -.20 bit ZPPtr1 //c ? +.20 bit ZPPtr1 //c ? bpl .3 - lda IO.IIC.CLRVBLIRQ yes, clear IRQ - lda #0 wait for UP again + lda IO.IIC.CLRVBLIRQ yes, clear IRQ + lda #0 wait for UP again .3 ldy #4 (2) @@ -999,9 +1004,9 @@ TskMgrInit >LDYAI MSG.TSK >SYSCALL2 puts >LDYAI K.ENV.SIZE get a buffer for ENV - ldx #SYS.NewStkObj - jsr K.SYSCALL2.AUX Buffer in AUX mem + >SYSCALL NewStkObj Buffer in AUX mem bcs EvtMgrInit.RTS + >STYA ZPPtr1 txa @@ -1119,7 +1124,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.93 Console" +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.DEV .AZ "Device Manager..." diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index aad63e78..a2b19cbd 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -58,18 +58,18 @@ K.SYSCALL .DA K.ChTyp $00 : STAT .DA 0 .DA 0 .DA 0 - +*-------------------------------------- +* Bank 2 +*-------------------------------------- .DA 0 $60 .DA 0 .DA 0 .DA 0 + .DA K.Shift $68 : ARG + .DA K.ArgV + .DA K.ArgVDup .DA 0 - .DA 0 - .DA 0 - .DA 0 -*-------------------------------------- -* Bank 2 -*-------------------------------------- + .DA K.AToF $70 : STDLIB .DA K.AToI .DA K.AToL @@ -105,23 +105,23 @@ K.SYSCALL .DA K.ChTyp $00 : STAT .DA K.LoadTxtFile .DA K.FileSearch .DA K.GetMemStat - - .DA K.Shift $B0 : ARG - .DA K.ArgV - .DA K.ArgVDup - .DA 0 - .DA K.PutEnv ENV - .DA K.SetEnv - .DA K.GetEnv - .DA K.UnsetEnv *-------------------------------------- * AUX *-------------------------------------- + .DA K.StrVShift $B0 : STRV + .DA K.StrVGet + .DA K.StrVAdd + .DA 0 + .DA K.PutEnv $B8 : ENV + .DA K.SetEnv + .DA K.GetEnv + .DA K.UnsetEnv + .DA K.Time $C0 : TIME .DA K.StrFTime .DA K.PTime2Time .DA K.CTime2Time - .DA K.MD5 + .DA K.MD5 $C8 : MD5 .DA K.MD5Init .DA K.MD5Update .DA K.MD5Finalize @@ -129,25 +129,13 @@ K.SYSCALL .DA K.ChTyp $00 : STAT .DA K.GetPWUID $D0 : PWD .DA K.GetPWName .DA K.PutPW - .DA K.FlushEtcPasswd - .DA K.StrVShift - .DA K.StrVGet - .DA K.StrVAdd + .DA K.GetGRGID + .DA K.GetGRName + .DA K.PutGR + .DA 0 .DA 0 -*-------------------------------------- -* $E000 -*-------------------------------------- - .DA K.GetMem $E0 - .DA K.Realloc - .DA K.GetMemPtr - .DA K.FreeMem - .DA K.GetMem K.NewStkObj - .DA K.LoadStkObj - .DA K.GetMemPtr K.GetStkObjPtr - .DA K.FreeMem K.FreeStkObj -*-------------------------------------- - .DA K.SListGetData $F0 + .DA K.SListGetData $E0 : SLIST .DA K.SListAddData .DA K.SListSetData .DA K.SListGetByID @@ -157,131 +145,143 @@ K.SYSCALL .DA K.ChTyp $00 : STAT .DA K.SListNew .DA K.SListFree *-------------------------------------- +* $E000 +*-------------------------------------- + .DA K.GetMem $F0 + .DA K.Realloc + .DA K.GetMemPtr + .DA K.FreeMem + + .DA K.GetMem K.NewStkObj + .DA K.LoadStkObj + .DA K.GetMemPtr K.GetStkObjPtr + .DA K.FreeMem K.FreeStkObj +*-------------------------------------- * LO Byte : * #RRAMWRAMBNK1,#RRAMWRAMBNK2 * HI Byte : * Flags (ROOT....) *-------------------------------------- K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 $10 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 $20 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 $30 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 $40 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 $50 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK1 - .DA #$80 - - .DA #RRAMWRAMBNK1 $60 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 - .DA #RRAMWRAMBNK1 - .DA #$80 + .DA #0 *-------------------------------------- - .DA #RRAMWRAMBNK2 $70 + .DA #RRAMWRAMBNK2 $60 + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 + .DA #RRAMWRAMBNK2 $68 : ARG + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 + .DA #RRAMWRAMBNK2 + .DA #0 + + .DA #RRAMWRAMBNK2 $70 : STDLIB .DA #0 .DA #RRAMWRAMBNK2 .DA #0 @@ -298,65 +298,65 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #RRAMWRAMBNK2 .DA #0 - .DA #RRAMWRAMBNK2 $80 - .DA #$80 + .DA #RRAMWRAMBNK2 $80 : STRING + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 - .DA #RRAMWRAMBNK2 $90 - .DA #$80 + .DA #RRAMWRAMBNK2 $90 : DEV + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 + .DA #RRAMWRAMBNK2 $98 : BIN + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 - .DA #RRAMWRAMBNK2 $A0 - .DA #$80 + .DA #RRAMWRAMBNK2 $A0 : PS + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 - .DA #RRAMWRAMBNK2 $B0 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 - .DA #RRAMWRAMBNK2 - .DA #$80 + .DA #0 $B0 : STRV + .DA #0 + .DA #0 + .DA #0 + .DA #0 + .DA #0 + .DA #0 + .DA #0 .DA #0 $B8 : ENV .DA #0 .DA #0 @@ -367,32 +367,31 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #0 .DA #0 $C0 : TIME - .DA #$80 .DA #0 - .DA #$80 .DA #0 - .DA #$80 .DA #0 - .DA #$80 + .DA #0 + .DA #0 + .DA #0 + .DA #0 .DA #0 $C8 : MD5 - .DA #$80 .DA #0 - .DA #$80 .DA #0 - .DA #$80 .DA #0 - .DA #$80 + .DA #0 + .DA #0 + .DA #0 + .DA #0 .DA #$C0 $D0 : PWDX - .DA #$80 + .DA #0 .DA #$C0 PWDX - .DA #$80 + .DA #0 .DA #$C0 PWDX - .DA #$80 + .DA #0 .DA #0 PWD - .DA #$80 + .DA #0 - .DA #0 $D8 : StrV .DA #0 .DA #0 .DA #0 @@ -400,40 +399,41 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #0 .DA #0 .DA #0 + .DA #0 + + .DA #$C0 $E0 : SLIST + .DA #0 + .DA #$C0 + .DA #0 + .DA #$C0 + .DA #0 + .DA #$C0 + .DA #0 + .DA #$C0 + .DA #0 + .DA #$C0 + .DA #0 + .DA #$C0 + .DA #0 + .DA #$C0 + .DA #0 *-------------------------------------- .DA #0 $E0 : MemMgr at $E000 - .DA #$80 .DA #0 - .DA #$80 .DA #0 - .DA #$80 .DA #0 - .DA #$80 + .DA #0 + .DA #0 + .DA #0 + .DA #0 .DA #$C0 NewStkObj - .DA #$80 .DA #0 - .DA #$80 + .DA #0 LoadStkObj + .DA #0 .DA #$C0 GetStkObjPtr - .DA #$80 + .DA #0 .DA #$C0 FreeStkObj - .DA #$80 -*-------------------------------------- - .DA #$C0 $F0 : SLIST - .DA #$80 - .DA #$C0 - .DA #$80 - .DA #$C0 - .DA #$80 - .DA #$C0 - .DA #$80 - .DA #$C0 - .DA #$80 - .DA #$C0 - .DA #$80 - .DA #$C0 - .DA #$80 - .DA #$C0 - .DA #$80 + .DA #0 *-------------------------------------- * K.SYSCALL2 : From KERNEL (MAIN,AUX), LIB *-------------------------------------- @@ -488,9 +488,14 @@ K.SYSCALL.JMPX sta SETREADAUX sta CLRWRITEAUX rts -.1 jmp (.2-SYS.PutEnv,x) +.1 jmp (.2-SYS.StrVShift,x) -.2 .DA ENVX.PutEnv +.2 .DA STRVX.StrVShift + .DA STRVX.StrVGet + .DA STRVX.StrVAdd + .DA 0 + + .DA ENVX.PutEnv .DA ENVX.SetEnv .DA ENVX.GetEnv .DA ENVX.UnsetEnv @@ -508,11 +513,9 @@ K.SYSCALL.JMPX sta SETREADAUX .DA PWDX.GetPWUID .DA PWDX.GetPWName .DA PWDX.PutPW - .DA 0 FlushEtcPasswd - - .DA STRVX.StrVShift - .DA STRVX.StrVGet - .DA STRVX.StrVAdd + .DA PWDX.GetGRGID + .DA PWDX.GetGRName + .DA PWDX.PutGR *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.JMP diff --git a/SYS/KERNEL.S.PWD.txt b/SYS/KERNEL.S.PWD.txt index 130fd116..2bcf7f9b 100644 --- a/SYS/KERNEL.S.PWD.txt +++ b/SYS/KERNEL.S.PWD.txt @@ -3,44 +3,47 @@ NEW */-------------------------------------- * # GetPWUID * ## C -* `int getpwuid(short int uid, S.PW* passwd );` +* `int getpwuid(short int uid, S.PW *passwd);` * ## ASM +* `PUSHB uid` * `>PUSHW passwd` -* `lda uid` * `>SYSCALL getpwuid` * ## RETURN VALUE *\-------------------------------------- -K.GetPWUID sta ZPPtr1+1 - >PULLW ZPPtr2 +K.GetPWUID +K.GetGRGID >PULLW FORPNT + >PULLB ZPPtr1+1 jmp K.SYSCALL.JMPX */-------------------------------------- * # GetPWName * ## C -* `int getpwname(const char* name, S.PW* passwd );` +* `int getpwname(const char* name, S.PW *passwd);` * ## ASM +* `>PUSHW name` * `>PUSHW passwd` -* `>LDYA name` * `>SYSCALL getpwname` * ## RETURN VALUE *\-------------------------------------- -K.GetPWName >STYA TXTPTR - >PULLW ZPPtr2 - +K.GetPWName +K.GetGRName >PULLW FORPNT + >PULLW TXTPTR + jmp K.SYSCALL.JMPX */-------------------------------------- * # PutPW * ## C * `int putpw( S.PW* passwd );` * ## ASM -* `>LDYA passwd` +* `>PUSHW passwd` * `>SYSCALL putpw` * ## RETURN VALUE *\-------------------------------------- -K.PutPW >STYA ZPPtr2 - >STYA TXTPTR +K.PutPW >PULLW TXTPTR - jmp K.SYSCALL.JMPX + jsr K.SYSCALL.JMPX + bcc K.FlushEtcPasswd + rts *-------------------------------------- K.FlushEtcPasswd >LDYA PWD.DBSize @@ -50,7 +53,7 @@ K.FlushEtcPasswd stx .8+1 - >PUSHWI PWD.FILE + >PUSHWI PWD.PWFILE >PUSHBI O.WRONLY+O.CREATE >PUSHBI S.FI.T.TXT >PUSHWZ Aux type @@ -85,11 +88,48 @@ K.FlushEtcPasswd .8 lda #$ff jmp K.freemem SELF MODIFIED +*/-------------------------------------- +* # GetGRGID +* ## C +* `int getgrgid(short int gid, S.GRP *group);` +* ## ASM +* `>PUSHB gid` +* `>PUSHW group` +* `>SYSCALL getpwname` +* ## RETURN VALUE +*\-------------------------------------- +*/-------------------------------------- +* # GetGRName +* ## C +* `int getgrgid(const char* name, S.GRP *group);` +* ## ASM +* `>PUSHW name` +* `>PUSHW group` +* `>SYSCALL getpwname` +* ## RETURN VALUE +*\-------------------------------------- +*/-------------------------------------- +* # PutGR +* ## C +* `int putgr(S.GRP *group);` +* ## ASM +* `>PUSHW group` +* `>SYSCALL putgr` +* ## RETURN VALUE +*\-------------------------------------- +K.PutGR >PULLW TXTPTR + + jsr K.SYSCALL.JMPX + bcc K.FlushEtcGroup + rts +*-------------------------------------- +K.FlushEtcGroup rts *-------------------------------------- PWD.hDB .BS 1 PWD.DBPtr .BS 2 PWD.DBSize .BS 2 -PWD.FILE .AZ "${ROOT}etc/passwd" +PWD.PWFILE .AZ "${ROOT}etc/passwd" +PWD.GRFILE .AZ "${ROOT}etc/group" *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.PWD diff --git a/SYS/KERNEL.S.PWDX.txt b/SYS/KERNEL.S.PWDX.txt index 1ddc80de..5265eb12 100644 --- a/SYS/KERNEL.S.PWDX.txt +++ b/SYS/KERNEL.S.PWDX.txt @@ -1,8 +1,9 @@ NEW AUTO 3,1 *-------------------------------------- -* ZPPtr1 : UID / pName (Input) -* ZPPtr2 : pPW (Output) +* ZPPtr1 : UID +* TXTPTR : pName (Input) +* FORPNT : pPW (Output) * ZPPtr3 : pDB * USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR * ....\CR @@ -28,7 +29,7 @@ PWDX.GetPWUID lda PWD.hDB jsr PWD.NextLine bra .1 -PWD.GetPW.8 ldx ZPPtr2+1 +PWD.GetPW.8 ldx FORPNT+1 beq .8 Dry run, no output jmp PWD.Record2PW @@ -70,7 +71,7 @@ PWDX.GetPWName lda PWD.hDB cmp #':' bne .3 - ldx ZPPtr2+1 + ldx FORPNT+1 beq .8 jmp PWD.Record2PW @@ -79,7 +80,7 @@ PWDX.GetPWName lda PWD.hDB jsr PWD.NextString skip PASSWORD jmp PWD.GetByte get UID *-------------------------------------- -* ZPPtr2 : pPW (Input) +* FORPNT : pPW (Output) * ZPPtr3 : pDB *-------------------------------------- PWDX.PutPW lda PWD.hDB @@ -166,6 +167,14 @@ PWDX.PutPW lda PWD.hDB sec rts *-------------------------------------- +PWDX.GetGRGID + +*-------------------------------------- +PWDX.GetGRName + +*-------------------------------------- +PWDX.PutGR +*-------------------------------------- * PRIVATE *-------------------------------------- PWD.GetUID >LDYA PWD.DBPtr @@ -225,9 +234,6 @@ PWD.DeleteRecord PWD.FindRecord >LDYA PWD.DBPtr >STYA ZPPtr3 - >LDYA ZPPtr2 - >STYA TXTPTR - .2 lda (ZPPtr3) beq .9 End of DB @@ -267,9 +273,7 @@ PWD.NextLine iny inc ZPPtr3+1 .8 rts *-------------------------------------- -PWD.Record2PW sta CLRWRITEAUX - - ldy #0 +PWD.Record2PW ldy #0 ldx #0 NAME @@ -277,11 +281,11 @@ PWD.Record2PW sta CLRWRITEAUX iny cmp #':' beq .2 - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext inx bra .1 .2 lda #0 - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext inx cpx #S.PW.PASSWD bne .2 @@ -291,21 +295,21 @@ PWD.Record2PW sta CLRWRITEAUX cmp #':' beq .4 - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext inx bra .3 .4 lda #0 - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext inx cpx #S.PW.UID bne .4 jsr PWD.GetByte UID - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext jsr PWD.GetByte GID - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext ldx #S.PW.GECOS @@ -313,11 +317,11 @@ PWD.Record2PW sta CLRWRITEAUX iny cmp #':' beq .6 - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext inx bra .5 .6 lda #0 - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext inx cpx #S.PW.DIR bne .6 @@ -326,11 +330,11 @@ PWD.Record2PW sta CLRWRITEAUX iny cmp #':' beq .8 - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext inx bra .7 .8 lda #0 - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext inx cpx #S.PW.SHELL bne .8 @@ -339,12 +343,12 @@ PWD.Record2PW sta CLRWRITEAUX iny cmp #C.CR beq .10 - jsr SHARED.PutCharPtr2 + jsr SHARED.FORPNT.PutNext inx bra .9 .10 lda #0 - jsr SHARED.PutCharPtr2 - sta SETWRITEAUX + jsr SHARED.FORPNT.PutNext + clc rts *-------------------------------------- diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index 4b9d17d0..38539026 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -599,6 +599,11 @@ ENV.GetSession ldy #S.PS.hSID lda S.Table.hSession-1,y jsr K.GetMemPtr >STYA ZPPtr3 + +* ldy #S.SESSION.UID +* lda (ZPPtr3),y + + rts *-------------------------------------- ENV.AddYAToBuf >STYA ZPPtr3 diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index 52d565e8..849eb84f 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -45,11 +45,11 @@ A2osX.AUX .DA #0 A2osX.AUX.B .PH Mem.XHiMem .INB USR/SRC/SYS/KERNEL.S.TERMX + .INB USR/SRC/SYS/KERNEL.S.STRVX .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.STRVX .INB USR/SRC/SYS/KERNEL.S.SLISTX .EP A2osX.AUX.S .EQ *-A2osX.AUX.B @@ -82,12 +82,12 @@ A2osX.D2 .DA #0 A2osX.D2.B .PH $D000 .DA #RRAMWRAMBNK2 + .INB USR/SRC/SYS/KERNEL.S.ARG .INB USR/SRC/SYS/KERNEL.S.STDLIB .INB USR/SRC/SYS/KERNEL.S.STRING .INB USR/SRC/SYS/KERNEL.S.DEV .INB USR/SRC/SYS/KERNEL.S.BIN .INB USR/SRC/SYS/KERNEL.S.PS - .INB USR/SRC/SYS/KERNEL.S.ARG .EP A2osX.D2.S .EQ *-A2osX.D2.B @@ -99,13 +99,13 @@ A2osX.E0.B .PH $E000 .INB USR/SRC/SYS/KERNEL.S.IRQ .INB USR/SRC/SYS/KERNEL.S.SHARED .INB USR/SRC/SYS/KERNEL.S.MATH - .INB USR/SRC/SYS/KERNEL.S.TERM + + .INB USR/SRC/SYS/KERNEL.S.STRV .INB USR/SRC/SYS/KERNEL.S.ENV .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.STRV .INB USR/SRC/SYS/KERNEL.S.MEM * go to A2osX.D1 .INB USR/SRC/SYS/KERNEL.S.PIPE