Kernel 0.94++

This commit is contained in:
Rémy GIBERT 2021-05-09 19:04:44 +02:00
parent 80f0627240
commit 4ec4d5432b
9 changed files with 141 additions and 71 deletions

Binary file not shown.

View File

@ -5,38 +5,55 @@ NEW
* Y = Type, A = OP * Y = Type, A = OP
*-------------------------------------- *--------------------------------------
CSH.BOP.EXEC cpy #CSH.T.UINT CSH.BOP.EXEC cpy #CSH.T.UINT
bcs .1 bcs .3
cpy #CSH.T.UCHAR
beq .1
.1 clc cpy #CSH.T.SCHAR
adc CSH.Type2FPU-3,y beq .2
lda #E.TMISMATCH
sec
rts
.1 tax
jmp (J.CSH.bBOPS,x)
.2 tax
jmp (J.CSH.cBOPS,x)
.3 clc
adc CSH.Type2FPU-CSH.T.UINT,y
tax tax
jsr A2osX.FPUCALL jsr A2osX.FPUCALL
clc clc
rts rts
*-------------------------------------- *--------------------------------------
CSH.BOPS.MUL clc CSH.BOPS.bMUL
CSH.BOPS.cMUL
clc
rts rts
*-------------------------------------- *--------------------------------------
CSH.BOPS.DIV clc CSH.BOPS.bDIV
CSH.BOPS.cDIV
clc
rts rts
*-------------------------------------- *--------------------------------------
CSH.BOPS.MOD clc CSH.BOPS.bMOD
CSH.BOPS.cMOD
clc
rts rts
*-------------------------------------- *--------------------------------------
CSH.BOPS.ADD CSH.BOPS.ADD clc
CSH.BOPS.ADDi8
CSH.BOPS.ADDu8 clc
>PULLA >PULLA
adc (pStack) adc (pStack)
sta (pStack) sta (pStack)
clc clc
rts rts
*-------------------------------------- *--------------------------------------
CSH.BOPS.SUB CSH.BOPS.SUB sec
CSH.BOPS.SUBi8
CSH.BOPS.SUBu8 sec
ldy #1 ldy #1
lda (pStack),y lda (pStack),y
sbc (pStack) sbc (pStack)
@ -45,8 +62,7 @@ CSH.BOPS.SUBu8 sec
clc clc
rts rts
*-------------------------------------- *--------------------------------------
CSH.BOPS.SHL CSH.BOPS.SHL lda (pStack)
CSH.BOPS.SHL8 lda (pStack)
tax tax
beq .8 beq .8
@ -63,8 +79,23 @@ CSH.BOPS.SHL8 lda (pStack)
clc clc
rts rts
*-------------------------------------- *--------------------------------------
CSH.BOPS.SHR CSH.BOPS.SHR lda (pStack)
tax
beq .8
ldy #1
lda (pStack),y
.1 lsr
dex
bne .1
sta (pStack),y
.8 inc pStack
clc
rts
*--------------------------------------
CSH.BOPS.L CSH.BOPS.L
CSH.BOPS.G CSH.BOPS.G
CSH.BOPS.LE CSH.BOPS.LE
@ -120,8 +151,7 @@ EXEC.puts >PULLYA
>PUSHYA >PUSHYA
rts rts
*-------------------------------------- *--------------------------------------
EXEC.printf EXEC.printf >SYSCALL PrintF
>SYSCALL PrintF
>PUSHYA >PUSHYA
rts rts
*-------------------------------------- *--------------------------------------
@ -153,6 +183,8 @@ EXEC.malloc >PULLYA
>PUSHYA >PUSHYA
rts rts
*-------------------------------------- *--------------------------------------
*--------------------------------------
MAN MAN
SAVE usr/src/bin/csh.s.exec SAVE usr/src/bin/csh.s.exec
LOAD usr/src/bin/csh.s LOAD usr/src/bin/csh.s

View File

@ -88,9 +88,27 @@ L.MSG.DEBUG .DA MSG.DEBUG
L.MSG.ERR .DA MSG.ERR L.MSG.ERR .DA MSG.ERR
L.ENV.INCLUDE .DA ENV.INCLUDE L.ENV.INCLUDE .DA ENV.INCLUDE
L.CSH.BOPS .DA CSH.BOPS L.CSH.BOPS .DA CSH.BOPS
J.CSH.BOPS .DA CSH.BOPS.MUL J.CSH.bBOPS .DA CSH.BOPS.bMUL
.DA CSH.BOPS.DIV .DA CSH.BOPS.bDIV
.DA CSH.BOPS.MOD .DA CSH.BOPS.bMOD
.DA CSH.BOPS.ADD
.DA CSH.BOPS.SUB
.DA CSH.BOPS.SHL
.DA CSH.BOPS.SHR
.DA CSH.BOPS.L
.DA CSH.BOPS.LE
.DA CSH.BOPS.G
.DA CSH.BOPS.GE
.DA CSH.BOPS.EQ
.DA CSH.BOPS.NE
.DA CSH.BOPS.AND
.DA CSH.BOPS.OR
.DA CSH.BOPS.EOR
.DA CSH.BOPS.LAND
.DA CSH.BOPS.LOR
J.CSH.cBOPS .DA CSH.BOPS.cMUL
.DA CSH.BOPS.cDIV
.DA CSH.BOPS.cMOD
.DA CSH.BOPS.ADD .DA CSH.BOPS.ADD
.DA CSH.BOPS.SUB .DA CSH.BOPS.SUB
.DA CSH.BOPS.SHL .DA CSH.BOPS.SHL
@ -486,8 +504,6 @@ CSH.BOPS >PSTR "*"
>PSTR "||" >PSTR "||"
.HS 00 .HS 00
*-------------------------------------- *--------------------------------------
CSH.Type2FPU .DA #FPU.wMUL,#FPU.iMUL,#FPU.uMUL,#FPU.lMUL,FPU.fMUL
*--------------------------------------
* Reserved Directives: * Reserved Directives:
*-------------------------------------- *--------------------------------------
CSH.DIRS >PSTR "define" CSH.DIRS >PSTR "define"
@ -519,6 +535,8 @@ CSH.TYPES >PSTR "void"
>PSTR "float" >PSTR "float"
.HS 00 .HS 00
*-------------------------------------- *--------------------------------------
CSH.Type2FPU .DA #FPU.wMUL,#FPU.iMUL,#FPU.uMUL,#FPU.lMUL,FPU.fMUL
*--------------------------------------
CSH.FTYPES >PSTR "fastcall" CSH.FTYPES >PSTR "fastcall"
* .HS 00 * .HS 00
*-------------------------------------- *--------------------------------------

View File

@ -86,8 +86,7 @@ SCRN.UpdateTopBar.1
>PUSHW LineBufPtr >PUSHW LineBufPtr
>PUSHW L.MSG.TOPBAR >PUSHW L.MSG.TOPBAR
>PUSHB #K.VER >PUSHW A2osX.KVER
>PUSHB /K.VER
>LDA.G hFileName >LDA.G hFileName
>SYSCALL GetMemPtr >SYSCALL GetMemPtr

View File

@ -86,9 +86,11 @@ EXP.TEST lda (ZPArgVBufPtr)
.1 jsr CORE.ArgV.Next .1 jsr CORE.ArgV.Next
beq .9 beq .9
>LDYA L.EXP.OP.BINARY -eq -ne .... ? >LDYA L.EXP.OP.BINARY -eq -ne .... ?
jsr CORE.LookupArgVBuf jsr CORE.LookupArgVBuf
bcs .9 bcs .9
stx CORE.Operator stx CORE.Operator
jsr EXP.TEST.BINARY jsr EXP.TEST.BINARY
bcs .9 bcs .9
@ -269,6 +271,7 @@ EXP.TEST.BINARY.NUM
bcs EXP.TEST.BINARY.ESYN4 bcs EXP.TEST.BINARY.ESYN4
lda CORE.Operator lda CORE.Operator
asl
* clc * clc
adc #FPU.lL adc #FPU.lL
tax tax
@ -279,7 +282,8 @@ EXP.TEST.BINARY.NUM
lda #$80 true lda #$80 true
.8 >RET 4 .8 clc
>RET 4
*-------------------------------------- *--------------------------------------
EXP.GetInt8Exp jsr EXP.GET EXP.GetInt8Exp jsr EXP.GET
bcc EXP.GetInt8YA bcc EXP.GetInt8YA

View File

@ -46,14 +46,17 @@ HIS.Add >LDA.G HIS.hBuf
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
HIS.Select >LDA.G HIS.Count HIS.Select >LDA.G HIS.Count
beq .8 bne .10
clc
.99 rts
>STZ.G HIS.Index .10 >STZ.G HIS.Index
.1 jsr HIS.GetIndex .1 jsr HIS.GetIndex
bcs .9 bcs .99
>PUSHW L.MSG.HISTORY >PUSHW L.MSG.HIS
>PUSHB.G HIS.Index >PUSHB.G HIS.Index
>PUSHW ZPCLBuf >PUSHW ZPCLBuf
>PUSHBI 3 >PUSHBI 3
@ -63,28 +66,40 @@ HIS.Select >LDA.G HIS.Count
>INC.G HIS.Index >INC.G HIS.Index
>CMP.G HIS.Count >CMP.G HIS.Count
bne .1 bne .1
>PUSHW L.MSG.HISTORYPROMPT >PUSHW L.MSG.HISPROMPT
>PUSHBI 0 >PUSHBI 0
>SYSCALL PrintF >SYSCALL PrintF
>STZ.G HIS.Index
>SYSCALL GetChar >SYSCALL GetChar
bcs HIS.Select.RTS bcs HIS.Select.RTS
cmp #'0'
bcc .7
* >PUSHW L.MSG.ECHOCRLF
* >PUSHBI 0 cmp #'9'+1
* >SYSCALL PrintF bcs .7
and #$f
>STA.G HIS.Index
.7 >PUSHW L.MSG.HISROMPTCLR
>PUSHBI 0
>SYSCALL PrintF
jsr CL.PrintPrompt jsr CL.PrintPrompt
bcs .9 bcs .9
bra HIS.Reset
.8 clc
.9
>LDA.G HIS.Index
bne HIS.GetToCL1
jmp CL.Reset
.8 clc
.9
HIS.Select.RTS rts HIS.Select.RTS rts
*-------------------------------------- *--------------------------------------
HIS.GetPrev >LDA.G HIS.hBuf HIS.GetPrev >LDA.G HIS.hBuf
@ -117,7 +132,7 @@ HIS.Reset >STZ.G HIS.Index
*-------------------------------------- *--------------------------------------
HIS.GetToCL >STA.G HIS.Index HIS.GetToCL >STA.G HIS.Index
jsr CL.CLR HIS.GetToCL1 jsr CL.CLR
jsr HIS.GetIndex jsr HIS.GetIndex
bcs .9 bcs .9

View File

@ -103,8 +103,9 @@ CS.START cld
.DA CS.QUIT .DA CS.QUIT
*-------------------------------------- *--------------------------------------
L.MSG.GREETINGS .DA MSG.GREETINGS L.MSG.GREETINGS .DA MSG.GREETINGS
L.MSG.HISTORY .DA MSG.HISTORY L.MSG.HIS .DA MSG.HIS
L.MSG.HISTORYPROMPT .DA MSG.HISTORYPROMPT L.MSG.HISPROMPT .DA MSG.HISPROMPT
L.MSG.HISROMPTCLR .DA MSG.HISROMPTCLR
L.MSG.PROMPT .DA MSG.PROMPT L.MSG.PROMPT .DA MSG.PROMPT
L.MSG.PROMPTCRLF .DA MSG.PROMPTCRLF L.MSG.PROMPTCRLF .DA MSG.PROMPTCRLF
L.MSG.TRACE .DA MSG.TRACE L.MSG.TRACE .DA MSG.TRACE
@ -561,8 +562,9 @@ IncPStack3 inc pStack
CS.END CS.END
*-------------------------------------- *--------------------------------------
MSG.GREETINGS .AZ "\r\nA2osX-SH %d.%d\r\n\r\n" MSG.GREETINGS .AZ "\r\nA2osX-SH %d.%d\r\n\r\n"
MSG.HISTORY .AZ "\r\n%3d : %s" MSG.HIS .AZ "\r\n%3d : %s"
MSG.HISTORYPROMPT .AZ "\r\n\r\n? " MSG.HISPROMPT .AZ "\r\n\r\n? "
MSG.HISROMPTCLR .DA #C.BS,#C.BS,0
MSG.PROMPT .AZ "\e[?7h$ " Enable Line Wrap MSG.PROMPT .AZ "\e[?7h$ " Enable Line Wrap
MSG.PROMPTCRLF .AZ "\e[?7l\r\n" Disable Line Wrap MSG.PROMPTCRLF .AZ "\e[?7l\r\n" Disable Line Wrap
MSG.TRACE .AS ">" MSG.TRACE .AS ">"
@ -649,12 +651,12 @@ EXP.OP.BINARY .AT "-LT"
.AT "-GE" .AT "-GE"
.AT "-EQ" .AT "-EQ"
.AT "-NE" .AT "-NE"
.AT "="
.AT "!="
.AT ".<" .AT ".<"
.AT "<=" .AT "<="
.AT ".>" .AT ".>"
.AT ">=" .AT ">="
.AT "="
.AT "!="
.HS 00 .HS 00
EXP.OP.MATH .AT "*" EXP.OP.MATH .AT "*"
.AT "/" .AT "/"
@ -667,13 +669,13 @@ EXP.OP.LOGIC .AT "AND"
.HS 00 .HS 00
*-------------------------------------- *--------------------------------------
EXP.OP.BINARY.BITS EXP.OP.BINARY.BITS
.DA #%010 strcmp
.DA #%101
.DA #%100 .DA #%100
.DA #%110 .DA #%110
.DA #%001 .DA #%001
.DA #%011 .DA #%011
.DA #%010
.DA #%101
*--------------------------------------
EXP.OP.MATH.FPU .DA #FPU.lMUL,#FPU.lDIV,#FPU.lMOD,#FPU.lADD,#FPU.lSUB EXP.OP.MATH.FPU .DA #FPU.lMUL,#FPU.lDIV,#FPU.lMOD,#FPU.lADD,#FPU.lSUB
*-------------------------------------- *--------------------------------------
SET.FLAGS .AS "CXE" SET.FLAGS .AS "CXE"

View File

@ -155,8 +155,8 @@ J.SKT.send .DA SKT.send.RAW
LIB.LOAD ldx RefCount LIB.LOAD ldx RefCount
bne .8 bne .8
sta FD.DSOCK+S.FD.DSOCK.IOHANDLER sta FD.DSOCK+S.FD.DSOCK.IOH
sta FD.SSOCK+S.FD.SSOCK.IOHANDLER sta FD.SSOCK+S.FD.SSOCK.IOH
>LDYAI K.ARPCACHE.SIZE*S.ARPCACHE >LDYAI K.ARPCACHE.SIZE*S.ARPCACHE
>SYSCALL2 GetMem >SYSCALL2 GetMem

View File

@ -211,23 +211,23 @@ TERMX.READ bit bActive is screen active?
cmp #C.CR cmp #C.CR
bne .21 bne .21
jsr Char.Out.Put jsr TERMX.COUT
ldy #S.DCB.TTY.bCRLF ldy #S.DCB.TTY.bCRLF
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
bpl .7 bpl .7
lda #C.LF lda #C.LF
.21 jsr Char.Out.Put no remap....send char.... .21 jsr TERMX.COUT no remap....send char....
bra .7 and flush bra .7 and flush
.3 lda KeyMap.Tbl,x .3 lda KeyMap.Tbl,x
pha pha
lda #C.ESC lda #C.ESC
jsr Char.Out.Put jsr TERMX.COUT
lda #'[' lda #'['
jsr Char.Out.Put jsr TERMX.COUT
pla pla
jsr Char.Out.Put jsr TERMX.COUT
bra .7 bra .7
.6 ldy #S.DCB.TTY.OUTTAIL .6 ldy #S.DCB.TTY.OUTTAIL
@ -630,22 +630,22 @@ Csi.Query ldx CsiPCnt
cmp #6 cmp #6
bne .8 bne .8
lda #C.ESC lda #C.ESC
jsr Char.Out.Put jsr TERMX.COUT
lda #'[' lda #'['
jsr Char.Out.Put jsr TERMX.COUT
ldy #S.DCB.TTY.CV ldy #S.DCB.TTY.CV
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
inc inc
jsr DecOut jsr DecOut
lda #';' lda #';'
jsr Char.Out.Put jsr TERMX.COUT
ldy #S.DCB.TTY.CH ldy #S.DCB.TTY.CH
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
inc inc
jsr DecOut jsr DecOut
lda #'R' lda #'R'
jsr Char.Out.Put jsr TERMX.COUT
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
@ -855,7 +855,7 @@ COUT.IAC.SB ldy #S.DCB.TTY.INBUF+2
bne COUT.IAC.SB.9 bne COUT.IAC.SB.9
ldx #0 ldx #0
.1 lda SB.IS.TTYPE,x .1 lda SB.IS.TTYPE,x
jsr Char.Out.Put jsr TERMX.COUT
inx inx
cpx #SB.IS.TTYPE.LEN cpx #SB.IS.TTYPE.LEN
bne .1 bne .1
@ -907,11 +907,11 @@ COUT.IAC.SendAX
pha push CMD pha push CMD
phx phx
lda #IAC lda #IAC
jsr Char.Out.Put jsr TERMX.COUT
pla pla
jsr Char.Out.Put jsr TERMX.COUT
pla pla
jsr Char.Out.Put jsr TERMX.COUT
*-------------------------------------- *--------------------------------------
COUT.IAC.WONT COUT.IAC.WONT
*-------------------------------------- *--------------------------------------
@ -942,7 +942,7 @@ ENQ ldx #0
.1 lda ENQ.String,x .1 lda ENQ.String,x
jsr Char.Out.Put jsr TERMX.COUT
inx inx
cpx #ENQ.String.Len cpx #ENQ.String.Len
bne .1 bne .1
@ -1109,10 +1109,10 @@ DecOut jsr MATH.A2STR10NP
.1 lda FOUTBuf,x .1 lda FOUTBuf,x
beq TERMX.RTS beq TERMX.RTS
inx inx
jsr Char.Out.Put jsr TERMX.COUT
bra .1 bra .1
*-------------------------------------- *--------------------------------------
Char.Out.Put pha save char TERMX.COUT pha save char
ldy #S.DCB.TTY.OUTHEAD ldy #S.DCB.TTY.OUTHEAD
lda (ZPDCBPtr),y lda (ZPDCBPtr),y