mirror of https://github.com/A2osX/A2osX.git
parent
77f6c2664a
commit
0ea8d62a96
Binary file not shown.
|
@ -24,19 +24,17 @@ DLG.New lda #S.OBJ.T.DLG
|
|||
>SYSCALL2 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
|
||||
|
|
|
@ -305,7 +305,9 @@ LIB.GetCTX >LDYA ZPObjPtr
|
|||
|
||||
.8 ldy #S.OBJ.hParent
|
||||
lda (ZPCtxPtr),y
|
||||
beq *
|
||||
>SYSCALL2 GetMemPtr
|
||||
bcs *
|
||||
>STYA ZPCtxPtr
|
||||
|
||||
rts
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue