From 2e4c5e3eb691a84177a31b768072d7b2dda4fd09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sun, 11 Apr 2021 21:47:48 +0200 Subject: [PATCH] Kernel 0.94+ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/ACOS.S.CORE.txt | 59 ++++++++++++------------- BIN/ACOS.S.EXP.txt | 9 +--- BIN/ACOS.S.txt | 7 +-- BIN/EDIT.S.txt | 2 +- BIN/FORTH.S.CL.txt | 4 -- BIN/FORTH.S.CP.txt | 5 +-- BIN/FORTH.S.HIS.txt | 93 +++++++++++++++++++++++++++++++++++++++ BIN/FORTH.S.KW.txt | 49 +++++++++------------ BIN/FORTH.S.txt | 29 ++++++++---- 10 files changed, 171 insertions(+), 86 deletions(-) create mode 100644 BIN/FORTH.S.HIS.txt diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 66b8c89bf6a9247e9dba46e88d6777e01b20abbb..33ae73a03aa26b34dec95d6cb18e6cd1a6f0db39 100644 GIT binary patch delta 34531 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 diff --git a/BIN/ACOS.S.CORE.txt b/BIN/ACOS.S.CORE.txt index 479cf9cd..f26b77e8 100644 --- a/BIN/ACOS.S.CORE.txt +++ b/BIN/ACOS.S.CORE.txt @@ -194,16 +194,7 @@ CORE.Lookup >STYA ZPPtr1 .8 tya Keyword Len - clc - adc ZPInputBufPtr - sta ZPInputBufPtr - bcc .80 - - clc - - inc ZPInputBufPtr+1 - -.80 rts + jmp CORE.SkipA .3 dey lda (ZPPtr1),y was last char in this keyword ? @@ -246,7 +237,7 @@ CORE.CreateLabel >PUSHB.G hLabels >PUSHW ZPSID >PUSHWI ZPCodeBufPtr - >PUSHWI 2 + >PUSHWI 2 2 bytes : ADDR >SYSCALL SListAddData .9 rts *-------------------------------------- @@ -258,11 +249,18 @@ CORE.CreateOrGetVar >LDA.G hVars jsr CORE.NewKey bcs .9 + + jsr CORE.GetChar + cmp #'$' + bne .1 + + sta ZPTYPE + jsr CORE.GetNextChar skip $ - >PUSHB.G hVars +.1 >PUSHB.G hVars >PUSHW ZPSID >PUSHWI ZPDataBufPtr - >PUSHWI 2 + >PUSHWI 3 3 bytes : ADDR + TYPE >SYSCALL SListAddData bcs .9 @@ -284,21 +282,12 @@ CORE.CreateOrGetVar CORE.NewKey >PUSHA >PUSHW ZPInputBufPtr >SYSCALL SListNewKey - bcs .9 + bcs CORE.GetAddr.RTS >STYA ZPSID txa -* clc - adc ZPInputBufPtr - sta ZPInputBufPtr - bcc .1 - - clc - inc ZPInputBufPtr+1 - -.1 -.9 rts + jmp CORE.SkipA *-------------------------------------- CORE.GetAddr >PUSHA >PUSHA for SListGetData @@ -310,21 +299,17 @@ CORE.GetAddr >PUSHA >STYA ZPSID txa -* clc - adc ZPInputBufPtr - sta ZPInputBufPtr - bcc .1 - - inc ZPInputBufPtr+1 + jsr CORE.SkipA .1 >PUSHW ZPSID >PUSHWI ZPADDR - >PUSHWI 2 2 bytes + >PUSHWI 3 3 bytes : ADDR + TYPE >PUSHWZ From Start >SYSCALL SListGetData rts -.9 >PULLA +.9 >POP 1 +CORE.GetAddr.RTS rts *-------------------------------------- CORE.ToUpperCase @@ -441,6 +426,16 @@ CORE.GetNextCharNB CORE.GetNextCharNB.RTS rts *-------------------------------------- +CORE.SkipA clc + adc ZPInputBufPtr + sta ZPInputBufPtr + bcc .1 + + clc + inc ZPInputBufPtr+1 + +.1 rts Exit with CC for JMP to +*-------------------------------------- CORE.SkipLine jsr CORE.GetNextChar bcs CORE.GetNextCharNB.RTS diff --git a/BIN/ACOS.S.EXP.txt b/BIN/ACOS.S.EXP.txt index 371ebd80..54a78da4 100644 --- a/BIN/ACOS.S.EXP.txt +++ b/BIN/ACOS.S.EXP.txt @@ -157,15 +157,10 @@ EXP.VARLookup >LDA.G hVars >PUSHYA ZPSID txa -* clc - adc ZPInputBufPtr - sta ZPInputBufPtr - bcc .1 - - inc ZPInputBufPtr+1 + jsr CORE.SkipA .1 >PUSHWI EXP.ADDR - >PUSHWI 2 2 bytes + >PUSHWI 3 3 bytes : ADDR + TYPE >PUSHWZ From Start >SYSCALL SListGetData rts diff --git a/BIN/ACOS.S.txt b/BIN/ACOS.S.txt index ba833b37..9d855c8c 100644 --- a/BIN/ACOS.S.txt +++ b/BIN/ACOS.S.txt @@ -21,10 +21,11 @@ EXP.DEPTH.MAX .EQ 16 .OR ZPBIN ZS.START -ZPInputBuf .BS 2 ZPInputBufPtr .BS 2 ZPSID .BS 2 ZPADDR .BS 2 +ZPTYPE .BS 1 + .BS 1 ZPPtr1 .BS 2 ZPPtr2 .BS 2 @@ -39,8 +40,9 @@ ArgIndex .BS 1 bFlag .BS 1 EXP.ADDR .BS 2 +EXP.TYPE .BS 1 EXP.AOPS .BS 1 -EXP.DEPTH .BS 1 +*EXP.DEPTH .BS 1 ZS.END .ED *-------------------------------------- @@ -259,7 +261,6 @@ CS.RUN.ARGS inc ArgIndex jsr CS.RUN.LoadFile bcs .9 - >STYA ZPInputBuf >STYA ZPInputBufPtr txa diff --git a/BIN/EDIT.S.txt b/BIN/EDIT.S.txt index df927c52..83f3b87a 100644 --- a/BIN/EDIT.S.txt +++ b/BIN/EDIT.S.txt @@ -511,7 +511,7 @@ MSG.HELP >PSTR "All commands:" >PSTR " Ctrl-R : Replace next" >PSTR " Ctrl-S : Save file..." >PSTR " Ctrl-T : Go to top of file" - >PSTR " Ctrl-V : Past clipboard at cursor position" + >PSTR " Ctrl-V : Paste clipboard at cursor position" >PSTR " Ctrl-W : Erase current line" >PSTR " Ctrl-X : Cut block to clipboard" >PSTR " Ctrl-Y : Go to end of file" diff --git a/BIN/FORTH.S.CL.txt b/BIN/FORTH.S.CL.txt index 0855171e..aba1225b 100644 --- a/BIN/FORTH.S.CL.txt +++ b/BIN/FORTH.S.CL.txt @@ -257,10 +257,6 @@ CL.PrintCLBuf ldy #S.PS.hStdOut >SYSCALL FPutS rts *-------------------------------------- -CL.DN -CL.UP clc - rts -*-------------------------------------- MAN SAVE usr/src/bin/forth.s.cl LOAD usr/src/bin/forth.s diff --git a/BIN/FORTH.S.CP.txt b/BIN/FORTH.S.CP.txt index ba179da6..9da96e10 100644 --- a/BIN/FORTH.S.CP.txt +++ b/BIN/FORTH.S.CP.txt @@ -14,7 +14,7 @@ CP.RUN cpx #KW.CONLY .1 jmp (J.KEYWORDS,x) *-------------------------------------- CP.DO jsr CP.Emit.DO I,n -> RP -* >DEBUG + ldy RP lda ZPCodePtr+1 @@ -42,7 +42,6 @@ CP.LOOP lda #$00 jsr CP.Emit.PUSHBI *-------------------------------------- CP.pLOOP ldy RP -* >DEBUG iny bmi .9 @@ -82,7 +81,7 @@ CP.I jsr CP.Emit.I rts *-------------------------------------- CP.LEAVE ldy RP -* >DEBUG + .1 iny bmi .9 diff --git a/BIN/FORTH.S.HIS.txt b/BIN/FORTH.S.HIS.txt new file mode 100644 index 00000000..df58409a --- /dev/null +++ b/BIN/FORTH.S.HIS.txt @@ -0,0 +1,93 @@ +NEW + AUTO 3,1 + .LIST OFF +*-------------------------------------- +HIS.Init >LDYAI HISTORY.MAX Get a buffer for History + >SYSCALL NewStkObj + bcs .9 + + txa + >STA.G HIS.hBuf + + >PUSHA + >PUSHWI 0 + >SYSCALL StrVAdd Reset Buffer + + >STZ.G HIS.Count + >STA.G HIS.Index +.9 rts +*-------------------------------------- +HIS.Add >LDA.G HIS.hBuf + beq .9 + + >PUSHA + >PUSHW ZPCLBuf + >SYSCALL StrVAdd + bcc .1 + + >PUSHB.G HIS.hBuf + lda #0 + >PUSHA + >SYSCALL StrVShift + >DEC.G HIS.Count + bra HIS.Add + +.1 >STZ.G HIS.Index Reset Index + >INC.G HIS.Count +.9 +HIS.Add.RTS rts +*-------------------------------------- +HIS.GetPrev >LDA.G HIS.hBuf + beq HIS.Add.RTS + + >LDA.G HIS.Count + beq HIS.Add.RTS empty history,nothing to do + + >LDA.G HIS.Index + bne .1 + + >LDA.G HIS.Count +.1 dec + bra HIS.GetToCl +*-------------------------------------- +HIS.GetNext >LDA.G HIS.hBuf + beq HIS.Add.RTS + + >LDA.G HIS.Count + beq HIS.Add.RTS empty history,nothing to do + + >LDA.G HIS.Index + inc + >CMP.G HIS.Count + bne HIS.GetToCl + + lda #0 + >STA.G HIS.Index + jmp CL.CLR +*-------------------------------------- +HIS.GetToCl >STA.G HIS.Index + + jsr CL.CLR + + >PUSHB.G HIS.hBuf + >PUSHB.G HIS.Index + >PUSHW ZPCLBuf + + >SYSCALL StrVGet + + ldy #$ff + +.1 iny + lda (ZPCLBuf),y + bne .1 + + tya + + >STA.G CL.Ptr + >STA.G CL.Len + jmp CL.PrintCLBuf +*-------------------------------------- +MAN +SAVE usr/src/bin/forth.s.his +LOAD usr/src/bin/forth.s +ASM diff --git a/BIN/FORTH.S.KW.txt b/BIN/FORTH.S.KW.txt index 19356fe5..aedd4ef4 100644 --- a/BIN/FORTH.S.KW.txt +++ b/BIN/FORTH.S.KW.txt @@ -579,11 +579,12 @@ KW.LWR jsr CheckStackPop4 sbc (pStack) inc pStack - ror + inc pStack + lda #0 + ror sta (pStack) - ldy #1 - sta (pStack),y + clc .9 rts @@ -600,30 +601,33 @@ KW.GTR jsr CheckStackPop4 sbc (pStack) inc pStack + inc pStack + lda #0 ror eor #$80 sta (pStack) - ldy #1 - sta (pStack),y clc .9 rts *-------------------------------------- +* : TL BEGIN DUP . 1 - DUP 0 = UNTIL ; +*-------------------------------------- KW.EQ jsr CheckStackPop4 bcs .9 - + +* clc + ldy #2 lda (pStack),y - sec - sbc (pStack) + eor (pStack) tax inc pStack lda (pStack),y - sbc (pStack) + eor (pStack) inc pStack @@ -634,32 +638,20 @@ KW.EQ jsr CheckStackPop4 bne .1 sec - .HS 90 BCC -.1 clc - - lda #0 - sbc #0 + +.1 inc pStack sta (pStack) - ldy #1 - sta (pStack),y clc .9 rts *-------------------------------------- -KW.NEGATIVE ldy #1 - lda (pStack),y - - asl - - lda #0 - ror - sta (pStack) - sta (pStack),y +KW.NEGATIVE inc pStack clc rts *-------------------------------------- KW.ZERO clc + ldy #1 lda (pStack),y ora (pStack) @@ -669,10 +661,11 @@ KW.ZERO clc .9 lda #0 ror - sta (pStack) - sta (pStack),y - clc + inc pStack + sta (pStack) + +* clc rts *-------------------------------------- KW.. jsr KW.DUP diff --git a/BIN/FORTH.S.txt b/BIN/FORTH.S.txt index f9bd5ea5..12b29def 100644 --- a/BIN/FORTH.S.txt +++ b/BIN/FORTH.S.txt @@ -4,6 +4,8 @@ NEW .OP 65C02 .OR $2000 .TF bin/forth +*-------------------------------------- +HISTORY.MAX .EQ 256 *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i @@ -91,10 +93,8 @@ L.MSG.TYPES .DA MSG.CONST L.FMT.Byte .DA FMT.Byte L.FMT.int16 .DA FMT.int16 J.ESC .DA CL.BS left arrow - .DA CL.DN - .DA CL.UP -* .DA HIS.GetNext -* .DA HIS.GetPrev + .DA HIS.GetNext + .DA HIS.GetPrev .DA CL.NAK right arrow L.KEYWORDS .DA KEYWORDS J.KEYWORDS .DA GFX.PLOT @@ -266,10 +266,12 @@ CS.RUN >PUSHW L.MSG.GREETINGS >STA.G hSList - stz bCompile +* stz bCompile lda #127 sta RP + jsr HIS.Init + jsr GFX.Open *-------------------------------------- CS.RUN.LOOP >SLEEP @@ -357,6 +359,8 @@ CS.FORTH.Run jsr CL.Reset >PUSHBI 0 >SYSCALL PrintF + jsr HIS.Add + jmp CS.RUN.EXEC .9 rts @@ -596,7 +600,12 @@ CS.DOEVENT sec *-------------------------------------- CS.QUIT jsr GFX.Close - >LDA.G hSList + >LDA.G HIS.hBuf + beq .10 + + >SYSCALL FreeStkObj + +.10 >LDA.G hSList beq .1 >PUSHA @@ -783,6 +792,7 @@ CheckStackPop4 lda pStack rts *-------------------------------------- .INB usr/src/bin/forth.s.cl + .INB usr/src/bin/forth.s.his .INB usr/src/bin/forth.s.cp .INB usr/src/bin/forth.s.kw .INB usr/src/bin/forth.s.gfx @@ -926,13 +936,11 @@ CODE.RPDROP2 inc RP CODE.RPDROP2.L .EQ *-CODE.RPDROP2 *-------------------------------------- CODE.TESTTRUE >PULLA - >PULLA tax .1 bpl .1+5 CODE.TESTTRUE.L .EQ *-CODE.TESTTRUE *-------------------------------------- CODE.TESTFALSE >PULLA - >PULLA tax .1 bmi .1+5 CODE.TESTFALSE.L .EQ *-CODE.TESTFALSE @@ -1047,6 +1055,11 @@ hInputBuf .BS 1 hOutputBuf .BS 1 hCLBuf .BS 1 + +HIS.hBuf .BS 1 +HIS.Count .BS 1 +HIS.Index .BS 1 + hFile .BS 1 LineCounter .BS 2 hSList .BS 1