diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 2425a654..e56f84a5 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.SRC.po b/.Floppies/A2OSX.SRC.po index 92f087a2..581bc0ac 100644 Binary files a/.Floppies/A2OSX.SRC.po and b/.Floppies/A2OSX.SRC.po differ diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index 6d870598..71524e7f 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -380,7 +380,11 @@ BS ldx CH sta CH dec CV -.3 lda #$20 +.3 clc + rts + + + lda #$20 ora INVFLG ldx CH ldy CV diff --git a/SBIN/SHELL.S.HIS.txt b/SBIN/SHELL.S.HIS.txt index c44611b0..7b4eadd3 100644 --- a/SBIN/SHELL.S.HIS.txt +++ b/SBIN/SHELL.S.HIS.txt @@ -91,8 +91,6 @@ HIS.GetPrev >LDA.G HIS.hBuf >SYSCALL GetMemPtr.A >STYA ZPPTR1 - >DEBUG - >LDA.G HIS.Count beq HISTORY.RTS empty history,nothing to do @@ -104,9 +102,8 @@ HIS.GetPrev >LDA.G HIS.hBuf .1 dec >STA.G HIS.Index - jsr HIS.GetA + bra HIS.SetA - bra HIS.SetBuf History.RTS rts *-------------------------------------- HIS.GetNext >LDA.G HIS.hBuf @@ -115,8 +112,6 @@ HIS.GetNext >LDA.G HIS.hBuf >SYSCALL GetMemPtr.A >STYA ZPPTR1 - >DEBUG - >LDA.G HIS.Count beq HISTORY.RTS empty history,nothing to do @@ -125,18 +120,36 @@ HIS.GetNext >LDA.G HIS.hBuf >CMP.G HIS.Count bne .1 lda #0 + >STA.G HIS.Index + jmp CmdLine.CLR -.1 >STA.G HIS.Index - - jsr HIS.GetA - - bne HIS.SetBuf - jmp CmdLine.CLR end of history, just blank buffer +.1 >STA.G HIS.Index *-------------------------------------- -HIS.GetA tax - beq .8 +HIS.SetA jsr HIS.GetA + + tya + clc + adc ZPPTR1 + sta ZPPTR1 + bcc .1 + inc ZPPTR1+1 + +.1 jsr CmdLine.CLR + + ldy #$ff + +.2 iny + lda (ZPPTR1),y + sta (ZPCMDBuf),y + bne .2 + + jmp CmdLine.PRINT +*-------------------------------------- +HIS.GetA ldy #0 + + tax + beq .80 - ldy #0 lda (ZPPTR1),y beq .9 @@ -154,19 +167,11 @@ HIS.GetA tax .9 sec Found ending 0.... rts -.8 clc +.8 iny + +.80 clc rts *-------------------------------------- -HIS.SetBuf jsr CmdLine.CLR - - ldy #$ff - -.1 lda (ZPPTR1),y - sta (ZPCMDBuf),y - bne .1 - - jmp CmdLine.PRINT -*-------------------------------------- HIS.Quit >LDA.G HIS.hBuf beq .9 >SYSCALL FreeMem.A diff --git a/SBIN/SHELL.S.txt b/SBIN/SHELL.S.txt index 6bcd9826..06ed7b89 100644 --- a/SBIN/SHELL.S.txt +++ b/SBIN/SHELL.S.txt @@ -42,9 +42,10 @@ CS.START cld .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 - .DA CS.END-CS.START Code Length To Relocate - .DA DS.END-DS.START Data Segment to Allocate - .DA 0 + .DA CS.END-CS.START CS + .DA DS.END-DS.START DS + .DA #64 SS + .DA #16 ZP .DA 0 *-------------------------------------- * Relocation Table @@ -65,6 +66,11 @@ L.ENV.PWD .DA ENV.PWD L.ENV.PS1 .DA ENV.PS1 L.FMT.DATE .DA FMT.DATE L.FMT.TIME .DA FMT.TIME +L.MSG.HEXBYTE .DA MSG.HEXBYTE +J.ESC .DA CmdLine.BS left arrow + .DA HIS.GetNext + .DA HIS.GetPrev + .DA CmdLine.NAK right arow L.INTCMDS .DA INTCMDS J.INTCMDS .DA Cmd.Exec.CD .DA Cmd.Exec.DATE @@ -310,7 +316,7 @@ CS.CHARIN tax Save Char >STA.G bPause clc rts - +*-------------------------------------- * interactive mode .10 >LDA.G bEscMode beq .13 @@ -320,47 +326,61 @@ CS.CHARIN tax Save Char lda #0 sta (pData),y Y=bEscMode - txa - ldx EscChars + ldx #EscChars.count-1 + .17 cmp EscChars,x beq .18 dex - bne .17 - bra .8 + bpl .17 + clc + rts -.18 lda EscAscii,x +.18 txa + asl tax - + jmp (J.ESC,x) +*-------------------------------------- .13 cpx #$20 - bcs .1 - jsr CS.CHARIN.CTRL - bra .8 + bcc CS.CHARIN.CTRL .1 cpx #$7f bne .2 - jsr CmdLine.DEL - clc - rts + jmp CmdLine.DEL .2 >LDA.G CmdBuflen cmp #CmdLine.MAX - beq .8 - - pha + beq .8 Buffer full, discard... inc sta (pData),y - txa - ply - sta (ZPCMDBuf),y - iny + + tay lda #0 sta (ZPCMDBuf),y - >LDA.G bSecureRead + >LDA.G CmdBufPtr + tay + +*.3 lda (ZPCMDBuf),y Move from Ptr To end of buffer forward... +* iny +* sta (ZPCMDBuf),y +* ora #0 +* bne .3 ...until ending 0 + + txa + + >LDA.G CmdBufPtr Insert char at Ptr + tay + sta (ZPCMDBuf),y + + >INC.G CmdBufPtr + >CMP.G CmdBuflen + bne .4 + +.4 >LDA.G bSecureRead bne .8 txa @@ -369,8 +389,17 @@ CS.CHARIN tax Save Char .8 clc rts *-------------------------------------- -CS.CHARIN.CTRL cpx #13 CR +CS.CHARIN.CTRL +* phx +* txa +* >PUSHA +* >LDYA L.MSG.HEXBYTE +* >SYSCALL PrintF.YA +* plx + + cpx #13 CR bne .10 + txa >SYSCALL PutChar.A lda #10 @@ -390,35 +419,9 @@ CS.CHARIN.CTRL cpx #13 CR rts .11 cpx #3 Ctrl-C - bne .1 - - jsr CmdLine.CLR - clc - rts - -.1 cpx #8 BS (left arrow) - bne .2 - jsr CmdLine.DEL - clc - rts - -.2 cpx #10 LF (down arrow) - bne .3 - - jsr HIS.GetNext - clc - rts - -.3 cpx #11 VT (up arrow) - bne .4 - - jsr HIS.GetPrev - clc - rts - -.4 cpx #21 NAK (right arrow) bne .8 + jsr CmdLine.CLR clc rts @@ -470,11 +473,12 @@ CmdLine.CLR ldy #0 .1 lda (ZPCMDBuf),y beq .9 - lda #8 +.2 lda #8 - sta (pData),y + sta (ZPCMDBuf),y iny - bne .1 + lda (ZPCMDBuf),y + bne .2 jsr CmdLine.PRINT @@ -482,6 +486,17 @@ CmdLine.CLR ldy #0 .9 rts *-------------------------------------- +CmdLine.BS >LDA.G CmdBufPtr + beq .9 + dec + sta (pData),y + + lda #8 + >SYSCALL PutChar.A +.9 rts +*-------------------------------------- +CmdLine.NAK rts +*-------------------------------------- CmdLine.DEL >LDA.G CmdBuflen beq .9 dec @@ -502,6 +517,7 @@ CmdLine.PRINT >LDYA ZPCMDBuf CmdLine.RESET lda #0 sta (ZPCMDBuf) >STA.G bCmdBufexec + >STA.G CmdBufPtr >STA.G CmdBuflen >STA.G bSecureRead Clear password mode rts @@ -547,11 +563,13 @@ MSG.PRINTENV >CSTR "%s=%s\r\n" MSG.CSHERR >CSTR "Pos %D:" FMT.DATE >CSTR "%A, %B %d %Y" FMT.TIME >CSTR "%H:%M:%S (%I:%M:%S%p)" +MSG.HEXBYTE >CSTR "[%h]" *-------------------------------------- .INB /A2OSX.SRC/X.ERRORS.S *-------------------------------------- -EscChars >PSTR "DBAC" -EscAscii .HS 04080A0B15 +EscChars.Count .EQ 4 +EscChars .AS 'DBAC' + CSH.TSIZE .HS 0001020405 00,CHAR,INT,LONG,FLOAT.... CSH.ACCT .BS 1 CSH.ACC .BS 5 @@ -562,6 +580,7 @@ CSH.ARG .BS 5 .OR 0 DS.START hCmdBuf .BS 1 +CmdBufPtr .BS 1 CmdBuflen .BS 1 bCmdBufexec .BS 1