mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-22 12:29:21 +00:00
KERNEL:VT100 fixes
CC:comment,scopes fixes DAN2ETH:fixes for IIgs
This commit is contained in:
parent
104360d2fa
commit
07172d7359
Binary file not shown.
@ -118,7 +118,7 @@ CORE.CompileFile
|
||||
*--------------------------------------
|
||||
CORE.CompileLine
|
||||
jsr CC.GetCharNB
|
||||
bcs .9
|
||||
bcs .99
|
||||
|
||||
cmp #C.CR EOL....
|
||||
beq .8
|
||||
@ -132,37 +132,49 @@ CORE.CompileLine
|
||||
bne .2 comments ...
|
||||
|
||||
jmp CORE.Comments
|
||||
|
||||
*--------------------------------------
|
||||
.2 cmp #'}' End of CPStmt ?
|
||||
beq .5
|
||||
|
||||
jsr CORE.CompileStmt
|
||||
bcs .99
|
||||
|
||||
jsr CC.GetCharNB
|
||||
bcs .98
|
||||
|
||||
cmp #'{'
|
||||
bne .3
|
||||
|
||||
jsr CORE.GetNCharNBNL Skip '}'
|
||||
|
||||
jsr STMT.CPStmt.END
|
||||
bcs .9
|
||||
|
||||
jsr CORE.GetCharNBNL
|
||||
jsr CORE.GetNCharNBNL Skip '{'
|
||||
bcc CORE.CompileLine
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
.3 cmp #';' End of Stmt ?
|
||||
bne .4
|
||||
|
||||
jsr CORE.GetNCharNBNL Skip ';'
|
||||
|
||||
jsr STMT.Stmt.END
|
||||
bcs .9
|
||||
bcs .99
|
||||
|
||||
bra CORE.CompileLine
|
||||
jsr CC.GetCharNB
|
||||
|
||||
.4 jsr CORE.CompileStmt
|
||||
bcs .9
|
||||
.4 cmp #'}' End of CPStmt ?
|
||||
bne CORE.CompileLine
|
||||
|
||||
bra CORE.CompileLine
|
||||
.5 jsr CORE.GetNCharNBNL Skip '}'
|
||||
|
||||
jsr STMT.CPStmt.END
|
||||
bcs .99
|
||||
|
||||
jsr CC.GetCharNB
|
||||
bcc .3
|
||||
|
||||
.98 lda #E.CSYN
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
* keyword : for, while ....
|
||||
*--------------------------------------
|
||||
@ -199,11 +211,26 @@ CORE.CompileStmt
|
||||
*--------------------------------------
|
||||
CORE.Comments jsr CC.GetNextChar TODO : /* ... */
|
||||
cmp #'/'
|
||||
bne .90
|
||||
beq CORE.SkipLine // skip line.....
|
||||
|
||||
jmp CORE.SkipLine skip line.....
|
||||
cmp #'*'
|
||||
bne .9 /* ....
|
||||
|
||||
.90 lda #E.CSYN
|
||||
.1 jsr CORE.GetNCharNBNL
|
||||
bcs .9
|
||||
|
||||
cmp #'*' ....*/
|
||||
bne .1
|
||||
|
||||
jsr CC.GetNextChar
|
||||
bcs .9
|
||||
|
||||
cmp #'/'
|
||||
bne .1
|
||||
|
||||
jmp CC.GetNextChar
|
||||
|
||||
.9 lda #E.CSYN
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -422,6 +449,12 @@ CORE.GetCharNBNL
|
||||
rts
|
||||
*--------------------------------------
|
||||
CORE.GetNCharNBNL
|
||||
jsr CC.GetChar
|
||||
bcs .9
|
||||
|
||||
cmp #C.CR
|
||||
beq .1
|
||||
|
||||
jsr CORE.GetNCharNB
|
||||
bcs .9
|
||||
|
||||
@ -429,7 +462,7 @@ CORE.GetNCharNBNL
|
||||
clc
|
||||
bne .9
|
||||
|
||||
jsr FIO.FGetS
|
||||
.1 jsr FIO.FGetS
|
||||
bcc CORE.GetCharNBNL
|
||||
|
||||
.9 rts
|
||||
|
@ -85,7 +85,7 @@ F.Decl jsr SCOPE.New
|
||||
jsr SYM.Update Store this declaration & exit
|
||||
bcs .99
|
||||
|
||||
jsr CORE.GetNCharNBNL Skip ';'
|
||||
* jsr CORE.GetNCharNBNL Skip ';'
|
||||
|
||||
clc no error even if EOF
|
||||
rts
|
||||
|
@ -3,7 +3,7 @@ NEW
|
||||
*--------------------------------------
|
||||
* Built in Keywords
|
||||
*--------------------------------------
|
||||
KW.IF jsr SCOPE.New
|
||||
KW.IF jsr SCOPE.New IF {
|
||||
bcs .99
|
||||
|
||||
jsr CC.GetCharNB
|
||||
@ -54,7 +54,7 @@ KW.IF.END jsr STMT.Close
|
||||
jsr SYM.NewLabelA
|
||||
bcs .99
|
||||
|
||||
jmp SCOPE.Close
|
||||
jmp SCOPE.Close } IF
|
||||
*--------------------------------------
|
||||
.2 lda #'X'
|
||||
jsr SYM.LookupLabelA
|
||||
@ -91,7 +91,7 @@ KW.ELSE.END jsr STMT.Close
|
||||
jsr SYM.NewLabelA
|
||||
bcs .99
|
||||
|
||||
jmp SCOPE.Close
|
||||
jmp SCOPE.Close } IF
|
||||
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
@ -168,6 +168,10 @@ KW.DO jsr SCOPE.New
|
||||
jsr SYM.NewLabelA
|
||||
bcs .99
|
||||
|
||||
>LDYA L.PCC.SLEEP
|
||||
jsr CODE.EmitPCC
|
||||
bcs .99
|
||||
|
||||
jsr STMT.New00
|
||||
bcs .99
|
||||
|
||||
@ -248,7 +252,7 @@ KW.FOR jsr CC.GetCharNB
|
||||
jsr CORE.GetNCharNB skip '('
|
||||
bcs .29
|
||||
|
||||
jsr SCOPE.New
|
||||
jsr SCOPE.New for (
|
||||
bcs .19
|
||||
|
||||
>LDYA L.CC.TYPEQUAL
|
||||
@ -342,7 +346,11 @@ KW.FOR jsr CC.GetCharNB
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
KW.FOR.END lda #$60
|
||||
KW.FOR.END >LDYA L.PCC.SLEEP
|
||||
jsr CODE.EmitPCC
|
||||
bcs .99
|
||||
|
||||
lda #$60
|
||||
|
||||
jsr CODE.EmitByte set RTS for JSR code;
|
||||
bcs .99
|
||||
@ -354,7 +362,7 @@ KW.FOR.END lda #$60
|
||||
jsr SYM.NewLabelA
|
||||
bcs .99
|
||||
|
||||
jmp SCOPE.Close FOR ()
|
||||
jmp SCOPE.Close FOR )
|
||||
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
|
@ -123,28 +123,33 @@ STMT.SetVar stz ExpState
|
||||
|
||||
*--------------------------------------
|
||||
STMT.Stmt.END ldy StmtPtr
|
||||
beq STMT.POP.8 Global context
|
||||
beq STMT.End.8 Global context
|
||||
|
||||
lda (StmtStk),y
|
||||
bmi STMT.POP.8 local F context
|
||||
bmi STMT.End.8 local F context
|
||||
* in an instruction ...
|
||||
iny STMT.TERM
|
||||
lda (StmtStk),y
|
||||
cmp #'}'
|
||||
beq STMT.POP.8 in a STMT...
|
||||
beq STMT.End.8 in a STMT...
|
||||
|
||||
cmp #';' must be ';' on stack....
|
||||
beq STMT.End
|
||||
bne STMT.End.9
|
||||
|
||||
STMT.POP.9 lda #E.STACKERROR
|
||||
jsr STMT.End
|
||||
bcc STMT.Stmt.END
|
||||
|
||||
rts
|
||||
|
||||
STMT.End.9 lda #E.STACKERROR
|
||||
sec
|
||||
rts
|
||||
|
||||
STMT.POP.8 clc
|
||||
STMT.POP.99 rts
|
||||
STMT.End.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
STMT.CPStmt.END ldy StmtPtr
|
||||
beq STMT.POP.9
|
||||
beq STMT.End.9
|
||||
|
||||
lda (StmtStk),y
|
||||
bpl .1
|
||||
@ -155,7 +160,7 @@ STMT.CPStmt.END ldy StmtPtr
|
||||
lda (StmtStk),y STMT.TERM
|
||||
|
||||
cmp #'}' must be '}' on stack....
|
||||
bne STMT.POP.9
|
||||
bne STMT.End.9
|
||||
*--------------------------------------
|
||||
STMT.End ldy StmtPtr STMT.KW
|
||||
lda (StmtStk),y
|
||||
@ -187,10 +192,7 @@ STMT.SetType jsr CORE.GetNCharNBNL
|
||||
cmp #'{'
|
||||
bne STMT.SetType.1
|
||||
|
||||
STMT.SetTypeCP jsr CORE.GetNCharNBNL skip '{'
|
||||
bcs STMT.SetType.9
|
||||
|
||||
jsr SCOPE.New
|
||||
STMT.SetTypeCP jsr SCOPE.New
|
||||
bcs STMT.New.RTS
|
||||
|
||||
ldx #'}'
|
||||
|
@ -670,9 +670,9 @@ MSG.DEBUG.SYMNL .CZ "New (%s) ID=%H[%H],T=%h,Q=%h,SC=%h "
|
||||
MSG.DEBUG.SYMSL .CZ "Sto ID=%H,T=%h,Q=%h,SC=%h\r\n"
|
||||
.FIN
|
||||
.DO _DBG_SCOPE=1
|
||||
MSG.DEBUG.SCIN .CZ "Scope { %H (%d:%h:%h)\r\n"
|
||||
MSG.DEBUG.SC .CZ "Scope = %H (%d:%h:%h)\r\n"
|
||||
MSG.DEBUG.SCOUT .CZ "Scope } %H (%d:%h:%h) -> "
|
||||
MSG.DEBUG.SCIN .CZ "Scope { %H (%h:%h:%h)\r\n"
|
||||
MSG.DEBUG.SC .CZ "Scope = %H (%h:%h:%h)\r\n"
|
||||
MSG.DEBUG.SCOUT .CZ "Scope } %H (%h:%h:%h) -> "
|
||||
.FIN
|
||||
.DO _DBG_OUT=1
|
||||
MSG.DEBUG.CSOUT .CZ "\r\n%H-"
|
||||
|
@ -28,15 +28,15 @@ IO.8255.S.ByteRcvd .EQ %00100000
|
||||
IO.8255.Mode .EQ $C083-$88
|
||||
*--------------------------------------
|
||||
.MA READBYTE
|
||||
lda #IO.8255.S.ByteRcvd
|
||||
:1 bit IO.8255.S,x
|
||||
:1 lda IO.8255.S,x
|
||||
and #IO.8255.S.ByteRcvd
|
||||
beq :1
|
||||
lda IO.8255.Data,x
|
||||
.EM
|
||||
|
||||
.MA WRITEBYTE
|
||||
sta IO.8255.Data,x
|
||||
:1 bit IO.8255.S,x
|
||||
:1 lda IO.8255.S,x
|
||||
bpl :1
|
||||
.EM
|
||||
*--------------------------------------
|
||||
@ -435,11 +435,13 @@ WRITE php
|
||||
ldy #S.IOCTL.BYTECNT
|
||||
lda (ZPIOCTL),y
|
||||
>WRITEBYTE
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta Counter
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
>WRITEBYTE
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta Counter+1
|
||||
|
||||
|
@ -44,13 +44,13 @@ int main(int argc, char *argv[]) {
|
||||
getchar();
|
||||
i = testf4(34, 43);
|
||||
printf("testf4() returned %D\r\n", i);
|
||||
getchar();
|
||||
|
||||
printf("main() argc=%D\r\n", argc);
|
||||
getchar();
|
||||
|
||||
for(int i=0; i<=argc; i++) {
|
||||
printf(" argv[%I] : %s\r\n", i, argv[i]);
|
||||
}
|
||||
for(int i=0; i<=argc; i++) printf(" argv[%D]=%s\r\n", i, argv[i]);
|
||||
|
||||
printf("i = %D\r\n", i);
|
||||
puts("set main() return code=0x73");
|
||||
return 115; // return E_INUM
|
||||
}
|
||||
|
@ -2,6 +2,9 @@ NEW
|
||||
AUTO 3,1
|
||||
#include <stdio.h>
|
||||
|
||||
/* C-style comments....
|
||||
...multi-lines */
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
puts("Press a key");
|
||||
@ -10,11 +13,16 @@ int main(int argc, char *argv[])
|
||||
if (c == 13)
|
||||
{
|
||||
puts("ENTER");
|
||||
// C99 comments: skip LF
|
||||
getchar();
|
||||
}
|
||||
else
|
||||
if (c == 32)
|
||||
{
|
||||
puts("Not ENTER");
|
||||
puts("Not ENTER...but SPACE");
|
||||
}
|
||||
else
|
||||
puts("Some other key...");
|
||||
|
||||
int i=0;
|
||||
while (i++ < 10) {
|
||||
|
@ -8,8 +8,8 @@ void *pBuf = malloc(256);
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
for (int i=0; i<=argc; i++) printf("argv[%I]=%s\r\n", i, argv[i]);
|
||||
|
||||
for (int i=0; i<=argc; i++) printf("argv[%D]=%s\r\n", i, argv[i]);
|
||||
getchar();
|
||||
strcpy(pBuf, argv[0]);
|
||||
strcat(pBuf, ".c");
|
||||
printf("Filename=%s\r\n", pBuf);
|
||||
|
@ -376,6 +376,7 @@ TERMX.OUT.DEL ldy #S.DCB.TTY.CH
|
||||
.1 ldy #S.DCB.TTY.CV
|
||||
lda (ZPDCBPtr),y
|
||||
beq TERMX.OUT.BS.8
|
||||
|
||||
dec
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
@ -597,22 +598,20 @@ Csi.ResetM clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Csi.DispAttr ldx CsiPCnt
|
||||
bne .10
|
||||
beq .10
|
||||
|
||||
jmp RESETATTR
|
||||
|
||||
.10 ldx #0
|
||||
ldx #0
|
||||
|
||||
.1 lda CsiP,x
|
||||
bne .2
|
||||
|
||||
jsr RESETATTR
|
||||
jsr .10
|
||||
bra .7
|
||||
|
||||
.2 eor #7
|
||||
bne .7
|
||||
|
||||
.3 ldy #S.DCB.TTY.bNORMAL
|
||||
ldy #S.DCB.TTY.bNORMAL
|
||||
sta (ZPDCBPtr),y
|
||||
|
||||
.7 inx
|
||||
@ -621,15 +620,23 @@ Csi.DispAttr ldx CsiPCnt
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.10 lda #$80
|
||||
ldy #S.DCB.TTY.bNORMAL
|
||||
sta (ZPDCBPtr),y
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Csi.Query ldx CsiPCnt
|
||||
beq .8
|
||||
|
||||
dex
|
||||
bne .8
|
||||
|
||||
lda CsiP
|
||||
cmp #6
|
||||
bne .8
|
||||
|
||||
lda #C.ESC
|
||||
jsr TERMX.COUT
|
||||
lda #'['
|
||||
@ -650,20 +657,29 @@ Csi.Query ldx CsiPCnt
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
Csi.Scroll ldy CsiPCnt
|
||||
bne .1
|
||||
|
||||
lda #0
|
||||
Csi.Scroll lda #0
|
||||
ldx #23
|
||||
bra .8
|
||||
|
||||
.1 cpy #2
|
||||
ldy CsiPCnt
|
||||
beq .8
|
||||
|
||||
cpy #2
|
||||
bne .9
|
||||
|
||||
lda CsiP
|
||||
dec
|
||||
ldx CsiP+1
|
||||
dex
|
||||
ldy CsiP
|
||||
dey
|
||||
cpy #24
|
||||
bcs .9
|
||||
|
||||
tya
|
||||
|
||||
ldy CsiP+1
|
||||
dey
|
||||
cpy #24
|
||||
bcs .9
|
||||
|
||||
phy
|
||||
plx
|
||||
|
||||
.8 ldy #S.DCB.TTY.SCROLLTOP
|
||||
sta (ZPDCBPtr),y
|
||||
@ -829,14 +845,19 @@ TERMX.IAC ldy #S.DCB.TTY.INBUF
|
||||
|
||||
cmp #SE
|
||||
bne Csi.Home.8 wait for ending SE....keep bIACMode
|
||||
|
||||
bra COUT.IAC.SB
|
||||
|
||||
ldy #S.DCB.TTY.INBUF+1
|
||||
lda (ZPDCBPtr),y get back CMD
|
||||
|
||||
.1 cmp #IAC
|
||||
beq COUT.IAC.SB.9
|
||||
|
||||
sec
|
||||
sbc #WILL
|
||||
bcc COUT.IAC.SB.9
|
||||
|
||||
asl
|
||||
tax
|
||||
|
||||
@ -855,11 +876,14 @@ COUT.IAC.SB ldy #S.DCB.TTY.INBUF+2
|
||||
|
||||
cmp #TN.O.TTYPE
|
||||
bne COUT.IAC.SB.9
|
||||
|
||||
iny
|
||||
lda (ZPDCBPtr),y
|
||||
cmp #SB.SEND
|
||||
bne COUT.IAC.SB.9
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 lda SB.IS.TTYPE,x
|
||||
jsr TERMX.COUT
|
||||
inx
|
||||
@ -872,12 +896,15 @@ COUT.IAC.WILL ldx #WILLDO.CNT-1
|
||||
|
||||
.1 cmp WILLDO,x
|
||||
beq .7
|
||||
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
ldx #WILLDONT.CNT-1
|
||||
|
||||
.2 cmp WILLDONT,x
|
||||
beq .8
|
||||
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
@ -893,6 +920,7 @@ COUT.IAC.DO ldx #DOWILL.CNT-1
|
||||
|
||||
.1 cmp DOWILL,x
|
||||
beq .7
|
||||
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
@ -900,6 +928,7 @@ COUT.IAC.DO ldx #DOWILL.CNT-1
|
||||
|
||||
.2 cmp DOWONT,x
|
||||
beq .8
|
||||
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
@ -940,12 +969,6 @@ RESET ldy #S.DCB.TTY.M
|
||||
|
||||
jmp TERMX.CLRSCR
|
||||
*--------------------------------------
|
||||
RESETATTR lda #$80
|
||||
ldy #S.DCB.TTY.bNORMAL
|
||||
sta (ZPDCBPtr),y
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
ENQ ldx #0
|
||||
|
||||
.1 lda ENQ.String,x
|
||||
@ -968,7 +991,7 @@ TERMX.OUT.LF.1 ldy #S.DCB.TTY.CV
|
||||
lda (ZPDCBPtr),y
|
||||
ldy #S.DCB.TTY.SCROLLBOT
|
||||
cmp (ZPDCBPtr),y
|
||||
beq SCROLL.UP
|
||||
bcs SCROLL.UP
|
||||
|
||||
inc
|
||||
ldy #S.DCB.TTY.CV
|
||||
@ -1105,8 +1128,6 @@ TERMX.CUROFF.1 jsr GetCharAtCurPos
|
||||
bcs TERMX.RTS Out of screen
|
||||
|
||||
jmp SetCharAtY.SCR
|
||||
|
||||
TERMX.RTS rts
|
||||
*--------------------------------------
|
||||
TERMX.CCheck sec
|
||||
|
||||
@ -1119,7 +1140,9 @@ TERMX.CCheck sec
|
||||
|
||||
clc
|
||||
|
||||
.9 rts
|
||||
.9
|
||||
|
||||
TERMX.RTS rts
|
||||
*--------------------------------------
|
||||
DecOut jsr MATH.A2STR10NP
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user