Kernel 0.93++

This commit is contained in:
Rémy GIBERT 2020-01-22 22:52:00 +01:00
parent 3a75661c7c
commit 251cdd0f39
6 changed files with 127 additions and 19 deletions

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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