diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index e723d95e..91e2c539 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/CSH.I.txt b/BIN/CSH.I.txt index 89705bdc..2b2fd557 100644 --- a/BIN/CSH.I.txt +++ b/BIN/CSH.I.txt @@ -96,26 +96,73 @@ CSH.STYPES >PSTR "char" *-------------------------------------- CSH.TYPESIZE .HS 0001020401020405 VOID,CHAR,INT,LONG,UCHAR,UINT,ULONG,FLOAT.... *-------------------------------------- -* int printf ( const char * format, ... ); -CSH.FN >PSTR "printf" - .DA #CSH.T.INT returned value - .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR - .DA #CSH.T.VARIADIC - .DA #0 -* int puts ( const char * str ); - >PSTR "puts" - .DA #CSH.T.INT returned value - .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR - .DA #0 +CSH.FN * float cos ( float x ); + >PSTR "log" + .DA #CSH.T.FLOAT returned value + .DA #CSH.T.FLOAT + .DA #0 + >PSTR "sqr" + .DA #CSH.T.FLOAT returned value + .DA #CSH.T.FLOAT + .DA #0 + >PSTR "exp" + .DA #CSH.T.FLOAT returned value + .DA #CSH.T.FLOAT + .DA #0 >PSTR "cos" .DA #CSH.T.FLOAT returned value .DA #CSH.T.FLOAT .DA #0 + >PSTR "sin" + .DA #CSH.T.FLOAT returned value + .DA #CSH.T.FLOAT + .DA #0 + >PSTR "tan" + .DA #CSH.T.FLOAT returned value + .DA #CSH.T.FLOAT + .DA #0 + >PSTR "atan" + .DA #CSH.T.FLOAT returned value + .DA #CSH.T.FLOAT + .DA #0 * char getchar ( void ); >PSTR "getchar" .DA #CSH.T.CHAR returned value .DA #0 +* int puts ( const char * str ); + >PSTR "puts" + .DA #CSH.T.INT returned value + .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR + .DA #0 +* int printf ( const char * format, ... ); + >PSTR "printf" + .DA #CSH.T.INT returned value + .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR + .DA #CSH.T.VARIADIC + .DA #0 +* int putenv(const char *string); + >PSTR "putenv" + .DA #CSH.T.INT returned value + .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR + .DA #0 +* int setenv(const char *name, const char *value); + >PSTR "setenv" + .DA #CSH.T.INT returned value + .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR + .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR + .DA #0 +* char *getenv(const char *name, char *value); + >PSTR "getenv" + .DA #CSH.Q.POINTER+CSH.T.CHAR + .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR + .DA #CSH.Q.POINTER+CSH.T.CHAR + .DA #0 +* int unsetenv(const char *name); + >PSTR "unsetenv" + .DA #CSH.T.INT returned value + .DA #CSH.Q.CONST+CSH.Q.POINTER+CSH.T.CHAR + .DA #0 * void * malloc ( int size ); >PSTR "malloc" .DA #CSH.Q.POINTER+CSH.T.VOID returned value diff --git a/BIN/CSH.R.txt b/BIN/CSH.R.txt index 0d116c15..ede4d5b5 100644 --- a/BIN/CSH.R.txt +++ b/BIN/CSH.R.txt @@ -64,10 +64,20 @@ J.CSH.UTYPES .DA CSH.UCHAR J.CSH.KW.END .DA CSH.IF.END .DA CSH.WHILE.END *-------------------------------------- -J.CSH.EXEC .DA EXEC.printf - .DA EXEC.puts +J.CSH.EXEC .DA EXEC.log + .DA EXEC.sqr + .DA EXEC.exp .DA EXEC.cos + .DA EXEC.sin + .DA EXEC.tan + .DA EXEC.atan .DA EXEC.getchar + .DA EXEC.puts + .DA EXEC.printf + .DA EXEC.putenv + .DA EXEC.setenv + .DA EXEC.getenv + .DA EXEC.unsetenv .DA EXEC.malloc *-------------------------------------- MAN diff --git a/BIN/CSH.S.CORE.txt b/BIN/CSH.S.CORE.txt index 8bd721d7..809dbc41 100644 --- a/BIN/CSH.S.CORE.txt +++ b/BIN/CSH.S.CORE.txt @@ -1150,26 +1150,67 @@ CSH.SIZEOF txa *-------------------------------------- * EXEC *-------------------------------------- -EXEC.printf >SYSCALL printf2 +EXEC.log >FPU LOG + clc rts *-------------------------------------- -EXEC.puts >PULLYA - >SYSCALL puts +EXEC.sqr >FPU SQR + clc + rts +*-------------------------------------- +EXEC.exp >FPU EXP + clc rts *-------------------------------------- EXEC.cos >FPU COS clc rts *-------------------------------------- +EXEC.sin >FPU SIN + clc + rts +*-------------------------------------- +EXEC.tan >FPU TAN + clc + rts +*-------------------------------------- +EXEC.atan >FPU ATAN + clc + rts +*-------------------------------------- EXEC.getchar >SYSCALL getchar >PUSHA rts *-------------------------------------- +EXEC.puts >PULLYA + >SYSCALL puts + rts +*-------------------------------------- +EXEC.printf >SYSCALL printf2 + rts +*-------------------------------------- +EXEC.putenv >SYSCALL getenv + >PUSHYA + rts +*-------------------------------------- +EXEC.setenv >SYSCALL getenv + >PUSHYA + rts +*-------------------------------------- +EXEC.getenv >SYSCALL getenv + >PUSHYA + rts +*-------------------------------------- +EXEC.unsetenv >SYSCALL getenv + >PUSHYA + rts +*-------------------------------------- EXEC.malloc >PULLYA >SYSCALL getmem >PUSHYA rts *-------------------------------------- +*-------------------------------------- MAN SAVE USR/SRC/BIN/CSH.S.CORE LOAD USR/SRC/BIN/CSH.S diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 0f181f12..df2a4443 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -544,19 +544,23 @@ K.Kill.PID .BS 1 *-------------------------------------- K.Kill cmp #0 beq .99 CS + sta K.Kill.PID jsr CORE.GetPSByID bcs .99 + >STYA ZPPtr1 >PULLA cmp #2+1 bcs .9 + asl tax jmp (.1,x) .1 .DA K.Kill.0 .DA K.Kill.1 .DA K.Kill.2 + .9 lda #E.SYN * sec rts @@ -565,8 +569,10 @@ K.Kill cmp #0 K.Kill.1 ldy #S.PS.S lda #S.PS.S.QUIT sta (ZPPtr1),y + K.Kill.0 clc rts + K.Kill.2 ldy #S.PS.hSID lda (ZPPtr1),y tax @@ -582,10 +588,9 @@ K.Kill.2 ldy #S.PS.hSID jsr K.Freemem .FIN - ldx #4 -.11 ldy .10,x +.11 ldy .10,x lda (ZPPtr1),y beq .12 diff --git a/SYS/KERNEL.S.STDIO2.S.txt b/SYS/KERNEL.S.STDIO2.S.txt index bd99d650..046d4cb4 100644 --- a/SYS/KERNEL.S.STDIO2.S.txt +++ b/SYS/KERNEL.S.STDIO2.S.txt @@ -339,7 +339,12 @@ PrintF2.SS ldy #$00 PSTR PrintF2.HH jsr PrintF2.LocalGetByte bcs PrintF2.COut.RTS pha LO byte - jsr PrintF2.H + jsr PrintF2.LocalGetByte + plx + bcs PrintF2.COut.RTS + pha + txa + jsr PrintF2.H.1 plx bcs PrintF2.COut.RTS txa