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.... CSH.TYPESIZE .HS 0001020401020405 VOID,CHAR,INT,LONG,UCHAR,UINT,ULONG,FLOAT....
*-------------------------------------- *--------------------------------------
* int printf ( const char * format, ... ); CSH.FN
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
* float cos ( float x ); * 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" >PSTR "cos"
.DA #CSH.T.FLOAT returned value .DA #CSH.T.FLOAT returned value
.DA #CSH.T.FLOAT .DA #CSH.T.FLOAT
.DA #0 .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 ); * char getchar ( void );
>PSTR "getchar" >PSTR "getchar"
.DA #CSH.T.CHAR returned value .DA #CSH.T.CHAR returned value
.DA #0 .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 ); * void * malloc ( int size );
>PSTR "malloc" >PSTR "malloc"
.DA #CSH.Q.POINTER+CSH.T.VOID returned value .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 J.CSH.KW.END .DA CSH.IF.END
.DA CSH.WHILE.END .DA CSH.WHILE.END
*-------------------------------------- *--------------------------------------
J.CSH.EXEC .DA EXEC.printf J.CSH.EXEC .DA EXEC.log
.DA EXEC.puts .DA EXEC.sqr
.DA EXEC.exp
.DA EXEC.cos .DA EXEC.cos
.DA EXEC.sin
.DA EXEC.tan
.DA EXEC.atan
.DA EXEC.getchar .DA EXEC.getchar
.DA EXEC.puts
.DA EXEC.printf
.DA EXEC.putenv
.DA EXEC.setenv
.DA EXEC.getenv
.DA EXEC.unsetenv
.DA EXEC.malloc .DA EXEC.malloc
*-------------------------------------- *--------------------------------------
MAN MAN

View File

@ -1150,26 +1150,67 @@ CSH.SIZEOF txa
*-------------------------------------- *--------------------------------------
* EXEC * EXEC
*-------------------------------------- *--------------------------------------
EXEC.printf >SYSCALL printf2 EXEC.log >FPU LOG
clc
rts rts
*-------------------------------------- *--------------------------------------
EXEC.puts >PULLYA EXEC.sqr >FPU SQR
>SYSCALL puts clc
rts
*--------------------------------------
EXEC.exp >FPU EXP
clc
rts rts
*-------------------------------------- *--------------------------------------
EXEC.cos >FPU COS EXEC.cos >FPU COS
clc clc
rts rts
*-------------------------------------- *--------------------------------------
EXEC.sin >FPU SIN
clc
rts
*--------------------------------------
EXEC.tan >FPU TAN
clc
rts
*--------------------------------------
EXEC.atan >FPU ATAN
clc
rts
*--------------------------------------
EXEC.getchar >SYSCALL getchar EXEC.getchar >SYSCALL getchar
>PUSHA >PUSHA
rts 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 EXEC.malloc >PULLYA
>SYSCALL getmem >SYSCALL getmem
>PUSHYA >PUSHYA
rts rts
*-------------------------------------- *--------------------------------------
*--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/CSH.S.CORE SAVE USR/SRC/BIN/CSH.S.CORE
LOAD USR/SRC/BIN/CSH.S LOAD USR/SRC/BIN/CSH.S

View File

@ -544,19 +544,23 @@ K.Kill.PID .BS 1
*-------------------------------------- *--------------------------------------
K.Kill cmp #0 K.Kill cmp #0
beq .99 CS beq .99 CS
sta K.Kill.PID sta K.Kill.PID
jsr CORE.GetPSByID jsr CORE.GetPSByID
bcs .99 bcs .99
>STYA ZPPtr1 >STYA ZPPtr1
>PULLA >PULLA
cmp #2+1 cmp #2+1
bcs .9 bcs .9
asl asl
tax tax
jmp (.1,x) jmp (.1,x)
.1 .DA K.Kill.0 .1 .DA K.Kill.0
.DA K.Kill.1 .DA K.Kill.1
.DA K.Kill.2 .DA K.Kill.2
.9 lda #E.SYN .9 lda #E.SYN
* sec * sec
rts rts
@ -565,8 +569,10 @@ K.Kill cmp #0
K.Kill.1 ldy #S.PS.S K.Kill.1 ldy #S.PS.S
lda #S.PS.S.QUIT lda #S.PS.S.QUIT
sta (ZPPtr1),y sta (ZPPtr1),y
K.Kill.0 clc K.Kill.0 clc
rts rts
K.Kill.2 ldy #S.PS.hSID K.Kill.2 ldy #S.PS.hSID
lda (ZPPtr1),y lda (ZPPtr1),y
tax tax
@ -582,10 +588,9 @@ K.Kill.2 ldy #S.PS.hSID
jsr K.Freemem jsr K.Freemem
.FIN .FIN
ldx #4 ldx #4
.11 ldy .10,x
.11 ldy .10,x
lda (ZPPtr1),y lda (ZPPtr1),y
beq .12 beq .12

View File

@ -339,7 +339,12 @@ PrintF2.SS ldy #$00 PSTR
PrintF2.HH jsr PrintF2.LocalGetByte PrintF2.HH jsr PrintF2.LocalGetByte
bcs PrintF2.COut.RTS bcs PrintF2.COut.RTS
pha LO byte pha LO byte
jsr PrintF2.H jsr PrintF2.LocalGetByte
plx
bcs PrintF2.COut.RTS
pha
txa
jsr PrintF2.H.1
plx plx
bcs PrintF2.COut.RTS bcs PrintF2.COut.RTS
txa txa