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
*--------------------------------------
CSH.BOP.EXEC cpy #CSH.T.UINT
bcs .1
bcs .3
cpy #CSH.T.UCHAR
beq .1
.1 clc
adc CSH.Type2FPU-3,y
cpy #CSH.T.SCHAR
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
jsr A2osX.FPUCALL
clc
rts
*--------------------------------------
CSH.BOPS.MUL clc
CSH.BOPS.bMUL
CSH.BOPS.cMUL
clc
rts
*--------------------------------------
CSH.BOPS.DIV clc
CSH.BOPS.bDIV
CSH.BOPS.cDIV
clc
rts
*--------------------------------------
CSH.BOPS.MOD clc
CSH.BOPS.bMOD
CSH.BOPS.cMOD
clc
rts
*--------------------------------------
CSH.BOPS.ADD
CSH.BOPS.ADDi8
CSH.BOPS.ADDu8 clc
CSH.BOPS.ADD clc
>PULLA
adc (pStack)
sta (pStack)
clc
rts
*--------------------------------------
CSH.BOPS.SUB
CSH.BOPS.SUBi8
CSH.BOPS.SUBu8 sec
CSH.BOPS.SUB sec
ldy #1
lda (pStack),y
sbc (pStack)
@ -45,8 +62,7 @@ CSH.BOPS.SUBu8 sec
clc
rts
*--------------------------------------
CSH.BOPS.SHL
CSH.BOPS.SHL8 lda (pStack)
CSH.BOPS.SHL lda (pStack)
tax
beq .8
@ -63,8 +79,23 @@ CSH.BOPS.SHL8 lda (pStack)
clc
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.G
CSH.BOPS.LE
@ -120,8 +151,7 @@ EXEC.puts >PULLYA
>PUSHYA
rts
*--------------------------------------
EXEC.printf
>SYSCALL PrintF
EXEC.printf >SYSCALL PrintF
>PUSHYA
rts
*--------------------------------------
@ -153,6 +183,8 @@ EXEC.malloc >PULLYA
>PUSHYA
rts
*--------------------------------------
*--------------------------------------
MAN
SAVE usr/src/bin/csh.s.exec
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.ENV.INCLUDE .DA ENV.INCLUDE
L.CSH.BOPS .DA CSH.BOPS
J.CSH.BOPS .DA CSH.BOPS.MUL
.DA CSH.BOPS.DIV
.DA CSH.BOPS.MOD
J.CSH.bBOPS .DA CSH.BOPS.bMUL
.DA CSH.BOPS.bDIV
.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.SUB
.DA CSH.BOPS.SHL
@ -486,8 +504,6 @@ 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"
@ -519,6 +535,8 @@ CSH.TYPES >PSTR "void"
>PSTR "float"
.HS 00
*--------------------------------------
CSH.Type2FPU .DA #FPU.wMUL,#FPU.iMUL,#FPU.uMUL,#FPU.lMUL,FPU.fMUL
*--------------------------------------
CSH.FTYPES >PSTR "fastcall"
* .HS 00
*--------------------------------------

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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