From 0ea8d62a9658e9499b0412ba2d92594d4fa96d7e Mon Sep 17 00:00:00 2001 From: burniouf Date: Mon, 1 May 2023 09:35:39 +0200 Subject: [PATCH] KERNEL : more terminal fixes LIBTUI : DLG fix --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes LIB/LIBTUI.S.DLG.txt | 6 +- LIB/LIBTUI.S.txt | 2 + ROOT/asmtest/TESTTUI.S.txt | 7 +- ROOT/ctest/testlib.c.txt | 2 +- SYS/KERNEL.S.TERMX.txt | 364 +++++++++++++++++++------------------ 6 files changed, 202 insertions(+), 179 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 111e5a0e56e0c8666394d7f0ddb49285c4fc6f6c..c52b4a5c1616892df783767879e3cac5dff17cc5 100644 GIT binary patch delta 28082 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 d(JzR8MRW(zZ-{KGx-_zhzNy5$*C+v^-3@ORsTx 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 GetMemPtr >STYA ZPPtr2 - ldy #S.CTX.W + ldy #S.OBJ.W lda (ZPPtr2),y sec - ldy #S.OBJ.W sbc (ZPObjPtr),y lsr ldy #S.OBJ.X1 sta (ZPObjPtr),y - ldy #S.CTX.H + ldy #S.OBJ.H lda (ZPPtr2),y sec - ldy #S.OBJ.H sbc (ZPObjPtr),y lsr ldy #S.OBJ.Y1 diff --git a/LIB/LIBTUI.S.txt b/LIB/LIBTUI.S.txt index 1995b15f..cda85d65 100644 --- a/LIB/LIBTUI.S.txt +++ b/LIB/LIBTUI.S.txt @@ -305,7 +305,9 @@ LIB.GetCTX >LDYA ZPObjPtr .8 ldy #S.OBJ.hParent lda (ZPCtxPtr),y + beq * >SYSCALL2 GetMemPtr + bcs * >STYA ZPCtxPtr rts diff --git a/ROOT/asmtest/TESTTUI.S.txt b/ROOT/asmtest/TESTTUI.S.txt index 47fe10bc..02317bd3 100644 --- a/ROOT/asmtest/TESTTUI.S.txt +++ b/ROOT/asmtest/TESTTUI.S.txt @@ -251,7 +251,7 @@ CS.BUT.Init >PUSHB hSCRN hParent .9 CS.BUT.Init.RTS rts *-------------------------------------- -CS.RUN.DLGSAVE >PUSHB hCTX hParent +CS.RUN.DLGSAVE >PUSHB hSCRN hParent >PUSHBI 70 W >PUSHBI 11 H >PUSHW L.DLGS.Title @@ -270,6 +270,7 @@ CS.RUN.DLGSAVE >PUSHB hCTX hParent bcs .9 sta ZPPtr1 + >PUSHB hDLGS hParent >PUSHBI 57 X1 >PUSHBI 7 Y1 @@ -285,7 +286,8 @@ CS.RUN.DLGSAVE >PUSHB hCTX hParent lda ZPPtr1 >LIBCALL hLIBTUI,LIBTUI.Activate -.1 lda hDLGS + + lda hDLGS >LIBCALL hLIBTUI,LIBTUI.Exec .9 php @@ -306,6 +308,7 @@ CS.QUIT >LDA.G TBOX1.hBuf beq .1 >SYSCALL FreeMem + .1 lda hCTX beq .2 diff --git a/ROOT/ctest/testlib.c.txt b/ROOT/ctest/testlib.c.txt index 0da5732c..cf00d677 100644 --- a/ROOT/ctest/testlib.c.txt +++ b/ROOT/ctest/testlib.c.txt @@ -63,7 +63,7 @@ int main(int argc, char *argv[]) do { e = tuiExec(hSCRN); if (e == EV_SAVE) { - short int hDLGS = tuiNewDlg(hCTX, 70, 11, "Save As..."); + short int hDLGS = tuiNewDlg(hSCRN, 70, 11, "Save As..."); short int hOKBut = tuiNewBut(hDLGS, 50, 7, 13, EV_OK, " OK "); short int hCanBut = tuiNewBut(hDLGS, 57, 7, 3, EV_CANCEL, "Cancel"); tuiDraw(hDLGS); diff --git a/SYS/KERNEL.S.TERMX.txt b/SYS/KERNEL.S.TERMX.txt index addb82b6..37b0ea4b 100644 --- a/SYS/KERNEL.S.TERMX.txt +++ b/SYS/KERNEL.S.TERMX.txt @@ -66,25 +66,25 @@ TERMX.STATUS tya beq TERMX.OPEN.E jsr TERMX.CBLNK + ldy #S.DCB.TTY.OUTTAIL lda (ZPDCBPtr),y iny -* sec eor (ZPDCBPtr),y OUTHEAD bne .8 bit bActive bpl .7 - bit OPENAPPLE + jsr TERMX.CheckOA bmi .7 bit KBD bmi .8 -.7 lda #$ff +.7 lda #$ff EOF = TRUE .HS 2C BIT ABS -.8 lda #0 +.8 lda #0 EOF = FALSE clc rts @@ -160,28 +160,21 @@ TERMX.READ bit bActive is screen active? jsr TERMX.CBLNK - bit OPENAPPLE - bpl .1 - - jsr TERMX.Title.ON - - bra .6 Open apple key, not for us... - -.1 jsr TERMX.Title.OFF + jsr TERMX.CheckOA + bmi .6 Open apple key, not for us... lda KBD - bpl .6 sta KBDSTROBE and #$7F cmp #C.ESC - bne .10 + bne .1 lda #3 -.10 ldx #KeyMap.Cnt-1 +.1 ldx #KeyMap.Cnt-1 .2 cmp KeyMap,x beq .3 @@ -786,7 +779,7 @@ TERMX.HOME lda #0 ldy #S.DCB.TTY.CH sta (ZPDCBPtr),y -TERMX.HOME.8 clc + clc rts *-------------------------------------- TERMX.G0 ldx #$80 @@ -810,132 +803,6 @@ TERMX.G1 ldx #$40 jmp TERMX.SETM.0 *-------------------------------------- -TERMX.IAC ldy #S.DCB.TTY.INBUF - lda (ZPDCBPtr),y - inc - sta (ZPDCBPtr),y - tay - - jsr TERM.GetBufByte - - sta (ZPDCBPtr),y - cpy #S.DCB.TTY.INBUF+1 CMD ? - beq TERMX.HOME.8 yes, wait for additional bytes - - ldy #S.DCB.TTY.INBUF+1 - lda (ZPDCBPtr),y get back CMD - cmp #SB - bne .1 not a SB/SE....stop with CMD/SUBCMD - - jsr TERM.GetBufByte - - cmp #SE - bne TERMX.HOME.8 wait for ending SE....keep bIACMode - - bra TERMX.IAC.SB - - ldy #S.DCB.TTY.INBUF+1 - lda (ZPDCBPtr),y get back CMD - -.1 cmp #IAC - beq TERMX.IAC.SB.9 - - sec - sbc #WILL - bcc TERMX.IAC.SB.9 - - asl - tax - - ldy #S.DCB.TTY.INBUF+2 - lda (ZPDCBPtr),y Get SUBCMD in A - - jmp (.8,x) - -.8 .DA TERMX.IAC.WILL - .DA TERMX.IAC.WONT - .DA TERMX.IAC.DO - .DA TERMX.IAC.DONT -*-------------------------------------- -TERMX.IAC.SB ldy #S.DCB.TTY.INBUF+2 - lda (ZPDCBPtr),y Get SUBCMD in A - - cmp #TN.O.TTYPE - bne TERMX.IAC.SB.9 - - iny - lda (ZPDCBPtr),y - cmp #SB.SEND - bne TERMX.IAC.SB.9 - - ldx #0 - -.1 lda SB.IS.TTYPE,x - jsr TERMX.COUT - inx - cpx #SB.IS.TTYPE.LEN - bne .1 - -TERMX.IAC.SB.9 jmp TERMX.SETM.0 -*-------------------------------------- -TERMX.IAC.WILL ldx #WILLDO.CNT-1 - -.1 cmp WILLDO,x - beq .7 - - dex - bpl .1 - - ldx #WILLDONT.CNT-1 - -.2 cmp WILLDONT,x - beq TERMX.IAC.WONT Send DONT - - dex - bpl .2 - - jmp TERMX.SETM.0 - -.7 ldx #DO - bra TERMX.IAC.SendAX -*-------------------------------------- -TERMX.IAC.DO ldx #DOWILL.CNT-1 - -.1 cmp DOWILL,x - beq .7 - - dex - bpl .1 - - ldx #DOWONT.CNT-1 - -.2 cmp DOWONT,x - beq TERMX.IAC.DONT Send WONT - - dex - bpl .2 - - jmp TERMX.SETM.0 - -.7 ldx #WILL - .HS 2C BIT ABS -*-------------------------------------- -TERMX.IAC.DONT ldx #WONT - .HS 2C BIT ABS -*-------------------------------------- -TERMX.IAC.WONT ldx #DONT -*-------------------------------------- -TERMX.IAC.SendAX - pha push CMD - phx - lda #IAC - jsr TERMX.COUT - pla - jsr TERMX.COUT - pla - jsr TERMX.COUT - jmp TERMX.SETM.0 -*-------------------------------------- TERMX.RIS ldy #S.DCB.TTY.M .1 lda RESET.VALUES-S.DCB.TTY.M,y @@ -1008,12 +875,12 @@ TERMX.EL ldx CsiPCnt beq TERMX.EL0 Erase EOL lda CsiP - beq TERMX.EL0 Erase EOL + beq TERMX.EL0 0:Erase EOL - cmp #1 - beq TERMX.EL1 Erase SOL + dec + beq TERMX.EL1 1:Erase SOL - cmp #2 Erase Line + dec 2:Erase Line beq TERMX.EL2 TERMX.EL.8 clc @@ -1213,15 +1080,15 @@ TERMX.ED ldx CsiPCnt beq TERMX.ED0 .1 lda CsiP - beq TERMX.ED0 + beq TERMX.ED0 0... - cmp #1 + dec 1 ? beq TERMX.ED1 -.2 cmp #2 +.2 dec 2 ? beq TERMX.ED2 - clc +TERMX.ED.8 clc rts *-------------------------------------- TERMX.ED0 ldy #S.DCB.TTY.CV Erase Cursor -> Bottom @@ -1275,11 +1142,151 @@ TERMX.ED.2 sty .1+1 .9 rts *-------------------------------------- -TERMX.Title.ON ldy #S.DCB.TTY.bTITLE +TERMX.IAC ldy #S.DCB.TTY.INBUF lda (ZPDCBPtr),y - bmi TERMX.RTS2 + inc + sta (ZPDCBPtr),y + tay - lda #$ff + jsr TERM.GetBufByte + + sta (ZPDCBPtr),y + cpy #S.DCB.TTY.INBUF+1 CMD ? + beq TERMX.ED.8 yes, wait for additional bytes + + ldy #S.DCB.TTY.INBUF+1 + lda (ZPDCBPtr),y get back CMD + cmp #SB + bne .1 not a SB/SE....stop with CMD/SUBCMD + + jsr TERM.GetBufByte + + cmp #SE + bne TERMX.ED.8 wait for ending SE....keep bIACMode + + bra TERMX.IAC.SB + + ldy #S.DCB.TTY.INBUF+1 + lda (ZPDCBPtr),y get back CMD + +.1 cmp #IAC + beq TERMX.IAC.SB.9 + + sec + sbc #WILL + bcc TERMX.IAC.SB.9 + + asl + tax + + ldy #S.DCB.TTY.INBUF+2 + lda (ZPDCBPtr),y Get SUBCMD in A + + jmp (.8,x) + +.8 .DA TERMX.IAC.RWILL + .DA TERMX.IAC.RWONT + .DA TERMX.IAC.RDO + .DA TERMX.IAC.RDONT +*-------------------------------------- +TERMX.IAC.SB ldy #S.DCB.TTY.INBUF+2 + lda (ZPDCBPtr),y Get SUBCMD in A + + cmp #TN.O.TTYPE + bne TERMX.IAC.SB.9 + + iny + lda (ZPDCBPtr),y + cmp #SB.SEND + bne TERMX.IAC.SB.9 + + ldx #0 + +.1 lda SB.IS.TTYPE,x + jsr TERMX.COUT + inx + cpx #SB.IS.TTYPE.LEN + bne .1 + +TERMX.IAC.SB.9 jmp TERMX.SETM.0 +*-------------------------------------- +TERMX.IAC.RWILL cmp #TN.O.ECHO +* beq TERMX.IAC.SDO + beq TERMX.IAC.SB.9 + + ldx #TERMX.IAC1.L-1 + +.1 cmp TERMX.IAC1,x + beq TERMX.IAC.SB.9 + + dex + bpl .1 + +.8 bra TERMX.IAC.SDONT +*-------------------------------------- +TERMX.IAC.RWONT ldx #TERMX.IAC1.L-1 + +.1 cmp TERMX.IAC1,x + beq TERMX.IAC.SDO + + dex + bpl .1 + + jmp TERMX.SETM.0 +*-------------------------------------- +TERMX.IAC.RDO cmp #TN.O.ECHO + beq TERMX.IAC.SWONT + + ldx #TERMX.IAC1.L-1 + +.1 cmp TERMX.IAC1,x + beq TERMX.IAC.SWILL + + dex + bpl .1 + + bra TERMX.IAC.SWONT +*-------------------------------------- +TERMX.IAC.RDONT ldx #TERMX.IAC1.L-1 + +.1 cmp TERMX.IAC1,x + beq TERMX.IAC.SWILL + + dex + bpl .1 + + jmp TERMX.SETM.0 +*-------------------------------------- +TERMX.IAC.SWILL ldx #WILL + .HS 2C BIT ABS +*-------------------------------------- +TERMX.IAC.SWONT ldx #WONT + .HS 2C BIT ABS +*-------------------------------------- +TERMX.IAC.SDO ldx #DO + .HS 2C BIT ABS +*-------------------------------------- +TERMX.IAC.SDONT ldx #DONT +*-------------------------------------- + pha push CMD + phx + lda #IAC + jsr TERMX.COUT + pla + jsr TERMX.COUT + pla + jsr TERMX.COUT + jmp TERMX.SETM.0 +*-------------------------------------- +TERMX.CheckOA lda OPENAPPLE + php + bpl .5 Restore Title + + ldy #S.DCB.TTY.bTITLE + lda (ZPDCBPtr),y + bmi .8 + + inc sta (ZPDCBPtr),y jsr TERM.GetDevName @@ -1315,20 +1322,25 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE cpy #80 bne .4 -TERMX.RTS2 rts -*-------------------------------------- -TERMX.Title.OFF ldy #S.DCB.TTY.bTITLE - lda (ZPDCBPtr),y - bpl TERMX.RTS2 + plp + rts - lda #$0 +.5 ldy #S.DCB.TTY.bTITLE + lda (ZPDCBPtr),y + bpl .8 + + dec sta (ZPDCBPtr),y + + ldx #0 + jsr TERMX.SCR0CPY + +.8 plp + rts *-------------------------------------- -TERMX.LINE0CPY ldx #0 - .HS 2C BIT ABS TERMX.SCRCPY ldx #23 -.1 lda ZPDCBPtr +TERMX.SCR0CPY lda ZPDCBPtr clc adc BUF.BL,x sta .80+1 @@ -1357,7 +1369,7 @@ TERMX.SCRCPY ldx #23 plx dex - bpl .1 + bpl TERMX.SCR0CPY rts @@ -1545,15 +1557,22 @@ EscModes .DA #0,#0,#0,#0,#0,#0,#S.DCB.TTY.M.CSI,#S.DCB.TTY.M.G0,#S.DCB.TTY.M.G1 CsiCodes .AS "ABCDHJKfhlmnr" CsiCodes.Cnt .EQ *-CsiCodes *-------------------------------------- -WILLDO .DA #TN.O.BINARY,#TN.O.SGA,#TN.O.ECHO -WILLDO.CNT .EQ *-WILLDO -WILLDONT .DA #TN.O.TSPEED,#TN.O.LINEMODE,#TN.O.STATUS -WILLDONT.CNT .EQ *-WILLDONT -DOWILL .DA #TN.O.BINARY,#TN.O.SGA,#TN.O.TTYPE,#TN.O.NAWS -DOWILL.CNT .EQ *-DOWILL -DOWONT .DA #TN.O.ECHO,#TN.O.NEWENV,#TN.O.XDISPLOC - .DA #TN.O.TSPEED,#TN.O.LFLOW,#TN.O.AUTH -DOWONT.CNT .EQ *-DOWONT +* Enabled both sides +*-------------------------------------- +TERMX.IAC1 .DA #TN.O.BINARY,#TN.O.SGA,#TN.O.TTYPE,#TN.O.NAWS +TERMX.IAC1.L .EQ *-TERMX.IAC1 +*-------------------------------------- +* Disabled both sides +*-------------------------------------- +*TERMX.IAC0 .DA #TN.O.TSPEED,#TN.O.LINEMODE,#TN.O.STATUS +* .DA #TN.O.NEWENV,#TN.O.XDISPLOC +* .DA #TN.O.LFLOW,#TN.O.AUTH +*TERMX.IAC0.L .EQ *-TERMX.IAC0 +*-------------------------------------- +* Enabled Local, Disabled remote +*-------------------------------------- +*TERMX.IAC10 .DA #TN.O.ECHO +*TERMX.IAC10.L .EQ *-TERMX.IAC10 *-------------------------------------- SB.IS.TTYPE .DA #IAC,#SB,#TN.O.TTYPE,#SB.IS TERMX.ENQ.REP .AS "vt100" @@ -1571,6 +1590,7 @@ RESET.VALUES .DA #0 MODE .DA #0 CH.SAVE .DA #0 CV .DA #0 CV.SAVE + .DA #0 SCROLLTOP .DA #23 SCROLLBOT .DA #$80 bCURON