diff --git a/.Docs/Forth Words.md b/.Docs/Forth Words.md index ad2cb1a5..326727f6 100644 --- a/.Docs/Forth Words.md +++ b/.Docs/Forth Words.md @@ -270,7 +270,7 @@ The Reference Word Set contain both Standard Word Definitions and uncontrolled | ABORT" | flag -- | I,C | | Used in a colon-definition in the form:
ABORT" stack empty"
If the flag is true, print the following text, till ". Then execute ABORT. | | | AGAIN | | I,C | | Effect an unconditional jump back to the start of a BEGIN-AGAIN loop. | | | ASCII | -- char (executing)
- (compiling) | I,C | | Leave the ASCII character value of the next non-blank character in the input stream. If compiling, compile it as a literal, which will be later left when executed. | | -| ASHIFT | n1 n2 -- n3 | | | Shift the value n1 arithemetically n2 bits left if n2 is positive, shifting zeros into the least-significant bit positions. If n2 is negative, n1 is shifted right. Sign extension is to be consistent with the processor's arithmetic shift. | | +| ASHIFT | n1 n2 -- n3 | | | Shift the value n1 arithmetically n2 bits left if n2 is positive, shifting zeros into the least-significant bit positions. If n2 is negative, n1 is shifted right. Sign extension is to be consistent with the processor's arithmetic shift. | | | B/BUF | -- 1024 | | | A constant leaving 1024, the number of bytes per block buffer. | | | BELL | | | | Activate a terminal bell or noise-maker as appropriate to the device in use. | | | BL | -- n | | | Leave the ASCII character value for space (decimal 32). | | diff --git a/.Docs/KERNEL.md b/.Docs/KERNEL.md index cf411ef0..6fc7cd45 100644 --- a/.Docs/KERNEL.md +++ b/.Docs/KERNEL.md @@ -122,7 +122,7 @@ Create a hDEV # OpenDir ## C -`int hDIR opendir (const char * dirpath);` +`short int hDIR opendir (const char * dirpath);` ## ASM `>LDYA dirpath` @@ -231,17 +231,21 @@ Return X+Y, X-Y, X*Y, X/Y, X mod Y.... ## RETURN VALUE On stack (long) -# FAdd,FSub,FMult,FDiv,FPwr -Return X+Y, X-Y, X*Y, X/Y, X^Y +# FAdd,FSub,FMul,FDiv,FPwr +Return X*Y, X/Y, X+Y, X-Y + +## C +`float pwr ( float x, float y);` ## ASM **In:** `>PUSHF X (float)` `>PUSHF Y (float)` +`>FPU fmul` +`>FPU fdiv` +`>FPU fmod` TODO `>FPU fadd` `>FPU fsub` -`>FPU fmult` -`>FPU fdiv` `>FPU fpwr` ## RETURN VALUE @@ -424,7 +428,7 @@ Load a file in AUX memory (Stock Objects) # GetStkObj ## C -`int *ptr getstkobj (shoirt int hStkObj);` +`int *ptr getstkobj (short int hStkObj);` ## ASM `lda hStkObj` @@ -480,12 +484,11 @@ A = Child PSID `int kill(short int pid, short int sig);` ## ASM +`>PUSHB pid` `>PUSHB sig` -`lda pid` `>SYSCALL kill` ## RETURN VALUE -A = Child PSID # LoadTxtFile Load TXT a file in memory (with ending 0) @@ -1355,8 +1358,8 @@ Concatenate strings ## ASM **In:** +`>PUSHWI destination` `>PUSHWI source` -`>LDYAI destination` `>SYSCALL strcat` ## RETURN VALUE @@ -1370,8 +1373,8 @@ Copy string ## ASM **In:** +`>PUSHWI destination` `>PUSHWI source` -`>LDYAI destination` `>SYSCALL strcpy` ## RETURN VALUE @@ -1416,8 +1419,8 @@ Compare 2 strings ## ASM **In:** +`>PUSHWI s1` `>PUSHWI s2` -`>LDYAI s1` `>SYSCALL strcmp` ## RETURN VALUE @@ -1434,8 +1437,8 @@ Compare 2 strings, ignoring case ## ASM **In:** +`>PUSHWI s1` `>PUSHWI s2` -`>LDYAI s1` `>SYSCALL strcasecmp` ## RETURN VALUE @@ -1444,11 +1447,21 @@ CS : no match CC, Y,A=0 CS, Y,A > 0 or < 0 +# StrVSet + +## ASM +`>PUSHB hSTRV` +`>PUSHW id` +`>PUSHW ptr` +`>SYSCALL StrVSet` + +## RETURN VALUE + # StrVGet ## ASM `>PUSHB hSTRV` -`>PUSHB index` +`>PUSHW id` `>PUSHW ptr` `>SYSCALL StrVGet` @@ -1456,25 +1469,21 @@ CS : no match CC: Y,A = Ptr CS: Y,A = NULL -# StrVShift +# StrVNew ## ASM -`>PUSHB hSTRV` -`>PUSHB index` -`>SYSCALL StrVShift` +`>LDYA size` +`>SYSCALL StrVNew` ## RETURN VALUE -# StrVAdd +# StrVFree ## ASM -`>PUSHB hSTRV` -`>PUSHW str` -`>SYSCALL StrVAdd` +`lda hSTRV` +`>SYSCALL StrVFree` ## RETURN VALUE -CC : str added to hSTRV -CS : hSTRV full # Time Get System Time in Buffer diff --git a/.Docs/LIBBLKDEV.md b/.Docs/LIBBLKDEV.md index 25355f49..d7d3edad 100644 --- a/.Docs/LIBBLKDEV.md +++ b/.Docs/LIBBLKDEV.md @@ -6,7 +6,7 @@ Copyright 2015 - 2020, Remy Gibert and the A2osX contributors. # D2TrkRead16s Write a track (16 sectors) PUSHB = DSSS0000 - PUSHB = TrackNum * 4 : 0->136+ + PUSHB = TrackNum * 4 : 0->136+ PUSHW = Ptr to 16*256 buffer ## RETURN VALUE @@ -16,7 +16,9 @@ Write a track (16 sectors) # D2TrkWrite16s Write a track (16 sectors) PUSHB = DSSS0000 - PUSHB = TrackNum * 4 : 0->136+ + PUSHB = VolNum + PUSHB = HeadNum (0,1) + PUSHB = TrackNum * 4 : 0->136+ PUSHW = Ptr to 16*256 buffer ## RETURN VALUE @@ -38,7 +40,7 @@ Write a track (NIBBLE) Compute space needed for ProDOS Catalog ## C -int getprodoscatsize (short int options, short int catsize, int devsize ); +int getprodoscatsize (short int options, short int catsize, int devsize ); ## ASM **In:** @@ -46,7 +48,7 @@ int getprodoscatsize (short int options, short int catsize, int devsize ); PUSHB = Catalog Size (in blocks) PUSHB = Options -## RETURN VALUE +## RETURN VALUE X=BlockCount (max 22) Y,A=BufSize (max $4400) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 54293913..2d7bd969 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 7388991a..c59c516d 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/BIN/ACOS.S.CORE.txt b/BIN/ACOS.S.CORE.txt index 23bfb8f0..018860ed 100644 --- a/BIN/ACOS.S.CORE.txt +++ b/BIN/ACOS.S.CORE.txt @@ -269,60 +269,128 @@ CORE.Run lda #$0 RTS jmp (ZPCodeBufPtr) *-------------------------------------- -CORE.Lookup >STYA ZPPtr1 +CORE.LookupOPS lda (ZPInputBufPtr) + jsr CORE.IsOPSChar + bcc .55 + + jsr CORE.IsLetter + bcs .99 + + sec + +.55 ror bFlag + + >LDYA L.ACOS.OPS + >STYA ZPPtr1 ldx #0 .1 ldy #$ff -.2 jsr .7 get next valid char in src text - bcs .3 +.2 jsr .10 get next valid char in src text + bcs .4 -.20 jsr CORE.ToUpperCase + jsr CORE.ToUpperCase eor (ZPPtr1),y match table char ? asl compare only 7 bits - bne .4 no match...get next table keyword + bne .6 no match...get next table keyword bcc .2 not last char in this keyword - jsr .7 next char in text... + jsr .10 next char in text... bcc .4 valid....failed -.8 tya Keyword Len +.3 tya Keyword Len jmp CORE.SkipA -.3 dey +.4 dey lda (ZPPtr1),y was last char in this keyword ? - bmi .8 + bmi .3 iny -.41 jsr CORE.IncPtr1 skip chars to next keyword +.5 jsr CORE.IncPtr1 skip chars to next keyword -.4 lda (ZPPtr1) - bpl .41 +.6 lda (ZPPtr1) + bpl .5 jsr CORE.IncPtr1 -.6 inx inx lda (ZPPtr1) Array Ending 0, lookup failed bne .1 .9 sec rts +*-------------------------------------- +.10 iny + lda (ZPInputBufPtr),y Get Src text char... + beq .19 end of text -.7 iny + bit bFlag + bmi .11 Letter expected + + jmp CORE.IsOPSChar + +.11 jmp CORE.IsLetter + +.19 sec +.99 rts +*-------------------------------------- +CORE.Lookup >STYA ZPPtr1 + + ldx #0 + +.1 ldy #$ff + +.2 jsr .10 get next valid char in src text + bcs .4 + + jsr CORE.ToUpperCase + eor (ZPPtr1),y match table char ? + asl compare only 7 bits + bne .6 no match...get next table keyword + + bcc .2 not last char in this keyword + + jsr .10 next char in text... + bcc .4 valid....failed + +.3 tya Keyword Len + + jmp CORE.SkipA + +.4 dey + lda (ZPPtr1),y was last char in this keyword ? + bmi .3 + + iny +.5 jsr CORE.IncPtr1 skip chars to next keyword + +.6 lda (ZPPtr1) + bpl .5 + + jsr CORE.IncPtr1 + + inx + inx + lda (ZPPtr1) Array Ending 0, lookup failed + bne .1 + +.9 sec + rts +*-------------------------------------- +.10 iny lda (ZPInputBufPtr),y Get Src text char... beq .9 end of text cmp #'$' - bne .70 + bne .11 clc rts -.70 jmp CORE.IsLetterOrDigit CS=end of valid chars +.11 jmp CORE.IsLetterOrDigit CS=end of valid chars *-------------------------------------- CORE.IncPtr1 inc ZPPtr1 bne .8 @@ -517,22 +585,22 @@ CORE.ToUpperCase CORE.ToUpperCase.RTS rts *-------------------------------------- -CORE.IsAOPSChar ldx #0 +CORE.IsOPSChar phx + + ldx #ACOS.OPSChars.Cnt-1 -.1 cmp ACOS.AOPSChars,x +.1 cmp ACOS.OPSChars,x beq .8 - inx - cpx #ACOS.AOPSChars.Cnt - bcc .1 + dex + bpl .1 + plx + sec rts -.8 txa - asl - tax - -* clc +.8 plx + clc rts *-------------------------------------- CORE.IsEndExp cmp #')' diff --git a/BIN/ACOS.S.EXP.txt b/BIN/ACOS.S.EXP.txt index 28e9d6b0..da09795a 100644 --- a/BIN/ACOS.S.EXP.txt +++ b/BIN/ACOS.S.EXP.txt @@ -15,7 +15,7 @@ EXP.Eval.R lda EXP.AOPS *-------------------------------------- .10 jsr CORE.GetCharNB bcs .39 - + .11 cmp #'(' bne .12 @@ -27,11 +27,11 @@ EXP.Eval.R lda EXP.AOPS jsr CORE.GetCharNB bcs .39 - + cmp #')' sec bne .39 - + jsr CORE.GetNextCharNB skip ) bra .41 @@ -81,8 +81,8 @@ EXP.Eval.R lda EXP.AOPS .50 jsr CORE.IsEndExp bcs .80 - - jsr EXP.GetOP + + jsr CORE.LookupOPS bcs .90 stx EXP.AOPS @@ -95,8 +95,9 @@ EXP.Eval.R lda EXP.AOPS inc pStack prev op has precedence - tax - jsr EXP.OPjmpX go compute (arg1 op1 arg2) + tay + ldx ACOS.OPS.MAP-1,y + jsr CODE.FPUCALL go compute (arg1 op1 arg2) .62 lda EXP.AOPS we must compute arg2 op2 arg3 before >PUSHA @@ -106,10 +107,11 @@ EXP.Eval.R lda EXP.AOPS jmp .11 *-------------------------------------- .80 >PULLA - tax + tay bmi .88 nothing to do - jsr EXP.OPjmpX + ldx ACOS.OPS.MAP-1,y + jsr CODE.FPUCALL bra .80 .90 lda #E.ESYN @@ -132,7 +134,6 @@ EXP.Eval.R lda EXP.AOPS rts *-------------------------------------- EXP.FNjmpX jmp (J.ACOS.FN,x) -EXP.OPjmpX jmp (J.ACOS.AOPS,x) *-------------------------------------- EXP.CreateStrConst lda #'$' @@ -174,20 +175,6 @@ EXP.CreateStrConst * sec rts *-------------------------------------- -EXP.GetOP jsr CORE.IsAOPSChar + - * / - bcc .9 - - >LDYA L.ACOS.AOPS MOD - jsr CORE.Lookup - bcs .9 - - txa -* clc - adc #ACOS.AOPSChars.Cnt*2 - tax - -.9 rts -*-------------------------------------- EXP.Int16 >PUSHW ZPInputBufPtr >PUSHWI ZPInputBufPtr >PUSHBI 10 @@ -247,21 +234,6 @@ EXP.VARLookup >LDA.G hVars sec rts *-------------------------------------- -EXP.ADD ldx #FPU.ADD16 - jmp CODE.FPUCALL - -EXP.SUB ldx #FPU.SUB16 - jmp CODE.FPUCALL - -EXP.MUL ldx #FPU.IMUL16 - jmp CODE.FPUCALL - -EXP.DIV ldx #FPU.IDIV16 - jmp CODE.FPUCALL - -EXP.MOD ldx #FPU.IMOD16 - jmp CODE.FPUCALL -*-------------------------------------- *-------------------------------------- MAN SAVE usr/src/bin/acos.s.exp diff --git a/BIN/ACOS.S.txt b/BIN/ACOS.S.txt index 5fe8df1d..f65b9c75 100644 --- a/BIN/ACOS.S.txt +++ b/BIN/ACOS.S.txt @@ -61,7 +61,7 @@ CS.START cld .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data SegmentSize - .DA #128 Stack Size + .DA #256 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- @@ -84,13 +84,7 @@ L.MSG.FWREFERR .DA MSG.FWREFERR L.MSG.STR .DA MSG.STR L.MSG.INT16 .DA MSG.INT16 *-------------------------------------- -L.ACOS.AOPS .DA ACOS.AOPS -J.ACOS.AOPS .DA EXP.ADD - .DA EXP.SUB - .DA EXP.MUL - .DA EXP.DIV - .DA EXP.MOD -L.ACOS.BOPS .DA ACOS.BOPS +L.ACOS.OPS .DA ACOS.OPS L.ACOS.KW .DA ACOS.KW J.ACOS.KW .DA KW.ADDINT .DA KW.APPEND @@ -515,26 +509,34 @@ MSG.INT16 .AZ "%I" OptionList .AS "DdTt" OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace *-------------------------------------- -ACOS.AOPSChars .AS "+-*/" -ACOS.AOPSChars.Cnt .EQ *-ACOS.AOPSChars +ACOS.OPSChars .AS "+-*/<>=" +ACOS.OPSChars.Cnt .EQ *-ACOS.OPSChars *-------------------------------------- -ACOS.AOPS .AT "MOD" - .HS 00 -*-------------------------------------- -ACOS.BOPS .AT "=" - .AT "<>" - .AT "><" +ACOS.OPS .AT "*" + .AT "/" + .AT "MOD" + .AT "+" + .AT "-" .AT "<" - .AT ">" .AT "<=" .AT "=<" + .AT ">" .AT ">=" .AT "=>" - .AT "NOT" + .AT "<>" + .AT "><" + .AT "=" +* .AT "NOT" .AT "AND" .AT "OR" .HS 00 *-------------------------------------- +ACOS.OPS.MAP .DA #FPU.iMUL,#FPU.iDIV,#FPU.iMOD,#FPU.iADD,#FPU.iSUB + .DA #FPU.iL,#FPU.iLE,#FPU.iLE + .DA #FPU.iG,#FPU.iGE,#FPU.iGE + .DA #FPU.iNE,#FPU.iNE,#FPU.iE + .DA #FPU.iLAND,#FPU.iLOR +*-------------------------------------- ACOS.KW .AT "ADDINT" .AT "APPEND" .AT "BYTE" diff --git a/BIN/ASM.S.EXP.txt b/BIN/ASM.S.EXP.txt index d776f7dc..9d840a71 100644 --- a/BIN/ASM.S.EXP.txt +++ b/BIN/ASM.S.EXP.txt @@ -387,14 +387,14 @@ EXP.OP.SUB ldx #0 ARG-ACC->ACC *--------------------------------------- EXP.OP.MUL >PUSHL SRC.ARG >PUSHL SRC.ACC - >FPU MUL32 + >FPU uMUL >PULLL SRC.ACC clc rts *--------------------------------------- EXP.OP.DIV >PUSHL SRC.ARG >PUSHL SRC.ACC - >FPU DIV32 + >FPU uDIV >PULLL SRC.ACC clc rts diff --git a/BIN/ATTR.S.txt b/BIN/ATTR.S.txt index fbf64ca7..301c23fc 100644 --- a/BIN/ATTR.S.txt +++ b/BIN/ATTR.S.txt @@ -279,13 +279,14 @@ CS.RUN.SetAttr >PUSHW ZPFullPath rts *-------------------------------------- CS.RUN.GetFilePath + >PUSHW ZPFullPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath >SYSCALL StrCpy + + >PUSHW ZPFullPath >PUSHW ZPFileName - >LDYA ZPFullPath >SYSCALL StrCat rts *-------------------------------------- diff --git a/BIN/CHGRP.S.txt b/BIN/CHGRP.S.txt index 83258bc8..ec5876aa 100644 --- a/BIN/CHGRP.S.txt +++ b/BIN/CHGRP.S.txt @@ -255,13 +255,14 @@ CS.RUN.CheckErr bcs .1 rts *-------------------------------------- CS.RUN.GetFilePath + >PUSHW ZPFullPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath >SYSCALL StrCpy + + >PUSHW ZPFullPath >PUSHW ZPFileName - >LDYA ZPFullPath >SYSCALL StrCat rts *-------------------------------------- diff --git a/BIN/CHMOD.S.txt b/BIN/CHMOD.S.txt index a64316fb..c1bd1be2 100644 --- a/BIN/CHMOD.S.txt +++ b/BIN/CHMOD.S.txt @@ -296,13 +296,14 @@ CS.RUN.CheckErr bcs .1 rts *-------------------------------------- CS.RUN.GetFilePath + >PUSHW ZPFullPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath >SYSCALL StrCpy + + >PUSHW ZPFullPath >PUSHW ZPFileName - >LDYA ZPFullPath >SYSCALL StrCat rts *-------------------------------------- diff --git a/BIN/CHOWN.S.txt b/BIN/CHOWN.S.txt index 24e67ae5..6e59d50b 100644 --- a/BIN/CHOWN.S.txt +++ b/BIN/CHOWN.S.txt @@ -257,13 +257,14 @@ CS.RUN.CheckErr bcs .1 rts *-------------------------------------- CS.RUN.GetFilePath + >PUSHW ZPFullPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath >SYSCALL StrCpy + + >PUSHW ZPFullPath >PUSHW ZPFileName - >LDYA ZPFullPath >SYSCALL StrCat rts *-------------------------------------- diff --git a/BIN/CHTYP.S.txt b/BIN/CHTYP.S.txt index 246d45c8..31774c70 100644 --- a/BIN/CHTYP.S.txt +++ b/BIN/CHTYP.S.txt @@ -238,13 +238,14 @@ CS.RUN.CheckErr bcs .1 rts *-------------------------------------- CS.RUN.GetFilePath + >PUSHW ZPFullPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath >SYSCALL StrCpy + + >PUSHW ZPFullPath >PUSHW ZPFileName - >LDYA ZPFullPath >SYSCALL StrCat rts *-------------------------------------- diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index 5ba13baa..ec48254b 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -171,7 +171,7 @@ CSH.Run.1 cmp #C.CR empty line.... cmp #';' beq .8 -.99 lda #CSH.E.SYNTAX +.99 lda #E.CSYN sec .9 rts @@ -200,7 +200,7 @@ CSH.COMMENTS jsr CSH.GetNextChar jmp CSH.SkipLine skip line..... -.90 lda #CSH.E.SYNTAX +.90 lda #E.CSYN sec rts *-------------------------------------- @@ -339,9 +339,9 @@ CSH.AddSymbol >LDA.G CSH.hSymbols >SYSCALL SListAddData .9 rts -.99 lda #CSH.E.OOM +.99 lda #E.OOM .HS 2C BIT ABS -CSH.TMISMATCH lda #CSH.E.TMISMATCH +CSH.TMISMATCH lda #E.TMISMATCH sec rts *-------------------------------------- @@ -367,7 +367,7 @@ CSH.fDeclaration clc rts -.9 lda #CSH.E.SYNTAX +.9 lda #E.CSYN sec .99 rts *-------------------------------------- @@ -381,7 +381,7 @@ CSH.GetDeclaration bra .8 -.9 lda #CSH.E.SYNTAX +.9 lda #E.CSYN sec .8 >LEAVE rts @@ -422,7 +422,7 @@ CSH.SetVarValueFromStack clc rts -.99 lda #CSH.E.TMISMATCH +.99 lda #E.TMISMATCH sec rts *-------------------------------------- @@ -551,7 +551,7 @@ CSH.GetVarValueOnStack clc X = Var Type .9 rts -.99 lda #CSH.E.TMISMATCH +.99 lda #E.TMISMATCH sec rts *-------------------------------------- @@ -598,7 +598,7 @@ CSH.CheckStack tax clc rts -.9 lda #CSH.E.SYNTAX +.9 lda #E.CSYN sec rts *-------------------------------------- @@ -614,12 +614,13 @@ CSH.Push pha rts .9 pla - lda #CSH.E.SOVERFLW + lda #E.STKOVERFLOW sec rts *-------------------------------------- CSH.Pop >LDA.G CSH.StackPtr beq .9 + pha inc sta (pData),y @@ -628,7 +629,7 @@ CSH.Pop >LDA.G CSH.StackPtr clc rts -.9 lda #CSH.E.STACKERR +.9 lda #E.STACKERROR sec rts *-------------------------------------- @@ -711,7 +712,7 @@ CSH.CheckSpace jsr CSH.GetChar jsr CSH.GetNextCharNB bcc CSH.GetNextCharNB.RTS -.90 lda #CSH.E.SYNTAX +.90 lda #E.CSYN sec rts *-------------------------------------- diff --git a/BIN/CSH.S.DIR.txt b/BIN/CSH.S.DIR.txt index decb212a..c23d4364 100644 --- a/BIN/CSH.S.DIR.txt +++ b/BIN/CSH.S.DIR.txt @@ -16,7 +16,7 @@ CSH.DIR jsr CSH.GetNextCharNB jmp (J.CSH.DIRS,x) -.91 lda #CSH.E.INVDIR +.91 lda #E.CSYN sec .99 rts *-------------------------------------- @@ -63,7 +63,7 @@ CSH.DIR.DEFINE jsr CSH.CheckSpace jmp CSH.SkipLine -.90 lda #CSH.E.SYNTAX +.90 lda #E.CSYN sec .99 rts *-------------------------------------- @@ -105,7 +105,7 @@ CSH.DIR.INCLUDE >STZ.G PathBuf cpy #64 bne .3 -.90 lda #CSH.E.SYNTAX +.90 lda #E.CSYN sec .99 rts diff --git a/BIN/CSH.S.EXEC.txt b/BIN/CSH.S.EXEC.txt index 52682d3e..e4a52cff 100644 --- a/BIN/CSH.S.EXEC.txt +++ b/BIN/CSH.S.EXEC.txt @@ -2,14 +2,30 @@ NEW AUTO 3,1 .LIST OFF *-------------------------------------- -* A = Type, X = OP +* Y = Type, A = OP *-------------------------------------- -CSH.BOP.EXEC jmp (J.CSH.BOPS,x) -*-------------------------------------- -CSH.BOPS.ADD asl - tax - jmp (J.CSH.BOPS.ADDt,x) +CSH.BOP.EXEC cpy #CSH.T.UINT + bcs .1 + +.1 clc + adc CSH.Type2FPU-3,y + tax + jsr A2osX.FPUCALL + + clc + rts +*-------------------------------------- +CSH.BOPS.MUL clc + rts +*-------------------------------------- +CSH.BOPS.DIV clc + rts +*-------------------------------------- +CSH.BOPS.MOD clc + rts +*-------------------------------------- +CSH.BOPS.ADD CSH.BOPS.ADDi8 CSH.BOPS.ADDu8 clc >PULLA @@ -17,24 +33,8 @@ CSH.BOPS.ADDu8 clc sta (pStack) clc rts - -CSH.BOPS.ADDi16 -CSH.BOPS.ADDu16 >FPU ADD16 - clc - rts -CSH.BOPS.ADDi32 -CSH.BOPS.ADDu32 >FPU ADD32 - clc - rts - -CSH.BOPS.ADDf >FPU FADD - clc - rts *-------------------------------------- -CSH.BOPS.SUB asl - tax - jmp (J.CSH.BOPS.SUBt,x) - +CSH.BOPS.SUB CSH.BOPS.SUBi8 CSH.BOPS.SUBu8 sec ldy #1 @@ -44,52 +44,8 @@ CSH.BOPS.SUBu8 sec inc pStack clc rts - -CSH.BOPS.SUBi16 -CSH.BOPS.SUBu16 >FPU SUB16 - clc - rts -CSH.BOPS.SUBi32 -CSH.BOPS.SUBu32 >FPU SUB32 - clc - rts - -CSH.BOPS.SUBf >FPU FSUB - clc - rts *-------------------------------------- -CSH.BOPS.MUL cmp #CSH.T.FLOAT - beq .8 - - >FPU MUL32 - - - - - clc - rts - -.8 >FPU FMULT - clc - rts -*-------------------------------------- -CSH.BOPS.DIV cmp #CSH.T.FLOAT - beq .8 - - clc - rts - -.8 >FPU FDIV - clc - rts -*-------------------------------------- -CSH.BOPS.MOD clc - rts -*-------------------------------------- -CSH.BOPS.SHL asl - tax - jmp (J.CSH.BOPS.SHLt,x) - +CSH.BOPS.SHL CSH.BOPS.SHL8 lda (pStack) tax beq .8 @@ -106,80 +62,20 @@ CSH.BOPS.SHL8 lda (pStack) .8 inc pStack clc rts - -CSH.BOPS.SHL16 lda (pStack) - tax - beq .8 - - ldy #2 - lda (pStack),y - - iny - -.1 asl - pha - - lda (pStack),y - rol - sta (pStack),y - pla - dex - bne .1 - - dey - sta (pStack),y - -.8 inc pStack - inc pStack - clc - rts - -CSH.BOPS.SHL32 lda (pStack) - tax - beq .8 - - ldy #4 - lda (pStack),y - -.1 asl - pha - - ldy #5 - lda (pStack),y - rol - sta (pStack),y - iny - lda (pStack),y - rol - sta (pStack),y - iny - lda (pStack),y - rol - sta (pStack),y - pla - dex - bne .1 - - ldy #4 - sta (pStack),y - -.8 inc pStack - inc pStack - inc pStack - inc pStack - clc - rts *-------------------------------------- CSH.BOPS.SHR + CSH.BOPS.L CSH.BOPS.G CSH.BOPS.LE CSH.BOPS.GE CSH.BOPS.EQ CSH.BOPS.NE + CSH.BOPS.AND CSH.BOPS.OR CSH.BOPS.EOR + CSH.BOPS.LAND CSH.BOPS.LOR @@ -224,7 +120,8 @@ EXEC.puts >PULLYA >PUSHYA rts *-------------------------------------- -EXEC.printf >SYSCALL PrintF +EXEC.printf + >SYSCALL PrintF >PUSHYA rts *-------------------------------------- diff --git a/BIN/CSH.S.EXP.txt b/BIN/CSH.S.EXP.txt index 29b53eed..c995721e 100644 --- a/BIN/CSH.S.EXP.txt +++ b/BIN/CSH.S.EXP.txt @@ -115,9 +115,8 @@ CSH.ExpEval ldx ZPPtr1 cmp ZPPtr2+1 bcc .33 OP(n) has precedence, on stack : V1,V2 - tax OP(n-1) has precedence... + ldy ZPPtr2 OP(n-1) has precedence... - lda ZPPtr2 Var Type jsr CSH.BOP.EXEC compute V(n-1) V(n) bcc .32 @@ -129,16 +128,16 @@ CSH.ExpEval ldx ZPPtr1 jmp .10 go check for next token *-------------------------------------- -.80 plx any OP on stack ? +.80 pla any OP on stack ? bmi .88 - lda ZPPtr2 Var Type + ldy ZPPtr2 Var Type jsr CSH.BOP.EXEC bcc .80 bcs .99 -.90 lda #CSH.E.SYNTAX +.90 lda #E.ESYN .99 plx bpl .99 @@ -186,7 +185,8 @@ CSH.AddContCharP clc rts -.9 lda #CSH.E.SYNTAX + +.9 lda #E.ESYN sec rts *-------------------------------------- @@ -194,11 +194,9 @@ CSH.GetNumOnStack txa beq .99 - cpx #CSH.T.ULONG+1 - bcs .99 - cpx #CSH.T.FLOAT - bne .1 + bcc .1 + bne .99 >PUSHW ZPInputBufPtr >PUSHWI ZPInputBufPtr @@ -244,7 +242,7 @@ CSH.GetNumOnStack .8 clc .9 rts -.99 lda #CSH.E.TMISMATCH +.99 lda #E.TMISMATCH sec rts *-------------------------------------- diff --git a/BIN/CSH.S.KW.txt b/BIN/CSH.S.KW.txt index 8996165e..eb928b9a 100644 --- a/BIN/CSH.S.KW.txt +++ b/BIN/CSH.S.KW.txt @@ -52,7 +52,7 @@ CSH.IF jsr CSH.GetCharNB .6 jsr CSH.SkipBlock bcc .99 -.9 lda #CSH.E.SYNTAX +.9 lda #E.CSYN sec .99 rts *-------------------------------------- @@ -76,7 +76,7 @@ CSH.BREAK CSH.CONTINUE CSH.SIZEOF *-------------------------------------- -CSH.TYPEDEF lda #CSH.E.SYNTAX +CSH.TYPEDEF lda #E.CSYN sec rts *-------------------------------------- @@ -124,7 +124,7 @@ CSH.CONST lda ZPVarQual clc rts -.9 lda #CSH.E.SYNTAX +.9 lda #E.CSYN sec rts *-------------------------------------- @@ -157,7 +157,7 @@ CSH.UNSIGNED clc .9 plp - lda #CSH.E.SYNTAX + lda #E.CSYN sec rts *-------------------------------------- @@ -172,7 +172,7 @@ CSH.SHORT jsr CSH.CheckSpace cpx #4 only int allowed beq CSH.SCHAR -.9 lda #CSH.E.SYNTAX +.9 lda #E.CSYN sec rts *-------------------------------------- @@ -272,7 +272,7 @@ CSH.TYPE stx ZPVarType .8 clc rts -.9 lda #CSH.E.SYNTAX +.9 lda #E.CSYN sec .99 rts *-------------------------------------- @@ -389,9 +389,9 @@ CSH.fCall ldx ZPPtr1 plx restore returned type rts -.90 lda #CSH.E.SYNTAX +.90 lda #E.CSYN .HS 2C BIT ABS -.91 lda #CSH.E.TMISMATCH +.91 lda #E.TMISMATCH sec .9 plx Discard function index diff --git a/BIN/CSH.S.txt b/BIN/CSH.S.txt index 0dd02927..4e34bedf 100644 --- a/BIN/CSH.S.txt +++ b/BIN/CSH.S.txt @@ -10,20 +10,22 @@ NEW .INB inc/mli.i .INB inc/mli.e.i *-------------------------------------- -CSH.E.SYNTAX .EQ $C0 -CSH.E.STACKERR .EQ $C2 -CSH.E.SOVERFLW .EQ $C3 -*E.NOWHILE .EQ $C4 -*E.NOFOR .EQ $C5 -*E.NOIF .EQ $C6 -CSH.E.UNEXPEOF .EQ $C8 -CSH.E.UNDEF .EQ $C9 -CSH.E.INVDIR .EQ $CA -* -CSH.E.NOVERFLW .EQ $D0 -CSH.E.TMISMATCH .EQ $D1 -CSH.E.OOM .EQ $D2 -CSH.E.DUP .EQ $D3 +CSH.T.VOID .EQ 0 +CSH.T.UCHAR .EQ 1 +CSH.T.SCHAR .EQ 2 +CSH.T.UINT .EQ 3 +CSH.T.SINT .EQ 4 +CSH.T.ULONG .EQ 5 +CSH.T.SLONG .EQ 6 +CSH.T.FLOAT .EQ 7 +CSH.T.VARIADIC .EQ $FF +*-------------------------------------- +CSH.Q.POINTER .EQ %01000000 +CSH.Q.PPOINTER .EQ %10000000 +CSH.Q.PPPOINTER .EQ %11000000 +CSH.Q.PCONST .EQ %00100000 +CSH.Q.CONST .EQ %00010000 +CSH.Q.FUNC .EQ %00001000 *-------------------------------------- * Zero Page Segment, up to 32 bytes *-------------------------------------- @@ -86,16 +88,16 @@ L.MSG.DEBUG .DA MSG.DEBUG L.MSG.ERR .DA MSG.ERR L.ENV.INCLUDE .DA ENV.INCLUDE L.CSH.BOPS .DA CSH.BOPS -J.CSH.BOPS .DA CSH.BOPS.ADD - .DA CSH.BOPS.SUB - .DA CSH.BOPS.MUL +J.CSH.BOPS .DA CSH.BOPS.MUL .DA CSH.BOPS.DIV .DA CSH.BOPS.MOD + .DA CSH.BOPS.ADD + .DA CSH.BOPS.SUB .DA CSH.BOPS.SHL .DA CSH.BOPS.SHR .DA CSH.BOPS.L - .DA CSH.BOPS.G .DA CSH.BOPS.LE + .DA CSH.BOPS.G .DA CSH.BOPS.GE .DA CSH.BOPS.EQ .DA CSH.BOPS.NE @@ -104,30 +106,6 @@ J.CSH.BOPS .DA CSH.BOPS.ADD .DA CSH.BOPS.EOR .DA CSH.BOPS.LAND .DA CSH.BOPS.LOR -J.CSH.BOPS.ADDt .DA CSH.TMISMATCH - .DA CSH.BOPS.ADDi8 - .DA CSH.BOPS.ADDi16 - .DA CSH.BOPS.ADDi32 - .DA CSH.BOPS.ADDu8 - .DA CSH.BOPS.ADDu16 - .DA CSH.BOPS.ADDu32 - .DA CSH.BOPS.ADDf -J.CSH.BOPS.SUBt .DA CSH.TMISMATCH - .DA CSH.BOPS.SUBi8 - .DA CSH.BOPS.SUBi16 - .DA CSH.BOPS.SUBi32 - .DA CSH.BOPS.SUBu8 - .DA CSH.BOPS.SUBu16 - .DA CSH.BOPS.SUBu32 - .DA CSH.BOPS.SUBf -J.CSH.BOPS.SHLt .DA CSH.TMISMATCH - .DA CSH.BOPS.SHL8 - .DA CSH.BOPS.SHL16 - .DA CSH.BOPS.SHL32 - .DA CSH.BOPS.SHL8 - .DA CSH.BOPS.SHL16 - .DA CSH.BOPS.SHL32 - .DA CSH.TMISMATCH L.CSH.FN .DA CSH.FN L.CSH.DIRS .DA CSH.DIRS L.CSH.KW .DA CSH.KW @@ -450,23 +428,6 @@ OptionList .AS "DdTt" OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace *-------------------------------------- *-------------------------------------- -CSH.T.VOID .EQ 0 -CSH.T.SCHAR .EQ 1 -CSH.T.SINT .EQ 2 -CSH.T.SLONG .EQ 3 -CSH.T.FLOAT .EQ 4 -CSH.T.UCHAR .EQ 5 -CSH.T.UINT .EQ 6 -CSH.T.ULONG .EQ 7 -CSH.T.VARIADIC .EQ $FF -*-------------------------------------- -CSH.Q.POINTER .EQ %01000000 -CSH.Q.PPOINTER .EQ %10000000 -CSH.Q.PPPOINTER .EQ %11000000 -CSH.Q.PCONST .EQ %00100000 -CSH.Q.CONST .EQ %00010000 -CSH.Q.FUNC .EQ %00001000 -*-------------------------------------- CSH.OPChars .AS "!~+-*/%=&|^<>" CSH.OPChars.Cnt .EQ *-CSH.OPChars *-------------------------------------- @@ -505,16 +466,16 @@ CSH.AOPS >PSTR "=" * Bitwise Operators: & | ^ ~ * Logical Operators: && || *-------------------------------------- -CSH.BOPS >PSTR "+" - >PSTR "-" - >PSTR "*" +CSH.BOPS >PSTR "*" >PSTR "/" >PSTR "%" + >PSTR "+" + >PSTR "-" >PSTR "<<" >PSTR ">>" >PSTR "<" - >PSTR ">" >PSTR "<=" + >PSTR ">" >PSTR ">=" >PSTR "==" >PSTR "!=" @@ -525,6 +486,8 @@ CSH.BOPS >PSTR "+" >PSTR "||" .HS 00 *-------------------------------------- +CSH.Type2FPU .DA #FPU.wMUL,#FPU.iMUL,#FPU.uMUL,#FPU.lMUL,FPU.fMUL +*-------------------------------------- * Reserved Directives: *-------------------------------------- CSH.DIRS >PSTR "define" @@ -559,7 +522,7 @@ CSH.TYPES >PSTR "void" CSH.FTYPES >PSTR "fastcall" * .HS 00 *-------------------------------------- -CSH.TYPESIZE .HS 0001020405010204 +CSH.TYPESIZE .HS 0001010202040405 *-------------------------------------- CSH.FN * float cos ( float x ); diff --git a/BIN/CUT.S.txt b/BIN/CUT.S.txt index 3bcfcb3e..95eccb92 100644 --- a/BIN/CUT.S.txt +++ b/BIN/CUT.S.txt @@ -126,10 +126,11 @@ CS.RUN lda #C.SPACE lda ArgIndex beq .80 + >PUSHW ZPBufPtr >SYSCALL ArgV >PUSHYA - >LDYA ZPBufPtr >SYSCALL StrCpy + jsr CS.RUN.OUT bcs .9 diff --git a/BIN/ETCONFIG.S.txt b/BIN/ETCONFIG.S.txt index 914c0f7f..d06298ab 100644 --- a/BIN/ETCONFIG.S.txt +++ b/BIN/ETCONFIG.S.txt @@ -136,8 +136,8 @@ CS.RUN.DUMP >PUSHB ETKCFG+S.NETCFG.DevID >LEA.G DCB.NIC >STYA IOCTL+S.IOCTL.BUFPTR - lda #S.IOCTL.STATCODE.GETDCB - sta IOCTL+S.IOCTL.STATCODE + lda #S.IOCTL.S.GETDCB + sta IOCTL+S.IOCTL.S >PUSHB ETKCFG+S.NETCFG.DevID >PUSHBI IOCTL.STATUS diff --git a/BIN/FORTH.S.KW.txt b/BIN/FORTH.S.KW.txt index 3880712a..1b6e6d13 100644 --- a/BIN/FORTH.S.KW.txt +++ b/BIN/FORTH.S.KW.txt @@ -3,11 +3,11 @@ NEW *-------------------------------------- KW.Lookup >LDYA L.KEYWORDS >STYA ZPPtr1 - + ldx #0 .1 ldy #$ff - + .2 jsr .7 get next valid char in src text bcs .3 @@ -24,8 +24,8 @@ KW.Lookup >LDYA L.KEYWORDS .8 tya Keyword Len jsr NextKW - - clc + + clc rts .3 dey @@ -50,7 +50,7 @@ KW.Lookup >LDYA L.KEYWORDS .7 iny lda (ZPCLBufPtr),y Get Src text char... beq .9 end of text - + jmp IsSpaceOrCR CS=end of valid chars *-------------------------------------- KW.INVALID lda #E.CSYN @@ -61,7 +61,7 @@ KW.qDUP lda (pStack) ldy #1 ora (pStack),y bne KW.DUP - + clc rts *-------------------------------------- @@ -70,10 +70,10 @@ KW.DUP lda pStack cmp #$FF bcs .9 - + cmp #2 bcc .99 - + ldy #1 lda (pStack),y >PUSHA @@ -81,25 +81,25 @@ KW.DUP lda pStack >PUSHA clc rts - + .9 lda #E.STACKERROR sec rts - + .99 lda #E.STKOVERFLOW sec - rts + rts *-------------------------------------- KW.DROP lda pStack beq .9 - + inc pStack beq .9 inc pStack clc rts - + .9 lda #E.STACKERROR sec rts @@ -107,16 +107,16 @@ KW.DROP lda pStack KW.SWAP ldy #3 lda (pStack),y pha - + dey #2 lda (pStack),y pha - + lda (pStack) tax pla sta (pStack) - + txa sta (pStack),y #2 @@ -136,10 +136,10 @@ KW.SWAP ldy #3 *-------------------------------------- KW.OVER jsr CheckStackPop4 bcs .9 - + cmp #2 bcc .99 - + ldy #3 lda (pStack),y >PUSHA @@ -155,19 +155,19 @@ KW.OVER jsr CheckStackPop4 *-------------------------------------- KW.ROT lda pStack beq .9 - + cmp #$FB bcs .9 - + ldy #5 lda (pStack),y n1 HI pha dey lda (pStack),y n1 LO pha - + .1 dey - + lda (pStack),y iny iny @@ -177,101 +177,101 @@ KW.ROT lda pStack bne .1 iny - + pla sta (pStack) pla sta (pStack),y - + clc rts - + .9 lda #E.STACKERROR sec - rts + rts *-------------------------------------- KW.Add jsr CheckStackPop4 bcs .9 - - >FPU ADD16 + + >FPU iADD clc .9 rts *-------------------------------------- -KW.DAdd >FPU ADD32 +KW.DAdd >FPU lADD clc rts *-------------------------------------- KW.Sub jsr CheckStackPop4 bcs .9 - - >FPU SUB16 + + >FPU iSUB clc .9 rts *-------------------------------------- -KW.DSub >FPU SUB32 +KW.DSub >FPU lSUB clc rts *-------------------------------------- KW.Mul jsr CheckStackPop4 bcs .9 - - >FPU IMUL16 + + >FPU iMUL clc .9 rts *-------------------------------------- KW.Div jsr KW.DivMoD.1 bcs .9 - + >LDYA ZPPtr2 jsr KW.PushWSigned - + clc - -.9 rts + +.9 rts *-------------------------------------- KW.Mod jsr KW.DivMoD.1 bcs .9 - + >PUSHW ZPPtr3 - -.9 rts + +.9 rts *-------------------------------------- KW.DivMod jsr KW.DivMoD.1 bcs .9 - + >PUSHW ZPPtr3 >LDYA ZPPtr2 jsr KW.PushWSigned - + clc - -.9 rts + +.9 rts *-------------------------------------- KW.MulDivMod *-------------------------------------- -KW.MulDiv +KW.MulDiv lda #E.SYN sec rts *-------------------------------------- KW.DivMoD.1 jsr CheckStackPop4 bcs .9 - + jsr KW.GetPtr1Ptr2Sign - + stz ZPPtr3 stz ZPPtr3+1 - + ldx #16 - + .1 asl ZPPtr2 rol ZPPtr2+1 rol ZPPtr3 rol ZPPtr3+1 - + sec lda ZPPtr3 sbc ZPPtr1 @@ -279,58 +279,58 @@ KW.DivMoD.1 jsr CheckStackPop4 lda ZPPtr3+1 sbc ZPPtr1+1 bcs .2 - + pla dex bne .1 - + bra .8 - + .2 sta ZPPtr3+1 pla sta ZPPtr3 inc ZPPtr2 - + dex bne .1 - + .8 clc -.9 rts +.9 rts *-------------------------------------- KW.GetPtr1Ptr2Sign >PULLW ZPPtr1 sta Sign - + asl bcc .1 - + lda ZPPtr1 clc eor #$ff adc #1 sta ZPPtr1 - + lda ZPPtr1+1 eor #$ff adc #0 sta ZPPtr1+1 - + .1 >PULLW ZPPtr2 - + asl bcc .8 - + lda ZPPtr2 clc eor #$ff adc #1 sta ZPPtr2 - + lda ZPPtr2+1 eor #$ff adc #0 sta ZPPtr2+1 - + lda Sign eor #$80 sta Sign @@ -339,29 +339,29 @@ KW.GetPtr1Ptr2Sign *-------------------------------------- KW.PushWSigned bit Sign bpl .8 - + pha tya - + clc eor #$ff adc #1 tay - + pla eor #$ff adc #0 - + .8 >PUSHYA rts *-------------------------------------- KW.MAX jsr CheckStackPop4 bcs .9 - + lda (pStack) LO ldy #2 - cmp (pStack),y - + cmp (pStack),y + dey #1 lda (pStack),y HI @@ -369,20 +369,20 @@ KW.MAX jsr CheckStackPop4 iny #3 sbc (pStack),y bcc .1 - + jsr KW.SWAP - + .1 jmp KW.DROP -.9 rts +.9 rts *-------------------------------------- KW.MIN jsr CheckStackPop4 bcs .9 - + lda (pStack) LO ldy #2 - cmp (pStack),y - + cmp (pStack),y + dey #1 lda (pStack),y HI @@ -390,12 +390,12 @@ KW.MIN jsr CheckStackPop4 iny #3 sbc (pStack),y bcs .1 - + jsr KW.SWAP - + .1 jmp KW.DROP -.9 rts +.9 rts *-------------------------------------- KW.ABS ldy #1 @@ -451,7 +451,7 @@ KW.DNEGATE.8 clc *-------------------------------------- KW.AND jsr CheckStackPop4 bcs .9 - + ldy #2 lda (pStack),y and (pStack) @@ -469,7 +469,7 @@ KW.AND jsr CheckStackPop4 *-------------------------------------- KW.OR jsr CheckStackPop4 bcs .9 - + ldy #2 lda (pStack),y ora (pStack) @@ -487,7 +487,7 @@ KW.OR jsr CheckStackPop4 *-------------------------------------- KW.XOR jsr CheckStackPop4 bcs .9 - + ldy #2 lda (pStack),y eor (pStack) @@ -505,7 +505,7 @@ KW.XOR jsr CheckStackPop4 *-------------------------------------- KW.LWR jsr CheckStackPop4 bcs .9 - + ldy #2 lda (pStack),y cmp (pStack) @@ -527,7 +527,7 @@ KW.LWR jsr CheckStackPop4 *-------------------------------------- KW.GTR jsr CheckStackPop4 bcs .9 - + ldy #2 lda (pStack),y cmp (pStack) @@ -548,7 +548,7 @@ KW.GTR jsr CheckStackPop4 .9 rts *-------------------------------------- -* : TL BEGIN DUP . 1 - DUP 0 = UNTIL ; +* : TL BEGIN DUP . 1 - DUP 0 = UNTIL ; *-------------------------------------- KW.EQ jsr CheckStackPop4 bcs .9 @@ -569,12 +569,12 @@ KW.EQ jsr CheckStackPop4 tay bne .1 - + txa bne .1 - + sec - + .1 inc pStack sta (pStack) @@ -592,15 +592,15 @@ KW.ZERO clc lda (pStack),y ora (pStack) bne .9 - + sec .9 lda #0 ror - + inc pStack sta (pStack) - + * clc rts *-------------------------------------- @@ -652,7 +652,7 @@ KW.D. >PUSHW L.FMT.int32 >PUSHBI 4 >SYSCALL PrintF - + >RET 4 *-------------------------------------- KW.D.R @@ -661,7 +661,7 @@ KW.D.R rts *-------------------------------------- KW.CR >PUSHW L.MSG.ECHOCRLF - >PUSHBI 0 + >PUSHBI 0 >SYSCALL PrintF rts *-------------------------------------- @@ -670,13 +670,13 @@ KW.SPACE lda #C.SPACE rts *-------------------------------------- KW.SPACES >PULLA - + beq .8 .1 dec - + pha - + lda #C.SPACE >SYSCALL PutChar pla @@ -688,38 +688,38 @@ KW.SPACES >PULLA KW.PRINT >LDYAI 256 >SYSCALL GetMem bcs .9 - + >STYA ZPPtr1 phx ldy #$ff - - clc - + + clc + .1 iny lda (ZPCLBufPtr),y beq .2 - + sta (ZPPtr1),y eor #'" bne .1 - + sec - + .2 sta (ZPPtr1),y - tya + tya adc ZPCLBufPtr sta ZPCLBufPtr bcc .3 inc ZPCLBufPtr+1 - + .3 >LDYA ZPPtr1 >SYSCALL PutS - + pla >SYSCALL FreeMem - + .9 rts *-------------------------------------- KW.DUMP @@ -735,9 +735,9 @@ KW.TERMINAL *-------------------------------------- KW.KEY >SYSCALL GetChar bcs .9 - + >PUSHA - + .9 rts *-------------------------------------- KW.EMIT >PULLA @@ -773,7 +773,7 @@ KW.OCTAL lda #E.SYN KW.FETCHSP lda pStack+1 ldy pStack bne .1 - + inc .1 >PUSHYA @@ -785,7 +785,7 @@ KW.FETCHW lda (pStack) ldy #1 lda (pStack),y sta ZPAddrPtr+1 - + lda (ZPAddrPtr) sta (pStack) lda (ZPAddrPtr),y @@ -836,7 +836,7 @@ KW.CMOVE *-------------------------------------- KW.FILL >PULLA bra KW.FILL2 - + KW.ERASE lda #0 bra KW.FILL2 @@ -848,14 +848,14 @@ KW.FILL2 tax tay >PULLW ZPAddrPtr - + txa - + .1 dey sta (ZPAddrPtr),y cpy #0 bne .1 - + clc rts *-------------------------------------- @@ -866,10 +866,10 @@ KW.HERE >PUSHW ZPDataPtr KW.PAD >PUSHW ZPOutputBufPtr clc rts - + KW.ALLOT.9 lda #E.STACKERROR sec - rts + rts *-------------------------------------- KW.ALLOT lda #SYM.T.VAR sta ZPType @@ -879,36 +879,36 @@ KW.ALLOT lda #SYM.T.VAR cmp #$FF bcs KW.ALLOT.9 - + >PUSHB.G hSList >PUSHW ZPCLBufPtr >SYSCALL SListNewKey bcs .9 - + >STYA ZPKeyID - + txa jsr NextKW - + >LDYA ZPDataPtr >STYA ZPAddrPtr - + >PULLA clc adc ZPDataPtr sta ZPDataPtr - + >PULLA adc ZPDataPtr+1 sta ZPDataPtr+1 - + >PUSHB.G hSList >PUSHW ZPKeyID >PUSHWI ZPType >PUSHWI 4 >SYSCALL SListAddData - + .9 rts *-------------------------------------- KW.nCOMPILE @@ -925,16 +925,16 @@ KW.ASSEMBLER *-------------------------------------- KW.VLIST stz ZPPtr1 stz ZPPtr1+1 - + .1 >LDYA ZPPtr1 >STYA ZPKeyID - + >PUSHB.G hSList >PUSHW ZPKeyID >PUSHW ZPOutputBufPtr >SYSCALL SListGetByID bcs .8 - + >STYA ZPPtr1 Save Next ID jsr CS.RUN.GetSymbolData @@ -958,13 +958,13 @@ KW.VLIST stz ZPPtr1 >PUSHBI 6 >SYSCALL PrintF jmp .1 - + .8 clc -.9 rts - +.9 rts + KW.VC.9 lda #E.STACKERROR sec - rts + rts *-------------------------------------- KW.VARIABLE lda #SYM.T.VAR bra KM.VC @@ -978,40 +978,40 @@ KM.VC sta ZPType cmp #$FF bcs KW.VC.9 - + >PUSHB.G hSList >PUSHW ZPCLBufPtr >SYSCALL SListNewKey bcs .9 - + >STYA ZPKeyID - + txa jsr NextKW - + bit ZPType bvs .1 - + >PULLW ZPAddrPtr - + bra .2 - + .1 >PULLA sta (ZPDataPtr) >PULLA ldy #1 sta (ZPDataPtr),y - + >LDYA ZPDataPtr >STYA ZPAddrPtr - + lda ZPDataPtr clc adc #2 sta ZPDataPtr bcc .2 - + inc ZPDataPtr+1 .2 >PUSHB.G hSList @@ -1027,18 +1027,18 @@ KW.BCOLON >PUSHB.G hSList >SYSCALL SListNewKey bcs .9 - + >STYA ZPKeyID txa jsr NextKW - + lda #SYM.T.CODE sta ZPType - + >LDYA ZPCodePtr >STYA ZPAddrPtr - + >PUSHB.G hSList >PUSHW ZPKeyID >PUSHWI ZPType diff --git a/BIN/FORTH.S.txt b/BIN/FORTH.S.txt index 8c5aa303..ff1c08fa 100644 --- a/BIN/FORTH.S.txt +++ b/BIN/FORTH.S.txt @@ -423,7 +423,7 @@ CS.RUN.LOOP >SLEEP >PUSHA >PUSHW ZPCLBuf - >SYSCALL GetErrorMessage + >SYSCALL GetErrMsg >LDYA ZPCLBuf >SYSCALL PutS bcc CS.RUN.LOOP diff --git a/BIN/IPCONFIG.S.txt b/BIN/IPCONFIG.S.txt index 67cf2fe5..0857b4ec 100644 --- a/BIN/IPCONFIG.S.txt +++ b/BIN/IPCONFIG.S.txt @@ -211,8 +211,8 @@ CS.RUN.DUMP >PUSHB IPCFG+S.NETCFG.DevID >LEA.G DCB.NIC >STYA.G IOCTL+S.IOCTL.BUFPTR - lda #S.IOCTL.STATCODE.GETDCB - >STA.G IOCTL+S.IOCTL.STATCODE + lda #S.IOCTL.S.GETDCB + >STA.G IOCTL+S.IOCTL.S >PUSHB IPCFG+S.NETCFG.DevID >PUSHBI IOCTL.STATUS diff --git a/BIN/LC.S.txt b/BIN/LC.S.txt index efdd4954..7b285218 100644 --- a/BIN/LC.S.txt +++ b/BIN/LC.S.txt @@ -97,6 +97,7 @@ CS.RUN >INC.G ArgIndex >LDYAI 256 >SYSCALL GetMem bcs .99 + >STYA ZPNewPath txa >STA.G hSrcNewPath @@ -218,11 +219,12 @@ CS.RUN.FILE jsr FilterMatch >SYSCALL PrintF bcs .9 - >PUSHW ZPFullPath jsr CS.RUN.GetNewPath - >PUSHYA + + >PUSHW ZPFullPath + >PUSHW ZPNewPath >SYSCALL Rename - jsr CS.RUN.CheckErr + bra CS.RUN.CheckErr .8 clc .9 rts @@ -246,28 +248,30 @@ CS.RUN.CheckErr bcs .1 rts *-------------------------------------- CS.RUN.GetFilePath + >PUSHW ZPFullPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath >SYSCALL StrCpy + + >PUSHW ZPFullPath >PUSHW ZPFileName - >LDYA ZPFullPath >SYSCALL StrCat rts *-------------------------------------- CS.RUN.GetNewPath + >PUSHW ZPNewPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPNewPath >SYSCALL StrCpy + >PUSHW ZPNewPath + >LDYA ZPFileName >SYSCALL StrLwr >PUSHW ZPFileName - >LDYA ZPNewPath >SYSCALL StrCat rts *-------------------------------------- diff --git a/BIN/PAK.S.txt b/BIN/PAK.S.txt index 1324ea0e..30745309 100644 --- a/BIN/PAK.S.txt +++ b/BIN/PAK.S.txt @@ -278,6 +278,7 @@ CS.RUN.FILE jsr CS.RUN.BuildFilePath tay lda Nod.Table.hName-2,y >SYSCALL GetMemPtr + >PUSHYA >SYSCALL StrCmp bcc .8 @@ -347,18 +348,15 @@ CS.RUN.CheckErr bcs .1 rts *-------------------------------------- CS.RUN.BuildFilePath + >PUSHW ZPFullPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - - >LDYA ZPFullPath - >SYSCALL StrCpy + >PUSHW ZPFullPath >PUSHW ZPFileName - >LDYA ZPFullPath >SYSCALL StrCat - rts *-------------------------------------- CS.RUN.OpenFile >PUSHW ZPFullPath diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 10c76f38..ca85f62c 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -502,8 +502,8 @@ CMD.REN lda (ZPArgVBufPtr) lda #0 sta (ZPPtr2),y + >PUSHW ZPPtr2 >PUSHW ZPArgVBufPtr - >LDYA ZPPtr2 >SYSCALL StrCat lda ZPTmpW @@ -776,6 +776,7 @@ CMD.CASE jsr CORE.StkGetCtx Get context in CORE.TestResult dey get hVALUE lda (pData),y >SYSCALL GetMemPtr + >PUSHYA >SYSCALL StrCmp ror CS if != and #$80 @@ -832,8 +833,8 @@ CMD.FOR jsr CORE.StkGetCtx jsr CORE.ArgV.Next beq CMD.E.CSYN + >PUSHW L.IN >PUSHW ZPArgVBufPtr - >LDYA L.IN >SYSCALL StrCaseCmp bcs CMD.E.CSYN diff --git a/BIN/SH.S.EXP.txt b/BIN/SH.S.EXP.txt index 72e79f5c..8dd51b50 100644 --- a/BIN/SH.S.EXP.txt +++ b/BIN/SH.S.EXP.txt @@ -219,29 +219,38 @@ EXP.OP.UNARY.X jsr CMD.CALL.GETFUNC bra EXP.OP.UNARY.DEF.8 TRUE *-------------------------------------- EXP.TEST.BINARY lda CORE.Operator - cmp #6 =, !=, <= <, >=, > - bcs EXP.TEST.BINARY.NUM - >LDYA ZPArgVBufPrev + cmp #6 + bcc EXP.TEST.BINARY.NUM + + >LDYA ZPArgVBufPrev =, !=, <= <, >=, > >STYA ZPPtr1 jsr CORE.ArgV.Next beq EXP.TEST.BINARY.ESYN >PUSHW ZPPtr1 - >LDYA ZPArgVBufPtr + >PUSHW ZPArgVBufPtr >SYSCALL StrCmp bcs .1 CS if != lda #%010 010 str1 = str2 - bra EXP.TEST.BINARY.END + bra .3 .1 asl CS if < bcs .2 lda #%100 010 str1 < str2 - bra EXP.TEST.BINARY.END + bra .3 .2 lda #%001 010 str1 > str2 - bra EXP.TEST.BINARY.END + +.3 ldx CORE.Operator + and EXP.OP.BINARY.BITS-6,x + beq .8 false + + lda #$80 true + +.8 clc + rts EXP.TEST.BINARY.ESYN4 jsr IncPStack4 @@ -259,26 +268,18 @@ EXP.TEST.BINARY.NUM jsr EXP.GetInt32Arg bcs EXP.TEST.BINARY.ESYN4 - >FPU CMP32 + lda CORE.Operator +* clc + adc #FPU.lL tax - bmi .4 ACC < ARG + jsr A2osX.FPUCALL - bne .5 - lda #%010 010 ACC = ARG - bra EXP.TEST.BINARY.END -.4 lda #%100 100 ACC > ARG - bra EXP.TEST.BINARY.END -.5 lda #%001 001 ACC < ARG - -EXP.TEST.BINARY.END - clc - ldx CORE.Operator - and EXP.OP.BINARY.BITS,x + lda (pStack) beq .8 false lda #$80 true -.8 rts +.8 >RET 4 *-------------------------------------- EXP.GetInt8Exp jsr EXP.GET bcc EXP.GetInt8YA diff --git a/BIN/SH.S.IO.txt b/BIN/SH.S.IO.txt index 3e9bb930..ee2ffba0 100644 --- a/BIN/SH.S.IO.txt +++ b/BIN/SH.S.IO.txt @@ -269,7 +269,7 @@ IO.PrintErrMsg ldy #S.PS.RC >PUSHW ZPCLBuf - >SYSCALL GetErrorMessage + >SYSCALL GetErrMsg .8 ldy #S.PS.hStdErr lda (pPS),y diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 20a50593..0f4e9206 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -643,45 +643,38 @@ EXP.OP.UNARY .AT "-D" .AT "-X" .AT "-Z" .HS 00 -EXP.OP.BINARY .AT "=" +EXP.OP.BINARY .AT "-LT" + .AT "-LE" + .AT "-GT" + .AT "-GE" + .AT "-EQ" + .AT "-NE" + .AT "=" .AT "!=" .AT ".<" .AT "<=" .AT ".>" .AT ">=" - .AT "-EQ" - .AT "-NE" - .AT "-LT" - .AT "-LE" - .AT "-GT" - .AT "-GE" .HS 00 -EXP.OP.MATH .AT "+" - .AT "-" - .AT "*" +EXP.OP.MATH .AT "*" .AT "/" .AT "MOD" + .AT "+" + .AT "-" .HS 00 EXP.OP.LOGIC .AT "AND" .AT "OR" .HS 00 *-------------------------------------- EXP.OP.BINARY.BITS - .DA #%010 + .DA #%010 strcmp .DA #%101 .DA #%100 .DA #%110 .DA #%001 .DA #%011 - .DA #%010 - .DA #%101 - .DA #%100 - .DA #%110 - .DA #%001 - .DA #%011 - -EXP.OP.MATH.FPU .DA #FPU.ADD32,#FPU.SUB32,#FPU.IMUL32,#FPU.IDIV32,#FPU.IMOD32 +EXP.OP.MATH.FPU .DA #FPU.lMUL,#FPU.lDIV,#FPU.lMOD,#FPU.lADD,#FPU.lSUB *-------------------------------------- SET.FLAGS .AS "CXE" SET.VARS .DA #bSET.C,#bSET.X,#bSET.E diff --git a/BIN/UC.S.txt b/BIN/UC.S.txt index a446e689..0a9046be 100644 --- a/BIN/UC.S.txt +++ b/BIN/UC.S.txt @@ -218,11 +218,12 @@ CS.RUN.FILE jsr FilterMatch >SYSCALL PrintF bcs .9 - >PUSHW ZPFullPath jsr CS.RUN.GetNewPath - >PUSHYA + >PUSHW ZPFullPath + >PUSHW ZPNewPath >SYSCALL Rename - jsr CS.RUN.CheckErr + + bra CS.RUN.CheckErr .8 clc .9 rts @@ -246,28 +247,29 @@ CS.RUN.CheckErr bcs .1 rts *-------------------------------------- CS.RUN.GetFilePath + >PUSHW ZPFullPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath >SYSCALL StrCpy + + >PUSHW ZPFullPath >PUSHW ZPFileName - >LDYA ZPFullPath >SYSCALL StrCat rts *-------------------------------------- CS.RUN.GetNewPath + >PUSHW ZPNewPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPNewPath >SYSCALL StrCpy >LDYA ZPFileName >SYSCALL StrUpr + >PUSHW ZPNewPath >PUSHW ZPFileName - >LDYA ZPNewPath >SYSCALL StrCat rts *-------------------------------------- diff --git a/BIN/USERADD.S.txt b/BIN/USERADD.S.txt index 1ed0d2d1..8547bba1 100644 --- a/BIN/USERADD.S.txt +++ b/BIN/USERADD.S.txt @@ -157,7 +157,7 @@ CS.RUN.ROOT ldy #0 >PUSHW ZPStrPtr >SYSCALL MD5 >PUSHW ZPStrPtr - >LEA.G PW+S.PW.PASSWD + >PUSHEA.G PW+S.PW.PASSWD >SYSCALL StrCmp bcs .99 diff --git a/BIN/USERDEL.S.txt b/BIN/USERDEL.S.txt index 6c2c56be..231d7c0f 100644 --- a/BIN/USERDEL.S.txt +++ b/BIN/USERDEL.S.txt @@ -155,10 +155,12 @@ CS.RUN.RmDir lda bDelete >SYSCALL Remove rts -.1 >PUSHW L.CMD.RM - >LDYA ZPStrPtr +.1 >PUSHW ZPStrPtr + >PUSHW L.CMD.RM >SYSCALL StrCpy + >PUSHW ZPStrPtr + lda pData clc adc #S.PW.DIR @@ -166,7 +168,6 @@ CS.RUN.RmDir lda bDelete lda pData+1 adc /S.PW.DIR >PUSHYA - >LDYA ZPStrPtr >SYSCALL StrCat >PUSHW ZPStrPtr diff --git a/BIN/WC.S.txt b/BIN/WC.S.txt index 0e592794..45113ef7 100644 --- a/BIN/WC.S.txt +++ b/BIN/WC.S.txt @@ -344,13 +344,14 @@ CS.RUN.CheckErr bcc .9 .9 rts *-------------------------------------- CS.RUN.GetFilePath + >PUSHW ZPFullPath >LDA.G hSrcBasePath >SYSCALL GetMemPtr >PUSHYA - >LDYA ZPFullPath >SYSCALL StrCpy + + >PUSHW ZPFullPath >PUSHW ZPFileName - >LDYA ZPFullPath >SYSCALL StrCat rts *-------------------------------------- diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 48d48f6d..9c069a30 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -355,10 +355,10 @@ STATUS >STYA ZPIOCTL lda (ZPIOCTL),y sta ZPBasePtr+1 - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldy #S.DIB-1 .HS 2C bit abs @@ -370,7 +370,7 @@ STATUS >STYA ZPIOCTL clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne STATUS.9 ldy #S.DCB.GFX-1 diff --git a/DRV/GRAPPLER.DRV.S.txt b/DRV/GRAPPLER.DRV.S.txt index 91ab8fdb..80fbe013 100644 --- a/DRV/GRAPPLER.DRV.S.txt +++ b/DRV/GRAPPLER.DRV.S.txt @@ -156,10 +156,10 @@ DRV.CS.START cld .DA 0 end or relocation *-------------------------------------- STATUS jsr STATUS.CONTROL.Init - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldy #S.DIB-1 .HS 2C bit abs @@ -172,7 +172,7 @@ STATUS jsr STATUS.CONTROL.Init clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne .3 ldy #S.DCB.COM-1 @@ -183,7 +183,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts -.3 cmp #S.IOCTL.STATCODE.EOF +.3 cmp #S.IOCTL.S.EOF bne STATUS.9 lda DIB+S.DIB.S @@ -199,9 +199,9 @@ STATUS.9 lda #MLI.E.BADCTL *-------------------------------------- CONTROL jsr STATUS.CONTROL.Init - ldy #S.IOCTL.CTRLCODE + ldy #S.IOCTL.C lda (ZPIOCTL),y - cmp #S.IOCTL.CTRLCODE.SETDCB + cmp #S.IOCTL.C.SETDCB bne STATUS.9 ldy #S.DCB.COM-1 .2 lda (ZPBufPtr),y diff --git a/DRV/GRAPPLERP.DRV.S.txt b/DRV/GRAPPLERP.DRV.S.txt index db01cb30..8a1724bc 100644 --- a/DRV/GRAPPLERP.DRV.S.txt +++ b/DRV/GRAPPLERP.DRV.S.txt @@ -157,10 +157,10 @@ DRV.CS.START cld .DA 0 end or relocation *-------------------------------------- STATUS jsr STATUS.CONTROL.Init - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldy #S.DIB-1 .HS 2C bit abs @@ -173,7 +173,7 @@ STATUS jsr STATUS.CONTROL.Init clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne .3 ldy #S.DCB.COM-1 @@ -184,7 +184,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts -.3 cmp #S.IOCTL.STATCODE.EOF +.3 cmp #S.IOCTL.S.EOF bne STATUS.9 lda DIB+S.DIB.S @@ -200,9 +200,9 @@ STATUS.9 lda #MLI.E.BADCTL *-------------------------------------- CONTROL jsr STATUS.CONTROL.Init - ldy #S.IOCTL.CTRLCODE + ldy #S.IOCTL.C lda (ZPIOCTL),y - cmp #S.IOCTL.CTRLCODE.SETDCB + cmp #S.IOCTL.C.SETDCB bne STATUS.9 ldy #S.DCB.COM-1 .2 lda (ZPBufPtr),y diff --git a/DRV/LANCEGS.DRV.S.txt b/DRV/LANCEGS.DRV.S.txt index 4e4c0c6e..6e270fa3 100644 --- a/DRV/LANCEGS.DRV.S.txt +++ b/DRV/LANCEGS.DRV.S.txt @@ -178,10 +178,10 @@ DRV.CS.START cld *-------------------------------------- STATUS >STYA ZPIOCTL - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldx #S.DIB-1 @@ -204,7 +204,7 @@ STATUS >STYA ZPIOCTL clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne STATUS.9 stz DCB+S.DCB.NIC.LINK diff --git a/DRV/MKBOARD.DRV.S.txt b/DRV/MKBOARD.DRV.S.txt index ffcbb46d..22498a10 100644 --- a/DRV/MKBOARD.DRV.S.txt +++ b/DRV/MKBOARD.DRV.S.txt @@ -153,10 +153,10 @@ DRV.CS.START cld .DA 0 end or relocation *-------------------------------------- STATUS jsr STATUS.CONTROL.Init - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldy #S.DIB-1 .HS 2C bit abs @@ -169,7 +169,7 @@ STATUS jsr STATUS.CONTROL.Init clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne .3 ldy #S.DCB.SND-1 @@ -180,7 +180,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts -.3 cmp #S.IOCTL.STATCODE.EOF +.3 cmp #S.IOCTL.S.EOF bne STATUS.9 lda DIB+S.DIB.S @@ -195,9 +195,9 @@ STATUS.9 lda #MLI.E.BADCTL *-------------------------------------- CONTROL jsr STATUS.CONTROL.Init - ldy #S.IOCTL.CTRLCODE + ldy #S.IOCTL.C lda (ZPIOCTL),y - cmp #S.IOCTL.CTRLCODE.SETDCB + cmp #S.IOCTL.C.SETDCB bne STATUS.9 ldy #S.DCB.SND-1 .2 lda (ZPBufPtr),y diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index 3e80c0e1..0935abe5 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -145,11 +145,11 @@ STATUS >STYA ZPIOCTL lda (ZPIOCTL),y sta ZPBufPtr+1 - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldy #S.DIB-1 diff --git a/DRV/PIC.DRV.S.txt b/DRV/PIC.DRV.S.txt index 8c0c33d9..82faf69c 100644 --- a/DRV/PIC.DRV.S.txt +++ b/DRV/PIC.DRV.S.txt @@ -155,10 +155,10 @@ DRV.CS.START cld .DA 0 end or relocation *-------------------------------------- STATUS jsr STATUS.CONTROL.Init - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldy #S.DIB-1 .HS 2C bit abs @@ -171,7 +171,7 @@ STATUS jsr STATUS.CONTROL.Init clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne .3 ldy #S.DCB.COM-1 @@ -182,7 +182,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts -.3 cmp #S.IOCTL.STATCODE.EOF +.3 cmp #S.IOCTL.S.EOF bne STATUS.9 lda DIB+S.DIB.S @@ -198,9 +198,9 @@ STATUS.9 lda #MLI.E.BADCTL *-------------------------------------- CONTROL jsr STATUS.CONTROL.Init - ldy #S.IOCTL.CTRLCODE + ldy #S.IOCTL.C lda (ZPIOCTL),y - cmp #S.IOCTL.CTRLCODE.SETDCB + cmp #S.IOCTL.C.SETDCB bne STATUS.9 ldy #S.DCB.COM-1 .2 lda (ZPBufPtr),y diff --git a/DRV/PPPSSC.DRV.S.txt b/DRV/PPPSSC.DRV.S.txt index 96b3ee9f..9c83dd3f 100644 --- a/DRV/PPPSSC.DRV.S.txt +++ b/DRV/PPPSSC.DRV.S.txt @@ -813,11 +813,11 @@ DRV.CS.START cld .DA 0 end or relocation *-------------------------------------- STATUS jsr STATUS.CONTROL.Init - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldy #S.DIB-1 @@ -832,7 +832,7 @@ STATUS jsr STATUS.CONTROL.Init clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne .3 ldy #S.DCB.COM-1 @@ -844,7 +844,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts -.3 cmp #S.IOCTL.STATCODE.EOF +.3 cmp #S.IOCTL.S.EOF bne STATUS.9 lda DIB+S.DIB.S @@ -873,9 +873,9 @@ STATUS.9 lda #MLI.E.BADCTL *-------------------------------------- CONTROL jsr STATUS.CONTROL.Init - ldy #S.IOCTL.CTRLCODE + ldy #S.IOCTL.C lda (ZPIOCTL),y - cmp #S.IOCTL.CTRLCODE.SETDCB + cmp #S.IOCTL.C.SETDCB bne STATUS.9 ldy #S.DCB.COM-1 diff --git a/DRV/UTHER2.AI.DRV.S.txt b/DRV/UTHER2.AI.DRV.S.txt index 97a85bfa..5dba29a4 100644 --- a/DRV/UTHER2.AI.DRV.S.txt +++ b/DRV/UTHER2.AI.DRV.S.txt @@ -210,11 +210,11 @@ DRV.CS.START cld *-------------------------------------- STATUS jsr GET.IOCTLBUFPTR - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldy #S.DIB-1 @@ -230,7 +230,7 @@ STATUS jsr GET.IOCTLBUFPTR clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne STATUS.9 ldy #S.DCB.NIC-1 @@ -249,9 +249,9 @@ STATUS.9 lda #MLI.E.BADCTL *-------------------------------------- CONTROL jsr GET.IOCTLBUFPTR - ldy #S.IOCTL.CTRLCODE + ldy #S.IOCTL.C lda (ZPIOCTL),y - cmp #S.IOCTL.CTRLCODE.SETDCB + cmp #S.IOCTL.C.SETDCB bne STATUS.9 ldy #S.DCB.NIC-1 diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index a987a6fc..ddb163c8 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -191,10 +191,10 @@ DRV.CS.START cld *-------------------------------------- STATUS >STYA ZPIOCTL - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldx #S.DIB-1 .HS 2C bit abs @@ -213,7 +213,7 @@ STATUS >STYA ZPIOCTL clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne STATUS.9 stz DCB+S.DCB.NIC.LINK diff --git a/DRV/UTHERNET2.DRV.S.txt b/DRV/UTHERNET2.DRV.S.txt index 12105764..7a9cc4d1 100644 --- a/DRV/UTHERNET2.DRV.S.txt +++ b/DRV/UTHERNET2.DRV.S.txt @@ -205,11 +205,11 @@ DRV.CS.START cld *-------------------------------------- STATUS jsr GET.IOCTLBUFPTR - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldy #S.DIB-1 @@ -225,7 +225,7 @@ STATUS jsr GET.IOCTLBUFPTR clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne STATUS.9 ldy #S.DCB.NIC-1 diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index 43cf41ba..10d7367e 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -256,7 +256,7 @@ SYS.Shift .EQ $68 SYS.ArgV .EQ $6A SYS.ArgVDup .EQ $6C * ERROR -SYS.GetErrorMessage .EQ $6E +SYS.GetErrMsg .EQ $6E * STDLIB SYS.AToF .EQ $70 SYS.AToI .EQ $72 @@ -398,18 +398,18 @@ IOCTL.IRQ .EQ 20 S.IOCTL.CNT .EQ 0 S.IOCTL.UNITNUM .EQ 1 S.IOCTL.BUFPTR .EQ 2 -S.IOCTL.STATCODE .EQ 4 1 BYTE -S.IOCTL.STATCODE.STATUS .EQ 0 -S.IOCTL.STATCODE.GETDCB .EQ 1 -S.IOCTL.STATCODE.GETNL .EQ 2 -S.IOCTL.STATCODE.GETDIB .EQ 3 -S.IOCTL.STATCODE.EOF .EQ 4 -S.IOCTL.CTRLCODE .EQ 4 1 BYTE -S.IOCTL.CTRLCODE.RESET .EQ 0 -S.IOCTL.CTRLCODE.SETDCB .EQ 1 -S.IOCTL.CTRLCODE.SETNL .EQ 2 -S.IOCTL.CTRLCODE.IRQ .EQ 3 -S.IOCTL.CTRLCODE.EJECT .EQ 4 +S.IOCTL.S .EQ 4 1 BYTE +S.IOCTL.S.STATUS .EQ 0 +S.IOCTL.S.GETDCB .EQ 1 +S.IOCTL.S.GETNL .EQ 2 +S.IOCTL.S.GETDIB .EQ 3 +S.IOCTL.S.EOF .EQ 4 +S.IOCTL.C .EQ 4 1 BYTE +S.IOCTL.C.RESET .EQ 0 +S.IOCTL.C.SETDCB .EQ 1 +S.IOCTL.C.SETNL .EQ 2 +S.IOCTL.C.IRQ .EQ 3 +S.IOCTL.C.EJECT .EQ 4 S.IOCTL.BLKNUM .EQ 4 3 BYTES S.IOCTL.BYTECNT .EQ 4 2 BYTES S.IOCTL.ADDRPTR .EQ 6 3 BYTES @@ -476,7 +476,7 @@ S.FD.T.LNK .EQ 8 S.FD.T.DSOCK .EQ 10 S.FD.T.SSOCK .EQ 12 S.FD.T.PIPE .EQ 14 -S.FD.HANDLER .EQ 1 +S.FD.PFT .EQ 1 *-------------------------------------- S.FD.REG.REF .EQ 2 S.FD.REG.IOBUF .EQ 3 @@ -504,7 +504,7 @@ S.FD.DEV .EQ 12 *-------------------------------------- * S.FD.LNK *-------------------------------------- -S.FD.DSOCK.IOHANDLER .EQ 2 +S.FD.DSOCK.IOH .EQ 2 S.FD.DSOCK.OPEN .EQ 3 S.FD.DSOCK.CLOSE .EQ 4 S.FD.DSOCK.READ .EQ 5 @@ -513,7 +513,7 @@ S.FD.DSOCK.EOF .EQ 7 * S.FD.DSOCK .EQ 8 *-------------------------------------- -S.FD.SSOCK.IOHANDLER .EQ 2 +S.FD.SSOCK.IOH .EQ 2 S.FD.SSOCK.OPEN .EQ 3 S.FD.SSOCK.CLOSE .EQ 4 S.FD.SSOCK.READ .EQ 5 diff --git a/INC/IO.D2.I.txt b/INC/IO.D2.I.txt index 54495481..cdb0ea27 100644 --- a/INC/IO.D2.I.txt +++ b/INC/IO.D2.I.txt @@ -1,10 +1,10 @@ NEW AUTO 3,1 *-------------------------------------- -IO.D2.SeekTimeR .EQ 48 LIBBLKDEV Recalibration -IO.D2.SeekTimeF .EQ 48 LIBBLKDEV Track Formatter -IO.D2.SeekTimeB .EQ 48 LIBBLKDEV Boot Block -IO.D2.SeekTimeP .EQ 48 ProDOS.FX initial +IO.D2.SeekTimeR .EQ 68 LIBBLKDEV Recalibration +IO.D2.SeekTimeF .EQ 68 LIBBLKDEV Track Formatter +IO.D2.SeekTimeB .EQ 68 LIBBLKDEV Boot Block +IO.D2.SeekTimeP .EQ 68 ProDOS.FX initial IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128 *-------------------------------------- IO.D2.Ph0Off .EQ $C080 diff --git a/INC/MACROS.I.txt b/INC/MACROS.I.txt index 4f6545d6..f5c9f1b6 100644 --- a/INC/MACROS.I.txt +++ b/INC/MACROS.I.txt @@ -129,53 +129,149 @@ NEW *-------------------------------------- * FPU Entry Point *-------------------------------------- -FPU.ADD16 .EQ 0 -FPU.SUB16 .EQ 2 -FPU.MUL16 .EQ 4 -FPU.IMUL16 .EQ 6 -FPU.DIV16 .EQ 8 -FPU.IDIV16 .EQ 10 -FPU.MOD16 .EQ 12 -FPU.IMOD16 .EQ 14 -FPU.CMP16 .EQ 16 -FPU.ICMP16 .EQ 18 +FPU.wMUL .EQ 0 +FPU.wDIV .EQ 2 +FPU.wMOD .EQ 4 +FPU.wADD .EQ 6 +FPU.wSUB .EQ 8 -FPU.ADD32 .EQ 20 -FPU.SUB32 .EQ 22 -FPU.MUL32 .EQ 24 -FPU.IMUL32 .EQ 26 -FPU.DIV32 .EQ 28 -FPU.IDIV32 .EQ 30 -FPU.MOD32 .EQ 32 -FPU.IMOD32 .EQ 34 -FPU.CMP32 .EQ 36 -FPU.ICMP32 .EQ 38 +FPU.wSHL .EQ 10 +FPU.wSHR .EQ 12 -FPU.FADD .EQ 40 -FPU.FSUB .EQ 42 -FPU.FMULT .EQ 44 -FPU.FDIV .EQ 46 -FPU.PWR .EQ 48 +FPU.wL .EQ 14 +FPU.wLE .EQ 16 +FPU.wG .EQ 18 +FPU.wGE .EQ 20 -FPU.LOG .EQ 50 -FPU.SQR .EQ 52 -FPU.EXP .EQ 54 -FPU.COS .EQ 56 -FPU.SIN .EQ 58 -FPU.TAN .EQ 60 -FPU.ATAN .EQ 62 +FPU.wE .EQ 22 +FPU.wNE .EQ 24 -FPU.SETARG .EQ 64 fadd..... -FPU.SETFAC .EQ 66 log...., PrintF +FPU.wAND .EQ 26 +FPU.wOR .EQ 28 +FPU.wxOR .EQ 30 -FPU.GETFAC .EQ 68 Copy FAC to (FORPNT) -FPU.FCOMP .EQ 70 +FPU.wLAND .EQ 32 +FPU.wLOR .EQ 34 +*-------------------------------------- +FPU.iMUL .EQ 36 +FPU.iDIV .EQ 38 +FPU.iMOD .EQ 40 +FPU.iADD .EQ 42 +FPU.iSUB .EQ 44 -FPU.LTOF .EQ 72 Float -FPU.QINT .EQ 74 lrintf +FPU.iSHL .EQ 46 +FPU.iSHR .EQ 48 -FPU.FIN .EQ 76 sscanf -FPU.FOUT .EQ 78 PrintF +FPU.iL .EQ 50 +FPU.iLE .EQ 52 +FPU.iG .EQ 54 +FPU.iGE .EQ 56 + +FPU.iE .EQ 58 +FPU.iNE .EQ 60 + +FPU.iAND .EQ 62 +FPU.iOR .EQ 64 +FPU.iXOR .EQ 66 + +FPU.iLAND .EQ 68 +FPU.iLOR .EQ 70 +*-------------------------------------- +FPU.uMUL .EQ 72 +FPU.uDIV .EQ 74 +FPU.uMOD .EQ 76 +FPU.uADD .EQ 78 +FPU.uSUB .EQ 80 + +FPU.uSHL .EQ 82 +FPU.uSHR .EQ 84 + +FPU.uL .EQ 86 +FPU.uLE .EQ 88 +FPU.uG .EQ 90 +FPU.uGE .EQ 92 + +FPU.uE .EQ 94 +FPU.uNE .EQ 96 + +FPU.uAND .EQ 98 +FPU.uOR .EQ 100 +FPU.uXOR .EQ 102 + +FPU.uLAND .EQ 104 +FPU.uLOR .EQ 106 +*-------------------------------------- +FPU.lMUL .EQ 108 +FPU.lDIV .EQ 110 +FPU.lMOD .EQ 112 +FPU.lADD .EQ 114 +FPU.lSUB .EQ 116 + +FPU.lSHL .EQ 118 +FPU.lSHR .EQ 120 + +FPU.lL .EQ 122 +FPU.lLE .EQ 124 +FPU.lG .EQ 126 +FPU.lGE .EQ 128 + +FPU.lE .EQ 130 +FPU.lNE .EQ 132 + +FPU.lAND .EQ 134 +FPU.lOR .EQ 136 +FPU.lXOR .EQ 138 + +FPU.lLAND .EQ 140 +FPU.lLOR .EQ 142 +*-------------------------------------- +FPU.fMUL .EQ 144 +FPU.fDIV .EQ 146 +FPU.fMOD .EQ 148 +FPU.fADD .EQ 150 +FPU.fSUB .EQ 152 + +FPU.fSHL .EQ 154 +FPU.fSHR .EQ 156 + +FPU.fL .EQ 158 +FPU.fLE .EQ 160 +FPU.fG .EQ 162 +FPU.fGE .EQ 164 + +FPU.fE .EQ 166 +FPU.fNE .EQ 168 + +FPU.fAND .EQ 170 +FPU.fOR .EQ 172 +FPU.fXOR .EQ 174 + +FPU.fLAND .EQ 176 +FPU.fLOR .EQ 178 +*-------------------------------------- +* math.h +*-------------------------------------- +FPU.PWR .EQ 180 +*-------------------------------------- +FPU.LOG .EQ 182 +FPU.SQR .EQ 184 +FPU.EXP .EQ 186 +FPU.COS .EQ 188 +FPU.SIN .EQ 190 +FPU.TAN .EQ 192 +FPU.ATAN .EQ 194 + +FPU.SETARG .EQ 196 fadd..... +FPU.SETFAC .EQ 198 log...., PrintF + +FPU.GETFAC .EQ 200 Copy FAC to (FORPNT) +FPU.FCOMP .EQ 202 + +FPU.LTOF .EQ 204 Float +FPU.QINT .EQ 206 lrintf + +FPU.FIN .EQ 208 sscanf +FPU.FOUT .EQ 210 PrintF *-------------------------------------- .MA FPU ldx #FPU.]1 diff --git a/INCLUDE/string.h.txt b/INCLUDE/string.h.txt index 11ccf142..b5f2ef2c 100644 --- a/INCLUDE/string.h.txt +++ b/INCLUDE/string.h.txt @@ -2,12 +2,12 @@ NEW AUTO 3,1 int fastcall strlen(char*); -// char* strcat(char*,const char*); -// char* strcpy(char*,const char*); +char* strcat(char*,const char*); +char* strcpy(char*,const char*); char* fastcall strdup (char*); char* fastcall strupr (char*); char* fastcall strlwr (char*); -// int strcmp(const char *s1, const char *s2); -// int strcasecmp(const char *s1, const char *s2); +int strcmp(const char*,const char*); +int strcasecmp(const char*,const char *); MAN TEXT include/string.h diff --git a/LIB/LIBGUI.S.WND.txt b/LIB/LIBGUI.S.WND.txt index f33de96f..297b4e8e 100644 --- a/LIB/LIBGUI.S.WND.txt +++ b/LIB/LIBGUI.S.WND.txt @@ -10,8 +10,8 @@ WND.Init >PUSHBI 0 >LDYA L.DCB.GFX >STYA IOCTL+S.IOCTL.BUFPTR - lda #S.IOCTL.STATCODE.GETDCB - sta IOCTL+S.IOCTL.STATCODE + lda #S.IOCTL.S.GETDCB + sta IOCTL+S.IOCTL.S >PUSHB WND.Screen+S.OBJ.hPARENT >PUSHBI IOCTL.STATUS diff --git a/LIB/LIBTCPIP.S.CFG.txt b/LIB/LIBTCPIP.S.CFG.txt index 59fcae41..24822f3a 100644 --- a/LIB/LIBTCPIP.S.CFG.txt +++ b/LIB/LIBTCPIP.S.CFG.txt @@ -37,8 +37,8 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG >LDYA L.DCB.NIC >STYA IOCTL+S.IOCTL.BUFPTR - lda #S.IOCTL.STATCODE.GETDCB - sta IOCTL+S.IOCTL.STATCODE + lda #S.IOCTL.S.GETDCB + sta IOCTL+S.IOCTL.S ldx #IOCTL.STATUS jsr CFG.SET.IOCTL @@ -51,8 +51,8 @@ CFG.SET >PULLW ZPTmpPtr1 IPCFG dex bpl .4 - lda #S.IOCTL.CTRLCODE.SETDCB - sta IOCTL+S.IOCTL.CTRLCODE + lda #S.IOCTL.C.SETDCB + sta IOCTL+S.IOCTL.C ldx #IOCTL.CONTROL jsr CFG.SET.IOCTL diff --git a/LIB/LIBTCPIP.S.DNS.txt b/LIB/LIBTCPIP.S.DNS.txt index 3d1b6bf7..4cd6db6d 100644 --- a/LIB/LIBTCPIP.S.DNS.txt +++ b/LIB/LIBTCPIP.S.DNS.txt @@ -265,6 +265,7 @@ DNS.FIND.BY.NAME ldy #S.DNSCACHE.hNAME lda (ZPCachePtr),y >SYSCALL2 GetMemPtr + >PUSHYA >SYSCALL2 StrCaseCmp plx bcc .8 diff --git a/LIB/string.o.s.txt b/LIB/string.o.s.txt index e44b1654..28530a99 100644 --- a/LIB/string.o.s.txt +++ b/LIB/string.o.s.txt @@ -1,6 +1,6 @@ NEW AUTO 3,1 - .LIST ON + .LIST OFF .OP 65C02 .OR $2000 .TF lib/string.o @@ -12,12 +12,20 @@ NEW *-------------------------------------- >PSTR "strlen" .DA CODE.strlen + >PSTR "strcat" + .DA CODE.strcat + >PSTR "strcpy" + .DA CODE.strcpy >PSTR "strdup" .DA CODE.strdup >PSTR "strupr" .DA CODE.strupr >PSTR "strlwr" .DA CODE.strlwr + >PSTR "strcmp" + .DA CODE.strcmp + >PSTR "strcasecmp" + .DA CODE.strcasecmp .DA 0 *-------------------------------------- CODE.strlen .DA #CODE.strlen.L @@ -25,7 +33,15 @@ CODE.strlen .DA #CODE.strlen.L CODE.strlen.L .EQ *-CODE.strlen rts *-------------------------------------- +CODE.strcat .DA #CODE.strcat.L + >SYSCALL strcat +CODE.strcat.L .EQ *-CODE.strcat + rts *-------------------------------------- +CODE.strcpy .DA #CODE.strcpy.L + >SYSCALL strcpy +CODE.strcpy.L .EQ *-CODE.strcpy + rts *-------------------------------------- CODE.strdup .DA #CODE.strdup.L >SYSCALL strdup @@ -42,7 +58,15 @@ CODE.strlwr .DA #CODE.strlwr.L CODE.strlwr.L .EQ *-CODE.strlwr rts *-------------------------------------- +CODE.strcmp .DA #CODE.strcmp.L + >SYSCALL strcmp +CODE.strcmp.L .EQ *-CODE.strcmp + rts *-------------------------------------- +CODE.strcasecmp .DA #CODE.strcasecmp.L + >SYSCALL strcasecmp +CODE.strcasecmp.L .EQ *-CODE.strcasecmp + rts *-------------------------------------- MAN SAVE usr/src/lib/string.o.s diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index 20f1e4ff..6478de25 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -711,26 +711,26 @@ XRW.TrackSelect lda #2 lda XRW.ReqTrack bcc .50 -* lsr Track 160 -> 80+Carry -* pha + lsr Track 160 -> 80+Carry + pha -* lda #0 Carry = Head + lda #0 Carry = Head -* rol -* rol A = 0/2 + rol + rol A = 0/2 -* ora A2L -* tay y = n0/n2 + ora A2L + tay y = n0/n2 -* lda IO.D2.Ph0On,y -* lda IO.D2.Ph0On+4,y + lda IO.D2.Ph0On,y + lda IO.D2.Ph0On+4,y -* jsr XRW.Wait100usec + jsr XRW.Wait100usec -* lda IO.D2.Ph0Off,y -* lda IO.D2.Ph0Off+4,y + lda IO.D2.Ph0Off,y + lda IO.D2.Ph0Off+4,y -* pla + pla .50 sta XRW.ReqTrack2 diff --git a/SBIN/HTTPD.S.txt b/SBIN/HTTPD.S.txt index 48fc066e..c64a0db0 100644 --- a/SBIN/HTTPD.S.txt +++ b/SBIN/HTTPD.S.txt @@ -621,10 +621,12 @@ CS.RUN.REQ.GET ldy #0 cmp #'/' bne .4 + >PUSHEA.G REQ.FullPath >PUSHW ZPRootDirPtr - >LEA.G REQ.FullPath >SYSCALL StrCpy + >PUSHEA.G REQ.FullPath + ldy #1 lda (ZPPtr2),y bne .2 @@ -635,7 +637,6 @@ CS.RUN.REQ.GET ldy #0 .2 >LDYA ZPPtr2 .3 >PUSHYA - >LEA.G REQ.FullPath >SYSCALL StrCat rts diff --git a/SBIN/NETWORKD.S.txt b/SBIN/NETWORKD.S.txt index f31ecc14..5852d8fd 100644 --- a/SBIN/NETWORKD.S.txt +++ b/SBIN/NETWORKD.S.txt @@ -112,8 +112,8 @@ CS.INIT.DEV >PUSHBI 0 >LDYA L.DCB.NIC >STYA IOCTL+S.IOCTL.BUFPTR - lda #S.IOCTL.STATCODE.GETDCB - sta IOCTL+S.IOCTL.STATCODE + lda #S.IOCTL.S.GETDCB + sta IOCTL+S.IOCTL.S >PUSHB DevID >PUSHBI IOCTL.STATUS diff --git a/SHARED/X.CPMVRM.S.txt b/SHARED/X.CPMVRM.S.txt index f23c2921..40d6a844 100644 --- a/SHARED/X.CPMVRM.S.txt +++ b/SHARED/X.CPMVRM.S.txt @@ -393,18 +393,23 @@ CS.RUN.REG jsr CS.RUN.REG.MSG >PUSHYA ldy #hDstBasePath jsr CS.RUN.GetPathY - + >PUSHYA >SYSCALL StrCaseCmp bcs .3 not same dir, go copy/delete + jsr CS.RUN.Rename jsr CS.RUN.CheckErr bcs .9 + jmp CS.RUN.NEXT + .FIN .3 jsr CS.RUN.CopyStart bcc .4 + jsr CS.RUN.CheckErr bcs .9 + jmp CS.RUN.NEXT .FIN @@ -624,38 +629,48 @@ CS.RUN.CheckErr bcs .1 rts *-------------------------------------- CS.RUN.BuildFilePath - ldy #hSrcBasePath - jsr CS.RUN.GetPathY - >PUSHYA ldy #hSrcFullPath jsr CS.RUN.GetPathY >STYA ZPPtr1 - >SYSCALL StrCpy + >PUSHYA - >PUSHW ZPFileName - >LDYA ZPPtr1 - >SYSCALL StrCat - .DO X.COPY.TO.DEST=1 - ldy #hDstBasePath + ldy #hSrcBasePath jsr CS.RUN.GetPathY >PUSHYA + + >SYSCALL StrCpy + + >PUSHW ZPPtr1 + >PUSHW ZPFileName + >SYSCALL StrCat + + .DO X.COPY.TO.DEST=1 ldy #hDstFullPath jsr CS.RUN.GetPathY >STYA ZPPtr1 + >PUSHYA + + ldy #hDstBasePath + jsr CS.RUN.GetPathY + >PUSHYA + >SYSCALL StrCpy + >PUSHW ZPPtr1 + ldy #hDstFileName lda (pData),y beq .1 + >SYSCALL GetMemPtr >PUSHYA bra .2 + .1 >PUSHW ZPFileName -.2 >LDYA ZPPtr1 - >SYSCALL StrCat +.2 >SYSCALL StrCat .FIN rts *-------------------------------------- diff --git a/SHARED/X.FILEENUM.S.txt b/SHARED/X.FILEENUM.S.txt index 70bf6b2e..6f0688d0 100644 --- a/SHARED/X.FILEENUM.S.txt +++ b/SHARED/X.FILEENUM.S.txt @@ -484,8 +484,9 @@ EnterSubDirY lda (pData),y >STYA ZPPtr1 save full path jsr .1 Make sure ending with / + + >PUSHW ZPPtr1 >PUSHW ZPPtr2 - >LDYA ZPPtr1 >SYSCALL StrCat .1 jsr GetPtr1Len diff --git a/SHARED/X.SSC.DRV.S.txt b/SHARED/X.SSC.DRV.S.txt index 4cd21983..c783e163 100644 --- a/SHARED/X.SSC.DRV.S.txt +++ b/SHARED/X.SSC.DRV.S.txt @@ -404,11 +404,11 @@ DRV.CS.START cld .DA 0 end or relocation *-------------------------------------- STATUS jsr STATUS.CONTROL.Init - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne STATUS.DCB ldy #S.DIB-1 @@ -423,7 +423,7 @@ STATUS jsr STATUS.CONTROL.Init clc rts -STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB +STATUS.DCB cmp #S.IOCTL.S.GETDCB bne .3 ldy #S.DCB.COM-1 @@ -436,7 +436,7 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB clc rts -.3 cmp #S.IOCTL.STATCODE.EOF +.3 cmp #S.IOCTL.S.EOF bne STATUS.9 lda DIB+S.DIB.S @@ -473,9 +473,9 @@ STATUS.9 lda #MLI.E.BADCTL *-------------------------------------- CONTROL jsr STATUS.CONTROL.Init - ldy #S.IOCTL.CTRLCODE + ldy #S.IOCTL.C lda (ZPIOCTL),y - cmp #S.IOCTL.CTRLCODE.SETDCB + cmp #S.IOCTL.C.SETDCB bne STATUS.9 ldy #S.DCB.COM-1 diff --git a/SYS/KERNEL.S.ARG.txt b/SYS/KERNEL.S.ARG.txt index 574b8e91..7c3319dc 100644 --- a/SYS/KERNEL.S.ARG.txt +++ b/SYS/KERNEL.S.ARG.txt @@ -21,7 +21,7 @@ K.Shift jsr K.ArgV lda (ZPPtr1),y bne .1 -.2 jsr SHARED.AddYp1ToPtr1 +.2 jsr SHARED.AddYp12P1 ldy #$ff @@ -33,7 +33,7 @@ K.Shift jsr K.ArgV tya beq .8 - jsr SHARED.AddYp1ToPtr2 + jsr SHARED.AddYp12P2 bra .2 .8 ldy #S.PS.ARGC @@ -63,10 +63,10 @@ K.ArgV tax save requested arg# beq .9 yes, not found.... dex bmi .7 -.3 jsr SHARED.GetCharPtr2 skip str +.3 jsr SHARED.GetCP2 skip str bne .3 - jsr SHARED.NextCharPtr2 skip \0 + jsr SHARED.NextCP2 skip \0 bra .1 .7 >LDYA ZPPtr2 @@ -99,7 +99,7 @@ K.Arg2ArgV >PULLW ZPPtr2 Get target buffer ldx #0 Arg Count ldy #0 bInQuote -.1 jsr SHARED.GetCharPtr1 +.1 jsr SHARED.GetCP1 beq .8 cmp #C.SPACE @@ -120,18 +120,18 @@ K.Arg2ArgV >PULLW ZPPtr2 Get target buffer inx Found one arg !!! lda #0 set this token End - jsr SHARED.PutCharPtr2 + jsr SHARED.PutCP2 bra .1 .4 lda #C.SPACE -.6 jsr SHARED.PutCharPtr2 +.6 jsr SHARED.PutCP2 -.7 jsr SHARED.GetCharPtr1 +.7 jsr SHARED.GetCP1 bne .2 inx -.8 jsr SHARED.PutCharPtr2 set Argv[x] Ending 0 +.8 jsr SHARED.PutCP2 set Argv[x] Ending 0 sta (ZPPtr2) set Array Ending 0 phx @@ -182,15 +182,7 @@ K.ArgVDup >STYA ZPPtr1 >STYA ZPPtr2 phx - jsr ARG.Ptr1Ptr2cpy - - txa Count - plx hMem - - clc -.9 rts -*-------------------------------------- -ARG.Ptr1Ptr2cpy ldx #0 + ldx #0 ldy #0 .4 lda (ZPPtr1),y @@ -215,7 +207,12 @@ ARG.Ptr1Ptr2cpy ldx #0 .7 lda (ZPPtr1),y sta (ZPPtr2),y Ending \0 ? bne .5 - rts + + txa Count + plx hMem + + clc +.9 rts *-------------------------------------- MAN SAVE usr/src/sys/kernel.s.arg diff --git a/SYS/KERNEL.S.BIN.txt b/SYS/KERNEL.S.BIN.txt index 699f374e..fec74086 100644 --- a/SYS/KERNEL.S.BIN.txt +++ b/SYS/KERNEL.S.BIN.txt @@ -172,7 +172,7 @@ BIN.Load.1 >PUSHWI K.Buf256 >PUSHYA Push AUXTYPE jsr K.LoadFile - bcs BIN.Load.Free.RTS Error Loading file + bcs .9 Error Loading file stx BIN.hMem save hMem @@ -189,7 +189,7 @@ BIN.Load.1 >PUSHWI K.Buf256 jsr K.GetMemPtr >STYA ZPPtr1 set ZPPtr1 -> New Code start - jsr BIN.ComputeOffsetYA YA = actual load address + jsr BIN.CompOfsYA YA = actual load address jsr Mem.SetOwnerPS0 this CS is owned by PS 0 @@ -199,7 +199,7 @@ BIN.Load.1 >PUSHWI K.Buf256 iny lda (ZPPtr1),y ply - jsr BIN.ComputeCSEndYA + jsr BIN.CompCSEndYA jsr BIN.RelExe >LDYAI K.Buf256 get back bin path @@ -221,14 +221,14 @@ BIN.Load.1 >PUSHWI K.Buf256 clc jmp MEM.GetMEMPTR ...and Y,A=PTR to CS +.9 rts + BIN.Load.Free php pha lda BIN.hMem jsr K.FreeMem pla plp - -BIN.Load.Free.RTS rts Discard Loaded Code, exits CS */-------------------------------------- * # InsDrv @@ -247,7 +247,7 @@ BIN.Load.Free.RTS K.InsDrv >STYA ZPPtr3 SRC PTR for move >PULLW BIN.R.CS.Start >PULLYA DRV.CS.SIZE - jsr BIN.ComputeCSEndYA + jsr BIN.CompCSEndYA >PULLA BIN.R.End sta BIN.R.End sec @@ -265,7 +265,7 @@ K.InsDrv >STYA ZPPtr3 SRC PTR for move >STYA ZPPtr4 ...for move... sty .7+1 ...and for exit sta .8+1 - jsr BIN.ComputeOffsetYA + jsr BIN.CompOfsYA lda BIN.R.Size eor #$ff @@ -305,20 +305,20 @@ BIN.RelExe ldy #H.BIN.T+1 rts .1 ldy #H.BIN.JMP relocate Main JMP - jsr BIN.RelocateAtPtr1Y + jsr BIN.RelAtPtr1Y - ldy #H.BIN.EXE.REL.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes) + ldy #16 skip Header, CS.SIZE & DS.SIZE... (16 bytes) .HS 2C bit abs *-------------------------------------- -BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE +BIN.RelDrv ldy #2 start after CLD JMP .1 iny lda (ZPPtr1),y HI in A beq .2 $00xx = end of table dey - jsr BIN.RelocateAtPtr1Y + jsr BIN.RelAtPtr1Y iny bne .1 @@ -327,7 +327,7 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE bra .1 *-------------------------------------- -.2 jsr SHARED.AddYp1ToPtr1 add current offset in Y to Ptr +.2 jsr SHARED.AddYp12P1 add current offset in Y to Ptr * + 1 to skip last 00 from beq .2 * ZPPtr1=Current Code PTR lda BIN.R.CS.End @@ -353,11 +353,11 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE and #7 save Opcode length... pha ldy #1 - jsr BIN.RelocateAtPtr1Y + jsr BIN.RelAtPtr1Y pla get back Opcode length... .5 tay A = OPCODE length - jsr SHARED.AddYToPtr1 + jsr SHARED.AddY2P1 .6 cmp BIN.R.Stop A = ZPPtr1 bne .3 @@ -369,8 +369,7 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE clc Make sure exit with CC rts *-------------------------------------- YA = CS Size -BIN.ComputeCSEndYA - pha +BIN.CompCSEndYA pha tya clc adc BIN.R.CS.Start @@ -380,8 +379,7 @@ BIN.ComputeCSEndYA sta BIN.R.CS.End+1 rts *-------------------------------------- YA = Target Address -BIN.ComputeOffSetYA - pha +BIN.CompOfsYA pha tya sec sbc BIN.R.CS.Start @@ -391,8 +389,7 @@ BIN.ComputeOffSetYA sta BIN.R.Offset+1 rts *-------------------------------------- -BIN.RelocateAtPtr1Y - lda (ZPPtr1),y Get LO +BIN.RelAtPtr1Y lda (ZPPtr1),y Get LO tax save LO in X iny make Y point to HI lda (ZPPtr1),y Get HI diff --git a/SYS/KERNEL.S.BLISTX.txt b/SYS/KERNEL.S.BLISTX.txt index 1921c37b..41534eb9 100644 --- a/SYS/KERNEL.S.BLISTX.txt +++ b/SYS/KERNEL.S.BLISTX.txt @@ -1,18 +1,19 @@ NEW AUTO 3,1 *-------------------------------------- -ZPBLISTXIBlkPtr .EQ ZPMEMMGR+12 -ZPBLISTXDBlkPtr .EQ ZPMEMMGR+14 +IBlkPtr .EQ ZPMEMMGR+12 +DBlkPtr .EQ ZPMEMMGR+14 *-------------------------------------- -BLISTX.BytePtr .BS 1 -BLISTX.BlockPtr .BS 1 +KeyID .EQ * +iByte .BS 1 +iBlk .BS 1 *-------------------------------------- BLISTX.New >LDYAI 128 32k Max before out of memory!!! ldx #S.MEM.F.INIT0+8 index jsr MEM.GetMem.YAX bcs .9 - >STYA ZPBLISTXIBlkPtr + >STYA IBlkPtr stx .8+1 >LDYAI 256 @@ -20,12 +21,12 @@ BLISTX.New >LDYAI 128 32k Max before out of memory!!! jsr MEM.GetMem.YAX bcs .9 - >STYA ZPBLISTXDBlkPtr + >STYA DBlkPtr lda #0 - sta (ZPBLISTXDBlkPtr) + sta (DBlkPtr) txa - sta (ZPBLISTXIBlkPtr) + sta (IBlkPtr) .8 lda #$ff SELF MODIFIED .9 rts @@ -47,23 +48,21 @@ BLISTX.Free pha .8 pla jmp K.FreeMem *-------------------------------------- -BLISTX.GetNextByte - ldy BLISTX.BytePtr - lda (ZPBLISTXDBlkPtr),y -BLISTX.ToNextByte - inc BLISTX.BytePtr +BLISTX.GetNByte ldy iByte + lda (DBlkPtr),y + +BLISTX.2NByte inc iByte bne .8 pha - jsr BLISTX.ToNextBlock + jsr BLISTX.2NBlk pla .8 rts *-------------------------------------- -BLISTX.AddDataByte - phy - ldy BLISTX.BytePtr - sta (ZPBLISTXDBlkPtr),y - inc BLISTX.BytePtr +BLISTX.AddByte phy + ldy iByte + sta (DBlkPtr),y + inc iByte bne .8 phx @@ -72,13 +71,13 @@ BLISTX.AddDataByte jsr MEM.GetMem.YAX bcs .9 - >STYA ZPBLISTXDBlkPtr + >STYA DBlkPtr txa - inc BLISTX.BlockPtr - ldy BLISTX.BlockPtr - sta (ZPBLISTXIBlkPtr),y + inc iBlk + ldy iBlk + sta (IBlkPtr),y -* stz BLISTX.BytePtr +* stz iByte plx .8 ply @@ -89,20 +88,18 @@ BLISTX.AddDataByte ply rts *-------------------------------------- -BLISTX.SetBlockByte - ldy BLISTX.BytePtr - sta (ZPBLISTXDBlkPtr),y - inc BLISTX.BytePtr - bne BLISTX.ToNextBlock.RTS +BLISTX.SetBlkByte + ldy iByte + sta (DBlkPtr),y + inc iByte + bne BLISTX.RTS *-------------------------------------- -BLISTX.ToNextBlock - inc BLISTX.BlockPtr - ldy BLISTX.BlockPtr - lda (ZPBLISTXIBlkPtr),y +BLISTX.2NBlk inc iBlk + ldy iBlk + lda (IBlkPtr),y jsr K.GetMemPtr - >STYA ZPBLISTXDBlkPtr -BLISTX.ToNextBlock.RTS - rts + >STYA DBlkPtr +BLISTX.RTS rts *-------------------------------------- MAN SAVE usr/src/sys/kernel.s.blistx diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 3ff9bbe4..23e1f7a9 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -337,10 +337,12 @@ CORE.Dispatch ldx #1 skip PS0 * X unmodified *-------------------------------------- CORE.GetPSByID jsr CORE.GetPS - bcs CORE.GetPS.RTS + bcs .9 lda PS.TABLE.hPS,y jmp K.GetMemPtr + +.9 rts *-------------------------------------- * X,A unmodified *-------------------------------------- @@ -362,7 +364,7 @@ CORE.GetPS tay rts .8 clc -CORE.GetPS.RTS rts + rts *-------------------------------------- *CORE.DumpEvent ldy #S.EVT-1 *.1 >PUSHB (pEvent),y @@ -470,35 +472,6 @@ CORE.PSResume sei inc IRQ.InKernel rti *-------------------------------------- -GP.RomCall.JmpX jmp (.1-FPU.FADD,x) -*-------------------------------------- -* http://www.txbobsc.com/scsc/scdocumentor/E7A0.html -*-------------------------------------- -.1 .DA $E7C1 FADDT - .DA $E7AA FSUBT - .DA $E987 FMULTT.1 - .DA $EA6B FDIVT+2 - .DA $EE97 FPWRT - - .DA $E941 LOG - .DA $EE8D SQR - .DA $EF09 EXP - .DA $EFEA COS - .DA $EFF1 SIN - .DA $F03A TAN - .DA $F09E ATN -*-------------------------------------- - .DA $E9E3 LOAD.ARG.FROM.YA - .DA $EAF9 LOAD.FAC.FROM.YA - .DA $EB27 SETFOR (GETFAC) - .DA $EBB2 FCOMP (Y,A with FAC) - - .DA $E82E NORMALIZE.FAC.2 (L->F) - .DA $EBF2 QINT (F->L) - - .DA $EC4A FIN AToF - .DA $ED36 FOUT.1 PrintF -*-------------------------------------- CORE.VBLState .BS 1 CORE.TickPerSec .BS 1 CORE.TickPer10t .BS 1 diff --git a/SYS/KERNEL.S.CTRL.txt b/SYS/KERNEL.S.CTRL.txt index 9a957c52..2ba4861f 100644 --- a/SYS/KERNEL.S.CTRL.txt +++ b/SYS/KERNEL.S.CTRL.txt @@ -9,13 +9,12 @@ C1 .EQ Mem.MHiMem C2 .EQ Mem.XLoMem C3 .EQ Mem.XHiMem *-------------------------------------- -C4 .EQ A2osX.GP.SC -C5 .EQ A2osX.AUX.S +C4 .EQ GP.CE-GP.CS +C5 .EQ AUX.S *-------------------------------------- -C6 .EQ A2osX.D1.S -C7 .EQ A2osX.D2.S -C8 .EQ A2osX.E0.S -C9 .EQ DevMgr.FreeMem +C6 .EQ D1.S +C7 .EQ D2.S +C8 .EQ E0.S *-------------------------------------- .LIST OFF .DO Mem.MLoMem>$2000 @@ -28,17 +27,17 @@ C9 .EQ DevMgr.FreeMem * ERROR:AUX too big .LIST OFF .FIN - .DO A2osX.GP.SC>$1D0 + .DO C4>$1D0 .LIST ON * ERROR:GP too big .LIST OFF .FIN - .DO A2osX.D1.S>$1000 + .DO D1.S>$1000 .LIST ON * ERROR:BNK1 too big .LIST OFF .FIN - .DO A2osX.D2.S>$1000 + .DO D2.S>$1000 .LIST ON * ERROR:BNK2 too big .LIST OFF diff --git a/SYS/KERNEL.S.DEF.txt b/SYS/KERNEL.S.DEF.txt index 16fe18a3..9a1a09bc 100644 --- a/SYS/KERNEL.S.DEF.txt +++ b/SYS/KERNEL.S.DEF.txt @@ -119,10 +119,10 @@ IO.hFD .BS 1 IO.hDevNod .BS 1 .ED *-------------------------------------- -A2osX.SaveSM .EQ $100 Aux -A2osX.SaveSX .EQ $101 Aux -A2osX.NumStrLen .EQ $102 Aux -A2osX.NumStrBuf .EQ $103 Aux +SaveSM .EQ $100 Aux +SaveSX .EQ $101 Aux +*FOUTBufPtr .EQ $102 Aux +FOUTBuf .EQ $103 Aux *-------------------------------------- * Main $200 -> 2FF : (Used By ProDOS,Clock DRV....) * Main $300 -> 3EF : @@ -186,21 +186,15 @@ H.BIN.CS.SIZE .EQ 8 H.BIN.DS.SIZE .EQ 10 H.BIN.SS.SIZE .EQ 12 H.BIN.ZP.SIZE .EQ 13 -* -H.BIN.EXE.REL.TABLE .EQ 16 -* -H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp -*-------------------------------------- -TTY.BUF.SIZE .EQ 80*24 *-------------------------------------- S.DCB.TTY.DEVID .EQ 0 -S.DCB.TTY.STATUS .EQ 1 -S.DCB.TTY.MODE .EQ 2 -S.DCB.TTY.MODE.ESC .EQ 2 -S.DCB.TTY.MODE.CSI .EQ 4 -S.DCB.TTY.MODE.IAC .EQ 6 -S.DCB.TTY.MODE.G0 .EQ 8 -S.DCB.TTY.MODE.G1 .EQ 10 +S.DCB.TTY.S .EQ 1 +S.DCB.TTY.M .EQ 2 +S.DCB.TTY.M.ESC .EQ 2 +S.DCB.TTY.M.CSI .EQ 4 +S.DCB.TTY.M.IAC .EQ 6 +S.DCB.TTY.M.G0 .EQ 8 +S.DCB.TTY.M.G1 .EQ 10 S.DCB.TTY.CH .EQ 3 S.DCB.TTY.CH.SAVE .EQ 4 S.DCB.TTY.CV .EQ 5 diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index b5484e4f..be674f47 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -59,7 +59,7 @@ K.GetDevByName >STYA ZPPtr1 requested dev name lda Nod.Table.hFD-2,x jsr K.GetMemPtr Y,A = pPD, X = hDevNod - >STYA pFD for UNISTD.Open + >STYA pFD for IO.Open * clc rts @@ -107,10 +107,10 @@ K.GetDevStatus >PULLW K.S.IOCTL+S.IOCTL.BUFPTR jsr DEV.GetPFD bcs K.GetDev.9 - lda #S.IOCTL.STATCODE.GETDIB + lda #S.IOCTL.S.GETDIB *-------------------------------------- DEV.GetDevStatus - sta K.S.IOCTL+S.IOCTL.STATCODE + sta K.S.IOCTL+S.IOCTL.S ldy #S.FD.DEV.DEVID lda (pFD),y @@ -132,8 +132,7 @@ DEV.pDrvJmp jmp (pDrv) * ## RETURN VALUE * A = hDEV *\-------------------------------------- -K.MKDev >PULLW ZPPtr2 ptr2=name - >PULLW ZPPtr1 ptr1=fd +K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd ldx #1 @@ -193,7 +192,7 @@ K.MKDev >PULLW ZPPtr2 ptr2=name jsr DEV.GetPDrv - lda #S.IOCTL.STATCODE.STATUS + lda #S.IOCTL.S.STATUS jsr DEV.GetDevStatus bcs .99 diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index d5a2e19a..4fc3bf08 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -49,7 +49,7 @@ K.ReadDir.hBuf .BS 1 .ED *-------------------------------------- K.ReadDir jsr PFT.CheckNodeA - bcs K.ReadDir.RTS + bcs DIRENT.RTS ldy #S.FD.REG.REF lda (pFD),y @@ -60,14 +60,14 @@ K.ReadDir jsr PFT.CheckNodeA jmp K.ReadDir.DEV .1 jmp K.ReadDir.DIR -K.ReadDir.NoMore - lda #MLI.E.EOF + +DIRENT.EOF lda #MLI.E.EOF sec -K.ReadDir.RTS rts +DIRENT.RTS rts *-------------------------------------- K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ? lda (pFD),y - bne K.ReadDir.NoMore + bne DIRENT.EOF stz K.MLI.PARAMS+1 All Volumes >LDYAI K.Buf256 @@ -75,12 +75,12 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ? >STYA ZPPtr2 >MLICALL MLIONLINE - bcs K.ReadDir.RTS + bcs DIRENT.RTS >LDYAI 16+S.STAT*18+1 14*(Vols+Stat) + 4*(PFT+Stat) + \0 jsr K.ReadDir.GetBufYA - bcs K.ReadDir.RTS + bcs DIRENT.RTS lda #16 sta K.ReadDir.EC @@ -186,8 +186,7 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ? sta (pFD),y Flag that we returned something for next time jmp K.ReadDir.EXIT *-------------------------------------- -K.ReadDir.DEV - jmp K.ReadDir.NoMore +K.ReadDir.DEV jmp DIRENT.EOF TODO : /dev *-------------------------------------- K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF diff --git a/SYS/KERNEL.S.DRV.txt b/SYS/KERNEL.S.DRV.txt index 658db859..7c19449e 100644 --- a/SYS/KERNEL.S.DRV.txt +++ b/SYS/KERNEL.S.DRV.txt @@ -11,12 +11,11 @@ DRV.DiskII cld >STYA pIOCTL jmp (.1,x) -.1 .DA DRV.DiskII.STATUS +.1 .DA DRV.DiskII.S .DA DRV.BLK READ .DA DRV.BLK WRITE *-------------------------------------- -DRV.DiskII.STATUS - >LDYAI DRV.DiskII.DIB +DRV.DiskII.S >LDYAI DRV.DiskII.DIB jmp DRV.STATUS.YA *-------------------------------------- DRV.DiskII.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ @@ -37,15 +36,15 @@ DRV.RamDrive cld bcs DRV.RamDrive.9 >STYA pIOCTL jmp (.1,x) -.1 .DA DRV.RamDrive.STATUS +.1 .DA DRV.RamDrive.S .DA DRV.BLK READ .DA DRV.BLK WRITE .DA DRV.BLK FORMAT DRV.RamDrive.9 jmp A2osX.BadCall *-------------------------------------- -DRV.RamDrive.STATUS - jsr DRV.Blk +DRV.RamDrive.S jsr DRV.Blk bcs .9 + stx DRV.RamDrive.DIB+S.DIB.SIZE sty DRV.RamDrive.DIB+S.DIB.SIZE+1 >LDYAI DRV.RamDrive.DIB @@ -70,14 +69,14 @@ DRV.BlkDev cld bcs DRV.RamDrive.9 >STYA pIOCTL jmp (.1,x) -.1 .DA DRV.BlkDev.STATUS +.1 .DA DRV.BlkDev.S .DA DRV.BLK READ .DA DRV.BLK WRITE .DA DRV.BLK FORMAT *-------------------------------------- -DRV.BlkDev.STATUS - jsr DRV.Blk +DRV.BlkDev.S jsr DRV.Blk bcs .9 + stx DRV.BlkDev.DIB+S.DIB.SIZE sty DRV.BlkDev.DIB+S.DIB.SIZE+1 @@ -190,7 +189,7 @@ DRV.SmartPort.Cnt DRV.NULL cld >STYA pIOCTL txa - beq DRV.NULL.STATUS + beq DRV.NULL.S jmp (.1-12,x) *-------------------------------------- .1 @@ -202,7 +201,7 @@ DRV.NULL cld * .DA A2osX.BADCALL INIT .DA DRV.CLCRTS OPEN .DA DRV.CLCRTS CLOSE - .DA DRV.NULL.READ + .DA DRV.NULL.R .DA DRV.CLCRTS WRITE *-------------------------------------- DRV.NULL.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.OPENED @@ -213,15 +212,15 @@ DRV.NULL.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.OPENED .DA #0 .DA K.VER *-------------------------------------- -DRV.NULL.STATUS >LDYAI DRV.NULL.DIB +DRV.NULL.S >LDYAI DRV.NULL.DIB *-------------------------------------- DRV.STATUS.YA >STYA .2+1 - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (pIOCTL),y beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne .9 ldx #S.DIB-1 @@ -247,7 +246,7 @@ DRV.STATUS.YA >STYA .2+1 sec rts *-------------------------------------- -DRV.NULL.READ ldx #C.EOF +DRV.NULL.R ldx #C.EOF ldy #S.IOCTL.BYTECNT lda #1 diff --git a/SYS/KERNEL.S.ENVX.txt b/SYS/KERNEL.S.ENVX.txt index 07bfa5d3..cee58422 100644 --- a/SYS/KERNEL.S.ENVX.txt +++ b/SYS/KERNEL.S.ENVX.txt @@ -14,7 +14,7 @@ ENVX.PutEnv sta ENVX.hEnv ldy #$ff .1 iny - jsr SHARED.TXTPTR.GetY NAME= + jsr SHARED.TXTPTRgY NAME= beq ENVX.PutEnv.9 cmp #'=' @@ -51,7 +51,7 @@ ENVX.SetEnv.I .15 ldy #$ff .16 iny - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY beq .17 jsr SHARED.IsIDValid @@ -62,7 +62,7 @@ ENVX.SetEnv.I ldy #$ff .19 iny - jsr SHARED.FORPNT.getY + jsr SHARED.FORPNTgY bne .19 jsr ENVX.NextEnvP4Y ZPPtr4 = ENVSIZE + VALUE @@ -115,7 +115,7 @@ ENVX.SetEnv.I .22 ldy #$ff .23 iny - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY sta (ZPPtr3),y beq .24 jsr SHARED.IsIDValid @@ -128,7 +128,7 @@ ENVX.SetEnv.I ldy #$ff .25 iny - jsr SHARED.FORPNT.getY + jsr SHARED.FORPNTgY sta (ZPPtr3),y bne .25 @@ -192,7 +192,7 @@ ENVX.GetEnv sta ENVX.hEnv .4 iny lda (ZPPtr3),y - jsr SHARED.FORPNT.PutY + jsr SHARED.FORPNTpY bne .4 >LDYA FORPNT @@ -236,7 +236,7 @@ ENVX.FindEnvVar jsr ENVX.InitEnvP3 Store ENV ldy #$ff .2 iny - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY beq .3 jsr SHARED.IsIDValid @@ -270,7 +270,7 @@ ENVX.FindSIDVar >LDYAI ENVX.SIDVars ldy #$ff .2 iny - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY beq .3 jsr SHARED.IsIDValid @@ -348,7 +348,7 @@ ENVX.SIDVarsGID ldx #S.SESSION.GID jsr MATH.A2STR10NP - >LDYAI A2osX.NumStrBuf + >LDYAI FOUTBuf clc rts diff --git a/SYS/KERNEL.S.ERROR.txt b/SYS/KERNEL.S.ERROR.txt index 84a70e43..b09dcdcb 100644 --- a/SYS/KERNEL.S.ERROR.txt +++ b/SYS/KERNEL.S.ERROR.txt @@ -1,18 +1,17 @@ NEW AUTO 3,1 *-------------------------------------- -* GetErrorMessage +* GetErrMsg * In : * Out : *-------------------------------------- -K.GetErrorMessage - >PULLW ZPPtr2 Dst Buf +K.GetErrMsg >PULLW ZPPtr2 Dst Buf >PULLA Err Code sta SETREADAUX sta SETWRITEAUX - jsr ERRORX.GetErrorMessage + jsr ERRORX.GetErrMsg sta CLRREADAUX rts diff --git a/SYS/KERNEL.S.ERRORX.txt b/SYS/KERNEL.S.ERRORX.txt index 40e86c61..d50b8255 100644 --- a/SYS/KERNEL.S.ERRORX.txt +++ b/SYS/KERNEL.S.ERRORX.txt @@ -1,7 +1,7 @@ NEW AUTO 3,1 *-------------------------------------- -ERRORX.GetErrorMessage +ERRORX.GetErrMsg ldx #ERRORX.MSG stx ZPPtr1 ldx /ERRORX.MSG diff --git a/SYS/KERNEL.S.FS.txt b/SYS/KERNEL.S.FS.txt index b5a856b3..73c42dd8 100644 --- a/SYS/KERNEL.S.FS.txt +++ b/SYS/KERNEL.S.FS.txt @@ -110,7 +110,7 @@ FS.CLOSE.DIR ldy #S.FD.REG.REF sta K.MLI.PARAMS+1 >MLICALL MLICLOSE -* bcs IO.WRITE.REG.RTS +* bcs FS.RTS .1 ldy #S.FD.REG.IOBUF lda (pFD),y @@ -198,13 +198,13 @@ FS.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF * clc .9 -FS.MLIOPEN.RTS rts +FS.RTS rts *-------------------------------------- FS.Stat bit A2osX.FSID bmi FS.Stat.FX FS.Stat.203 >MLICALL MLIGETFILEINFO - bcs FS.MLIOPEN.RTS + bcs FS.RTS jsr FS.ClrStat diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 0c554b1b..e3e1af8b 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -7,7 +7,7 @@ NEW * X = SYSfnc.Index * Y,A = free for Inline param *-------------------------------------- -GP.CodeStart jmp GP.SysCall +GP.CS jmp GP.SysCall *-------------------------------------- * LIBCALL (AUXLC to AUXLC) * Used by user @@ -189,7 +189,7 @@ GP.AtkCall dec IRQ.InKernel jsr GO.A2osX -GP.AtkCall.INC inc IRQ.InKernel + inc IRQ.InKernel rts */-------------------------------------- * # Add32,Sub32,Mul32,IMul32,Div32,IDiv32,Mod32,IMod32,Cmp32,ICmp32 @@ -204,28 +204,33 @@ GP.AtkCall.INC inc IRQ.InKernel * On stack (long) *\-------------------------------------- GP.FpuCall dec IRQ.InKernel - cpx #FPU.FADD + cpx #FPU.FMUL bcs .1 - jsr MATH INT32, direct JMP - bra GP.AtkCall.INC + jsr MATH math16 & math32, direct JMP + + inc IRQ.InKernel + rts .1 phx jsr GP.SetFAC Get float from stack plx cpx #FPU.PWR+1 - bcs GP.RomCallGetFacOnStack + bcs GP.GetFAC */-------------------------------------- -* # FAdd,FSub,FMult,FDiv,FPwr -* Return X+Y, X-Y, X*Y, X/Y, X^Y +* # FAdd,FSub,FMul,FDiv,FPwr +* Return X*Y, X/Y, X+Y, X-Y +* ## C +* `float pwr ( float x, float y);` * ## ASM * **In:** * `>PUSHF X (float)` * `>PUSHF Y (float)` +* `>FPU fmul` +* `>FPU fdiv` +* `>FPU fmod` TODO * `>FPU fadd` * `>FPU fsub` -* `>FPU fmult` -* `>FPU fdiv` * `>FPU fpwr` * ## RETURN VALUE * On stack (float) @@ -255,8 +260,7 @@ GP.FpuCall dec IRQ.InKernel * ## RETURN VALUE * On stack (Float) *\-------------------------------------- -GP.RomCallGetFacOnStack - jsr GP.ROMCALL +GP.GetFAC jsr GP.ROMCALL lda pStack ldy pStack+1 @@ -270,7 +274,7 @@ GP.RomCall phx bit RROMBNK1 plx - jsr GP.RomCall.JmpX + jsr MATHF .8 ldx #$ff bit $C000,x @@ -308,7 +312,7 @@ GP.Float ldy #3 sta FAC Positive + Exp=32 ldx #FPU.LTOF - bra GP.RomCallGetFacOnStack + bra GP.GetFAC */-------------------------------------- * # lrintf * Return float rounded into a long @@ -373,8 +377,8 @@ GO.A2osX php * bit RRAMWRAMBNK1 tsx - stx A2osX.SaveSX - ldx A2osX.SaveSM + stx SaveSX + ldx SaveSM txs sta CLRALTZP bra GO.EXIT @@ -385,8 +389,8 @@ GO.A2osX.BNK ldx #RRAMWRAMBNK1 Self Modified, initialized to BNK1 for INIT3 * bit $C000,x sta SETALTZP tsx - stx A2osX.SaveSM - ldx A2osX.SaveSX + stx SaveSM + ldx SaveSX txs *-------------------------------------- GO.EXIT pha push P on stack @@ -410,15 +414,15 @@ GP.IRQ cld sta SETALTZP switch to aux LC tsx - stx A2osX.SaveSM - ldx A2osX.SaveSX + stx SaveSM + ldx SaveSX txs GP.IRQ.JSR jsr CORE.IRQ.DEV SELF MODIFIED tsx go back to Main - stx A2osX.SaveSX - ldx A2osX.SaveSM + stx SaveSX + ldx SaveSM txs sta CLRALTZP rts @@ -432,7 +436,7 @@ GP.IRQ.Exit stz IRQ.Skip reset flag *-------------------------------------- *BrkHandler bra * *-------------------------------------- -GP.CodeEnd .BS $BED0-* +GP.CE .BS $BED0-* *-------------------------------------- * $BED0->$BEEF : Public Variables *-------------------------------------- @@ -446,7 +450,6 @@ GP.CodeEnd .BS $BED0-* .DA #0 ChRoot/Preemptive Disabled .HS 00000000000000 All Slots marked as "Free" *-------------------------------------- -GP.End .EQ * MAN SAVE usr/src/sys/kernel.s.gp LOAD usr/src/sys/kernel.s diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 03d7565a..9cd2e9de 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -6,8 +6,8 @@ Kernel.Init2 sei txs sta SETALTZP - stx A2osX.SaveSM - stx A2osX.SaveSX + stx SaveSM + stx SaveSX ldx #Kernel.ZP.S-1 @@ -35,10 +35,10 @@ Kernel.Init2 sei >LDYAI Mem.XHiMem >STYA ZPPtr2 - lda #A2osX.AUX.S + lda #AUX.S eor #$ff tax - lda /A2osX.AUX.S + lda /AUX.S eor #$ff pha @@ -224,7 +224,7 @@ KConfigLoad >LDYAI MSG.KCREAD jsr MLIENTRY Bypass ATALK .DA #MLIGETFILEINFOEX - .DA MLIGETFILEINFOEX00 + .DA pMLIGFIEX bcc .1 eor #MLI.E.BADCALL beq .2 regular ProDOS @@ -237,20 +237,20 @@ KConfigLoad >LDYAI MSG.KCREAD .2 jsr MLI .DA #MLIOPEN - .DA MLIOPEN00 + .DA pMLIOPEN bcs .9 - lda MLIOPEN00+5 - sta MLIREAD00+1 - sta MLICLOSE00+1 + lda pMLIOPEN+5 + sta pMLIREAD+1 + sta pMLICLOSE+1 jsr MLI .DA #MLIREAD - .DA MLIREAD00 + .DA pMLIREAD php pha jsr MLI .DA #MLICLOSE - .DA MLICLOSE00 + .DA pMLICLOSE pla plp bcs .9 @@ -358,13 +358,13 @@ SysScrInit >LDYAI Mem.XHiMem SysScrInit.TTYPtrs lda FD.TTY+S.FD.DEV.DCBPTR sec - sbc #TTY.BUF.SIZE+S.DCB.TTY + sbc #80*24+S.DCB.TTY sta FD.TTY+S.FD.DEV.DCBPTR sta .1+1 tay lda FD.TTY+S.FD.DEV.DCBPTR+1 - sbc /TTY.BUF.SIZE+S.DCB.TTY + sbc /80*24+S.DCB.TTY sta FD.TTY+S.FD.DEV.DCBPTR+1 sta .1+2 @@ -1100,14 +1100,14 @@ EvtMgrInit >LDYAI MSG.EVT lda /Evt.Table sta pEvent+1 clc -EvtMgrInit.RTS rts + rts *-------------------------------------- TskMgrInit >LDYAI MSG.TSK >SYSCALL2 puts >LDYAI K.ENV.SIZE get a buffer for ENV >SYSCALL NewStkObj Buffer in AUX mem - bcs EvtMgrInit.RTS + bcs .99 >STYA ZPPtr1 @@ -1139,7 +1139,7 @@ TskMgrInit >LDYAI MSG.TSK >LDYAI $2E0 Get ROOT from QC >SYSCALL2 strdup - bcs .9 +.99 bcs .9 txa ldy #S.PS.hCWD @@ -1148,7 +1148,7 @@ TskMgrInit >LDYAI MSG.TSK >PUSHWI I.ENV.BOOT >PUSHWI $2C0 Get BOOT from QC >SYSCALL2 SetEnv -.99 bcs .9 + bcs .9 >PUSHWI I.ENV.ROOT >PUSHWI $2E0 Get ROOT from QC @@ -1293,24 +1293,23 @@ I.ENV.DRV .AZ "DRV=${BOOT}drv/" SBININITD .AZ "${ROOT}sbin/initd" .DA #0 end of ARGV for ExecV *-------------------------------------- -MLIGETFILEINFOEX00 - .DA #2 - .DA MLIOPEN00.FN +pMLIGFIEX .DA #2 + .DA FNKConfig .BS S.FIEX *-------------------------------------- -MLIOPEN00 .DA #3 - .DA MLIOPEN00.FN +pMLIOPEN .DA #3 + .DA FNKConfig .DA $B000 .BS 1 -MLIOPEN00.FN >PSTR "A2osX.kconfig" +FNKConfig >PSTR "A2osX.kconfig" *-------------------------------------- -MLIREAD00 .DA #4 +pMLIREAD .DA #4 .BS 1 .DA A2osX.KCONFIG .DA 16 .BS 2 *-------------------------------------- -MLICLOSE00 .DA #1 +pMLICLOSE .DA #1 .BS 1 *-------------------------------------- FD.NULL .DA #S.FD.T.CDEV diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 55be9977..9bd78a38 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -68,7 +68,7 @@ K.SYSCALL .DA K.ChTyp $00 : STAT .DA K.Shift $68 : ARG .DA K.ArgV .DA K.ArgVDup - .DA K.GetErrorMessage + .DA K.GetErrMsg .DA K.AToF $70 : STDLIB .DA K.AToI diff --git a/SYS/KERNEL.S.JMPX.txt b/SYS/KERNEL.S.JMPX.txt index 0e15e4bd..f412f0a7 100644 --- a/SYS/KERNEL.S.JMPX.txt +++ b/SYS/KERNEL.S.JMPX.txt @@ -30,15 +30,15 @@ KX.SYSCALL .DA STRVX.StrVNew .DA PWDX.OpenSession .DA PWDX.CloseSession - .DA SLISTX.SListGetData - .DA SLISTX.SListAddData - .DA SLISTX.SListSetData - .DA SLISTX.SListGetByID + .DA SLISTX.GetData + .DA SLISTX.AddData + .DA SLISTX.SetData + .DA SLISTX.GetByID - .DA SLISTX.SListNewKey - .DA SLISTX.SListLookup - .DA SLISTX.SListFree - .DA SLISTX.SListNew + .DA SLISTX.NewKey + .DA SLISTX.Lookup + .DA BLISTX.Free + .DA BLISTX.New *-------------------------------------- MAN SAVE usr/src/sys/kernel.s.jmpx diff --git a/SYS/KERNEL.S.MATH.txt b/SYS/KERNEL.S.MATH.txt index 3d6c5826..741fb70b 100644 --- a/SYS/KERNEL.S.MATH.txt +++ b/SYS/KERNEL.S.MATH.txt @@ -2,26 +2,97 @@ NEW AUTO 3,1 *-------------------------------------- MATH jmp (.1,x) -.1 .DA M16.ADD +.1 .DA M16.uMUL + .DA M16.uDIV + .DA M16.uMOD + .DA M16.ADD .DA M16.SUB - .DA M16.UMUL - .DA M16.IMUL - .DA M16.UDIV - .DA M16.IDIV - .DA M16.UMOD - .DA M16.IMOD - .DA M16.CMP UCMP - .DA M16.CMP ICMP + + .DA M16.SHL + .DA M16.SHR + + .DA M16.L + .DA M16.LE + .DA M16.G + .DA M16.GE + .DA M16.E + .DA M16.NE + + .DA M16.AND + .DA M16.OR + .DA M16.XOR + + .DA M16.LAND + .DA M16.LOR +*-------------------------------------- + .DA M16.iMUL + .DA M16.iDIV + .DA M16.iMOD + .DA M16.ADD + .DA M16.SUB + + .DA M16.SHL + .DA M16.SHR + + .DA M16.L + .DA M16.LE + .DA M16.G + .DA M16.GE + .DA M16.E + .DA M16.NE + + .DA M16.AND + .DA M16.OR + .DA M16.XOR + + .DA M16.LAND + .DA M16.LOR +*-------------------------------------- + .DA M32.uMUL + .DA M32.uDIV + .DA M32.uMOD .DA M32.ADD .DA M32.SUB - .DA M32.UMUL - .DA M32.IMUL - .DA M32.UDIV - .DA M32.IDIV - .DA M32.UMOD - .DA M32.IMOD - .DA M32.CMP UCMP - .DA M32.CMP ICMP + + .DA M32.SHL + .DA M32.SHR + + .DA M32.L + .DA M32.LE + .DA M32.G + .DA M32.GE + .DA M32.E + .DA M32.NE + + .DA M32.AND + .DA M32.OR + .DA M32.XOR + + .DA M32.LAND + .DA M32.LOR +*-------------------------------------- + .DA M32.iMUL + .DA M32.iDIV + .DA M32.iMOD + .DA M32.ADD + .DA M32.SUB + + .DA M32.SHL + .DA M32.SHR + + .DA M32.L + .DA M32.LE + .DA M32.G + .DA M32.GE + .DA M32.E + .DA M32.NE + + .DA M32.AND + .DA M32.OR + .DA M32.XOR + + .DA M32.LAND + .DA M32.LOR *-------------------------------------- MATH.A2STR10NP ldx #3 3 digit max ldy #0 Disable Padding @@ -38,14 +109,14 @@ MATH.ACC322STR10 stx .5+1 Pad Len sty .81+1 Pad Char - stz A2osX.NumStrLen + stz FOUTBuf-1 bcc .1 clc lda ACC32+3 bpl .1 - jsr M32.nACC32 + jsr M32.nACC sec .1 ror ACC32.Sign Save sign @@ -59,6 +130,7 @@ MATH.ACC322STR10 sed switch to BCD mode ldx #32 let's roll 32 bits + .3 jsr MATH.ACC32x2 ldy #4 @@ -126,9 +198,9 @@ MATH.ACC322STR10 lda #0 -.88 ldy A2osX.NumStrLen - inc A2osX.NumStrLen - sta A2osX.NumStrBuf,y +.88 ldy FOUTBuf-1 + inc FOUTBuf-1 + sta FOUTBuf,y rts *-------------------------------------- * Convert Hex int at ZPPtr2 to ACC32 @@ -136,7 +208,7 @@ MATH.ACC322STR10 MATH.Hex2ACC32 lda (ZPPtr2) beq .9 - jsr SHARED.IsHexDigit + jsr .80 bcs .9 jsr M32.A2ACC32 @@ -147,7 +219,7 @@ MATH.Hex2ACC32 lda (ZPPtr2) lda (ZPPtr2),y beq .8 - jsr SHARED.IsHexDigit + jsr .80 bcs .8 pha @@ -166,6 +238,29 @@ MATH.Hex2ACC32 lda (ZPPtr2) rts .9 sec +.99 rts +*-------------------------------------- +.80 jsr ZP.IsDigit + bcc .88 + + cmp #'A' + bcc .9 + + cmp #'F'+1 + bcc .81 + + cmp #'a' + bcc .9 + + cmp #'f'+1 + bcs .99 + + eor #$20 +.81 +* clc + sbc #'A'-11 cc so A->10 (11-CC) + clc +.88 and #$0F rts *-------------------------------------- * Convert Decimal int at ZPPtr2 to ACC32 @@ -176,7 +271,7 @@ MATH.Dec2ACC32 jsr M32.ACC32Z eor #'-' bne .10 - jsr SHARED.NextCharPtr2 skip '-' + jsr SHARED.NextCP2 skip '-' sec .10 ror .80+1 set pos/neg flag @@ -218,7 +313,7 @@ MATH.Dec2ACC32 jsr M32.ACC32Z bpl .88 phy - jsr M32.nACC32 + jsr M32.nACC ply .88 clc @@ -251,6 +346,13 @@ MATH.ACC32x2 asl ACC32 rol ACC32+3 rts *-------------------------------------- +MATH.CMPT .DA #%100 L + .DA #%110 LE + .DA #%001 G + .DA #%011 GE + .DA #%010 E + .DA #%101 NE +*-------------------------------------- MAN SAVE usr/src/sys/kernel.s.math LOAD usr/src/sys/kernel.s diff --git a/SYS/KERNEL.S.MATH16.txt b/SYS/KERNEL.S.MATH16.txt index 0b651271..f0b43858 100644 --- a/SYS/KERNEL.S.MATH16.txt +++ b/SYS/KERNEL.S.MATH16.txt @@ -1,6 +1,12 @@ NEW AUTO 3,1 *-------------------------------------- +M16.AND lda #$32 AND (zp) + .HS 2C BIT ABS +M16.OR lda #$12 ORA (zp) + .HS 2C BIT ABS +M16.XOR lda #$52 EOR (zp) + .HS 2C BIT ABS M16.ADD lda #$72 ADC (zp) .HS 2C BIT ABS M16.SUB lda #$F2 SBC (zp) @@ -22,30 +28,99 @@ M16.SUB lda #$F2 SBC (zp) rts *-------------------------------------- -* Returns: -* ff X < Y -* 0 X = Y -* 1 X > Y -*-------------------------------------- -*M16.UCMP -*M16.ICMP -M16.CMP jsr M16.SUB - - tay A = HI byte - bmi .2 +M16.SHL sec + .HS 90 BCC +M16.SHR clc -.1 ora (pStack) LO byte + lda (pStack) + inc pStack + inc pStack + + tax beq .8 - lda #1 + ldy #1 + + bcc .3 + +.1 lda (pStack) + asl + sta (pStack) + + lda (pStack),y + rol + sta (pStack),y + + dex + bne .1 + +.8 rts +*-------------------------------------- +.3 lda (pStack),y + lsr + sta (pStack),y + + lda (pStack) + ror + sta (pStack) + + dex + bne .3 + + rts +*-------------------------------------- +M16.L ldx #0 + bra M16.CMP +M16.LE ldx #1 + bra M16.CMP +M16.G ldx #2 + bra M16.CMP +M16.GE ldx #3 + bra M16.CMP +M16.E ldx #4 + bra M16.CMP +M16.NE ldx #5 +*-------------------------------------- +M16.CMP jsr M16.SUB + + tay A = BYTE 1 + bmi .1 + + ora (pStack) BYTE 0 + beq .2 + + lda #%001 .HS 2C BIT ABS -.2 lda #$ff +.1 lda #%100 + .HS 2C BIT ABS -.8 inc pStack - inc pStack +.2 lda #%010 + .HS 2C BIT ABS - rts + and MATH.CMPT,x + bra M16.LOR2 +*-------------------------------------- +M16.LAND jsr M16.AND + bra M16.LOR1 + +M16.LOR jsr M16.OR + +M16.LOR1 dey y = 1 + + lda (pStack) + ora (pStack),y + +M16.LOR2 beq .1 + + lda #1 + +.1 sta (pStack) + + lda #0 + sta (pStack),y + + rts *-------------------------------------- M16.UMUL clc .HS B0 BCS @@ -56,19 +131,18 @@ M16.IMUL sec jsr M16.MUL plp - bcc M16.PutTMP32 + bcc M16.PutTMP M16.ITMP lda ACC32.Sign eor ARG32.Sign - bpl M16.PutTMP32 + bpl M16.PutTMP *-------------------------------------- -* M16.PutnTMP32 +* M16.PutnTMP *-------------------------------------- lda #TMP32 .HS 2C BIT ABS *-------------------------------------- -M16.PutnARG32 - lda #ARG32 +M16.PutnARG lda #ARG32 sta .1+1 ldy #0 ldx #3 @@ -84,7 +158,7 @@ M16.PutnARG32 rts *-------------------------------------- -M16.UDIV clc +M16.uDIV clc .HS B0 BCS M16.IDIV sec clv @@ -106,15 +180,15 @@ M16.MOD php lda ACC32.Sign IDIV eor ARG32.Sign - bpl M16.PutARG32 - bra M16.PutnARG32 + bpl M16.PutARG + bra M16.PutnARG -.3 bvc M16.PutARG32 DIV +.3 bvc M16.PutARG DIV *-------------------------------------- -M16.PutTMP32 ldy #TMP32 MOD +M16.PutTMP ldy #TMP32 MOD .HS 2C BIT ABS *-------------------------------------- -M16.PutARG32 ldy #ARG32 +M16.PutARG ldy #ARG32 lda $0,y sta (pStack) @@ -151,7 +225,7 @@ M16.MULDIVMOD >PULLW ACC32 .1 lda ACC32.Sign bpl M16.RTS *-------------------------------------- -* M16.nACC32 +* M16.nACC *-------------------------------------- ldy #ACC32 .HS 2C BIT ABS @@ -198,7 +272,6 @@ M16.MUL stz TMP32 dex bne .1 - clc rts *-------------------------------------- M16.DIVMOD stz TMP32 diff --git a/SYS/KERNEL.S.MATH32.txt b/SYS/KERNEL.S.MATH32.txt index 72f25092..c5c466f8 100644 --- a/SYS/KERNEL.S.MATH32.txt +++ b/SYS/KERNEL.S.MATH32.txt @@ -1,57 +1,149 @@ NEW AUTO 3,1 *-------------------------------------- +M32.AND lda #$32 AND (zp) + .HS 2C BIT ABS +M32.OR lda #$12 ORA (zp) + .HS 2C BIT ABS +M32.XOR lda #$52 EOR (zp) + .HS 2C BIT ABS M32.ADD lda #$72 ADC (zp) .HS 2C BIT ABS M32.SUB lda #$F2 SBC (zp) - sta .3 + sta .2 - asl CS if SBC, CC if ADC + asl CS if SBC, CC if ADC others = don't care ldy #4 ldx #4 -.2 lda (pStack),y -.3 adc (pStack) SELF MODIFIED +.1 lda (pStack),y +.2 adc (pStack) SELF MODIFIED sta (pStack),y inc pStack dex - bne .2 + bne .1 rts *-------------------------------------- -* Returns: -* ff X < Y -* 0 X = Y -* 1 X > Y -*-------------------------------------- -*M32.UCMP -*M32.ICMP -M32.CMP jsr M32.SUB +M32.SHL sec + .HS 90 BCC +M32.SHR clc - tay A = BYTE 3 - bmi .2 - -.1 ora (pStack) BYTE 0 - ldy #1 - ora (pStack),y BYTE 1 - iny - ora (pStack),y BYTE 2 - beq .8 - - lda #1 - .HS 2C BIT ABS - -.2 lda #$ff - -.8 inc pStack + lda (pStack) + inc pStack inc pStack inc pStack inc pStack - rts + tax + beq .8 + bcc .3 + +.1 ldy #0 + + clc + +.2 lda (pStack),y + rol + sta (pStack),y + + iny + tya + eor #4 + bne .2 + + dex + bne .1 + +.8 rts +*-------------------------------------- +.3 ldy #3 + + clc + +.4 lda (pStack),y + ror + sta (pStack),y + + dey + bpl .4 + + dex + bne .3 + + rts +*-------------------------------------- +M32.L ldx #0 + bra M32.CMP +M32.LE ldx #1 + bra M32.CMP +M32.G ldx #2 + bra M32.CMP +M32.GE ldx #3 + bra M32.CMP +M32.E ldx #4 + bra M32.CMP +M32.NE ldx #5 +*-------------------------------------- +M32.CMP jsr M32.SUB + + tay A = BYTE 3 + bmi .1 + + ldy #2 + +.10 ora (pStack),y + dey + bpl .10 + + tay + beq .2 + + lda #%001 + .HS 2C BIT ABS + +.1 lda #%100 + .HS 2C BIT ABS + +.2 lda #%010 + .HS 2C BIT ABS + + and MATH.CMPT,x + bra M32.LOR2 +*-------------------------------------- +M32.LAND jsr M32.AND + bra M32.LOR1 + +M32.LOR jsr M32.OR + +M32.LOR1 lda (pStack) + + ldy #3 + +.1 ora (pStack),y + dey + bne .1 + + tay + +M32.LOR2 beq .1 + + lda #1 + +.1 sta (pStack) + + lda #0 + + ldy #3 + +.2 sta (pStack),y + dey + bne .2 + + rts *-------------------------------------- M32.UMUL clc .HS B0 BCS @@ -62,18 +154,18 @@ M32.IMUL sec jsr M32.MUL plp - bcc M32.PutTMP32 + bcc M32.PutTMP M32.ITMP lda ACC32.Sign eor ARG32.Sign - bpl M32.PutTMP32 + bpl M32.PutTMP *-------------------------------------- -* M32.PutnTMP32 +* M32.PutnTMP *-------------------------------------- lda #TMP32 .HS 2C BIT ABS *-------------------------------------- -M32.PutnARG32 lda #ARG32 +M32.PutnARG lda #ARG32 sta .1+1 ldy #0 ldx #3 @@ -111,15 +203,15 @@ M32.MOD php lda ACC32.Sign IDIV eor ARG32.Sign - bpl M32.PutARG32 - bra M32.PutnARG32 + bpl M32.PutARG + bra M32.PutnARG -.3 bvc M32.PutARG32 DIV +.3 bvc M32.PutARG DIV *-------------------------------------- -M32.PutTMP32 lda #TMP32 MOD +M32.PutTMP lda #TMP32 MOD .HS 2C BIT ABS *-------------------------------------- -M32.PutARG32 lda #ARG32 +M32.PutARG lda #ARG32 sta .1+1 ldy #3 @@ -131,7 +223,7 @@ M32.PutARG32 lda #ARG32 rts *-------------------------------------- -M32.PopACC32 ldy #0 +M32.PopACC ldy #0 .1 lda (pStack) inc pStack @@ -143,7 +235,7 @@ M32.PopACC32 ldy #0 sta ACC32.Sign rts *-------------------------------------- -M32.GetARG32 ldy #0 +M32.GetARG ldy #0 .1 lda (pStack),y sta ARG32,y @@ -156,8 +248,8 @@ M32.GetARG32 ldy #0 M32.RTS rts *-------------------------------------- M32.MULDIVMOD php - jsr M32.PopACC32 - jsr M32.GetARG32 + jsr M32.PopACC + jsr M32.GetARG plp bcc M32.RTS jsr .1 @@ -165,7 +257,7 @@ M32.MULDIVMOD php * M32.ARG32ABS *-------------------------------------- lda ARG32.Sign - bmi M32.nARG32 + bmi M32.nARG rts *-------------------------------------- * M32.ACC32ABS @@ -173,9 +265,9 @@ M32.MULDIVMOD php .1 lda ACC32.Sign bpl M32.RTS *-------------------------------------- -M32.nACC32 ldy #ACC32 +M32.nACC ldy #ACC32 .HS 2C BIT ABS -M32.nARG32 ldy #ARG32 +M32.nARG ldy #ARG32 ldx #3 sec @@ -217,15 +309,11 @@ M32.MUL jsr M32.TMP32Z eor #4 bne .2 -.3 asl ACC32 - rol ACC32+1 - rol ACC32+2 - rol ACC32+3 +.3 jsr MATH.ACC32x2 dex bne .1 - clc rts *-------------------------------------- * ARG32 = ARG32 div ACC32 @@ -239,11 +327,14 @@ M32.DIVMOD jsr M32.TMP32Z rol ARG32+1 rol ARG32+2 rol ARG32+3 + rol TMP32 rol TMP32+1 rol TMP32+2 rol TMP32+3 + sec + lda TMP32 sbc ACC32 pha diff --git a/SYS/KERNEL.S.MD5X.txt b/SYS/KERNEL.S.MD5X.txt index b05ef419..e8c72dbb 100644 --- a/SYS/KERNEL.S.MD5X.txt +++ b/SYS/KERNEL.S.MD5X.txt @@ -80,7 +80,7 @@ ZPChunkLen .BS 2 MD5X.MD5 ldy #$ff .1 iny - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY bne .1 sty ZPDataLen @@ -148,12 +148,12 @@ MD5X.Update.I ldy #S.MD5.FINALIZED .3 lda #64 .50 sta ZPChunkLen Save Chunk Len - jsr MD5UpdateBitCount + jsr MD5UpdBC ldy #0 -.51 jsr SHARED.TXTPTR.GetY Load Buffer with data - sta MD5.BUFFER64,y +.51 jsr SHARED.TXTPTRgY Load Buffer with data + sta MD5.Buf,y iny cpy ZPChunkLen bne .51 @@ -163,12 +163,12 @@ MD5X.Update.I ldy #S.MD5.FINALIZED * Append "$80" & Padding & original size lda #$80 no, Append $80 - sta MD5.BUFFER64,y + sta MD5.Buf,y lda #0 .52 iny Pad with 0 to 64 cpy #64 beq .53 - sta MD5.BUFFER64,y + sta MD5.Buf,y bra .52 .53 ldy #S.MD5.EXTRABIT Mark MD5 Context as Appended lda #$80 @@ -176,7 +176,7 @@ MD5X.Update.I ldy #S.MD5.FINALIZED lda ZPChunkLen cmp #56 Enough room for BITCOUNT ? bcs .58 no - jsr MD5AppendBitCount + jsr MD5AppBC .58 jsr MD5Transform jsr MD5UpdateABCD0 .8 lda ZPDataLen Substract Bytes processed from LEN @@ -214,20 +214,20 @@ MD5X.Finalize.I ldy #S.MD5.FINALIZED lsr tax lda MD5.DIGITS,x - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn lda (ZPCtxPtr),y and #$0F tax lda MD5.DIGITS,x - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn iny cpy #S.MD5.ABCD0+16 bne .2 lda #0 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn pla jmp K.FreeMem @@ -238,12 +238,11 @@ MD5X.Finalize.I ldy #S.MD5.FINALIZED * In : * ZPCtxPtr = MD5 Context *-------------------------------------- -MD5AppendBitCount - ldx #56 +MD5AppBC ldx #56 ldy #S.MD5.BITCOUNT Append 8 Bytes of BITCOUNT .1 lda (ZPCtxPtr),y - sta MD5.BUFFER64,x + sta MD5.Buf,x inx iny cpy #S.MD5.BITCOUNT+8 @@ -259,8 +258,7 @@ MD5AppendBitCount * CL = Size (in bytes) to add to MD5 context * ZPCtxPtr = MD5 Context *-------------------------------------- -MD5UpdateBitCount - stz ZPChunkLen+1 +MD5UpdBC stz ZPChunkLen+1 lda ZPChunkLen asl rol ZPChunkLen+1 @@ -302,16 +300,16 @@ MD5ExtraChunk ldy #S.MD5.FINALIZED bne .1 lda #$80 - sta MD5.BUFFER64 Add extra bit to buffer + sta MD5.Buf Add extra bit to buffer sta (ZPCtxPtr),y Mark Extrabit added inx -.1 stz MD5.BUFFER64,x pad with "0"... +.1 stz MD5.Buf,x pad with "0"... inx cpx #56 bne .1 ...until room for bitcount - jsr MD5AppendBitCount + jsr MD5AppBC jsr MD5Transform *-------------------------------------- * MD5UpdateABCD0 @@ -420,7 +418,7 @@ MD5.XXXX.END >MOV32 MD5.D,MD5.DTemp tay ldx #0 clc -.2 lda MD5.BUFFER64,y ADC32 M[g],MD5.F,MD5.F +.2 lda MD5.Buf,y ADC32 M[g],MD5.F,MD5.F adc MD5.F,x sta MD5.F,x iny @@ -481,7 +479,7 @@ MD5.F2 .BS 4 MD5.DTemp .BS 4 MD5.F .BS 4 MD5.i .BS 1 -MD5.BUFFER64 .BS 64 +MD5.Buf .BS 64 *-------------------------------------- MAN SAVE usr/src/sys/kernel.s.md5x diff --git a/SYS/KERNEL.S.MOUNT.txt b/SYS/KERNEL.S.MOUNT.txt index 32f26926..d81198a1 100644 --- a/SYS/KERNEL.S.MOUNT.txt +++ b/SYS/KERNEL.S.MOUNT.txt @@ -8,8 +8,7 @@ NEW * * Out : A = hMount *-------------------------------------- -K.Mount >PULLW ZPPtr2 callback - >PULLW ZPPtr1 mountpoint +K.Mount jsr SHARED.PullP2P1 callback,mountpoint ldx #1 diff --git a/SYS/KERNEL.S.PFT.txt b/SYS/KERNEL.S.PFT.txt index c4afe8af..6a49dfa3 100644 --- a/SYS/KERNEL.S.PFT.txt +++ b/SYS/KERNEL.S.PFT.txt @@ -21,7 +21,7 @@ PFT.CheckPathYA >PUSHYA >PUSHWI K.Buf256 >SYSCALL2 realpath - bcs PFT.YAToMLIPATH.RTS + bcs PFT.RTS ldx #0 @@ -92,8 +92,7 @@ PFT.YAToMLIPATH >STYA .1+1 >STYA K.MLI.PARAMS+1 clc -PFT.YAToMLIPATH.RTS - rts +PFT.RTS rts *-------------------------------------- PFT.CheckNode4 ldy #4 .HS 2C BIT ABS @@ -107,7 +106,7 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL # jsr DEV.GetPFD bcs .99 - ldy #S.FD.HANDLER + ldy #S.FD.PFT lda (pFD),y beq .8 Handler is 0, back to kernel.... diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 62834d32..56324456 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -68,7 +68,7 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem .8 lda #$ff SELF MODIFIED * clc .9 -PS.Exec.RTS rts + rts */-------------------------------------- * # Fork * ## C @@ -79,7 +79,8 @@ PS.Exec.RTS rts * A = Child PSID *\-------------------------------------- K.Fork jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem - bcs PS.Exec.RTS + bcs .99 + sta .8+1 ldy #S.PS.S @@ -106,7 +107,7 @@ K.Fork jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem ldy #S.PS.hDS lda (ZPPtr1),y jsr MEM.Dup - bcs .9 +.99 bcs .9 ldy #S.PS.hDS sta (PS.NewPSPtr),y @@ -358,7 +359,7 @@ PS.Load ldy #$ff >LDYAI PS.SHUTDOWN jsr PS.Find.PATH - bcs PS.Load.RTS + bcs PS.RTS jmp PS.LoadBIN *-------------------------------------- @@ -366,12 +367,12 @@ PS.Load.IPATH lda #E.BADPATH .HS 2C PS.Load.IBIN lda #E.IBIN sec -PS.Load.RTS rts +PS.RTS rts *-------------------------------------- PS.Load.SCRIPT jsr PS.Buf2IO jsr PS.LoadGetHeader - bcs PS.Load.RTS + bcs PS.RTS >PUSHWI PS.Load.ROOT >PUSHWI K.Buf256 K.Buf256 = "$ROOT" @@ -406,7 +407,7 @@ PS.Load.SCRIPT jsr PS.Buf2IO .5 >LDYAI K.Buf256 jsr PS.STAT.YA - bcs PS.Load.RTS + bcs PS.RTS lda K.S.STAT+S.STAT.P.TYPE cmp #S.FI.T.BIN @@ -580,7 +581,7 @@ PS.AddArgV ldy #$ff In both cases, remove ARGV[0] * lda #0 jsr PS.AddYAp12ArgSize - jsr SHARED.AddYp1ToPtr1 + jsr SHARED.AddYp12P1 bra .1 .4 txa @@ -634,8 +635,8 @@ PS.AddPtr1ToStrV sta (ZPPtr2),y bne .2 - jsr SHARED.AddYp1ToPtr1 - jmp SHARED.AddYp1ToPtr2 + jsr SHARED.AddYp12P1 + jmp SHARED.AddYp12P2 *-------------------------------------- PS.AddYAp12ArgSize pha diff --git a/SYS/KERNEL.S.PWD.txt b/SYS/KERNEL.S.PWD.txt index 4433aa14..7d397185 100644 --- a/SYS/KERNEL.S.PWD.txt +++ b/SYS/KERNEL.S.PWD.txt @@ -97,16 +97,18 @@ K.PutGR >PULLW TXTPTR jsr K.SYSCALL.JMPX bcc PWD.FlushFiles -K.PutGR.RTS rts + rts *-------------------------------------- PWD.FlushFiles >LDYA PWD.UsrDBSize ldx PWD.hUsrDB clc jsr PWD.Flush - bcs K.PutGR.RTS + bcc .1 + + rts - >LDYA PWD.GrpDBSize +.1 >LDYA PWD.GrpDBSize ldx PWD.hGrpDB sec diff --git a/SYS/KERNEL.S.PWDX.txt b/SYS/KERNEL.S.PWDX.txt index 448460f3..a04af53e 100644 --- a/SYS/KERNEL.S.PWDX.txt +++ b/SYS/KERNEL.S.PWDX.txt @@ -19,20 +19,20 @@ PWDX.GetPWUID lda PWD.hUsrDB beq PWDX.GetPW.99 EOF ldy #0 - jsr PWDX.NextString skip USERNAME + jsr PWDX.NextS skip USERNAME - jsr PWDX.NextString skip PASSWORD + jsr PWDX.NextS skip PASSWORD jsr PWDX.GetByte get UID cmp ZPPtr1+1 beq PWDX.GetPW.8 - jsr PWDX.NextLine + jsr PWDX.NextL bra .1 PWDX.GetPW.8 ldx FORPNT+1 beq .8 Dry run, no output - jmp PWDX.Record2PW + jmp PWDX.Rec2PW .8 clc a = UID rts @@ -42,7 +42,7 @@ PWDX.GetPW.9 lda #E.IPWDDB PWDX.GetPW.99 lda #E.IUSR sec -PWDX.GetPW.RTS rts + rts *-------------------------------------- PWDX.GetPWName lda PWD.hUsrDB beq PWDX.GetPW.9 @@ -51,7 +51,7 @@ PWDX.GetPWName lda PWD.hUsrDB >STYA ZPPtr3 ldy #0 - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY beq PWDX.GetPW.99 .1 lda (ZPPtr3) @@ -59,13 +59,13 @@ PWDX.GetPWName lda PWD.hUsrDB ldy #$ff .2 iny - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY beq .4 cmp (ZPPtr3),y beq .2 -.3 jsr PWDX.NextLine +.3 jsr PWDX.NextL bra .1 .4 lda (ZPPtr3),y @@ -75,10 +75,10 @@ PWDX.GetPWName lda PWD.hUsrDB ldx FORPNT+1 beq .8 - jmp PWDX.Record2PW + jmp PWDX.Rec2PW .8 iny - jsr PWDX.NextString skip PASSWORD + jsr PWDX.NextS skip PASSWORD jmp PWDX.GetByte get UID *-------------------------------------- * TXTPTR : pPW (Input) @@ -88,10 +88,10 @@ PWDX.PutPW lda PWD.hUsrDB bne PWDX.PutPW.1 ldy #S.PW.UID - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY bne PWDX.GetPW.99 Must be ROOT user - jsr PWDX.GetRecordLen + jsr PWDX.GetRecLen tay lda #0 @@ -103,7 +103,7 @@ PWDX.PutPW lda PWD.hUsrDB inc .1 jsr K.getmem - bcs PWDX.GetPW.RTS + bcs .9 >STYA ZPPtr3 stx PWD.hUsrDB @@ -111,7 +111,7 @@ PWDX.PutPW lda PWD.hUsrDB lda #0 sta (ZPPtr3) - jsr PWDX.AppendRecord + jsr PWDX.AppRec lda PWD.hGrpDB beq .2 @@ -140,17 +140,17 @@ PWDX.PutPW.1 jsr K.GetmemPtr >STYA ZPPtr3 ldy #S.PW.PASSWD - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY bne .12 - jsr PWDX.FindRecord + jsr PWDX.FindRec bcs .99 - jmp PWDX.DeleteRecord + jmp PWDX.DelRec *-------------------------------------- -.12 jsr PWDX.FindRecord +.12 jsr PWDX.FindRec bcs .11 - jsr PWDX.DeleteRecord + jsr PWDX.DelRec bcs .99 bra .13 *-------------------------------------- @@ -162,7 +162,7 @@ PWDX.PutPW.1 jsr K.GetmemPtr sta (TXTPTR),y sta SETWRITEAUX -.13 jsr PWDX.GetRecordLen +.13 jsr PWDX.GetRecLen clc adc PWD.UsrDBSize @@ -207,10 +207,10 @@ PWDX.PutPW.1 jsr K.GetmemPtr jsr K.GetMemPtr >STYA ZPPtr3 - jsr PWDX.AppendRecord + jsr PWDX.AppRec lda #0 - jsr PWDX.StoreChar + jsr PWDX.StoreC clc rts @@ -229,18 +229,18 @@ PWDX.GetGRGID lda PWD.hGrpDB beq PWDX.GetGR.99 EOF ldy #0 - jsr PWDX.NextString skip USERNAME + jsr PWDX.NextS skip USERNAME jsr PWDX.GetByte get UID cmp ZPPtr1+1 beq PWDX.GetGR.8 - jsr PWDX.NextLine + jsr PWDX.NextL bra .1 PWDX.GetGR.8 ldx FORPNT+1 beq .8 Dry run, no output - jmp PWDX.Record2GR + jmp PWDX.Rec2GR .8 clc a = UID rts @@ -259,7 +259,7 @@ PWDX.GetGRName lda PWD.hGrpDB >STYA ZPPtr3 ldy #0 - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY beq PWDX.GetGR.99 .1 lda (ZPPtr3) @@ -267,13 +267,13 @@ PWDX.GetGRName lda PWD.hGrpDB ldy #$ff .2 iny - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY beq .4 cmp (ZPPtr3),y beq .2 -.3 jsr PWDX.NextLine +.3 jsr PWDX.NextL bra .1 .4 lda (ZPPtr3),y @@ -283,7 +283,7 @@ PWDX.GetGRName lda PWD.hGrpDB ldx FORPNT+1 beq .8 - jmp PWDX.Record2GR + jmp PWDX.Rec2GR .8 iny jmp PWDX.GetByte get GID @@ -306,15 +306,15 @@ PWDX.OpenSession lda TXTPTR+1 bne .3 -.1 >LDYAI PWDX.ROOTSESSION.Size +.1 >LDYAI PWDX.ROOT.Size jsr K.GetMem bcs .9 >STYA ZPPtr1 - ldy #PWDX.ROOTSESSION.Size-1 + ldy #PWDX.ROOT.Size-1 -.2 lda PWDX.ROOTSESSION,y +.2 lda PWDX.ROOT,y sta (ZPPtr1),y dey bpl .2 @@ -323,7 +323,7 @@ PWDX.OpenSession clc rts *-------------------------------------- -.3 jsr PWDX.FindRecord +.3 jsr PWDX.FindRec bcs .9 tya Y = Name length +1 @@ -340,7 +340,7 @@ PWDX.OpenSession sec -.5 jsr SHARED.FORPNT.getY +.5 jsr SHARED.FORPNTgY eor (ZPPtr4),y Check MD5 bne .9 @@ -376,15 +376,15 @@ PWDX.GetUID lda PWD.hUsrDB beq .8 End of DB ldy #0 - jsr PWDX.NextString skip name - jsr PWDX.NextString skip password + jsr PWDX.NextS skip name + jsr PWDX.NextS skip password jsr PWDX.GetByte cmp .8+1 bcc .4 sta .8+1 -.4 jsr PWDX.NextLine +.4 jsr PWDX.NextL bra .1 .8 lda #$ff SELF MODIFIED @@ -398,7 +398,7 @@ PWDX.GetUID lda PWD.hUsrDB sec rts *-------------------------------------- -PWDX.DeleteRecord +PWDX.DelRec .1 iny lda (ZPPtr3),y cmp #C.CR @@ -432,7 +432,7 @@ PWDX.DeleteRecord .9 rts *-------------------------------------- -PWDX.FindRecord lda PWD.hUsrDB +PWDX.FindRec lda PWD.hUsrDB jsr K.GetmemPtr >STYA ZPPtr3 @@ -443,13 +443,13 @@ PWDX.FindRecord lda PWD.hUsrDB ldy #$ff .3 iny - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY beq .4 cmp (ZPPtr3),y beq .3 -.5 jsr PWDX.NextLine +.5 jsr PWDX.NextL bra .2 .4 lda (ZPPtr3),y @@ -467,7 +467,7 @@ PWDX.FindRecord lda PWD.hUsrDB *-------------------------------------- * Record : USERNAME:PASSWORD:UID:GID:GECOS:HOME:SHELL\CR *-------------------------------------- -PWDX.Record2PW ldy #0 +PWDX.Rec2PW ldy #0 ldx #0 NAME @@ -476,12 +476,12 @@ PWDX.Record2PW ldy #0 cmp #':' beq .2 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn inx bra .1 .2 lda #0 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn inx cpx #S.PW.PASSWD bne .2 @@ -491,23 +491,23 @@ PWDX.Record2PW ldy #0 cmp #':' beq .4 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn inx bra .3 .4 lda #0 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn inx cpx #S.PW.UID bne .4 jsr PWDX.GetByte UID - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn iny jsr PWDX.GetByte GID - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn iny @@ -517,11 +517,11 @@ PWDX.Record2PW ldy #0 iny cmp #':' beq .6 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn inx bra .5 .6 lda #0 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn inx cpx #S.PW.DIR bne .6 @@ -530,11 +530,11 @@ PWDX.Record2PW ldy #0 iny cmp #':' beq .8 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn inx bra .7 .8 lda #0 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn inx cpx #S.PW.SHELL bne .8 @@ -543,16 +543,16 @@ PWDX.Record2PW ldy #0 iny cmp #C.CR beq .10 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn inx bra .9 .10 lda #0 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn clc rts *-------------------------------------- -PWDX.Record2GR ldy #0 +PWDX.Rec2GR ldy #0 ldx #0 NAME @@ -561,15 +561,15 @@ PWDX.Record2GR ldy #0 cmp #':' beq .2 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn inx bra .1 .2 lda #0 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn jsr PWDX.GetByte UID - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn clc rts @@ -579,15 +579,15 @@ PWDX.Record2GR ldy #0 PWDX.GetSessionLen ldy #0 - jsr PWDX.NextString USERNAME + jsr PWDX.NextS USERNAME tya clc adc #S.SESSION.NAME tax - jsr PWDX.NextString skip PASSWORD - jsr PWDX.NextString skip UID - jsr PWDX.NextString skip GID + jsr PWDX.NextS skip PASSWORD + jsr PWDX.NextS skip UID + jsr PWDX.NextS skip GID .1 inx iny @@ -604,8 +604,8 @@ PWDX.GetSessionLen PWDX.Record2Session ldy #0 - jsr PWDX.NextString skip USERNAME - jsr PWDX.NextString skip PASSWORD + jsr PWDX.NextS skip USERNAME + jsr PWDX.NextS skip PASSWORD jsr PWDX.GetByte get UID sta ZPPtr1 @@ -627,13 +627,13 @@ PWDX.Record2Session ora #S.SESSION.P.SYSADMIN -.2 jsr SHARED.PutCharPtr2 +.2 jsr SHARED.PutCP2 lda ZPPtr1 - jsr SHARED.PutCharPtr2 UID + jsr SHARED.PutCP2 UID lda ZPPtr1+1 - jsr SHARED.PutCharPtr2 GID + jsr SHARED.PutCP2 GID phy @@ -644,11 +644,11 @@ PWDX.Record2Session cmp #':' beq .4 - jsr SHARED.PutCharPtr2 + jsr SHARED.PutCP2 bra .3 .4 lda #0 - jsr SHARED.PutCharPtr2 + jsr SHARED.PutCP2 ply @@ -661,27 +661,27 @@ PWDX.Record2Session lda #0 -.6 jsr SHARED.PutCharPtr2 +.6 jsr SHARED.PutCP2 iny bra .5 .8 lda #0 - jmp SHARED.PutCharPtr2 + jmp SHARED.PutCP2 *-------------------------------------- -PWDX.NextString lda (ZPPtr3),y +PWDX.NextS lda (ZPPtr3),y beq .8 iny cmp #':' - bne PWDX.NextString + bne PWDX.NextS .8 rts *-------------------------------------- -PWDX.NextLine lda (ZPPtr3),y +PWDX.NextL lda (ZPPtr3),y beq .8 iny cmp #C.CR - bne PWDX.NextLine + bne PWDX.NextL tya clc @@ -725,7 +725,7 @@ PWDX.GetByte stz .8+1 clc rts *-------------------------------------- -PWDX.AppendRecord +PWDX.AppRec .1 lda (ZPPtr3) beq .8 @@ -737,64 +737,61 @@ PWDX.AppendRecord .8 sec .HS 90 BCC *-------------------------------------- -PWDX.GetRecordLen - clc +PWDX.GetRecLen clc ldx #0 ldy #S.PW.NAME - jsr PWDX.StoreString + jsr PWDX.StoreS lda #':' - jsr PWDX.StoreChar + jsr PWDX.StoreC ldy #S.PW.PASSWD - jsr PWDX.StoreString + jsr PWDX.StoreS lda #':' - jsr PWDX.StoreChar + jsr PWDX.StoreC ldy #S.PW.UID - jsr SHARED.TXTPTR.GetY - jsr PWDX.StoreByte + jsr SHARED.TXTPTRgY + jsr PWDX.StoreB lda #':' - jsr PWDX.StoreChar + jsr PWDX.StoreC ldy #S.PW.GID - jsr SHARED.TXTPTR.GetY - jsr PWDX.StoreByte + jsr SHARED.TXTPTRgY + jsr PWDX.StoreB lda #':' - jsr PWDX.StoreChar + jsr PWDX.StoreC ldy #S.PW.GECOS - jsr PWDX.StoreString + jsr PWDX.StoreS lda #':' - jsr PWDX.StoreChar + jsr PWDX.StoreC ldy #S.PW.DIR - jsr PWDX.StoreString + jsr PWDX.StoreS lda #':' - jsr PWDX.StoreChar + jsr PWDX.StoreC ldy #S.PW.SHELL - jsr PWDX.StoreString + jsr PWDX.StoreS lda #C.CR - jsr PWDX.StoreChar + jsr PWDX.StoreC txa -PWDX.GetRecordLen.RTS - rts +PWDX.RTS rts *-------------------------------------- -PWDX.StoreString - jsr SHARED.TXTPTR.GetY - beq PWDX.GetRecordLen.RTS - jsr PWDX.StoreChar +PWDX.StoreS jsr SHARED.TXTPTRgY + beq PWDX.RTS + jsr PWDX.StoreC iny - bra PWDX.StoreString + bra PWDX.StoreS *-------------------------------------- -PWDX.StoreByte php +PWDX.StoreB php phx jsr MATH.A2STR10NP plx @@ -802,13 +799,13 @@ PWDX.StoreByte php ldy #0 -.1 lda A2osX.NumStrBuf,y - beq PWDX.GetRecordLen.RTS +.1 lda FOUTBuf,y + beq PWDX.RTS iny - jsr PWDX.StoreChar + jsr PWDX.StoreC bra .1 *-------------------------------------- -PWDX.StoreChar inx +PWDX.StoreC inx bcc .9 Dry run, no store sta (ZPPtr3) inc ZPPtr3 @@ -816,15 +813,14 @@ PWDX.StoreChar inx inc ZPPtr3+1 .9 rts *-------------------------------------- -PWDX.ROOTSESSION - .DA #S.SESSION.P.ROOT +PWDX.ROOT .DA #S.SESSION.P.ROOT .DA #0 UID .DA #0 GID .AZ "root" NAME .AZ "Root User" GECOS .AZ "${ROOT}root/" DIR .AZ "${ROOT}bin/sh" SHELL -PWDX.ROOTSESSION.Size .EQ *-PWDX.ROOTSESSION +PWDX.ROOT.Size .EQ *-PWDX.ROOT *-------------------------------------- PWDX.GROUP .AS "root:0" .DA #C.CR diff --git a/SYS/KERNEL.S.SHARED.txt b/SYS/KERNEL.S.SHARED.txt index f17ba0ff..f93f5239 100644 --- a/SYS/KERNEL.S.SHARED.txt +++ b/SYS/KERNEL.S.SHARED.txt @@ -9,12 +9,12 @@ SHARED.IsIDValid beq SHARED.IsDigit.8 SHARED.IsDigitOrL cmp #'z'+1 - bcs SHARED.IsDigit.RTS + bcs SHARED.RTS cmp #'a' bcs SHARED.IsDigit.8 SHARED.IsDigitOrUC cmp #'Z'+1 - bcs SHARED.IsDigit.RTS + bcs SHARED.RTS cmp #'A' bcs SHARED.IsDigit.8 @@ -24,122 +24,97 @@ SHARED.IsDigit.9 rts SHARED.IsDigit.8 clc -SHARED.IsDigit.RTS rts *-------------------------------------- -SHARED.IsHexDigit - jsr ZP.IsDigit - bcc .8 - cmp #'A' - bcc SHARED.IsDigit.9 - cmp #'F'+1 - bcc .1 - cmp #'a' - bcc SHARED.IsDigit.9 - cmp #'f'+1 - bcs SHARED.IsDigit.RTS - - eor #$20 -.1 -* clc - sbc #'A'-11 cc so A->10 (11-CC) - clc -.8 and #$0F - rts -*-------------------------------------- -SHARED.TXTPTR.GetY - sta CLRREADAUX +SHARED.TXTPTRgY sta CLRREADAUX lda (TXTPTR),y sta SETREADAUX rts *-------------------------------------- -SHARED.TXTPTR.GetNext - sta CLRREADAUX +SHARED.TXTPTRgn sta CLRREADAUX lda (TXTPTR) sta SETREADAUX beq SHARED.RTS -SHARED.TXTPTR.Next - inc TXTPTR +SHARED.TXTPTRn inc TXTPTR bne SHARED.RTS inc TXTPTR+1 rts *-------------------------------------- -SHARED.FORPNT.getY - sta CLRREADAUX +SHARED.FORPNTgY sta CLRREADAUX lda (FORPNT),y sta SETREADAUX rts *-------------------------------------- -SHARED.FORPNT.PutY - sta CLRWRITEAUX +SHARED.FORPNTpY sta CLRWRITEAUX sta (FORPNT),y sta SETWRITEAUX rts *-------------------------------------- -SHARED.FORPNT.GetNext - sta CLRREADAUX +SHARED.FORPNTgn sta CLRREADAUX lda (FORPNT) sta SETREADAUX - bra SHARED.FORPNT.Next + bra SHARED.FORPNTn *-------------------------------------- -SHARED.FORPNT.PutNext - sta CLRWRITEAUX +SHARED.FORPNTpn sta CLRWRITEAUX sta (FORPNT) sta SETWRITEAUX -SHARED.FORPNT.Next - inc FORPNT +SHARED.FORPNTn inc FORPNT bne SHARED.RTS inc FORPNT+1 SHARED.RTS rts *-------------------------------------- -SHARED.GetCharPtr1 - lda (ZPPtr1) +SHARED.GetCP1 lda (ZPPtr1) beq SHARED.RTS inc ZPPtr1 bne .8 + inc ZPPtr1+1 never Z .8 rts *-------------------------------------- -SHARED.AddYp1ToPtr1 +SHARED.AddYp12P1 sec .HS 90 BCC -SHARED.AddYToPtr1 - clc +SHARED.AddY2P1 clc tya adc ZPPtr1 sta ZPPtr1 bcc .8 + inc ZPPtr1+1 + .8 rts *-------------------------------------- -SHARED.AddYp1ToPtr2 +SHARED.AddYp12P2 sec .HS 90 BCC -SHARED.AddYToPtr2 - clc +SHARED.AddY2P2 clc tya adc ZPPtr2 sta ZPPtr2 bcc .8 + clc keep CC as some JMP exit here inc ZPPtr2+1 + .8 rts *-------------------------------------- -SHARED.GetCharPtr2 - lda (ZPPtr2) - bne SHARED.NextCharPtr2 +SHARED.GetCP2 lda (ZPPtr2) + bne SHARED.NextCP2 rts -SHARED.PutCharPtr2 - sta (ZPPtr2) -SHARED.NextCharPtr2 - inc ZPPtr2 +*-------------------------------------- +SHARED.PutCP2 sta (ZPPtr2) +SHARED.NextCP2 inc ZPPtr2 bne .8 + inc ZPPtr2+1 .8 rts *-------------------------------------- -SHARED.ZPPtr3.GetY - sta CLRREADAUX +SHARED.PullP2P1 >PULLW ZPPtr2 + >PULLW ZPPtr1 + rts +*-------------------------------------- +SHARED.P3gY sta CLRREADAUX lda (ZPPtr3),y sta SETREADAUX rts diff --git a/SYS/KERNEL.S.SLISTX.txt b/SYS/KERNEL.S.SLISTX.txt index 73419ec8..33c7f8a9 100644 --- a/SYS/KERNEL.S.SLISTX.txt +++ b/SYS/KERNEL.S.SLISTX.txt @@ -3,22 +3,16 @@ NEW *-------------------------------------- ZPSListDataOfs .EQ ZPMEMMGR+8 ZPSListDataLen .EQ ZPMEMMGR+10 -ZPSListIBlkPtr .EQ ZPMEMMGR+12 -ZPSListDBlkPtr .EQ ZPMEMMGR+14 *-------------------------------------- SLIST.KeyLen .BS 1 SLIST.DataLen .BS 2 SLIST.nDataCnt .BS 2 SLIST.nBufCnt .BS 2 -SLIST.bStringMode .BS 1 -SLIST.bAppend0 .BS 1 -SLIST.KeyID .EQ * -SLIST.BytePtr .BS 1 -SLIST.BlockPtr .BS 1 -SLIST.KeyID.Save .BS 2 +SLIST.bStr .BS 1 +SLIST.b0 .BS 1 +SLIST.KeyID .BS 2 *-------------------------------------- -SLISTX.SListGetData - jsr SLIST.Select +SLISTX.GetData jsr SLIST.Select jsr SLIST.SkipKey jsr SLIST.GetDataLen @@ -40,7 +34,7 @@ SLISTX.SListGetData ldx ZPSListDataOfs+1 jsr SLIST.SkipDataAX - stz SLIST.bAppend0 + stz SLIST.b0 lda FORPNT ora FORPNT+1 @@ -53,7 +47,7 @@ SLISTX.SListGetData inc +1 for ending 0 sec - ror SLIST.bAppend0 + ror SLIST.b0 .11 ldx #SYS.GetMem jsr K.SYSCALL2.MAIN !!! Get a buffer In MAIN Mem !!! @@ -74,7 +68,7 @@ SLISTX.SListGetData sta SLIST.nBufCnt+1 clc -.1 ror SLIST.bStringMode +.1 ror SLIST.bStr stz ZPSListDataLen stz ZPSListDataLen+1 @@ -84,7 +78,7 @@ SLISTX.SListGetData inc SLIST.nDataCnt+1 beq .80 -.3 bit SLIST.bStringMode +.3 bit SLIST.bStr bmi .4 String mode : until CR inc SLIST.nBufCnt @@ -92,14 +86,14 @@ SLISTX.SListGetData inc SLIST.nBufCnt+1 beq .80 not string mode : until end of buffer -.4 jsr SLIST.GetNextByte - bit SLIST.bStringMode +.4 jsr BLISTX.GetNByte + bit SLIST.bStr bpl .5 cmp #C.CR beq .81 -.5 jsr SHARED.FORPNT.PutNext +.5 jsr SHARED.FORPNTpn inc ZPSListDataLen bne .2 inc ZPSListDataLen+1 @@ -109,39 +103,38 @@ SLISTX.SListGetData sec .9 rts -.80 lda SLIST.bStringMode - ora SLIST.bAppend0 +.80 lda SLIST.bStr + ora SLIST.b0 bpl .82 .81 lda #0 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn .82 >LDYA ZPSListDataLen .88 ldx #$ff SELF MODIFIED clc rts *-------------------------------------- -SLISTX.SListAddData - jsr SLIST.Select +SLISTX.AddData jsr SLIST.Select jsr SLIST.SkipKey - ldy SLIST.BytePtr - lda (ZPSListDBlkPtr),y + ldy iByte + lda (DBlkPtr),y pha clc adc ZPSListDataLen - sta (ZPSListDBlkPtr),y + sta (DBlkPtr),y php - jsr SLIST.ToNextByte skip LEN lo + jsr BLISTX.2NByte skip LEN lo plp - ldy SLIST.BytePtr - lda (ZPSListDBlkPtr),y + ldy iByte + lda (DBlkPtr),y pha adc ZPSListDataLen+1 - sta (ZPSListDBlkPtr),y - jsr SLIST.ToNextByte skip LEN hi + sta (DBlkPtr),y + jsr BLISTX.2NByte skip LEN hi plx pla @@ -161,22 +154,21 @@ SLISTX.SListAddData inc ZPSListDataLen+1 beq .8 -.2 jsr SHARED.FORPNT.GetNext +.2 jsr SHARED.FORPNTgn bcc .3 - jsr SLIST.SetBlockByte override ending 0, already allocated + jsr BLISTX.SetBlkByte override ending 0, already allocated clc bra .1 -.3 jsr SLIST.AddDataByte +.3 jsr BLISTX.AddByte bcc .1 rts .8 lda #0 - jmp SLIST.AddDataByte Add an extra 0 to stop Search here + jmp BLISTX.AddByte Add an extra 0 to stop Search here *-------------------------------------- -SLISTX.SListSetData - jsr SLIST.Select +SLISTX.SetData jsr SLIST.Select jsr SLIST.SkipKey jsr SLIST.GetDataLen @@ -200,8 +192,8 @@ SLISTX.SListSetData inc SLIST.nDataCnt+1 beq .8 -.2 jsr SHARED.FORPNT.GetNext - jsr SLIST.SetBlockByte +.2 jsr SHARED.FORPNTgn + jsr BLISTX.SetBlkByte bra .1 .8 clc @@ -210,20 +202,19 @@ SLISTX.SListSetData sec rts *-------------------------------------- -SLISTX.SListGetByID - jsr SLIST.Select +SLISTX.GetByID jsr SLIST.Select - jsr SLIST.GetNextByte + jsr BLISTX.GetNByte tax beq .9 ldy #0 .1 phy - jsr SLIST.GetNextByte + jsr BLISTX.GetNByte ply - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn iny dex @@ -231,10 +222,10 @@ SLISTX.SListGetByID txa lda #0 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn jsr SLIST.SkipData - >LDYA SLIST.KeyID + >LDYA KeyID clc rts @@ -242,20 +233,19 @@ SLISTX.SListGetByID sec rts *-------------------------------------- -SLISTX.SListNewKey - jsr SLIST.Search +SLISTX.NewKey jsr SLIST.Search bcc .99 - >LDYA SLIST.KeyID - >STYA SLIST.KeyID.Save End of list + >LDYA KeyID + >STYA SLIST.KeyID End of list lda SLIST.KeyLen - jsr SLIST.SetBlockByte override ending 0, already allocated + jsr BLISTX.SetBlkByte override ending 0, already allocated ldy #0 -.1 jsr SHARED.TXTPTR.GetY - jsr SLIST.AddDataByte +.1 jsr SHARED.TXTPTRgY + jsr BLISTX.AddByte bcs .9 iny @@ -263,18 +253,18 @@ SLISTX.SListNewKey bne .1 lda #0 Data Len lo = 0 - jsr SLIST.AddDataByte + jsr BLISTX.AddByte bcs .9 lda #0 Data Len hi = 0 - jsr SLIST.AddDataByte + jsr BLISTX.AddByte bcs .9 lda #0 Ending Len = 0 - jsr SLIST.AddDataByte + jsr BLISTX.AddByte bcs .9 - >LDYA SLIST.KeyID.Save + >LDYA SLIST.KeyID ldx SLIST.KeyLen * clc rts @@ -283,67 +273,25 @@ SLISTX.SListNewKey sec .9 rts *-------------------------------------- -SLISTX.SListLookup - jsr SLIST.Search +SLISTX.Lookup jsr SLIST.Search bcs .9 ldx SLIST.KeyLen .9 rts *-------------------------------------- -SLISTX.SListFree - pha - - jsr K.GetMemPtr - >STYA .1+1 - - ldx #0 - -.1 lda $ffff,x SELF MODIFIED - beq .8 - - jsr K.FreeMem - inx - bra .1 - -.8 pla - jmp K.FreeMem -*-------------------------------------- -SLISTX.SListNew >LDYAI 128 32k Max before out of memory!!! - ldx #S.MEM.F.INIT0+8 index - jsr MEM.GetMem.YAX - bcs .9 - - >STYA ZPSListIBlkPtr - stx .8+1 - - >LDYAI 256 - ldx #4 data - jsr MEM.GetMem.YAX - bcs .9 - - >STYA ZPSListDBlkPtr - - lda #0 - sta (ZPSListDBlkPtr) - txa - sta (ZPSListIBlkPtr) - -.8 lda #$ff SELF MODIFIED -.9 rts -*-------------------------------------- * PRIVATE *-------------------------------------- SLIST.Search jsr K.GetMemPtr - >STYA ZPSListIBlkPtr + >STYA IBlkPtr - lda (ZPSListIBlkPtr) + lda (IBlkPtr) jsr K.GetMemPtr - >STYA ZPSListDBlkPtr + >STYA DBlkPtr ldy #$ff .1 iny - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY beq .11 jsr SHARED.IsIDValid @@ -351,29 +299,29 @@ SLIST.Search jsr K.GetMemPtr .11 sty SLIST.KeyLen - stz SLIST.BytePtr - stz SLIST.BlockPtr + stz iByte + stz iBlk -.2 >LDYA SLIST.KeyID - >STYA SLIST.KeyID.Save +.2 >LDYA KeyID + >STYA SLIST.KeyID - ldy SLIST.BytePtr - lda (ZPSListDBlkPtr),y + ldy iByte + lda (DBlkPtr),y beq .9 cmp SLIST.KeyLen bne .5 - jsr SLIST.GetNextByte Skip Len + jsr BLISTX.GetNByte Skip Len ldy #0 .3 phy - jsr SLIST.GetNextByte + jsr BLISTX.GetNByte sta .4+1 ply - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY .4 cmp #$ff SELF MODIFIED bne .5 @@ -382,11 +330,11 @@ SLIST.Search jsr K.GetMemPtr cpy SLIST.KeyLen bne .3 - >LDYA SLIST.KeyID.Save + >LDYA SLIST.KeyID clc rts -.5 >LDYA SLIST.KeyID.Save +.5 >LDYA SLIST.KeyID jsr SLIST.Select.I move back... jsr SLIST.Next @@ -397,17 +345,17 @@ SLIST.Search jsr K.GetMemPtr rts *-------------------------------------- SLIST.Select jsr K.GetMemPtr - >STYA ZPSListIBlkPtr + >STYA IBlkPtr >LDYA TXTPTR -SLIST.Select.I >STYA SLIST.KeyID +SLIST.Select.I >STYA KeyID - ldy SLIST.BlockPtr + ldy iBlk - lda (ZPSListIBlkPtr),y + lda (IBlkPtr),y jsr K.GetMemPtr - >STYA ZPSListDBlkPtr + >STYA DBlkPtr rts *-------------------------------------- @@ -419,90 +367,36 @@ SLIST.SkipData jsr SLIST.GetDataLen ldx SLIST.DataLen+1 SLIST.SkipDataAX clc - adc SLIST.BytePtr - sta SLIST.BytePtr + adc iByte + sta iByte txa - adc SLIST.BlockPtr - sta SLIST.BlockPtr + adc iBlk + sta iBlk tay - lda (ZPSListIBlkPtr),y + lda (IBlkPtr),y jsr K.GetMemPtr - >STYA ZPSListDBlkPtr + >STYA DBlkPtr rts *-------------------------------------- -SLIST.SkipKey ldy SLIST.BytePtr - lda (ZPSListDBlkPtr),y Get KeyLen +SLIST.SkipKey ldy iByte + lda (DBlkPtr),y Get KeyLen sec - adc SLIST.BytePtr - sta SLIST.BytePtr - bcs SLIST.ToNextBlock + adc iByte + sta iByte + bcc .8 + + jmp BLISTX.2NBlk + .8 rts *-------------------------------------- SLIST.GetDataLen - jsr SLIST.GetNextByte Get DataLenLo + jsr BLISTX.GetNByte Get DataLenLo sta SLIST.DataLen - jsr SLIST.GetNextByte Get DataLenHI + jsr BLISTX.GetNByte Get DataLenHI sta SLIST.DataLen+1 rts *-------------------------------------- -SLIST.GetNextByte - ldy SLIST.BytePtr - lda (ZPSListDBlkPtr),y -SLIST.ToNextByte - inc SLIST.BytePtr - bne .8 - - pha - jsr SLIST.ToNextBlock - pla -.8 rts -*-------------------------------------- -SLIST.AddDataByte - phy - ldy SLIST.BytePtr - sta (ZPSListDBlkPtr),y - inc SLIST.BytePtr - bne .8 - - phx - >LDYAI 256 - ldx #4 - jsr MEM.GetMem.YAX - bcs .9 - - >STYA ZPSListDBlkPtr - txa - inc SLIST.BlockPtr - ldy SLIST.BlockPtr - sta (ZPSListIBlkPtr),y - -* stz SLIST.BytePtr - plx - -.8 ply - clc - rts - -.9 plx - ply - rts -*-------------------------------------- -SLIST.SetBlockByte - ldy SLIST.BytePtr - sta (ZPSListDBlkPtr),y - inc SLIST.BytePtr - bne SLIST.ToNextBlock.RTS -*-------------------------------------- -SLIST.ToNextBlock - inc SLIST.BlockPtr - ldy SLIST.BlockPtr - lda (ZPSListIBlkPtr),y - jsr K.GetMemPtr - >STYA ZPSListDBlkPtr -SLIST.ToNextBlock.RTS - rts -*-------------------------------------- MAN SAVE usr/src/sys/kernel.s.slistx LOAD usr/src/sys/kernel.s diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index 2b4d8230..ae8230c2 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -56,7 +56,7 @@ K.SetAttr jsr PFT.CheckPath1 K.ChMod jsr PFT.CheckPath2 bcs K.ChMod.RET4 - jsr STAT.PullPathAndMode + jsr STAT.PM stz K.MLI.PARAMS+3+S.FIEX.ACL read mode @@ -100,14 +100,14 @@ K.FStat jsr PFT.CheckNode2 jsr PFT.YAToMLIPATH jsr FS.Stat.203 - bcs K.Stat.Store.RTS + bcs STAT.RTS ldy #S.FD.REG.REF lda (pFD),y sta K.MLI.PARAMS+1 >MLICALL MLIGETEOF - bcs K.Stat.Store.RTS + bcs STAT.RTS ldx #2 @@ -124,8 +124,7 @@ K.Stat.Store.2 sta $ffff,y SELF MODIFIED bpl K.Stat.Store.1 * clc -K.Stat.Store.RTS - rts +STAT.RTS rts */-------------------------------------- * # Stat * Return information about a file @@ -166,7 +165,7 @@ K.Stat jsr PFT.CheckPath2 K.MKDir jsr PFT.CheckPath2 bcs K.ChMod.RET4 - jsr STAT.PullPathAndMode + jsr STAT.PM lda #S.FI.T.DIR sta K.MLI.PARAMS+4 @@ -187,11 +186,11 @@ K.MKDir jsr PFT.CheckPath2 * CC = OK, CS = ERROR * A = hFILE *\-------------------------------------- -K.MKFIFO jsr STAT.PullPathAndMode +K.MKFIFO jsr STAT.PM >LDYAI 512 jsr K.pipe - bcs K.Stat.Store.RTS + bcs STAT.RTS ldy #0 .1 lda STAT.FIFO,y @@ -227,7 +226,7 @@ K.MKFIFO jsr STAT.PullPathAndMode *\-------------------------------------- K.MkNod >PULLB IO.hFD - jsr STAT.PullPathAndMode + jsr STAT.PM K.MkNod.I ldx #2 @@ -307,8 +306,7 @@ K.Pipe sta .1+1 SIZE HI .99 rts *-------------------------------------- -STAT.PullPathAndMode - >PULLW K.S.STAT+S.STAT.MODE +STAT.PM >PULLW K.S.STAT+S.STAT.MODE >PULLW ZPPtr1 pathname rts *-------------------------------------- diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 228e71de..7134a1f4 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -50,7 +50,7 @@ K.FPutC jsr PFT.CheckNodeA >PUSHA >PUSHWI K.IOBuf buf - jsr UNISTD.Write + jsr IO.Write bcc .8 pop char... cmp #E.NODATA @@ -158,7 +158,7 @@ K.FPutS jsr PFT.CheckNode2 set IO.hFD >PUSHA push len LO >PUSHW ZPPtr2 - jsr UNISTD.Write + jsr IO.Write bcc K.PutS.RET3 cmp #E.NODATA @@ -240,7 +240,7 @@ K.FGetS jsr PFT.CheckNode4 cmp #C.CR beq .8 - jsr SHARED.PutCharPtr2 + jsr SHARED.PutCP2 inc ZPPtr1 bne .4 @@ -299,28 +299,28 @@ K.GetChar ldy #S.PS.hStdIn * A = char *\-------------------------------------- K.GetC jsr PFT.CheckNodeA - bcs K.GetC.RTS + bcs .9 jsr STDIO.Get.1 bcc .8 cmp #E.NODATA sec - bne K.GetC.RTS I/O error + bne .9 I/O error inc 0 = BLOCKING rts .8 lda K.IOBuf -K.GetC.RTS rts +.9 rts *-------------------------------------- STDIO.Get.1 lda #0 >PUSHA inc read 1 byte >PUSHA >PUSHWI K.IOBuf - jmp UNISTD.READ + jmp IO.Read */-------------------------------------- * # ungetc * push byte back into input stream @@ -376,7 +376,7 @@ K.FOpen jsr PFT.CheckPath4 inc pStack discard filename inc pStack - jmp UNISTD.Open + jmp IO.Open .9 >POP 6 .99 rts @@ -394,7 +394,7 @@ K.FOpen jsr PFT.CheckPath4 K.FClose jsr PFT.CheckNodeA bcs K.FRead.RTS - jmp UNISTD.Close + jmp IO.Close */-------------------------------------- * # FRead (BLOCKING) * Read bytes from file @@ -412,7 +412,7 @@ K.FClose jsr PFT.CheckNodeA K.FRead jsr PFT.CheckNodeA bcs K.FWrite.RET4 - jsr UNISTD.Read + jsr IO.Read bcs K.FWrite.9 K.FRead.RTS rts @@ -433,7 +433,7 @@ K.FRead.RTS rts K.FWrite jsr PFT.CheckNodeA bcs K.FWrite.RET4 - jsr UNISTD.Write + jsr IO.Write bcc K.FWrite.RTS K.FWrite.9 cmp #E.NODATA @@ -720,8 +720,8 @@ K.Rename jsr PFT.CheckPath2 .OR ZPTMP+5 5 Bytes PrintF.Cnt .BS 2 PrintF.hFILE .BS 1 -STDIO.StackBytePtr .BS 1 -STDIO.ExitPopCnt .BS 1 +STDIO.iStkB .BS 1 +STDIO.PopCnt .BS 1 .ED *-------------------------------------- K.PrintF.PadL .EQ FAC+5 @@ -745,9 +745,9 @@ K.PrintF.1 sec format string->ptr2 stx pIOBuf sta pIOBuf+1 Output buffer->pIOBuf - sty STDIO.ExitPopCnt Total bytes to POP + sty STDIO.PopCnt Total bytes to POP -.1 jsr SHARED.GetCharPtr2 +.1 jsr SHARED.GetCP2 bne .22 jmp .8 end of format.. @@ -764,7 +764,7 @@ K.PrintF.1 sec format string->ptr2 cmp #'0' ...a 0...mmm... padding char? bne .4 sta K.PrintF.PadC - jsr SHARED.NextCharPtr2 skip 0 ... + jsr SHARED.NextCP2 skip 0 ... lda (ZPPtr2) beq .7 @@ -780,7 +780,7 @@ K.PrintF.1 sec format string->ptr2 lda #C.SPACE sta K.PrintF.PadC -.5 jsr SHARED.AddYToPtr2 skip all processed chars +.5 jsr SHARED.AddY2P2 skip all processed chars lda (ZPPtr2) beq .7 @@ -792,7 +792,7 @@ K.PrintF.1 sec format string->ptr2 bpl .61 bra .20 unknown ... -.62 jsr SHARED.NextCharPtr2 +.62 jsr SHARED.NextCP2 txa yes, jmp to it! asl tax @@ -805,7 +805,7 @@ K.PrintF.1 sec format string->ptr2 .10 cmp #'\' bne .20 - jsr SHARED.GetCharPtr2 + jsr SHARED.GetCP2 beq .99 ldx #PrintFTBL2.Cnt-1 .12 cmp PrintFTBL2,x @@ -819,7 +819,7 @@ K.PrintF.1 sec format string->ptr2 jsr MATH.Hex2ACC32 bcs .99 - jsr SHARED.AddYToPtr2 + jsr SHARED.AddY2P2 .14 lda ACC32 bra .20 .19 lda PrintFTBL2.OUT,x @@ -849,6 +849,7 @@ K.PrintF.1 sec format string->ptr2 .80 ldy PrintF.Cnt A=0, Writing to buffer, append \0 sta (pIOBuf),y clc + .81 >LDYA PrintF.Cnt * clc .9 jmp STDIO.Exit @@ -869,7 +870,7 @@ PrintF.ESC jmp (.1,x) .DA PrintF.I,PrintF.II,PrintF.L .DA PrintF.S,PrintF.SS *-------------------------------------- -PrintF.B jsr STDIO.GetStackByte +PrintF.B jsr STDIO.GetStkB bcs PrintF.B.RTS ldy #8 @@ -913,7 +914,7 @@ PrintF.NUM sty .2+1 ror ACC32.Sign save signed/unsigned flag jsr M32.ACC32Z -.1 jsr STDIO.GetStackByte +.1 jsr STDIO.GetStkB bcs PrintF.B.RTS sta ACC32-1,y PULL 4,2 or 1 @@ -962,12 +963,13 @@ PrintF.F clc ldy pStack+1 A,Y = float ldx #FPU.SETFAC jsr GP.ROMCALL - ldy #A2osX.NumStrBuf+1 FOUT.1 will do a DEY + + ldy #FOUTBuf+1 FOUT.1 will do a DEY ldx #FPU.FOUT jsr GP.ROMCALL PrintF.StrNum ldy #0 -.2 lda A2osX.NumStrBuf,y +.2 lda FOUTBuf,y beq .8 iny jsr PrintF.PutC @@ -988,11 +990,11 @@ PrintF.SS ldy #$00 PSTR sty .1+1 - jsr STDIO.GetStackByte + jsr STDIO.GetStkB bcs .9 sta ZPPtr1+1 - jsr STDIO.GetStackByte + jsr STDIO.GetStkB bcs .9 sta ZPPtr1 @@ -1040,26 +1042,26 @@ PrintF.SS ldy #$00 PSTR * clc .9 rts *-------------------------------------- -PrintF.HH jsr STDIO.GetStackByte - bcs PrintF.PutC.RTS +PrintF.HH jsr STDIO.GetStkB + bcs STDIO.RTS pha LO byte - jsr STDIO.GetStackByte + jsr STDIO.GetStkB plx - bcs PrintF.PutC.RTS + bcs STDIO.RTS pha txa jsr PrintF.H.1 plx - bcs PrintF.PutC.RTS + bcs STDIO.RTS txa bra PrintF.H.1 *-------------------------------------- -PrintF.H jsr STDIO.GetStackByte - bcs PrintF.PutC.RTS +PrintF.H jsr STDIO.GetStkB + bcs STDIO.RTS PrintF.H.1 jsr STDIO.A2HexAX jsr PrintF.PutC - bcs PrintF.PutC.RTS + bcs STDIO.RTS txa *-------------------------------------- PrintF.PutC phy @@ -1078,7 +1080,7 @@ PrintF.PutC phy .9 lda #E.BUF sec -PrintF.PutC.RTS rts +STDIO.RTS rts */-------------------------------------- * # ScanF (BLOCKING) * # FScanF (BLOCKING) @@ -1142,7 +1144,7 @@ K.SScanF.1 clc format string->ptr1 stx ZPPtr2 sta ZPPtr2+1 Output buffer->ZPPtr2 - sty STDIO.ExitPopCnt Total bytes to POP + sty STDIO.PopCnt Total bytes to POP ldx PrintF.hFILE beq .1 @@ -1155,10 +1157,10 @@ K.SScanF.1 clc format string->ptr1 bcc .1 tax - bne PrintF.PutC.RTS + bne STDIO.RTS >RET 4 -.1 jsr SHARED.GetCharPtr1 End Of format? +.1 jsr SHARED.GetCP1 End Of format? beq .8 cmp #'%' Escape ? @@ -1169,7 +1171,7 @@ K.SScanF.1 clc format string->ptr1 sta .11+1 - jsr SHARED.GetCharPtr2 + jsr SHARED.GetCP2 beq .9 .11 cmp #$ff Same char in string? @@ -1177,18 +1179,18 @@ K.SScanF.1 clc format string->ptr1 bra .9 -.12 jsr SHARED.GetCharPtr2 +.12 jsr SHARED.GetCP2 beq .9 cmp #C.SPACE bne .9 -.13 jsr SHARED.GetCharPtr2 +.13 jsr SHARED.GetCP2 cmp #C.SPACE another space ? beq .13 bra .1 -.2 jsr SHARED.GetCharPtr1 Get specifier after % +.2 jsr SHARED.GetCP1 Get specifier after % beq .9 unexpected End of format after "%" ? ldx #K.SScanFJMP-K.SScanFTBL-2 @@ -1203,10 +1205,10 @@ K.SScanF.1 clc format string->ptr1 sec jmp STDIO.Exit -.4 jsr STDIO.GetStackByte +.4 jsr STDIO.GetStkB bcs .9 sta ZPPtr3+1 - jsr STDIO.GetStackByte + jsr STDIO.GetStkB bcs .9 sta ZPPtr3 @@ -1250,7 +1252,7 @@ K.SScanF.H lda K.SScanFTBL+1,x Get VAR size jsr MATH.Hex2ACC32 -K.SScanF.GetVAL jsr SHARED.AddYToPtr2 Y=char count parsed +K.SScanF.GetVAL jsr SHARED.AddY2P2 Y=char count parsed .1 ply get back VAL size @@ -1277,7 +1279,7 @@ K.SScanF.S ldy #$ff .2 lda #0 add \0 to param ptr sta (ZPPtr3),y -K.SScanF.Fwd jmp SHARED.AddYToPtr2 Y=char count parsed +K.SScanF.Fwd jmp SHARED.AddY2P2 Y=char count parsed *-------------------------------------- * IN: * CC : format in ZPPtr1 @@ -1297,7 +1299,7 @@ STDIO.GetParams stz PrintF.Cnt lda (pStack) Bytecount tay - sty STDIO.StackBytePtr + sty STDIO.iStkB iny lda (pStack),y format LO @@ -1340,22 +1342,15 @@ STDIO.GetParams stz PrintF.Cnt .1 ldx #K.IOBuf lda /K.IOBuf -STDIO.GetParams.RTS rts *-------------------------------------- -STDIO.GetStackPtr - jsr STDIO.GetStackByte - bcs STDIO.GetParams.RTS - tax -*-------------------------------------- -STDIO.GetStackByte - phy +STDIO.GetStkB phy - ldy STDIO.StackBytePtr + ldy STDIO.iStkB beq .9 lda (pStack),y - dec STDIO.StackBytePtr + dec STDIO.iStkB ply clc @@ -1372,7 +1367,7 @@ STDIO.Exit php lda pStack sec - adc STDIO.ExitPopCnt + adc STDIO.PopCnt sta pStack pla diff --git a/SYS/KERNEL.S.STDLIB.txt b/SYS/KERNEL.S.STDLIB.txt index feb4614d..265d9989 100644 --- a/SYS/KERNEL.S.STDLIB.txt +++ b/SYS/KERNEL.S.STDLIB.txt @@ -43,7 +43,7 @@ K.AToF >STYA TXTPTR Ptr to source string jsr CHARGOT ldx #FPU.FIN - jmp GP.RomCallGetFacOnStack + jmp GP.GetFac */-------------------------------------- * # StrToL/StrToUL * Convert String to 32 bits (unsigned) int @@ -340,7 +340,7 @@ K.Expand ldy #2 .10 lda (TXTPTR) End of CSTR? beq .80 - jsr SHARED.TXTPTR.Next + jsr SHARED.TXTPTRn .11 cmp #''' bne .21 @@ -374,13 +374,13 @@ K.Expand ldy #2 dec ENV.VarEndChar "}" expected - jsr SHARED.TXTPTR.Next skip "{" + jsr SHARED.TXTPTRn skip "{" bra .40 .31 jsr ENV.SysVar 0-9 *#?@$! bcs .40 -.35 jsr SHARED.TXTPTR.Next skip $x +.35 jsr SHARED.TXTPTRn skip $x bra .10 .40 jsr ENV.ExpandStrVar @@ -408,7 +408,7 @@ K.Expand ldy #2 jsr SHARED.IsIDValid bcs .72 - jsr SHARED.TXTPTR.Next + jsr SHARED.TXTPTRn bra .70 .72 lda ENV.VarEndChar @@ -465,7 +465,7 @@ ENV.SysVarsNum jsr MATH.A2STR10NP ldy #0 -.1 lda A2osX.NumStrBuf,y +.1 lda FOUTBuf,y beq ENV.SysVarsNum.8 iny diff --git a/SYS/KERNEL.S.STRING.txt b/SYS/KERNEL.S.STRING.txt index ef88d4c4..5b2c040c 100644 --- a/SYS/KERNEL.S.STRING.txt +++ b/SYS/KERNEL.S.STRING.txt @@ -35,8 +35,8 @@ K.StrLen >STYA .1+1 * `char * strcat ( char * destination, const char * source );` * ## ASM * **In:** +* `>PUSHWI destination` * `>PUSHWI source` -* `>LDYAI destination` * `>SYSCALL strcat` * ## RETURN VALUE * Y,A = destination @@ -50,8 +50,8 @@ K.StrCat sec * `char * strcpy ( char * destination, const char * source );` * ## ASM * **In:** +* `>PUSHWI destination` * `>PUSHWI source` -* `>LDYAI destination` * `>SYSCALL strcpy` * ## RETURN VALUE * Y,A = destination @@ -59,11 +59,11 @@ K.StrCat sec K.StrCpy clc phy pha - jsr SHARED.SPtr1PPtr2 + jsr SHARED.PullP2P1 bcc .2 -.1 jsr SHARED.GetCharPtr1 +.1 jsr SHARED.GetCP1 bne .1 .2 ldy #0 @@ -185,8 +185,8 @@ K.StrLwr ldx #2 * `int strcmp(const char *s1, const char *s2);` * ## ASM * **In:** +* `>PUSHWI s1` * `>PUSHWI s2` -* `>LDYAI s1` * `>SYSCALL strcmp` * ## RETURN VALUE * CC : match @@ -203,8 +203,8 @@ K.StrCmp sec * `int strcasecmp(const char *s1, const char *s2);` * ## ASM * **In:** +* `>PUSHWI s1` * `>PUSHWI s2` -* `>LDYAI s1` * `>SYSCALL strcasecmp` * ## RETURN VALUE * CC : match @@ -213,19 +213,19 @@ K.StrCmp sec * CS, Y,A > 0 or < 0 *\-------------------------------------- K.StrCaseCmp clc - jsr SHARED.SPtr1PPtr2 + jsr SHARED.PullP2P1 ldy #0 .1 lda (ZPPtr1),y beq .7 - jsr K.StrCaseCmp.toUpper + jsr .80 sta .2+1 lda (ZPPtr2),y beq .9 - jsr K.StrCaseCmp.toUpper + jsr .80 .2 eor #$ff SELF MODIFIED bne .9 @@ -252,22 +252,19 @@ K.StrCaseCmp clc sec rts *-------------------------------------- -K.StrCaseCmp.toUpper - bcs .9 +.80 bcs .99 + cmp #'a' - bcc .9 + bcc .99 + cmp #'z'+1 - bcs .1 + bcs .81 + eor #$20 -.1 clc +.81 clc -.9 rts -*-------------------------------------- -SHARED.SPtr1PPtr2 - >STYA ZPPtr1 - >PULLW ZPPtr2 - rts +.99 rts *-------------------------------------- MAN SAVE usr/src/sys/kernel.s.string diff --git a/SYS/KERNEL.S.STRVX.txt b/SYS/KERNEL.S.STRVX.txt index 634f12a3..c7882aa3 100644 --- a/SYS/KERNEL.S.STRVX.txt +++ b/SYS/KERNEL.S.STRVX.txt @@ -1,6 +1,11 @@ NEW AUTO 3,1 *-------------------------------------- +STRVX.StrVFree jsr K.FreeMem + + clc + rts +*-------------------------------------- STRVX.StrVNew jsr K.GetMem bcs .9 @@ -21,7 +26,7 @@ STRVX.StrVSet jsr STRVX.GetID ldy #$ff .1 iny - jsr SHARED.FORPNT.GetY + jsr SHARED.FORPNTgY bne .1 tya @@ -44,7 +49,7 @@ STRVX.StrVSet jsr STRVX.GetID .2 ldy #$ff .3 iny - jsr SHARED.FORPNT.GetY + jsr SHARED.FORPNTgY sta (ZPPtr1),y bne .3 @@ -74,14 +79,14 @@ STRVX.StrVSet jsr STRVX.GetID sta (ZPPtr2),y bne .6 - jsr SHARED.AddYp1ToPtr1 - jsr SHARED.AddYp1ToPtr2 + jsr SHARED.AddYp12P1 + jsr SHARED.AddYp12P2 bra .40 *-------------------------------------- .7 ldy #$ff .8 iny - jsr SHARED.FORPNT.GetY + jsr SHARED.FORPNTgY bne .8 tya @@ -109,7 +114,7 @@ STRVX.StrVSet jsr STRVX.GetID .10 ldy #$ff .11 iny - jsr SHARED.FORPNT.GetY + jsr SHARED.FORPNTgY sta (ZPPtr1),y bne .11 @@ -138,7 +143,7 @@ STRVX.StrVGet jsr STRVX.GetID .5 iny lda (ZPPtr1),y - jsr SHARED.FORPNT.PutY + jsr SHARED.FORPNTpY bne .5 >LDYA FORPNT @@ -149,11 +154,6 @@ STRVX.StrVGet jsr STRVX.GetID clc .9 rts *-------------------------------------- -STRVX.StrVFree jsr K.FreeMem - - clc - rts -*-------------------------------------- STRVX.GetID jsr K.GetMemPtr >STYA ZPPtr1 strV diff --git a/SYS/KERNEL.S.TERM.txt b/SYS/KERNEL.S.TERM.txt index 4fae8c1d..ebe6a70c 100644 --- a/SYS/KERNEL.S.TERM.txt +++ b/SYS/KERNEL.S.TERM.txt @@ -18,7 +18,7 @@ DRV.TERM cld *-------------------------------------- TERM.STATUS jsr TERM.GetIOCTLBufCntDCB - ldy #S.IOCTL.STATCODE + ldy #S.IOCTL.S lda (ZPIOCTL),y tay bra TERM.TOAUX diff --git a/SYS/KERNEL.S.TERMX.txt b/SYS/KERNEL.S.TERMX.txt index 412dcf57..db8e9c33 100644 --- a/SYS/KERNEL.S.TERMX.txt +++ b/SYS/KERNEL.S.TERMX.txt @@ -41,7 +41,7 @@ TERMX .DA TERMX.STATUS TERMX.STATUS tya beq .1 - cmp #S.IOCTL.STATCODE.GETDIB + cmp #S.IOCTL.S.GETDIB bne .3 ldy #S.DIB-1 @@ -55,13 +55,13 @@ TERMX.STATUS tya dey bne .2 - ldy #S.DCB.TTY.STATUS + ldy #S.DCB.TTY.S lda (ZPDCBPtr),y sta (ZPBufPtr) clc rts -.3 cmp #S.IOCTL.STATCODE.EOF +.3 cmp #S.IOCTL.S.EOF bne .9 jsr TERMX.ISOPENED @@ -120,7 +120,7 @@ TERMX.OPEN jsr TERMX.ISOPENED sta (ZPDCBPtr) #S.DCB.TTY.DEVID - ldy #S.DCB.TTY.STATUS + ldy #S.DCB.TTY.S lda (ZPDCBPtr),y ora #S.DIB.S.OPENED ora TERMX.DIB+S.DIB.S @@ -171,7 +171,7 @@ TERMX.CLOSE jsr TERMX.ISOPENED sec rts *-------------------------------------- -TERMX.ISOPENED ldy #S.DCB.TTY.STATUS +TERMX.ISOPENED ldy #S.DCB.TTY.S lda (ZPDCBPtr),y bit #S.DIB.S.OPENED rts @@ -279,7 +279,7 @@ TERMX.WRITE jsr TERMX.CUROFF inc ZPCnt+1 beq .8 -.2 ldy #S.DCB.TTY.MODE +.2 ldy #S.DCB.TTY.M lda (ZPDCBPtr),y tax jsr .3 @@ -306,7 +306,7 @@ TERMX.OUT jsr TERM.GetBufByte cmp #IAC bne .1 - lda #S.DCB.TTY.MODE.IAC + lda #S.DCB.TTY.M.IAC jmp TERMX.SETM .1 cmp #C.DEL @@ -421,10 +421,10 @@ TERMX.OUT.SI clc clc rts *-------------------------------------- -TERMX.OUT.ESC lda #S.DCB.TTY.MODE.ESC +TERMX.OUT.ESC lda #S.DCB.TTY.M.ESC bra TERMX.SETM *-------------------------------------- -TERMX.ESC jsr TERM.GetBufByte y = #S.DCB.TTY.MODE +TERMX.ESC jsr TERM.GetBufByte y = #S.DCB.TTY.M ldx #EscCodes.Cnt-1 .2 cmp EscCodes,x @@ -450,19 +450,18 @@ TERMX.ESC jsr TERM.GetBufByte y = #S.DCB.TTY.MODE .DA Scroll.Dn M .DA Scroll.Up D .DA RESET c - .DA TERMX.SETM.RTS [ - .DA TERMX.SETM.RTS ( - .DA TERMX.SETM.RTS ) + .DA TERMX.RTS [ + .DA TERMX.RTS ( + .DA TERMX.RTS ) *-------------------------------------- TERMX.SETM0 lda #0 -TERMX.SETM ldy #S.DCB.TTY.MODE +TERMX.SETM ldy #S.DCB.TTY.M sta (ZPDCBPtr),y ldy #S.DCB.TTY.INBUF lda #S.DCB.TTY.INBUF sta (ZPDCBPtr),y clc - -TERMX.SETM.RTS rts + rts *-------------------------------------- TERMX.CSI ldy #S.DCB.TTY.INBUF lda (ZPDCBPtr),y @@ -501,12 +500,12 @@ TERMX.CSI.Exec stz CsiH sta CsiH -.1 jsr SHARED.NextCharPtr2 +.1 jsr SHARED.NextCP2 .2 jsr MATH.Dec2ACC32 bcs .5 - jsr SHARED.AddYToPtr2 + jsr SHARED.AddY2P2 lda #255 ldx ACC32+1 bne .3 @@ -921,12 +920,12 @@ COUT.IAC.DONT COUT.IAC.EXIT *-------------------------------------- RESET.MODE lda #0 - ldy #S.DCB.TTY.MODE + ldy #S.DCB.TTY.M sta (ZPDCBPtr),y rts *-------------------------------------- -RESET ldy #S.DCB.TTY.MODE -.1 lda RESET.VALUES-S.DCB.TTY.MODE,y +RESET ldy #S.DCB.TTY.M +.1 lda RESET.VALUES-S.DCB.TTY.M,y sta (ZPDCBPtr),y iny cpy #S.DCB.TTY.INBUF+1 @@ -1076,16 +1075,16 @@ TERMX.CBLNK bit bActive .9 rts TERMX.CUROFF bit bActive - bpl TERMX.CBLNK.RTS + bpl TERMX.RTS ldy #S.DCB.TTY.bCURON lda (ZPDCBPtr),y - beq TERMX.CBLNK.RTS + beq TERMX.RTS TERMX.CBLNK.1 lda (ZPDCBPtr),y bne TERMX.CBLNK.OFF jsr GetCharAtCurPos - bcs TERMX.CBLNK.RTS Out of screen + bcs TERMX.RTS Out of screen and #$80 eor #" " @@ -1101,14 +1100,14 @@ TERMX.CBLNK.SET TERMX.CBLNK.OFF jsr GetCharAtCurPos bcc TERMX.CBLNK.SET if not Out of screen -TERMX.CBLNK.RTS - rts + +TERMX.RTS rts *-------------------------------------- DecOut jsr MATH.A2STR10NP ldx #0 -.1 lda A2osX.NumStrBuf,x - beq TERMX.CBLNK.RTS +.1 lda FOUTBuf,x + beq TERMX.RTS inx jsr Char.Out.Put bra .1 @@ -1225,7 +1224,7 @@ TERMX.CLRSCR.2 sty .1+1 *-------------------------------------- TERMX.Title.ON ldy #S.DCB.TTY.bTITLE lda (ZPDCBPtr),y - bmi TERMX.Title.RTS + bmi TERMX.RTS2 lda #$ff sta (ZPDCBPtr),y @@ -1240,7 +1239,7 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE ldy #0 -.1 jsr SHARED.TXTPTR.GetNext +.1 jsr SHARED.TXTPTRgn beq .3 cmp #$40 @@ -1264,11 +1263,12 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE cpy #80 bne .4 -TERMX.Title.RTS rts +TERMX.RTS2 rts TERMX.Title.OFF ldy #S.DCB.TTY.bTITLE lda (ZPDCBPtr),y - bpl TERMX.Title.RTS + bpl TERMX.RTS2 + lda #$0 sta (ZPDCBPtr),y *-------------------------------------- @@ -1455,7 +1455,7 @@ CtrlChars.Cnt .EQ *-CtrlChars *-------------------------------------- EscCodes .AZ "78MDc[()" EscCodes.Cnt .EQ *-EscCodes -EscModes .DA #0,#0,#0,#0,#0,#S.DCB.TTY.MODE.CSI,#S.DCB.TTY.MODE.G0,#S.DCB.TTY.MODE.G1 +EscModes .DA #0,#0,#0,#0,#0,#S.DCB.TTY.M.CSI,#S.DCB.TTY.M.G0,#S.DCB.TTY.M.G1 CsiCodes .AS "hlmnrABCDJKH" CsiCodes.Cnt .EQ *-CsiCodes *-------------------------------------- diff --git a/SYS/KERNEL.S.TIMEX.txt b/SYS/KERNEL.S.TIMEX.txt index 89307732..8377dedb 100644 --- a/SYS/KERNEL.S.TIMEX.txt +++ b/SYS/KERNEL.S.TIMEX.txt @@ -13,17 +13,17 @@ DAY0 .EQ 4 day 0 was a thursday * TXTPTR format *-------------------------------------- TIMEX.StrFTime -.1 jsr SHARED.TXTPTR.GetNext +.1 jsr SHARED.TXTPTRgn beq .8 cmp #'%' beq .2 - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn bra .1 .2 ldx #K.StrFTime.Cnt-1 - jsr SHARED.TXTPTR.GetNext + jsr SHARED.TXTPTRgn beq .8 .3 cmp K.StrFTime.Tbl,x @@ -47,7 +47,7 @@ TIMEX.StrFTime .7 jmp (K.StrFTime.JMP,x) .8 lda #0 Terminate C string - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn clc rts *-------------------------------------- @@ -83,7 +83,7 @@ K.StrFTime.STR sta ZPPtr4 bcc .10 ldx #3 -.10 jsr SHARED.ZPPtr3.GetY get required S.Time field value +.10 jsr SHARED.P3gY get required S.Time field value tay beq .2 Illegal value, print ??? @@ -100,7 +100,7 @@ K.StrFTime.STR sta ZPPtr4 .3 iny lda (ZPPtr4),y - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn tya cmp (ZPPtr4) beq .8 @@ -110,22 +110,22 @@ K.StrFTime.STR sta ZPPtr4 .8 rts *-------------------------------------- K.StrFTime.II ldy #S.Time.HOUR - jsr SHARED.ZPPtr3.GetY + jsr SHARED.P3gY cmp #12 bcc K.StrFTime.addDecA sbc #12 bra K.StrFTime.addDecA K.StrFTime.P ldy #S.Time.HOUR - jsr SHARED.ZPPtr3.GetY + jsr SHARED.P3gY cmp #12 bcc .1 lda #'p' .HS 2C bit abs .1 lda #'a' - jsr SHARED.FORPNT.PutNext + jsr SHARED.FORPNTpn lda #'m' - jmp SHARED.FORPNT.PutNext + jmp SHARED.FORPNTpn t K.StrFTime.YY ldy #S.Time.CENTURY jsr K.StrFTime.addDecPtr3Y @@ -133,16 +133,16 @@ K.StrFTime.YY ldy #S.Time.CENTURY K.StrFTime.AtX ldy K.StrFTime.OfsX-7,x *-------------------------------------- K.StrFTime.addDecPtr3Y - jsr SHARED.ZPPtr3.GetY + jsr SHARED.P3gY K.StrFTime.addDecA ldx #2 ldy #'0' clc jsr MATH.A2STR10 - lda A2osX.NumStrBuf - jsr SHARED.FORPNT.PutNext - lda A2osX.NumStrBuf+1 - jmp SHARED.FORPNT.PutNext + lda FOUTBuf + jsr SHARED.FORPNTpn + lda FOUTBuf+1 + jmp SHARED.FORPNTpn *-------------------------------------- TIMEX.DAY >PSTR "???" >PSTR "Monday" @@ -173,25 +173,25 @@ TIMEX.PTime2Time.BAD rts TIMEX.PTime2Time ldy #3 - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY and #%11100000 bne TIMEX.PTime2Time.BAD dey - jsr SHARED.TXTPTR.GetY + jsr SHARED.TXTPTRgY and #%11000000 bne TIMEX.PTime2Time.BAD dey ldy #1 - jsr SHARED.TXTPTR.GetY Get Year + jsr SHARED.TXTPTRgY Get Year lsr C is high bit of month ldy #S.Time.YEAR - jsr SHARED.FORPNT.PutY set year + jsr SHARED.FORPNTpY set year sta ARG32+3 for computing Century/WDAY later ldy #0 - jsr SHARED.TXTPTR.GetY Get Month/day + jsr SHARED.TXTPTRgY Get Month/day tax save Day ror C is high bit of month @@ -205,7 +205,7 @@ TIMEX.PTime2Time bcs TIMEX.PTime2Time.BAD ldy #S.Time.MONTH - jsr SHARED.FORPNT.PutY set month + jsr SHARED.FORPNTpY set month sta K.ComputeWDAY.1+1 txa get back day @@ -216,7 +216,7 @@ TIMEX.PTime2Time bcs TIMEX.PTime2Time.BAD iny - jsr SHARED.FORPNT.PutY set day + jsr SHARED.FORPNTpY set day dec adjust range 0.30 for MOD 7 sta ARG32.Sign For later... @@ -231,22 +231,22 @@ TIMEX.PTime2Time eor #1 toggle C adc #19 set date before 1970 -> 20xx ldy #0 - jsr SHARED.FORPNT.PutY set Century + jsr SHARED.FORPNTpY set Century sta ARG32+2 for computing WDAY later ldy #2 - jsr SHARED.TXTPTR.GetY Get Min + jsr SHARED.TXTPTRgY Get Min tax iny - jsr SHARED.TXTPTR.GetY Get Hour + jsr SHARED.TXTPTRgY Get Hour ldy #S.Time.HOUR - jsr SHARED.FORPNT.PutY set hour + jsr SHARED.FORPNTpY set hour iny txa - jsr SHARED.FORPNT.PutY set min + jsr SHARED.FORPNTpY set min iny lda #0 - jsr SHARED.FORPNT.PutY set seconds (ProDOS does not provide it) + jsr SHARED.FORPNTpY set seconds (ProDOS does not provide it) *-------------------------------------- * 1/1/1970 was Thursday...if not leap, add one, if leap add 2 *-------------------------------------- @@ -324,7 +324,7 @@ K.ComputeWDAY.1 ldx #$ff SELF MODIFIED : month ldy #S.Time.WDAY * clc - jmp SHARED.FORPNT.PutY + jmp SHARED.FORPNTpY *-------------------------------------- * TXTPTR ctime * FORPNT S.TIME @@ -332,7 +332,7 @@ K.ComputeWDAY.1 ldx #$ff SELF MODIFIED : month TIMEX.CTime2Time ldy #3 -.1 jsr SHARED.TXTPTR.GetY +.1 jsr SHARED.TXTPTRgY sta ARG32,y ARG = ctime dey bpl .1 @@ -366,7 +366,7 @@ TIMEX.CTime2Time tya ldy #S.Time.WDAY - jsr SHARED.FORPNT.PutY + jsr SHARED.FORPNTpY ldy #CENT0 sty ZPPtr3 @@ -402,11 +402,11 @@ K.CTime2Time.Y lda ZPPtr3 ldy #S.Time.CENTURY - jsr SHARED.FORPNT.PutY + jsr SHARED.FORPNTpY ldy #S.Time.YEAR lda ZPPtr3+1 - jsr SHARED.FORPNT.PutY + jsr SHARED.FORPNTpY K.CTime2Time.MD ldx #1 X = January @@ -442,13 +442,13 @@ K.CTime2Time.MD .4 pla ldy #S.TIME.MONTH txa - jsr SHARED.FORPNT.PutY + jsr SHARED.FORPNTpY iny S.TIME.DAY lda ARG32 inc - jsr SHARED.FORPNT.PutY + jsr SHARED.FORPNTpY K.CTime2Time.HMS ldx #3 @@ -467,7 +467,7 @@ K.CTime2Time.HMS dey #S.TIME.HOUR lda ARG32 - jsr SHARED.FORPNT.PutY + jsr SHARED.FORPNTpY clc rts @@ -479,7 +479,7 @@ K.CTime2Time.HMS jsr M32.DIVMOD ply lda TMP32 - jsr SHARED.FORPNT.PutY + jsr SHARED.FORPNTpY rts *-------------------------------------- * In : diff --git a/SYS/KERNEL.S.UNISTD.txt b/SYS/KERNEL.S.UNISTD.txt index 4fdcfe7a..d8ba4ace 100644 --- a/SYS/KERNEL.S.UNISTD.txt +++ b/SYS/KERNEL.S.UNISTD.txt @@ -21,12 +21,12 @@ K.Open jsr PFT.YAToMLIPATH stz IO.Open.AUXTYPE stz IO.Open.AUXTYPE+1 *-------------------------------------- -UNISTD.Open ldx #5 /dev/ +IO.Open ldx #5 /dev/ cpx K.MLI.PATH bcs .8 .1 lda K.MLI.PATH,x - cmp UNISTD.DEV-1,x + cmp IO.DEV-1,x bne .8 dex bne .1 @@ -47,11 +47,11 @@ UNISTD.Open ldx #5 /dev/ .2 * .DA STDIO.IOERR REG .DA STDIO.IOERR DIR - .DA IO.OPEN.CDEV - .DA IO.OPEN.BDEV + .DA IO.OPEN.DEV + .DA IO.OPEN.DEV .DA STDIO.IOERR LNK - .DA IO.OPEN.DSOCK - .DA IO.OPEN.SSOCK + .DA IO.OPEN.SOCK + .DA IO.OPEN.SOCK .DA IO.OPEN.PIPE .8 jmp FS.OPEN.REG @@ -68,16 +68,16 @@ UNISTD.Open ldx #5 /dev/ *\-------------------------------------- K.Close jsr DEV.GetPFD -UNISTD.Close lda (pFD) #S.FD.T +IO.Close lda (pFD) #S.FD.T tax jmp (.1,x) .1 .DA FS.CLOSE.REG .DA FS.CLOSE.DIR - .DA IO.CLOSE.CDEV - .DA IO.CLOSE.BDEV + .DA IO.CLOSE.DEV + .DA IO.CLOSE.DEV .DA STDIO.IOERR LNK - .DA IO.CLOSE.DSOCK - .DA IO.CLOSE.SSOCK + .DA IO.CLOSE.SOCK + .DA IO.CLOSE.SOCK .DA IO.CLOSE.PIPE */-------------------------------------- * # read @@ -95,7 +95,7 @@ UNISTD.Close lda (pFD) #S.FD.T *\-------------------------------------- K.Read jsr DEV.GetPFD -UNISTD.Read lda (pFD) #S.FD.T +IO.Read lda (pFD) #S.FD.T tax jmp (.1,x) .1 .DA FS.READ.REG @@ -122,7 +122,7 @@ UNISTD.Read lda (pFD) #S.FD.T *\-------------------------------------- K.Write jsr DEV.GetPFD -UNISTD.Write lda (pFD) #S.FD.T +IO.Write lda (pFD) #S.FD.T tax jmp (.1,x) .1 .DA FS.WRITE.REG @@ -134,19 +134,16 @@ UNISTD.Write lda (pFD) #S.FD.T .DA IO.WRITE.SSOCK .DA IO.WRITE.PIPE *-------------------------------------- -IO.OPEN.CDEV -IO.OPEN.BDEV ldx #IOCTL.OPEN +IO.OPEN.DEV ldx #IOCTL.OPEN lda IO.hDevNod jsr DEV.pDrvJmp - bcs IO.WRITE.CDEV.RTS + bcs IO.RTS *-------------------------------------- -IO.OPEN.DSOCK -IO.OPEN.SSOCK lda IO.hDevNod +IO.OPEN.SOCK lda IO.hDevNod clc rts *-------------------------------------- -IO.CLOSE.CDEV -IO.CLOSE.BDEV ldx #IOCTL.CLOSE +IO.CLOSE.DEV ldx #IOCTL.CLOSE lda IO.hDevNod jmp DEV.pDrvJmp *-------------------------------------- @@ -160,17 +157,13 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE >LDYAI K.S.IOCTL jsr DEV.pDrvJmp - bcs .9 + bcs IO.RTS >LDYA K.S.IOCTL+S.IOCTL.BYTECNT -.9 -IO.WRITE.CDEV.RTS - rts +IO.RTS rts *-------------------------------------- -IO.CLOSE.DSOCK -IO.CLOSE.SSOCK - ldy #S.FD.SSOCK.CLOSE +IO.CLOSE.SOCK ldy #S.FD.SSOCK.CLOSE .HS 2C BIT ABS *-------------------------------------- IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF @@ -184,14 +177,14 @@ IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE lda (pFD),y tax Function Offset in LIB - ldy #S.FD.SSOCK.IOHANDLER + ldy #S.FD.SSOCK.IOH lda (pFD),y jsr K.GetMemPtr >STYA .1+1 lda IO.hFD .1 jmp $FFFF SELF MODIFIED *-------------------------------------- -IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF +IO.EOF.CDEV lda #S.IOCTL.S.EOF jmp DEV.GetDevStatus */-------------------------------------- * # ChOwn @@ -206,12 +199,12 @@ IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF * ## RETURN VALUE *\-------------------------------------- K.ChOwn jsr PFT.CheckPath2 - bcs K.ChOwn.RET4 + bcs .9 stz K.MLI.PARAMS+3+S.FIEX.ACL read mode >MLICALL MLIACL - bcs K.ChOwn.RET4 + bcs .9 lda (pStack) bmi .1 @@ -229,9 +222,9 @@ K.ChOwn jsr PFT.CheckPath2 >MLICALL MLIACL -K.ChOwn.RET4 >RET 4 +.9 >RET 4 *-------------------------------------- -UNISTD.DEV .AS "/dev/" +IO.DEV .AS "/dev/" *-------------------------------------- MAN SAVE usr/src/sys/kernel.s.unistd diff --git a/SYS/KERNEL.S.txt b/SYS/KERNEL.S.txt index c5d54e08..561be899 100644 --- a/SYS/KERNEL.S.txt +++ b/SYS/KERNEL.S.txt @@ -23,31 +23,32 @@ NEW A2osX.Unpak >STYA ZPOutBufPtr .INB usr/src/shared/x.unpak.s -PAKME.MAIN .DA A2osX.MAIN -PAKME.AUX .DA A2osX.AUX -PAKME.GP .DA A2osX.GP -PAKME.D1 .DA A2osX.D1 -PAKME.D2 .DA A2osX.D2 -PAKME.E0 .DA A2osX.E0 +PAKME.MAIN .DA MAIN +PAKME.AUX .DA AUX +PAKME.GP .DA GP +PAKME.D1 .DA D1 +PAKME.D2 .DA D2 +PAKME.E0 .DA E0 -A2osX.MAIN .DA #0 - .DA A2osX.MAIN.S +MAIN .DA #0 + .DA MAIN.S -A2osX.MAIN.B .PH A2osX.EndTables +MAIN.B .PH A2osX.EndTables .INB usr/src/sys/kernel.s.core .INB usr/src/sys/kernel.s.drv .INB usr/src/sys/kernel.s.pft .INB usr/src/sys/kernel.s.fs + .INB usr/src/sys/kernel.s.mathf Mem.MLoMem .EQ * .EP -A2osX.MAIN.S .EQ *-A2osX.MAIN.B +MAIN.S .EQ *-MAIN.B -A2osX.AUX .DA #0 - .DA A2osX.AUX.S +AUX .DA #0 + .DA AUX.S -A2osX.AUX.B .PH Mem.XHiMem +AUX.B .PH Mem.XHiMem - .DA SHARED.TXTPTR.GetNext + .DA SHARED.TXTPTRgn .INB usr/src/sys/kernel.s.jmpx .INB usr/src/sys/kernel.s.termx @@ -57,24 +58,23 @@ A2osX.AUX.B .PH Mem.XHiMem .INB usr/src/sys/kernel.s.md5x .INB usr/src/sys/kernel.s.pwdx .INB usr/src/sys/kernel.s.slistx -* .INB usr/src/sys/kernel.s.blistx + .INB usr/src/sys/kernel.s.blistx .INB usr/src/sys/kernel.s.errorx .EP -A2osX.AUX.S .EQ *-A2osX.AUX.B +AUX.S .EQ *-AUX.B -A2osX.GP .DA #0 - .DA A2osX.GP.S +GP .DA #0 + .DA GP.S -A2osX.GP.B .PH A2osX.SYSCALL +GP.B .PH A2osX.SYSCALL .INB usr/src/sys/kernel.s.gp -A2osX.GP.SC .EQ GP.CodeEnd-GP.CodeStart .EP -A2osX.GP.S .EQ *-A2osX.GP.B +GP.S .EQ *-GP.B -A2osX.D1 .DA #0 - .DA A2osX.D1.S +D1 .DA #0 + .DA D1.S -A2osX.D1.B .PH $D000 +D1.B .PH $D000 .DA #RRAMWRAMBNK1 .INB usr/src/sys/kernel.s.stat .INB usr/src/sys/kernel.s.dirent @@ -83,12 +83,12 @@ A2osX.D1.B .PH $D000 .INB usr/src/sys/kernel.s.dev .INB usr/src/sys/kernel.s.pipe .EP -A2osX.D1.S .EQ *-A2osX.D1.B +D1.S .EQ *-D1.B -A2osX.D2 .DA #0 - .DA A2osX.D2.S +D2 .DA #0 + .DA D2.S -A2osX.D2.B .PH $D000 +D2.B .PH $D000 .DA #RRAMWRAMBNK2 .INB usr/src/sys/kernel.s.mount .INB usr/src/sys/kernel.s.arg @@ -98,12 +98,12 @@ A2osX.D2.B .PH $D000 .INB usr/src/sys/kernel.s.bin .INB usr/src/sys/kernel.s.ps .EP -A2osX.D2.S .EQ *-A2osX.D2.B +D2.S .EQ *-D2.B -A2osX.E0 .DA #0 - .DA A2osX.E0.S +E0 .DA #0 + .DA E0.S -A2osX.E0.B .PH $E000 +E0.B .PH $E000 .INB usr/src/sys/kernel.s.jmp .INB usr/src/sys/kernel.s.irq .INB usr/src/sys/kernel.s.shared @@ -127,7 +127,8 @@ DevMgr.Free .DA DevMgr.FreeMem .DA DevMgr.HiMem DevMgr.FreeMem .EQ * .EP -A2osX.E0.S .EQ *-A2osX.E0.B + +E0.S .EQ *-E0.B .AS "PAKME" TAG .DA $2000 BIN ORG