diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 87e299fc..d349ed17 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/SH.S.CL.txt b/BIN/SH.S.CL.txt index ad92f92f..276af960 100644 --- a/BIN/SH.S.CL.txt +++ b/BIN/SH.S.CL.txt @@ -75,6 +75,7 @@ CL.CHARIN.CTRL cpx #C.CR cpx #C.EOF beq .18 + .10 cpx #C.ESC bne .11 lda #$ff @@ -83,16 +84,55 @@ CL.CHARIN.CTRL cpx #C.CR rts .11 cpx #3 Ctrl-C - bne .12 + beq CL.CLR - jmp CL.CLR - -.12 cpx #26 Ctrl-Z + cpx #26 Ctrl-Z bne .13 jmp CL.SUPPR -.18 lda #$ff + +.18 ldy #S.PS.hStdIn Check for any extra LF + lda (pPS),y + >SYSCALL feof + bcs .9 + + tay + bne .19 + >SYSCALL GetChar + +.19 lda #$ff >STA.G CL.bReady + .13 clc +.9 rts +*-------------------------------------- +CL.CLR lda (ZPCLBuf) + beq CL.RESET.1 + +.1 >LDA.G CL.Ptr + >CMP.G CL.Len + beq .2 + inc + >STA.G CL.Ptr + lda #C.FS + >SYSCALL PutChar + bra .1 + +.2 ldy #0 + +.3 lda #C.DEL + sta (ZPCLBuf),y + + iny + lda (ZPCLBuf),y + bne .3 + + jsr CL.PrintCLBuf +*-------------------------------------- +CL.RESET lda #0 + sta (ZPCLBuf) +CL.RESET.1 >STA.G CL.bReady + >STA.G CL.Ptr + >STA.G CL.Len rts *-------------------------------------- CL.Insert >LDA.G CL.Len @@ -132,36 +172,6 @@ CL.Insert >LDA.G CL.Len .8 clc rts *-------------------------------------- -CL.CLR lda (ZPCLBuf) - beq CL.RESET.1 - -.1 >LDA.G CL.Ptr - >CMP.G CL.Len - beq .2 - inc - >STA.G CL.Ptr - lda #C.FS - >SYSCALL PutChar - bra .1 - -.2 ldy #0 - -.3 lda #C.DEL - sta (ZPCLBuf),y - - iny - lda (ZPCLBuf),y - bne .3 - - jsr CL.PrintCLBuf -*-------------------------------------- -CL.RESET lda #0 - sta (ZPCLBuf) -CL.RESET.1 >STA.G CL.bReady - >STA.G CL.Ptr - >STA.G CL.Len - rts -*-------------------------------------- CL.BS >LDA.G CL.Ptr beq .9 dec diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index e3c4fe57..c3dd3e52 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -279,21 +279,28 @@ CS.RUN.LOOP >SLEEP *-------------------------------------- .2 >LDA.G bPause bpl .6 + .3 >SYSCALL GetChar bcs .9 I/O err + cmp #3 Ctrl-C bne .4 lda (pData) batch mode ? beq .5 + >LDA.G bSET.C beq .8 + bra .5 + .4 tax >LDA.G bPause asl $ff ? bpl .5 not from PAUSE command + cpx #C.CR bne .3 + .5 >STZ.G bPause *-------------------------------------- .6 lda (pData) batch mode ? diff --git a/SBIN/GETTY.S.txt b/SBIN/GETTY.S.txt index f56c4634..3b5084fd 100644 --- a/SBIN/GETTY.S.txt +++ b/SBIN/GETTY.S.txt @@ -39,7 +39,7 @@ CS.START cld .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data SegmentSize - .DA #64 Stack Size + .DA #32 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- @@ -65,6 +65,7 @@ CS.RUN ldy #S.PS.ARGC cmp #2 bcc .9 + .1 inc ArgIndex lda ArgIndex >SYSCALL ArgV @@ -73,14 +74,19 @@ CS.RUN ldy #S.PS.ARGC jsr CkeckOption bcs .9 + beq .1 valid option, check next arg + lda ArgDev bne .2 + lda ArgIndex sta ArgDev bra .1 + .2 lda ArgProg bne .9 + lda ArgIndex sta ArgProg bra .1 @@ -91,10 +97,13 @@ CS.RUN ldy #S.PS.ARGC lda #E.SYN sec .99 rts + .8 lda ArgDev beq .9 + lda ArgProg beq .9 + ldy #S.PS.hStdErr lda (pPs),y sta hErr @@ -142,11 +151,13 @@ CS.RUN.LOOP1 >SLEEP >SYSCALL GetChar bcs CS.RUN.9 + cmp #IAC beq CS.RUN.IACMODE >SYSCALL PutChar bcs CS.RUN.EXIT bra CS.RUN.LOOP1 + .1 lda TimeOut bne CS.RUN.LOOP1 @@ -158,11 +169,13 @@ CS.RUN.LOOP1 >SLEEP >LDYA L.MSG.GREETINGS >SYSCALL printf bcs CS.RUN.EXIT unable to send greetings... + .2 >PUSHBI S.PS.F.HOLD lda ArgProg >SYSCALL ArgV >SYSCALL ExecV >SLEEP + CS.RUN.EXIT lda bExitOnClose bmi .8 @@ -174,9 +187,11 @@ CS.RUN.9 rts *-------------------------------------- CS.RUN.IACMODE >SYSCALL GetChar Wait for IAC CMD (or SB) bcs CS.RUN.9 + sta IAC.CMD >SYSCALL GetChar Wait for IAC SUBCMD bcs CS.RUN.9 + sta IAC.SUBCMD tax lda IAC.CMD @@ -185,16 +200,20 @@ CS.RUN.IACMODE >SYSCALL GetChar Wait for IAC CMD (or SB) *-------------------------------------- CS.RUN.IAC.CMD cmp #WILL bne .8 + cpx #TELOPT.TTYPE bne .2 + >PUSHWI TELNETOPT.TTYPE.LEN >PUSHW L.TELNETOPT.TTYPE bra .7 .2 cpx #TELOPT.LINEMODE bne .8 + >PUSHWI TELNETOPT.LMODE.LEN >PUSHW L.TELNETOPT.LMODE + .7 ldy #S.PS.hStdOut lda (pPs),y >SYSCALL fwrite @@ -255,27 +274,34 @@ CS.QUIT lda hFILE CkeckOption lda (ZPPtr1) cmp #'-' bne .8 + ldy #2 lda (ZPPtr1),y bne .8 + dey lda (ZPPtr1),y - ldx OptionList + ldx #OptionVars-OptionList-1 + .2 cmp OptionList,x beq .3 + dex - bne .2 + bpl .2 + sec invalid option rts -.3 ldy OptionVars-1,x + +.3 ldy OptionVars,x eor #$80 toggle option sta $0,y lda #0 exit with 0 + .8 clc !0 if not an option rts *-------------------------------------- CS.END -OptionList >PSTR "Ee" +OptionList .AS "Ee" OptionVars .DA #bExitOnClose,#bExitOnClose MSG.USAGE .AS "Usage : GETTY \r\n" .AZ " -E : Exit on disconnect\r\n" diff --git a/SBIN/LOGIN.S.txt b/SBIN/LOGIN.S.txt index 8fe509e0..04790f24 100644 --- a/SBIN/LOGIN.S.txt +++ b/SBIN/LOGIN.S.txt @@ -50,7 +50,7 @@ CS.START cld .DA #0 .DA CS.END-CS.START Code Size (without Constants) .DA DS.END-DS.START Data Segment Size - .DA #64 Stack Size + .DA #32 Stack Size .DA #ZS.END-ZS.START Zero Page Size .DA 0 *-------------------------------------- @@ -395,13 +395,16 @@ CS.RUN.DumpFile pha pla plp .9 rts + .2 phx >SYSCALL puts pla >SYSCALL freemem bra .1 + .7 lda ZPhBuf >SYSCALL freemem + .8 lda ZPhFile >SYSCALL fclose rts @@ -413,14 +416,19 @@ CS.DOEVENT CS.QUIT lda hLIBCRYPT beq CS.CLEANUP >SYSCALL UnloadLib + CS.CLEANUP lda ZPhGetLine beq .1 + stz ZPhGetLine >SYSCALL freemem + .1 lda ZPhPW beq .8 + stz ZPhPW >SYSCALL freemem + .8 clc rts *--------------------------------------