mirror of https://github.com/A2osX/A2osX.git
LIBTCPIP:shutdown() fix
LIBTUI:bugfix & improvments (hyperlinks....) KERNEL:bugfix in fwrite() to socket CIFSD:NT_CREATE now set proper rights, better ERR codes GOPHER:Hyperlinks (wip)
This commit is contained in:
parent
e0d317e793
commit
05ee4ce936
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -709,22 +709,22 @@ MSG.DONE .CZ "All Done!!!"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* LOWRES Patette : https://comp.sys.apple2.narkive.com/lTSrj2ZI/apple-ii-colour-rgb
|
* LOWRES Patette : https://comp.sys.apple2.narkive.com/lTSrj2ZI/apple-ii-colour-rgb
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*PALETTE.RGB .HS 00000000 BLACK
|
*PALETTE.RGB .HS 00000000 BLACK
|
||||||
* .HS ffffff00 WHITE
|
|
||||||
* .HS 7e7e7e00 DARK.GRAY
|
|
||||||
* .HS 9c9c9c00 DARK.GRAY
|
|
||||||
* .HS 604ebd00 DARK.BLUE
|
* .HS 604ebd00 DARK.BLUE
|
||||||
* .HS 14cffd00 BLUE
|
|
||||||
* .HS d0c3ff00 LIGHT.BLUE
|
|
||||||
* .HS 00a36000 DARK.GREEN
|
* .HS 00a36000 DARK.GREEN
|
||||||
|
* .HS 14cffd00 BLUE
|
||||||
|
* .HS 60720300 BROWN
|
||||||
|
* .HS 7e7e7e00 DARK.GRAY
|
||||||
* .HS 14f53c00 LIGHT.GREEN
|
* .HS 14f53c00 LIGHT.GREEN
|
||||||
* .HS 72ffd000 AQUA
|
* .HS 72ffd000 AQUA
|
||||||
* .HS e31e6000 RED
|
* .HS e31e6000 RED
|
||||||
* .HS ff44fd00 PURPLE
|
* .HS ff44fd00 PURPLE
|
||||||
* .HS ffa0d000 PINK
|
* .HS 9c9c9c00 LIGHT.GRAY
|
||||||
* .HS 60720300 BROWN
|
* .HS d0c3ff00 LIGHT.BLUE
|
||||||
* .HS ff6a3c00 ORANGE
|
* .HS ff6a3c00 ORANGE
|
||||||
|
* .HS ffa0d000 PINK
|
||||||
* .HS d0dd8d00 YELLOW
|
* .HS d0dd8d00 YELLOW
|
||||||
|
* .HS ffffff00 WHITE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*PALETTE.RGB .DA #0,#0,#0,#0 0 Black
|
*PALETTE.RGB .DA #0,#0,#0,#0 0 Black
|
||||||
* .DA #255,#255,#255,#0 15 White
|
* .DA #255,#255,#255,#0 15 White
|
||||||
|
|
193
BIN/EDIT.S.txt
193
BIN/EDIT.S.txt
|
@ -60,7 +60,7 @@ CS.START cld
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA CS.INIT
|
.1 .DA CS.INIT
|
||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.SEQ.INIT .DA SEQ.INIT
|
L.SEQ.INIT .DA SEQ.INIT
|
||||||
L.SEQ.SCROLLRGN .DA SEQ.SCROLLRGN
|
L.SEQ.SCROLLRGN .DA SEQ.SCROLLRGN
|
||||||
|
@ -152,13 +152,13 @@ CS.RUN >PUSHW L.MSG.TERMCAP
|
||||||
|
|
||||||
.1 jsr GetCh
|
.1 jsr GetCh
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
beq .1
|
* beq .11
|
||||||
|
|
||||||
>SYSCALL PutChar
|
* >SYSCALL PutChar
|
||||||
bcs CS.INIT.RTS
|
* bcs CS.INIT.RTS
|
||||||
|
|
||||||
>LDA.G ScreenW Wait for Response from terminal for W & H
|
.11 >LDA.G ScreenW Wait for Response from terminal for W & H
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
jsr SCRN.Init
|
jsr SCRN.Init
|
||||||
|
@ -170,7 +170,7 @@ CS.RUN >PUSHW L.MSG.TERMCAP
|
||||||
>STYA.G LineBufBase
|
>STYA.G LineBufBase
|
||||||
txa
|
txa
|
||||||
>STA.G hLineBuf
|
>STA.G hLineBuf
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
bcs .2 No arg, new file....
|
bcs .2 No arg, new file....
|
||||||
|
@ -186,12 +186,12 @@ CS.RUN >PUSHW L.MSG.TERMCAP
|
||||||
|
|
||||||
.3 jsr SCRN.Repaint
|
.3 jsr SCRN.Repaint
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
jsr CS.RUN.GetBuf64
|
jsr CS.RUN.GetBuf64
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
>STA.G hFind
|
>STA.G hFind
|
||||||
|
|
||||||
jsr CS.RUN.GetBuf64
|
jsr CS.RUN.GetBuf64
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
|
@ -201,13 +201,13 @@ CS.RUN.LOOP jsr GetCh
|
||||||
bcs CS.RUN.RTS I/O error
|
bcs CS.RUN.RTS I/O error
|
||||||
|
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr CS.RUN.LOOP.CharIn
|
jsr CS.RUN.LOOP.CharIn
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.8 >LDA.G bExit
|
.8 >LDA.G bExit
|
||||||
bpl CS.RUN.LOOP
|
bpl CS.RUN.LOOP
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
|
|
||||||
.9 pha
|
.9 pha
|
||||||
|
@ -221,7 +221,7 @@ CS.RUN.RTS rts
|
||||||
CS.RUN.LOOP.CharIn
|
CS.RUN.LOOP.CharIn
|
||||||
cmp #C.DEL
|
cmp #C.DEL
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jmp Ctrl.DEL
|
jmp Ctrl.DEL
|
||||||
|
|
||||||
.1 cmp #C.SPACE
|
.1 cmp #C.SPACE
|
||||||
|
@ -238,8 +238,8 @@ CS.RUN.LOOP.CharIn
|
||||||
.2 asl
|
.2 asl
|
||||||
tax
|
tax
|
||||||
jmp (J.CTRL,x)
|
jmp (J.CTRL,x)
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetBuf64 >LDYAI 64
|
CS.RUN.GetBuf64 >LDYAI 64
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
|
@ -296,92 +296,88 @@ CS.QUIT ldy #hLineBuf
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetCh >SYSCALL GetChar
|
GetCh >SYSCALL GetChar
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
bne GetChTranslate
|
bne GetCh.1
|
||||||
|
|
||||||
ldy #S.PS.hStdIn Check for any extra LF
|
ldy #S.PS.hStdIn Check for any extra LF
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL FEOF
|
>SYSCALL FEOF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
tay
|
tay
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.8 lda #C.CR
|
.8 lda #C.CR
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetChTranslate tax
|
GetCh.1 tax
|
||||||
|
|
||||||
>LDA.G bEscMode
|
>LDA.G bEscMode
|
||||||
bpl .1 Not in ESC mode
|
bmi .1
|
||||||
|
|
||||||
cpx #'[' \e[ ?
|
cpx #C.ESC
|
||||||
bne .11
|
|
||||||
|
|
||||||
lda (pData) #EscBufferPtr
|
|
||||||
bne .19 buffer not empty...bad SEQ
|
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.11 lda (pData) #EscBufferPtr
|
|
||||||
cmp #16
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
.19 >STZ.G bEscMode
|
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.10 inc
|
|
||||||
sta (pData)
|
|
||||||
tay
|
|
||||||
|
|
||||||
txa
|
|
||||||
sta (pData),y
|
|
||||||
cmp #64
|
|
||||||
|
|
||||||
bcc .7 not a letter...SEQ is incomplete
|
|
||||||
|
|
||||||
jsr GetCh.Esc
|
|
||||||
bcs .8 Not translated, exit
|
|
||||||
.HS B0 BCS
|
|
||||||
*--------------------------------------
|
|
||||||
.1 txa
|
|
||||||
|
|
||||||
cmp #C.ESC
|
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
lda #$ff
|
lda #$ff
|
||||||
>STA.G bEscMode
|
>STA.G bEscMode
|
||||||
|
|
||||||
inc
|
inc
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 >LDA.G bCSIMode
|
||||||
|
bmi .11
|
||||||
|
|
||||||
|
cpx #'[' \e[ ?
|
||||||
|
bne GetCh.Esc
|
||||||
|
|
||||||
|
lda #$ff
|
||||||
|
>STA.G bCSIMode
|
||||||
|
|
||||||
|
inc
|
||||||
|
|
||||||
sta (pData) #EscBufferPtr
|
sta (pData) #EscBufferPtr
|
||||||
|
|
||||||
.7 lda #0
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
.11 lda (pData) #EscBufferPtr
|
||||||
|
cmp #15
|
||||||
|
bcc .10
|
||||||
|
|
||||||
.8 clc
|
.19 >STZ.G bEscMode
|
||||||
.9 rts
|
>STA.G bCSIMode
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.10 inc
|
||||||
|
sta (pData)
|
||||||
|
tay
|
||||||
|
|
||||||
|
txa
|
||||||
|
sta (pData),y
|
||||||
|
cmp #64
|
||||||
|
|
||||||
|
bcs GetCh.CSI
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
|
||||||
|
.8 txa
|
||||||
|
clc
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetCh.Esc >STZ.G bEscMode
|
GetCh.Esc >STZ.G bEscMode
|
||||||
|
|
||||||
lda (pData) #EscBufferPtr
|
GetCh.Esc1 txa
|
||||||
tay
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta (pData)
|
|
||||||
|
|
||||||
lda (pData),y
|
|
||||||
|
|
||||||
cpy #1
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
ldx #EscChars.Cnt-1
|
ldx #EscChars.Cnt-1
|
||||||
|
|
||||||
.1 cmp EscChars,x
|
.1 cmp EscChars,x
|
||||||
|
@ -389,22 +385,31 @@ GetCh.Esc >STZ.G bEscMode
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.10 cmp #'R' Response to cursor position query?
|
lda #0
|
||||||
beq .3
|
clc
|
||||||
|
|
||||||
sec
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 lda EscAscii,x
|
.2 lda EscAscii,x
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* \e[xxx;yyyR
|
* \e[A UP
|
||||||
|
* \e[B DOWN
|
||||||
|
* \e[C FOWARD
|
||||||
|
* \e[D BACK
|
||||||
|
* \e[xxx;yyyR DSR ("\e[I6n" reply)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
GetCh.CSI >STZ.G bEscMode
|
||||||
|
>STA.G bCSIMode
|
||||||
|
|
||||||
|
cpx #'R' Response to cursor position query?
|
||||||
|
beq .3
|
||||||
|
|
||||||
|
>DEBUG
|
||||||
|
|
||||||
|
bra GetCh.Esc1
|
||||||
|
|
||||||
.3 stz TmpByte
|
.3 stz TmpByte
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
@ -436,7 +441,7 @@ GetCh.Esc >STZ.G bEscMode
|
||||||
stz TmpByte
|
stz TmpByte
|
||||||
|
|
||||||
.6 iny
|
.6 iny
|
||||||
|
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
cmp #'R'
|
cmp #'R'
|
||||||
beq .7
|
beq .7
|
||||||
|
@ -447,7 +452,8 @@ GetCh.Esc >STZ.G bEscMode
|
||||||
.7 lda TmpByte
|
.7 lda TmpByte
|
||||||
>STA.G ScreenW
|
>STA.G ScreenW
|
||||||
|
|
||||||
sec
|
.8 lda #0
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetCh.TmpByte10pA
|
GetCh.TmpByte10pA
|
||||||
|
@ -502,7 +508,7 @@ SEQ.SCROLLUP .CZ "\eD"
|
||||||
SEQ.SCROLLCURDN .CS "\e[?7l\e[%d;%dr"
|
SEQ.SCROLLCURDN .CS "\e[?7l\e[%d;%dr"
|
||||||
SEQ.SCROLLDN .CZ "\eM"
|
SEQ.SCROLLDN .CZ "\eM"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.TERMCAP .CZ "\e[999;999H\e[6n"
|
MSG.TERMCAP .CZ "\r\n\e[999;999H\e[6n"
|
||||||
MSG.TOPBAR .CZ "A2osX Edit %d.%d:%s (%s)"
|
MSG.TOPBAR .CZ "A2osX Edit %d.%d:%s (%s)"
|
||||||
MSG.TXTCR .CZ "TXT/CR"
|
MSG.TXTCR .CZ "TXT/CR"
|
||||||
MSG.TXTCRLF .CZ "TXT/CRLF"
|
MSG.TXTCRLF .CZ "TXT/CRLF"
|
||||||
|
@ -582,10 +588,10 @@ DLG.SAVE.1 .DA #S.DLG.Ctrl.LBL,#2,#2
|
||||||
|
|
||||||
DLG.SAVE.2 .DA #S.DLG.Ctrl.TB,#2,#3
|
DLG.SAVE.2 .DA #S.DLG.Ctrl.TB,#2,#3
|
||||||
.DA #0,#64,#hFileName CURPOS,MAXCHAR,hMem
|
.DA #0,#64,#hFileName CURPOS,MAXCHAR,hMem
|
||||||
|
|
||||||
DLG.SAVE.3 .DA #S.DLG.Ctrl.LBL,#2,#5
|
DLG.SAVE.3 .DA #S.DLG.Ctrl.LBL,#2,#5
|
||||||
.AZ "Filetype :"
|
.AZ "Filetype :"
|
||||||
|
|
||||||
DLG.SAVE.4 .DA #S.DLG.Ctrl.OL,#2,#6
|
DLG.SAVE.4 .DA #S.DLG.Ctrl.OL,#2,#6
|
||||||
.DA #18 Ctrl-R
|
.DA #18 Ctrl-R
|
||||||
.DA #FileType
|
.DA #FileType
|
||||||
|
@ -603,15 +609,15 @@ DLG.SAVE.6 .DA #S.DLG.Ctrl.OL,#26,#6
|
||||||
.DA #FileType
|
.DA #FileType
|
||||||
.DA #2
|
.DA #2
|
||||||
.AZ "ASM"
|
.AZ "ASM"
|
||||||
|
|
||||||
DLG.SAVE.7 .DA #S.DLG.Ctrl.BUT,#40,#8
|
DLG.SAVE.7 .DA #S.DLG.Ctrl.BUT,#40,#8
|
||||||
.DA #C.CR
|
.DA #C.CR
|
||||||
.AZ " Save "
|
.AZ " Save "
|
||||||
|
|
||||||
DLG.SAVE.8 .DA #S.DLG.Ctrl.BUT,#52,#8
|
DLG.SAVE.8 .DA #S.DLG.Ctrl.BUT,#52,#8
|
||||||
.DA #3 Ctrl-C
|
.DA #3 Ctrl-C
|
||||||
.AZ " Cancel "
|
.AZ " Cancel "
|
||||||
|
|
||||||
DLG.SAVE.T .AZ "Save As..." Title
|
DLG.SAVE.T .AZ "Save As..." Title
|
||||||
DLG.SAVE.S .AZ "CR:Save, Ctrl-R/L/A:Change Type, Ctrl-C:Cancel"
|
DLG.SAVE.S .AZ "CR:Save, Ctrl-R/L/A:Change Type, Ctrl-C:Cancel"
|
||||||
DLG.SAVE.LEN .EQ *-DLG.SAVE
|
DLG.SAVE.LEN .EQ *-DLG.SAVE
|
||||||
|
@ -638,21 +644,21 @@ DLG.FIND.1 .DA #S.DLG.Ctrl.LBL,#2,#2
|
||||||
|
|
||||||
DLG.FIND.2 .DA #S.DLG.Ctrl.TB,#2,#3
|
DLG.FIND.2 .DA #S.DLG.Ctrl.TB,#2,#3
|
||||||
.DA #0,#63,#hFind
|
.DA #0,#63,#hFind
|
||||||
|
|
||||||
DLG.FIND.3 .DA #S.DLG.Ctrl.LBL,#2,#5
|
DLG.FIND.3 .DA #S.DLG.Ctrl.LBL,#2,#5
|
||||||
.AZ "Replace :"
|
.AZ "Replace :"
|
||||||
|
|
||||||
DLG.FIND.4 .DA #S.DLG.Ctrl.TB,#2,#6
|
DLG.FIND.4 .DA #S.DLG.Ctrl.TB,#2,#6
|
||||||
.DA #0,#63,#hReplace
|
.DA #0,#63,#hReplace
|
||||||
|
|
||||||
DLG.FIND.5 .DA #S.DLG.Ctrl.BUT,#40,#8
|
DLG.FIND.5 .DA #S.DLG.Ctrl.BUT,#40,#8
|
||||||
.DA #C.CR
|
.DA #C.CR
|
||||||
.AZ " Find "
|
.AZ " Find "
|
||||||
|
|
||||||
DLG.FIND.6 .DA #S.DLG.Ctrl.BUT,#52,#8
|
DLG.FIND.6 .DA #S.DLG.Ctrl.BUT,#52,#8
|
||||||
.DA #3 Ctrl-C
|
.DA #3 Ctrl-C
|
||||||
.AZ " Cancel "
|
.AZ " Cancel "
|
||||||
|
|
||||||
DLG.FIND.T .AZ "Find/Replace..." Title
|
DLG.FIND.T .AZ "Find/Replace..." Title
|
||||||
DLG.FIND.S .AZ "CR:Find, Ctrl-C:Cancel"
|
DLG.FIND.S .AZ "CR:Find, Ctrl-C:Cancel"
|
||||||
DLG.FIND.LEN .EQ *-DLG.FIND
|
DLG.FIND.LEN .EQ *-DLG.FIND
|
||||||
|
@ -663,6 +669,7 @@ DS.START
|
||||||
EscBuffer .BS 16
|
EscBuffer .BS 16
|
||||||
|
|
||||||
bEscMode .BS 1
|
bEscMode .BS 1
|
||||||
|
bCSIMode .BS 1
|
||||||
bExit .BS 1
|
bExit .BS 1
|
||||||
bUnSaved .BS 1
|
bUnSaved .BS 1
|
||||||
bUpdateTop .BS 1
|
bUpdateTop .BS 1
|
||||||
|
|
563
BIN/GOPHER.S.txt
563
BIN/GOPHER.S.txt
|
@ -15,7 +15,7 @@ NEW
|
||||||
.INB inc/libtcpip.i
|
.INB inc/libtcpip.i
|
||||||
.INB inc/libtui.i
|
.INB inc/libtui.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TIMEOUT.MAX .EQ 200 20 sec.
|
TIMEOUT.MAX .EQ 250 25 sec.
|
||||||
BUFSIZE .EQ 4096
|
BUFSIZE .EQ 4096
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
|
@ -25,6 +25,7 @@ ZPIPCfgPtr .BS 2
|
||||||
ZPBufPtr .BS 2
|
ZPBufPtr .BS 2
|
||||||
ZPLinePtr .BS 2
|
ZPLinePtr .BS 2
|
||||||
ZPFramePtr .BS 2
|
ZPFramePtr .BS 2
|
||||||
|
|
||||||
ZPnFrameLen .BS 2
|
ZPnFrameLen .BS 2
|
||||||
|
|
||||||
hBuf .BS 1
|
hBuf .BS 1
|
||||||
|
@ -41,6 +42,7 @@ hTBOX .BS 1
|
||||||
TargetHost .BS 2
|
TargetHost .BS 2
|
||||||
TargetPort .BS 2
|
TargetPort .BS 2
|
||||||
TargetSelector .BS 2
|
TargetSelector .BS 2
|
||||||
|
ZPPtr1 .BS 2
|
||||||
ZS.END .ED
|
ZS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
|
@ -63,23 +65,30 @@ CS.START cld
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.LIBTCPIP .DA LIBTCPIP
|
L.LIBTCPIP .DA LIBTCPIP
|
||||||
L.LIBTUI .DA LIBTUI
|
L.LIBTUI .DA LIBTUI
|
||||||
L.SA.LOCAL .DA SA.LOCAL
|
|
||||||
|
|
||||||
|
L.MSG.ScrTitle0 .DA MSG.ScrTitle0
|
||||||
L.MSG.ScrTitle .DA MSG.ScrTitle
|
L.MSG.ScrTitle .DA MSG.ScrTitle
|
||||||
|
|
||||||
L.MSG.IPKO .DA MSG.IPKO
|
L.MSG.IPKO .DA MSG.IPKO
|
||||||
L.MSG.USAGE .DA MSG.USAGE
|
L.MSG.USAGE .DA MSG.USAGE
|
||||||
L.MSG.IOERR .DA MSG.IOERR
|
|
||||||
L.MSG.CRLF .DA MSG.CRLF
|
L.MSG.CRLF .DA MSG.CRLF
|
||||||
|
L.MSG.NULL .DA MSG.NULL
|
||||||
|
|
||||||
L.MSG.CONNECTING .DA MSG.CONNECTING
|
L.MSG.CONNECT .DA MSG.CONNECT
|
||||||
L.MSG.UNKNOWN .DA MSG.UNKNOWN
|
L.MSG.GETTING .DA MSG.GETTING
|
||||||
|
L.MSG.OK .DA MSG.OK
|
||||||
L.MSG.ERROR .DA MSG.ERROR
|
L.MSG.ERROR .DA MSG.ERROR
|
||||||
L.MSG.CONNECTED .DA MSG.CONNECTED
|
L.MSG.GOTO .DA MSG.GOTO
|
||||||
|
|
||||||
J.ITEMTYPES .DA CS.Net.File
|
J.items2Buf .DA CS.Net.File2Buf
|
||||||
.DA CS.Net.Dir
|
.DA CS.Net.Dir2Buf
|
||||||
.DA CS.Net.Search
|
.DA CS.Net.Search2Buf
|
||||||
.DA CS.Net.Info
|
.DA CS.Net.Info2Buf
|
||||||
|
|
||||||
|
J.items2HL .DA CS.Net.File2HL
|
||||||
|
.DA CS.Net.Dir2HL
|
||||||
|
.DA CS.Net.Search2HL
|
||||||
|
.DA CS.Net.Info2HL
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
|
@ -87,7 +96,7 @@ CS.INIT >LDYA L.LIBTCPIP
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
>LDYA L.LIBTUI
|
>LDYA L.LIBTUI
|
||||||
>SYSCALL LoadLib
|
>SYSCALL LoadLib
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -97,50 +106,93 @@ CS.INIT >LDYA L.LIBTCPIP
|
||||||
.9
|
.9
|
||||||
CS.INIT.RTS rts
|
CS.INIT.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.RUN.USAGE >LDYA L.MSG.USAGE
|
||||||
|
>SYSCALL PutS
|
||||||
|
lda #E.SYN
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CS.RUN jsr CS.Net.Init
|
CS.RUN jsr CS.Net.Init
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
jsr CS.Scr.Init
|
lda #1
|
||||||
bcs CS.INIT.RTS
|
>SYSCALL ArgV
|
||||||
|
bcs CS.RUN.USAGE
|
||||||
|
|
||||||
|
phy
|
||||||
|
pha
|
||||||
|
|
||||||
|
>PUSHEA.G NET.HyperLink+1
|
||||||
|
|
||||||
|
pla
|
||||||
|
>PUSHA
|
||||||
|
pla
|
||||||
|
>PUSHA
|
||||||
|
>SYSCALL strcpy
|
||||||
|
|
||||||
>LDYAI BUFSIZE
|
>LDYAI BUFSIZE
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
stx hBuf
|
stx hBuf
|
||||||
|
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
>STYA ZPLinePtr
|
>STYA ZPLinePtr
|
||||||
stx hLine
|
stx hLine
|
||||||
|
|
||||||
jsr CS.Net.Connect
|
jsr CS.Scr.Init
|
||||||
bcs CS.INIT.RTS
|
|
||||||
|
|
||||||
>LDYA L.MSG.CRLF
|
|
||||||
jsr CS.Net.Get
|
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.RUN.LOOP0 jsr CS.Scr.SetStatusConn
|
||||||
|
bcs CS.RUN.LOOP.9
|
||||||
|
|
||||||
|
jsr CS.Net.ParseHL
|
||||||
|
jsr CS.Scr.SetStatusOkErr
|
||||||
|
bcs CS.RUN.LOOP
|
||||||
|
|
||||||
|
jsr CS.Net.Connect
|
||||||
|
jsr CS.Scr.SetStatusOkErr
|
||||||
|
bcs CS.RUN.LOOP
|
||||||
|
|
||||||
|
jsr CS.Net.Get
|
||||||
|
jsr CS.Scr.SetStatusOkErr
|
||||||
|
bcs CS.RUN.LOOP
|
||||||
|
|
||||||
|
jsr CS.Scr.SetTitle
|
||||||
jsr CS.Scr.SetBuf
|
jsr CS.Scr.SetBuf
|
||||||
|
jsr CS.Scr.SetStatusOkErr
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.LOOP lda hSCR
|
CS.RUN.LOOP lda hSCR
|
||||||
>LIBCALL hLIBTUI,LIBTUI.Exec
|
>LIBCALL hLIBTUI,LIBTUI.Exec
|
||||||
bcs .99 Error
|
bcs CS.RUN.LOOP.9
|
||||||
|
|
||||||
tay
|
tay
|
||||||
beq CS.RUN.LOOP No Event
|
beq CS.RUN.LOOP No Event
|
||||||
|
|
||||||
cmp #3
|
cmp #3
|
||||||
beq .99
|
beq CS.RUN.LOOP.9
|
||||||
|
|
||||||
|
cmp #EV.HL.SELECTED
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
jsr CS.Scr.SetStatusGoto
|
||||||
|
bcc CS.RUN.LOOP
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
bra CS.RUN.LOOP
|
.1 cmp #EV.HL.PRESSED
|
||||||
|
bne CS.RUN.LOOP
|
||||||
|
|
||||||
|
jsr CS.Net.GetHL
|
||||||
|
bcc CS.RUN.LOOP0
|
||||||
|
|
||||||
.99 rts
|
tay
|
||||||
|
beq CS.RUN.LOOP
|
||||||
|
|
||||||
|
CS.RUN.LOOP.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT lda (pEvent)
|
CS.DOEVENT lda (pEvent)
|
||||||
bpl .9 is it a TIMER event?
|
bpl .9 is it a TIMER event?
|
||||||
|
@ -155,14 +207,14 @@ CS.DOEVENT lda (pEvent)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda hCTX
|
CS.QUIT lda hCTX
|
||||||
beq .10
|
beq .10
|
||||||
|
|
||||||
>LIBCALL hLIBTUI,LIBTUI.Close
|
>LIBCALL hLIBTUI,LIBTUI.Close
|
||||||
|
|
||||||
.10 lda hLIBTUI
|
.10 lda hLIBTUI
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>SYSCALL UnloadLib
|
>SYSCALL UnloadLib
|
||||||
|
|
||||||
.1 lda hSocket
|
.1 lda hSocket
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
|
@ -192,80 +244,142 @@ CS.Net.Init >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||||
bpl .97
|
bpl .97
|
||||||
|
|
||||||
ldy #S.IPCFG.IP+3
|
ldy #S.IPCFG.IP+3
|
||||||
ldx #3
|
ldx #4
|
||||||
|
|
||||||
.1 lda (ZPIPCfgPtr),y
|
.1 lda (ZPIPCfgPtr),y
|
||||||
sta SA.LOCAL+S.SOCKADDR.ADDR,x
|
pha
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bne .1
|
||||||
|
|
||||||
lda #1
|
ldy #SA.LOCAL+S.SOCKADDR.ADDR
|
||||||
>SYSCALL ArgV
|
ldx #4
|
||||||
bcs .96
|
|
||||||
|
|
||||||
>STYA TargetHost
|
|
||||||
|
|
||||||
lda #2
|
.2 pla
|
||||||
>SYSCALL ArgV
|
sta (pData),y
|
||||||
bcs .7
|
iny
|
||||||
|
dex
|
||||||
>SYSCALL AToI
|
bne .2
|
||||||
bra .8
|
|
||||||
|
|
||||||
.7 >LDYAI 70
|
|
||||||
|
|
||||||
.8 >STYA TargetPort
|
|
||||||
|
|
||||||
lda #AF.INET
|
lda #AF.INET
|
||||||
|
>STA.G SA.LOCAL+S.SOCKADDR.AF
|
||||||
>STA.G SA.REMOTE+S.SOCKADDR.AF
|
>STA.G SA.REMOTE+S.SOCKADDR.AF
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.96 >LDYA L.MSG.USAGE
|
|
||||||
bra .98
|
|
||||||
|
|
||||||
.97 >LDYA L.MSG.IPKO
|
|
||||||
|
|
||||||
.98 >SYSCALL PutS
|
.97 >LDYA L.MSG.IPKO
|
||||||
|
>SYSCALL PutS
|
||||||
lda #E.SYN
|
lda #E.SYN
|
||||||
sec
|
sec
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.Net.Connect >PUSHEA.G SCR.StatusBuf
|
CS.Net.ParseHL >LEA.G NET.HyperLink+1
|
||||||
>PUSHW L.MSG.CONNECTING
|
>STYA ZPPtr1
|
||||||
>PUSHW TargetHost
|
>STYA TargetHost
|
||||||
>PUSHW TargetPort
|
|
||||||
>PUSHBI 4
|
lda (ZPPtr1)
|
||||||
>SYSCALL SPrintF
|
beq .9
|
||||||
jsr CS.Scr.SetStatus
|
|
||||||
|
cmp #'/'
|
||||||
lda #TIMEOUT.MAX
|
beq .50
|
||||||
|
|
||||||
|
ldy #$ff
|
||||||
|
|
||||||
|
.1 iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
jsr CS.Net.Resolve host\0
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
>LDYAI 70
|
||||||
|
>STYA TargetPort
|
||||||
|
bra .7
|
||||||
|
|
||||||
|
.9 lda #E.SYN
|
||||||
|
sec
|
||||||
|
.99 rts
|
||||||
|
|
||||||
|
.2 eor #':'
|
||||||
|
beq .3
|
||||||
|
|
||||||
|
eor #'/'
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda #70
|
||||||
|
sta TargetPort Default PORT
|
||||||
|
lda /70
|
||||||
|
sta TargetPort+1
|
||||||
|
bra .5
|
||||||
|
|
||||||
|
.3 lda #0 host:Port, stop HOST here
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
|
jsr CS.Net.AddYp1Ptr1
|
||||||
|
|
||||||
|
jsr CS.Net.Resolve
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
>LDYA ZPPtr1
|
||||||
|
>SYSCALL AToI
|
||||||
|
>STYA TargetPort
|
||||||
|
|
||||||
|
ldy #$ff
|
||||||
|
|
||||||
|
.4 iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
eor #'/'
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
.5 jsr CS.Net.AddYp1Ptr1
|
||||||
|
bra .6
|
||||||
|
|
||||||
|
.50 >LDYA L.MSG.NULL
|
||||||
|
>STYA TargetHost
|
||||||
|
|
||||||
|
.6 >LDYA ZPPtr1
|
||||||
|
>STYA TargetSelector
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.7 >LDYA L.MSG.NULL
|
||||||
|
>STYA TargetSelector
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.Net.AddYp1Ptr1
|
||||||
|
tya
|
||||||
|
sec skip :
|
||||||
|
adc ZPPtr1
|
||||||
|
sta ZPPtr1
|
||||||
|
tay
|
||||||
|
lda ZPPtr1+1
|
||||||
|
clc
|
||||||
|
adc #0
|
||||||
|
sta ZPPtr1+1
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.Net.Resolve lda #TIMEOUT.MAX
|
||||||
sta TimeOut
|
sta TimeOut
|
||||||
|
|
||||||
.1 >SLEEP
|
.1 >SLEEP
|
||||||
|
|
||||||
>PUSHEA.G SA.REMOTE+S.SOCKADDR.ADDR
|
>PUSHEA.G SA.REMOTE+S.SOCKADDR.ADDR
|
||||||
>PUSHW TargetHost
|
>PUSHEA.G NET.HyperLink+1
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GetByName
|
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GetByName
|
||||||
bcc CS.Net.Connect1
|
bcc .9
|
||||||
|
|
||||||
lda TimeOut
|
ldx TimeOut
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>PUSHEA.G SCR.StatusBuf
|
.9 rts
|
||||||
>PUSHW L.MSG.UNKNOWN
|
*--------------------------------------
|
||||||
>PUSHW TargetHost
|
CS.Net.Connect >PUSHBI S.SOCKET.T.SEQPKT
|
||||||
>PUSHBI 2
|
|
||||||
>SYSCALL SPrintF
|
|
||||||
jsr CS.Scr.SetStatus
|
|
||||||
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
CS.Net.Connect1 >PUSHBI S.SOCKET.T.SEQPKT
|
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Socket
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -273,7 +387,7 @@ CS.Net.Connect1 >PUSHBI S.SOCKET.T.SEQPKT
|
||||||
sta hSocket
|
sta hSocket
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHW L.SA.LOCAL
|
>PUSHEA.G SA.LOCAL
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Bind
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -288,76 +402,70 @@ CS.Net.Connect1 >PUSHBI S.SOCKET.T.SEQPKT
|
||||||
>PUSHB hSocket
|
>PUSHB hSocket
|
||||||
>PUSHEA.G SA.REMOTE
|
>PUSHEA.G SA.REMOTE
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Connect
|
||||||
bcc .8
|
bcc .9
|
||||||
|
|
||||||
cmp #ERR.SKT.NOCONN
|
ldx TimeOut
|
||||||
sec
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
lda TimeOut
|
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #ERR.SKT.NOCONN
|
|
||||||
sec
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
.8 >PUSHEA.G SCR.StatusBuf
|
CS.Net.Get >PUSHEA.G SCR.StatusBuf
|
||||||
>PUSHW L.MSG.CONNECTED
|
>PUSHW L.MSG.GETTING
|
||||||
|
>PUSHW TargetSelector
|
||||||
ldy #SA.REMOTE+S.SOCKADDR.ADDR
|
>PUSHBI 2
|
||||||
|
|
||||||
.80 >PUSHB (pData),y
|
|
||||||
iny
|
|
||||||
cpy #SA.REMOTE+S.SOCKADDR.PORT
|
|
||||||
bcc .80
|
|
||||||
|
|
||||||
iny
|
|
||||||
>PUSHB (pData),y
|
|
||||||
dey
|
|
||||||
>PUSHB (pData),y
|
|
||||||
|
|
||||||
>PUSHBI 6
|
|
||||||
>SYSCALL SPrintF
|
>SYSCALL SPrintF
|
||||||
jsr CS.Scr.SetStatus
|
jsr CS.Scr.SetStatus
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CS.Net.Get >STYA TargetSelector
|
|
||||||
|
|
||||||
lda hBuf
|
lda hBuf
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPBufPtr
|
>STYA ZPBufPtr
|
||||||
|
|
||||||
lda #0
|
lda #0 Reset Buffer
|
||||||
sta (ZPBufPtr)
|
sta (ZPBufPtr)
|
||||||
sta (ZPLinePtr)
|
|
||||||
|
|
||||||
>PUSHB hSocket
|
>PUSHB hSocket
|
||||||
>PUSHW TargetSelector
|
>PUSHW ZPLinePtr
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (TargetSelector),y
|
lda (TargetSelector),y
|
||||||
|
sta (ZPLinePtr),y
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
lda #C.CR
|
||||||
|
sta (ZPLinePtr),y
|
||||||
|
iny
|
||||||
|
|
||||||
|
lda #C.LF
|
||||||
|
sta (ZPLinePtr),y
|
||||||
|
iny
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta (ZPLinePtr),y
|
||||||
|
iny
|
||||||
|
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Send
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta (ZPLinePtr)
|
||||||
|
|
||||||
.2 >SLEEP
|
.2 >SLEEP
|
||||||
|
|
||||||
lda hSocket
|
lda hSocket
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Recv
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
cmp #E.NODATA
|
cmp #E.NODATA
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
|
lda hSocket
|
||||||
* lda hSocket
|
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
||||||
* >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
|
|
||||||
|
stz hSocket
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -369,15 +477,15 @@ CS.Net.Get >STYA TargetSelector
|
||||||
|
|
||||||
lda hFrame
|
lda hFrame
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.Net.GetFrame sta hFrame
|
CS.Net.GetFrame sta hFrame
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPFramePtr
|
>STYA ZPFramePtr
|
||||||
|
|
||||||
ldy #S.IP.TOTAL.LENGTH+1
|
ldy #S.IP.TOTAL.LENGTH+1
|
||||||
lda (ZPFramePtr),y
|
lda (ZPFramePtr),y
|
||||||
sec
|
sec
|
||||||
|
@ -410,43 +518,45 @@ CS.Net.GetLines ldy #$ff
|
||||||
|
|
||||||
.2 jsr CS.Net.GetChar
|
.2 jsr CS.Net.GetChar
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
cmp #C.LF
|
cmp #C.LF
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
sta (ZPLinePtr),y
|
sta (ZPLinePtr),y
|
||||||
iny
|
iny
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.3 lda #0
|
.3 lda #0
|
||||||
sta (ZPLinePtr),y
|
sta (ZPLinePtr),y
|
||||||
|
|
||||||
jsr CS.Net.Line2Buf
|
jsr CS.Net.Line2Buf
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPLinePtr)
|
sta (ZPLinePtr)
|
||||||
tay
|
tay
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.8 clc
|
.8 lda #0
|
||||||
|
sta (ZPLinePtr),y
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.Net.Line2Buf lda (ZPLinePtr)
|
CS.Net.Line2Buf lda (ZPLinePtr)
|
||||||
|
|
||||||
ldx #ITEMTYPES.L-1
|
ldx #ITEMTYPES.L
|
||||||
|
|
||||||
.1 cmp ITEMTYPES,x
|
.1 cmp ITEMTYPES-1,x
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bne .1
|
||||||
|
|
||||||
bra .6
|
bra .6
|
||||||
|
|
||||||
.2 txa
|
.2 txa
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jmp (J.ITEMTYPES,x)
|
jmp (J.items2Buf-2,x)
|
||||||
|
|
||||||
.6 ldy #$ff
|
.6 ldy #$ff
|
||||||
|
|
||||||
|
@ -454,7 +564,7 @@ CS.Net.Line2Buf lda (ZPLinePtr)
|
||||||
lda (ZPLinePtr),y
|
lda (ZPLinePtr),y
|
||||||
sta (ZPBufPtr),y
|
sta (ZPBufPtr),y
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
tya
|
tya
|
||||||
clc
|
clc
|
||||||
adc ZPBufPtr
|
adc ZPBufPtr
|
||||||
|
@ -465,11 +575,11 @@ CS.Net.Line2Buf lda (ZPLinePtr)
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* hyperlinks: [[text to show|targetUrl]]
|
* hyperlinks: [[text to show]targetUrl]
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.Net.File
|
CS.Net.File2Buf
|
||||||
CS.Net.Dir
|
CS.Net.Dir2Buf
|
||||||
CS.Net.Search
|
CS.Net.Search2Buf
|
||||||
lda #'['
|
lda #'['
|
||||||
jsr CS.Net.Char2Buf
|
jsr CS.Net.Char2Buf
|
||||||
jsr CS.Net.Char2Buf
|
jsr CS.Net.Char2Buf
|
||||||
|
@ -478,46 +588,48 @@ CS.Net.Search
|
||||||
|
|
||||||
jsr CS.Net.Token2Buf
|
jsr CS.Net.Token2Buf
|
||||||
|
|
||||||
lda #'|'
|
lda #']'
|
||||||
jsr CS.Net.Char2Buf
|
jsr CS.Net.Char2Buf
|
||||||
|
|
||||||
phy save Selector pos
|
phy save Selector pos
|
||||||
|
|
||||||
|
txa
|
||||||
|
jsr CS.Net.Char2Buf Type
|
||||||
|
|
||||||
jsr CS.Net.SkipToken
|
jsr CS.Net.SkipToken
|
||||||
|
|
||||||
jsr CS.Net.Token2Buf address
|
jsr CS.Net.Token2Buf address
|
||||||
|
|
||||||
lda #':'
|
lda #':'
|
||||||
jsr CS.Net.Char2Buf
|
jsr CS.Net.Char2Buf
|
||||||
|
|
||||||
jsr CS.Net.Token2Buf port
|
jsr CS.Net.Token2Buf port
|
||||||
|
|
||||||
ply
|
ply
|
||||||
|
|
||||||
jsr CS.Net.Token2Buf selector
|
jsr CS.Net.Token2Buf selector
|
||||||
|
|
||||||
lda #']'
|
lda #']'
|
||||||
jsr CS.Net.Char2Buf
|
jsr CS.Net.Char2Buf
|
||||||
|
|
||||||
|
lda #C.CR
|
||||||
jsr CS.Net.Char2Buf
|
jsr CS.Net.Char2Buf
|
||||||
|
|
||||||
.8 lda #C.CR
|
|
||||||
jsr CS.Net.Char2Buf
|
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPBufPtr)
|
sta (ZPBufPtr)
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.Net.Info ldy #0
|
CS.Net.Info2Buf ldy #0
|
||||||
|
|
||||||
jsr CS.Net.Token2Buf
|
jsr CS.Net.Token2Buf
|
||||||
|
|
||||||
lda #C.CR
|
lda #C.CR
|
||||||
jsr CS.Net.Char2Buf
|
jsr CS.Net.Char2Buf
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPBufPtr)
|
sta (ZPBufPtr)
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.Net.Token2Buf
|
CS.Net.Token2Buf
|
||||||
|
@ -525,68 +637,81 @@ CS.Net.Token2Buf
|
||||||
lda (ZPLinePtr),y
|
lda (ZPLinePtr),y
|
||||||
cmp #C.TAB
|
cmp #C.TAB
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr CS.Net.Char2Buf
|
jsr CS.Net.Char2Buf
|
||||||
bra CS.Net.Token2Buf
|
bra CS.Net.Token2Buf
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.Net.SkipToken
|
CS.Net.SkipToken
|
||||||
iny
|
iny
|
||||||
lda (ZPLinePtr),y
|
lda (ZPLinePtr),y
|
||||||
cmp #C.TAB
|
cmp #C.TAB
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
bra CS.Net.SkipToken
|
bra CS.Net.SkipToken
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.Net.Char2Buf sta (ZPBufPtr)
|
CS.Net.Char2Buf sta (ZPBufPtr)
|
||||||
|
|
||||||
inc ZPBufPtr
|
inc ZPBufPtr
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
inc ZPBufPtr+1
|
inc ZPBufPtr+1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.Net.GetChar inc ZPnFrameLen
|
CS.Net.GetChar inc ZPnFrameLen
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
inc ZPnFrameLen+1
|
inc ZPnFrameLen+1
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
.1 lda (ZPFramePtr)
|
.1 lda (ZPFramePtr)
|
||||||
inc ZPFramePtr
|
inc ZPFramePtr
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
inc ZPFramePtr+1
|
inc ZPFramePtr+1
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.Net.GetHL >LDA.G NET.HyperLink
|
||||||
|
tax
|
||||||
|
jmp (J.items2HL-2,x)
|
||||||
|
*--------------------------------------
|
||||||
|
|
||||||
|
CS.Net.Search2HL
|
||||||
|
|
||||||
|
*--------------------------------------
|
||||||
|
CS.Net.File2HL
|
||||||
|
CS.Net.Dir2HL
|
||||||
|
CS.Net.Info2HL clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CS.Scr.Init >LIBCALL hLIBTUI,LIBTUI.Init
|
CS.Scr.Init >LIBCALL hLIBTUI,LIBTUI.Init
|
||||||
bcs .9
|
bcs .99
|
||||||
|
|
||||||
sta hCTX
|
sta hCTX
|
||||||
|
|
||||||
>PUSHA hCTX
|
>PUSHA hCTX
|
||||||
>PUSHBI S.OBJ.F.bTitle+S.OBJ.F.bStatus
|
>PUSHBI S.OBJ.F.bTitle+S.OBJ.F.bStatus
|
||||||
>LIBCALL hLIBTUI,LIBTUI.NewScrn
|
>LIBCALL hLIBTUI,LIBTUI.NewScrn
|
||||||
bcs .9
|
bcs .99
|
||||||
|
|
||||||
sta hSCR
|
sta hSCR
|
||||||
jsr CS.Scr.SetTitle
|
|
||||||
|
|
||||||
|
jsr CS.Scr.SetTitle0
|
||||||
jsr CS.Scr.SetStatus
|
jsr CS.Scr.SetStatus
|
||||||
|
|
||||||
>PUSHB hSCR
|
>PUSHB hSCR
|
||||||
|
@ -600,18 +725,31 @@ CS.Scr.Init >LIBCALL hLIBTUI,LIBTUI.Init
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI BUFSIZE
|
>PUSHWI BUFSIZE
|
||||||
>LIBCALL hLIBTUI,LIBTUI.NewTBox
|
>LIBCALL hLIBTUI,LIBTUI.NewTBox
|
||||||
bcs .9
|
.99 bcs .9
|
||||||
|
|
||||||
sta hTBOX
|
sta hTBOX
|
||||||
|
|
||||||
>LIBCALL hLIBTUI,LIBTUI.Activate
|
>LIBCALL hLIBTUI,LIBTUI.Activate
|
||||||
|
bcs .9
|
||||||
.9 rts
|
|
||||||
|
>PUSHB hTBOX
|
||||||
|
>PUSHBI S.OBJ.pVar
|
||||||
|
>PUSHEA.G NET.HyperLink
|
||||||
|
>LIBCALL hLIBTUI,LIBTUI.SetProp
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.Scr.SetTitle0
|
||||||
|
>PUSHB hSCR
|
||||||
|
>PUSHBI S.OBJ.pTITLE
|
||||||
|
>PUSHW L.MSG.ScrTitle0
|
||||||
|
>LIBCALL hLIBTUI,LIBTUI.SetProp
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.Scr.SetTitle >PUSHEA.G SCR.TitleBuf
|
CS.Scr.SetTitle >PUSHEA.G SCR.TitleBuf
|
||||||
>PUSHW L.MSG.ScrTitle
|
>PUSHW L.MSG.ScrTitle
|
||||||
>PUSHW TargetHost
|
>PUSHW TargetHost
|
||||||
>PUSHW TargetPort
|
>PUSHW TargetPort
|
||||||
>PUSHW TargetSelector
|
>PUSHW TargetSelector
|
||||||
>PUSHBI 6
|
>PUSHBI 6
|
||||||
>SYSCALL SPrintF
|
>SYSCALL SPrintF
|
||||||
|
@ -630,6 +768,43 @@ CS.Scr.SetBuf >PUSHB hTBOX
|
||||||
>LIBCALL hLIBTUI,LIBTUI.SetProp
|
>LIBCALL hLIBTUI,LIBTUI.SetProp
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.Scr.SetStatusConn
|
||||||
|
>PUSHEA.G SCR.StatusBuf
|
||||||
|
>PUSHW L.MSG.CONNECT
|
||||||
|
>PUSHEA.G NET.HyperLink+1
|
||||||
|
>PUSHBI 2
|
||||||
|
>SYSCALL SPrintF
|
||||||
|
jmp CS.Scr.SetStatus
|
||||||
|
*--------------------------------------
|
||||||
|
CS.Scr.SetStatusGoto
|
||||||
|
>PUSHEA.G SCR.StatusBuf skip type
|
||||||
|
>PUSHW L.MSG.GOTO
|
||||||
|
>PUSHEA.G NET.HyperLink+1
|
||||||
|
>PUSHBI 2
|
||||||
|
>SYSCALL SPrintF
|
||||||
|
bra CS.Scr.SetStatus
|
||||||
|
*--------------------------------------
|
||||||
|
CS.Scr.SetStatusOkErr
|
||||||
|
bcc .1
|
||||||
|
|
||||||
|
pha
|
||||||
|
>PUSHEA.G SCR.StatusBuf
|
||||||
|
>PUSHW L.MSG.ERROR
|
||||||
|
pla
|
||||||
|
pha
|
||||||
|
>PUSHA
|
||||||
|
>PUSHBI 1
|
||||||
|
>SYSCALL SPrintF
|
||||||
|
jsr CS.Scr.SetStatus
|
||||||
|
pla
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 >PUSHEA.G SCR.StatusBuf
|
||||||
|
>PUSHW L.MSG.OK
|
||||||
|
>PUSHBI 0
|
||||||
|
>SYSCALL SPrintF
|
||||||
|
*--------------------------------------
|
||||||
CS.Scr.SetStatus
|
CS.Scr.SetStatus
|
||||||
>PUSHB hSCR
|
>PUSHB hSCR
|
||||||
>PUSHBI S.OBJ.pSTATUS
|
>PUSHBI S.OBJ.pSTATUS
|
||||||
|
@ -643,34 +818,32 @@ hLIBTCPIP .BS 1
|
||||||
LIBTUI .AZ "libtui"
|
LIBTUI .AZ "libtui"
|
||||||
hLIBTUI .BS 1
|
hLIBTUI .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.ScrTitle .CZ "A2osX-GOPHER %s:%D/%s <Ctrl-Q> : Quit"
|
MSG.ScrTitle0 .CZ "A2osX-GOPHER - <Ctrl-Q>uit"
|
||||||
|
MSG.ScrTitle .CZ "A2osX-GOPHER %s:%D/%s - <Ctrl-Q>uit"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.IPKO .CZ "TCP/IP Not Loaded/Configured.\r\n"
|
MSG.IPKO .CZ "TCP/IP Not Loaded/Configured.\r\n"
|
||||||
MSG.USAGE .CZ "Usage : GOPHER <ip|host> [port]\r\n"
|
MSG.USAGE .CS "Usage : GOPHER <ip|host[:port][/selector]"
|
||||||
MSG.IOERR .CS "I/O Error."
|
|
||||||
MSG.CRLF .CS "\r\n"
|
MSG.CRLF .CS "\r\n"
|
||||||
MSG.NULL .HS 00
|
MSG.NULL .HS 00
|
||||||
*--------------------------------------
|
MSG.CONNECT .CZ "Connect: %s..."
|
||||||
MSG.CONNECTING .CZ "Connecting to %s:%D..."
|
MSG.GETTING .CZ "Getting: /%s..."
|
||||||
MSG.UNKNOWN .CZ "%s: Unknown host"
|
MSG.OK .CZ "Ok"
|
||||||
MSG.ERROR .CZ "Error : $%h"
|
MSG.ERROR .CZ "Error: $%h"
|
||||||
MSG.CONNECTED .CZ "Connected to %d.%d.%d.%d:%D."
|
MSG.GOTO .CZ "Goto: %s"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ITEMTYPES .AS "017i"
|
ITEMTYPES .AS "017i"
|
||||||
ITEMTYPES.L .EQ *-ITEMTYPES
|
ITEMTYPES.L .EQ *-ITEMTYPES
|
||||||
*--------------------------------------
|
|
||||||
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
|
|
||||||
.BS 1
|
|
||||||
.BS 4 S.SOCKADDR.ADDR
|
|
||||||
.BS 2 S.SOCKADDR.PORT
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
|
SA.LOCAL .BS S.SOCKADDR
|
||||||
SA.REMOTE .BS S.SOCKADDR
|
SA.REMOTE .BS S.SOCKADDR
|
||||||
|
|
||||||
SCR.TitleBuf .BS 80
|
SCR.TitleBuf .BS 80
|
||||||
SCR.StatusBuf .BS 80
|
SCR.StatusBuf .BS 80
|
||||||
|
|
||||||
|
NET.HyperLink .BS 80
|
||||||
DS.END .ED
|
DS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -4,6 +4,8 @@ NEW
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF bin/pak
|
.TF bin/pak
|
||||||
|
*--------------------------------------
|
||||||
|
X.RESETSRCDIR .EQ 0 single pass
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB inc/macros.i
|
.INB inc/macros.i
|
||||||
.INB inc/a2osx.i
|
.INB inc/a2osx.i
|
||||||
|
@ -76,6 +78,7 @@ CS.INIT >LDYA L.LIBPAK
|
||||||
CS.RUN >INC.G ArgIndex
|
CS.RUN >INC.G ArgIndex
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
@ -115,7 +118,7 @@ CS.RUN >INC.G ArgIndex
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
>LDYA ZPPtr1
|
>LDYA ZPPtr1
|
||||||
jsr InitSrcDirYA
|
jsr X.InitSrcDirYA
|
||||||
bcc CS.RUN
|
bcc CS.RUN
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -128,6 +131,7 @@ CS.RUN >INC.G ArgIndex
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPFullPath
|
>STYA ZPFullPath
|
||||||
txa
|
txa
|
||||||
>STA.G hSrcFullPath
|
>STA.G hSrcFullPath
|
||||||
|
@ -156,6 +160,7 @@ CS.RUN >INC.G ArgIndex
|
||||||
>LDYAI CHNK.SIZE
|
>LDYAI CHNK.SIZE
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
>STYA ZPSrcBufPtr
|
>STYA ZPSrcBufPtr
|
||||||
txa
|
txa
|
||||||
>STA.G hSrcBuf
|
>STA.G hSrcBuf
|
||||||
|
@ -163,6 +168,7 @@ CS.RUN >INC.G ArgIndex
|
||||||
>LDYAI CHNK.SIZE
|
>LDYAI CHNK.SIZE
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
>STYA ZPDstBufPtr
|
>STYA ZPDstBufPtr
|
||||||
txa
|
txa
|
||||||
>STA.G hDstBuf
|
>STA.G hDstBuf
|
||||||
|
@ -192,13 +198,13 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||||
.1 lda bPause
|
.1 lda bPause
|
||||||
bne CS.RUN.LOOP Pause...
|
bne CS.RUN.LOOP Pause...
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
jsr GetEntry
|
jsr X.GetEntry
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr FilterMatch
|
jsr X.IncludeMatch
|
||||||
bcs .8 no match, skip....
|
bcs .8 no match, skip....
|
||||||
|
|
||||||
jsr ExcludeMatch
|
jsr X.IgnoreMatch
|
||||||
bcc .8 match, skip
|
bcc .8 match, skip
|
||||||
|
|
||||||
ldy #S.STAT.MODE+1
|
ldy #S.STAT.MODE+1
|
||||||
|
@ -211,18 +217,20 @@ CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||||
|
|
||||||
jsr CS.RUN.DIR
|
jsr CS.RUN.DIR
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.6 jsr CS.RUN.FILE
|
.6 jsr CS.RUN.FILE
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.9 jsr LeaveSubDir
|
.9 jsr X.LeaveSubDir
|
||||||
bcs .90
|
bcs .90
|
||||||
|
|
||||||
jsr BasePath..
|
jsr X.BasePath..
|
||||||
|
|
||||||
.8 jsr GetNextEntry
|
.8 jsr X.GetNextEntry
|
||||||
jmp CS.RUN.LOOP
|
jmp CS.RUN.LOOP
|
||||||
|
|
||||||
.90 lda #0
|
.90 lda #0
|
||||||
|
@ -264,7 +272,7 @@ CS.RUN.DIR lda bRecurse
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA ZPFileName
|
>LDYA ZPFileName
|
||||||
jsr EnterSubDirYA
|
jsr X.EnterSubDirYA
|
||||||
|
|
||||||
.9 jmp CS.RUN.CheckErr
|
.9 jmp CS.RUN.CheckErr
|
||||||
|
|
||||||
|
@ -386,6 +394,7 @@ CS.RUN.CloseFile
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STZ.G hFile
|
>STZ.G hFile
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.Pak >PUSHEA.G PAKSTAT
|
CS.RUN.Pak >PUSHEA.G PAKSTAT
|
||||||
|
@ -394,7 +403,9 @@ CS.RUN.Pak >PUSHEA.G PAKSTAT
|
||||||
>PUSHW ZPSrcBufPtr
|
>PUSHW ZPSrcBufPtr
|
||||||
>LIBCALL hLIB,LIBPAK.Pak
|
>LIBCALL hLIB,LIBPAK.Pak
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA.G Shunk.DstSize
|
>STYA.G Shunk.DstSize
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.OpenArc >LDA.G ArcName
|
CS.RUN.OpenArc >LDA.G ArcName
|
||||||
|
@ -428,8 +439,6 @@ CS.RUN.AppendArc
|
||||||
>SYSCALL FOpen
|
>SYSCALL FOpen
|
||||||
bcs CS.RUN.OpenArc.RTS
|
bcs CS.RUN.OpenArc.RTS
|
||||||
>STA.G hArcFile
|
>STA.G hArcFile
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
>PUSHB.G hArcFile
|
>PUSHB.G hArcFile
|
||||||
>PUSHLZ
|
>PUSHLZ
|
||||||
|
@ -451,6 +460,7 @@ CS.RUN.AppendArc
|
||||||
.2 lda ARC.Header,y
|
.2 lda ARC.Header,y
|
||||||
cmp (ZPSrcBufPtr),y
|
cmp (ZPSrcBufPtr),y
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
|
@ -458,10 +468,6 @@ CS.RUN.AppendArc
|
||||||
>PUSHLZ
|
>PUSHLZ
|
||||||
>PUSHBI SEEK.END
|
>PUSHBI SEEK.END
|
||||||
>SYSCALL FSeek
|
>SYSCALL FSeek
|
||||||
* bcc .9
|
|
||||||
* cmp #MLI.E.EOF
|
|
||||||
* bne .99
|
|
||||||
* clc
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.99 >LDYA L.MSG.E.IARC
|
.99 >LDYA L.MSG.E.IARC
|
||||||
|
@ -583,22 +589,27 @@ CS.RUN.WriteArcByteA
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT jsr LeaveSubDir
|
CS.QUIT jsr X.LeaveSubDir
|
||||||
bcc CS.QUIT
|
bcc CS.QUIT
|
||||||
|
|
||||||
ldy #hExclude
|
ldy #hExclude
|
||||||
jsr .7
|
jsr .7
|
||||||
ldy #hFilter
|
|
||||||
|
ldy #hInclude
|
||||||
jsr .7
|
jsr .7
|
||||||
|
|
||||||
ldy #hSrcFullPath
|
ldy #hSrcFullPath
|
||||||
jsr .7
|
jsr .7
|
||||||
|
|
||||||
ldy #hDstBuf
|
ldy #hDstBuf
|
||||||
jsr .7
|
jsr .7
|
||||||
|
|
||||||
ldy #hSrcBuf
|
ldy #hSrcBuf
|
||||||
jsr .7
|
jsr .7
|
||||||
|
|
||||||
>LDA.G hArcFile
|
>LDA.G hArcFile
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>SYSCALL FClose
|
>SYSCALL FClose
|
||||||
|
|
||||||
.1 lda hLIB
|
.1 lda hLIB
|
||||||
|
@ -611,7 +622,9 @@ CS.QUIT jsr LeaveSubDir
|
||||||
|
|
||||||
.7 lda (pData),y
|
.7 lda (pData),y
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.CheckOpt ldy #1
|
CS.RUN.CheckOpt ldy #1
|
||||||
|
@ -621,6 +634,7 @@ CS.RUN.CheckOpt ldy #1
|
||||||
|
|
||||||
.1 cmp OptionList,x
|
.1 cmp OptionList,x
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@ S.OBJ.pMenu .EQ 18
|
||||||
S.OBJ.pStatus .EQ 20
|
S.OBJ.pStatus .EQ 20
|
||||||
S.OBJ.pBuf .EQ 22
|
S.OBJ.pBuf .EQ 22
|
||||||
S.OBJ.BufSize .EQ 24
|
S.OBJ.BufSize .EQ 24
|
||||||
*
|
S.OBJ.pVar .EQ 26
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.OBJ.Childs .EQ 32
|
S.OBJ.Childs .EQ 32
|
||||||
*
|
*
|
||||||
|
@ -98,31 +98,29 @@ S.TLINE.Ptr .EQ S.OBJ
|
||||||
S.TLINE.Len .EQ S.OBJ+1
|
S.TLINE.Len .EQ S.OBJ+1
|
||||||
S.TLINE.HScroll .EQ S.OBJ+2
|
S.TLINE.HScroll .EQ S.OBJ+2
|
||||||
*
|
*
|
||||||
S.TLINE .EQ S.OBJ+3
|
S.TLINE .EQ S.OBJ+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.TBOX.DocX .EQ S.OBJ
|
S.TBOX.DocX .EQ S.OBJ
|
||||||
S.TBOX.DocY .EQ S.OBJ+2
|
S.TBOX.DocY .EQ S.OBJ+2
|
||||||
S.TBOX.HScroll .EQ S.OBJ+4
|
S.TBOX.HScroll .EQ S.OBJ+4
|
||||||
S.TBOX.VScroll .EQ S.OBJ+6
|
S.TBOX.VScroll .EQ S.OBJ+6
|
||||||
S.TBOX.BufPtr .EQ S.OBJ+8
|
S.TBOX.SelBegin .EQ S.OBJ+8
|
||||||
S.TBOX.BufCnt .EQ S.OBJ+10
|
S.TBOX.SelEnd .EQ S.OBJ+10
|
||||||
S.TBOX.SelBegin .EQ S.OBJ+12
|
S.TBOX.BufPtr .EQ S.OBJ+12
|
||||||
S.TBOX.SelEnd .EQ S.OBJ+14
|
S.TBOX.BufCnt .EQ S.OBJ+14
|
||||||
*
|
*
|
||||||
S.TBOX .EQ S.OBJ+16
|
S.TBOX .EQ S.OBJ+16
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.LBOX.Idx .EQ S.OBJ+0
|
S.LBOX.Idx .EQ S.OBJ+0
|
||||||
S.LBOX.VScroll .EQ S.OBJ+1
|
S.LBOX.VScroll .EQ S.OBJ+2
|
||||||
S.LBOX.pVar .EQ S.OBJ+2
|
|
||||||
*
|
*
|
||||||
S.LBOX .EQ S.OBJ+6
|
S.LBOX .EQ S.OBJ+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.CBOX.HotKey .EQ S.OBJ+0
|
S.CBOX.HotKey .EQ S.OBJ+0
|
||||||
S.CBOX.EV .EQ S.OBJ+1
|
S.CBOX.EV .EQ S.OBJ+1
|
||||||
S.CBOX.pLabel .EQ S.OBJ+2
|
S.CBOX.pLabel .EQ S.OBJ+2
|
||||||
S.CBOX.pVar .EQ S.OBJ+4
|
|
||||||
*
|
*
|
||||||
S.CBOX .EQ S.OBJ+6
|
S.CBOX .EQ S.OBJ+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.BUT.HotKey .EQ S.OBJ+0
|
S.BUT.HotKey .EQ S.OBJ+0
|
||||||
S.BUT.EV .EQ S.OBJ+1
|
S.BUT.EV .EQ S.OBJ+1
|
||||||
|
@ -132,13 +130,14 @@ S.BUT .EQ S.OBJ+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.RADIO.HotKey .EQ S.OBJ+0
|
S.RADIO.HotKey .EQ S.OBJ+0
|
||||||
S.RADIO.EV .EQ S.OBJ+1
|
S.RADIO.EV .EQ S.OBJ+1
|
||||||
S.RADIO.pVar .EQ S.OBJ+2
|
S.RADIO.Idx .EQ S.OBJ+2
|
||||||
S.RADIO.Idx .EQ S.OBJ+4
|
|
||||||
*
|
*
|
||||||
S.RADIO .EQ S.OBJ+6
|
S.RADIO .EQ S.OBJ+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EV.RESIZE .EQ $80
|
EV.RESIZE .EQ $80
|
||||||
EV.QUIT .EQ $81
|
EV.QUIT .EQ $81
|
||||||
|
EV.HL.SELECTED .EQ $82
|
||||||
|
EV.HL.PRESSED .EQ $83
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE inc/libtui.i
|
SAVE inc/libtui.i
|
||||||
|
|
|
@ -335,9 +335,9 @@ SKT.shutdown pha
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
cmp #S.SOCKET.TCP.S.CLOSING
|
cmp #S.SOCKET.TCP.S.CLOSING
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
inc S.SOCKET.TCP.S.TIMEWT
|
inc S.SOCKET.TCP.S.TIMEWT
|
||||||
|
|
||||||
sta (ZPPtrSKT),y
|
sta (ZPPtrSKT),y
|
||||||
pla
|
pla
|
||||||
clc
|
clc
|
||||||
|
@ -349,15 +349,19 @@ SKT.shutdown pha
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
jsr SKT.SendOptFIN
|
||||||
jsr TCP.OUT.SendOptA Send FIN/ACK
|
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.FINWT1
|
lda #S.SOCKET.TCP.S.FINWT1
|
||||||
jmp SKT.StoreTCB.S
|
jmp SKT.StoreTCB.S
|
||||||
|
|
||||||
.1 cmp #S.SOCKET.TCP.S.CLWAIT
|
.1 cmp #S.SOCKET.TCP.S.CLWAIT
|
||||||
beq .3
|
bne .2
|
||||||
|
|
||||||
|
jsr SKT.SendOptFIN
|
||||||
|
|
||||||
|
lda #S.SOCKET.TCP.S.LASTACK
|
||||||
|
jmp SKT.StoreTCB.S
|
||||||
|
|
||||||
.2 lda #S.TCP.OPTIONS.RST
|
.2 lda #S.TCP.OPTIONS.RST
|
||||||
jsr TCP.OUT.SendOptA Send RST
|
jsr TCP.OUT.SendOptA Send RST
|
||||||
|
@ -386,6 +390,19 @@ SKT.shutdown.HQ jsr SKT.GetFromQueue
|
||||||
>SYSCALL2 freemem
|
>SYSCALL2 freemem
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
SKT.SendOptFIN lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
||||||
|
jsr TCP.OUT.SendOptA Send FIN/ACK
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
|
||||||
|
.1 inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
.8 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # Read (STREAM)
|
* # Read (STREAM)
|
||||||
* ## C
|
* ## C
|
||||||
|
@ -423,7 +440,7 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
and #S.TCP.OPTIONS.ACK
|
and #S.TCP.OPTIONS.ACK
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jmp TCP.OUT.SendOptA
|
jmp TCP.OUT.SendOptA
|
||||||
|
|
||||||
.8 jsr SKT.CheckStream
|
.8 jsr SKT.CheckStream
|
||||||
|
@ -463,6 +480,7 @@ SKT.GetDataFromSktIn
|
||||||
|
|
||||||
.1 inx Check if room left in dest buffer
|
.1 inx Check if room left in dest buffer
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
pla
|
pla
|
||||||
inc
|
inc
|
||||||
beq .8
|
beq .8
|
||||||
|
@ -477,10 +495,12 @@ SKT.GetDataFromSktIn
|
||||||
sta (ZPDataInPtr)
|
sta (ZPDataInPtr)
|
||||||
inc ZPDataInPtr
|
inc ZPDataInPtr
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
inc ZPDataInPtr+1
|
inc ZPDataInPtr+1
|
||||||
|
|
||||||
.3 iny
|
.3 iny
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
inc ZPTmpPtr1+1
|
inc ZPTmpPtr1+1
|
||||||
|
|
||||||
inc SKT.Cache+S.SOCKET.TCP.INTAIL+1
|
inc SKT.Cache+S.SOCKET.TCP.INTAIL+1
|
||||||
|
|
|
@ -237,12 +237,9 @@ TCP.IN.JMP.ESTBLSH
|
||||||
and #S.TCP.OPTIONS.FIN
|
and #S.TCP.OPTIONS.FIN
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr SKT.StoreTCB update socket
|
jsr TCP.IN.ACKTheFIN
|
||||||
|
|
||||||
lda #S.TCP.OPTIONS.FIN+S.TCP.OPTIONS.ACK
|
lda #S.SOCKET.TCP.S.CLWAIT
|
||||||
jsr TCP.OUT.SendOptA FIN received, Send FIN.ACK
|
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.LASTACK
|
|
||||||
jmp SKT.StoreTCB.S
|
jmp SKT.StoreTCB.S
|
||||||
|
|
||||||
.8 ldy #S.SOCKET.TCP.O
|
.8 ldy #S.SOCKET.TCP.O
|
||||||
|
@ -262,6 +259,10 @@ TCP.IN.JMP.ESTBLSH
|
||||||
lda #S.TCP.OPTIONS.ACK
|
lda #S.TCP.OPTIONS.ACK
|
||||||
.91 jmp TCP.OUT.SendOptA
|
.91 jmp TCP.OUT.SendOptA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
TCP.IN.JMP.CLWAIT
|
||||||
|
clc Wait for SKT.shutdown
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
TCP.IN.JMP.LASTACK
|
TCP.IN.JMP.LASTACK
|
||||||
ldy #S.TCP.OPTIONS only accept ACK packet
|
ldy #S.TCP.OPTIONS only accept ACK packet
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
|
@ -273,10 +274,8 @@ TCP.IN.JMP.LASTACK
|
||||||
ldy #S.SOCKET.TCP.S
|
ldy #S.SOCKET.TCP.S
|
||||||
lda #S.SOCKET.TCP.S.TIMEWT
|
lda #S.SOCKET.TCP.S.TIMEWT
|
||||||
sta (ZPPtrSKT),y
|
sta (ZPPtrSKT),y
|
||||||
.8
|
|
||||||
*--------------------------------------
|
.8 clc
|
||||||
TCP.IN.JMP.CLWAIT
|
|
||||||
clc Wait for SKT.shutdown
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.IN.JMP.FINWT1
|
TCP.IN.JMP.FINWT1
|
||||||
|
@ -298,23 +297,9 @@ TCP.IN.JMP.FINWT2
|
||||||
|
|
||||||
TCP.IN.2TIMEWT jsr SKT.GetTCB
|
TCP.IN.2TIMEWT jsr SKT.GetTCB
|
||||||
|
|
||||||
ldx #3
|
jsr TCP.IN.ACKTheFIN
|
||||||
|
|
||||||
.1 inc SKT.Cache+S.SOCKET.TCP.INSEQNUM,x
|
jsr TCP.OUT.SendACK FIN received, Send ACK
|
||||||
bne .2
|
|
||||||
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
.2 ldx #3
|
|
||||||
|
|
||||||
.3 inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
|
|
||||||
bne .4
|
|
||||||
|
|
||||||
dex
|
|
||||||
bpl .3
|
|
||||||
|
|
||||||
.4 jsr TCP.OUT.SendACK FIN received, Send ACK
|
|
||||||
bcs TCP.IN.JMP.TIMEWT.RTS
|
bcs TCP.IN.JMP.TIMEWT.RTS
|
||||||
|
|
||||||
lda #S.SOCKET.TCP.S.TIMEWT
|
lda #S.SOCKET.TCP.S.TIMEWT
|
||||||
|
@ -344,6 +329,28 @@ TCP.IN.ACKTheSYN
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
TCP.IN.ACKTheFIN
|
||||||
|
ldx #3
|
||||||
|
|
||||||
|
.1 inc SKT.Cache+S.SOCKET.TCP.INSEQNUM,x
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
.2 rts
|
||||||
|
|
||||||
|
|
||||||
|
* ldx #3
|
||||||
|
|
||||||
|
*.3 inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ,x
|
||||||
|
* bne .4
|
||||||
|
|
||||||
|
* dex
|
||||||
|
* bpl .3
|
||||||
|
|
||||||
|
*.4 rts
|
||||||
|
*--------------------------------------
|
||||||
TCP.IN.SetDataInPtrAndLen
|
TCP.IN.SetDataInPtrAndLen
|
||||||
ldy #S.IP.TOTAL.LENGTH+1
|
ldy #S.IP.TOTAL.LENGTH+1
|
||||||
lda (ZPFrameInPtr),y
|
lda (ZPFrameInPtr),y
|
||||||
|
|
|
@ -8,7 +8,7 @@ CBOX.New lda #S.OBJ.T.CBOX
|
||||||
jsr OBJ.Create
|
jsr OBJ.Create
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #S.CBOX.pVar
|
ldy #S.OBJ.pVar
|
||||||
jsr OBJ.PullWordY
|
jsr OBJ.PullWordY
|
||||||
|
|
||||||
ldy #S.CBOX.pLabel
|
ldy #S.CBOX.pLabel
|
||||||
|
@ -69,7 +69,7 @@ CBOX.Run ldy #S.BUT.HotKey
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
.8 ldy #S.CBOX.pVar
|
.8 ldy #S.OBJ.pVar
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
iny
|
iny
|
||||||
|
@ -104,7 +104,7 @@ CBOX.Draw ldx #'('
|
||||||
.10 txa
|
.10 txa
|
||||||
jsr LB.COut
|
jsr LB.COut
|
||||||
|
|
||||||
ldy #S.CBOX.pVar
|
ldy #S.OBJ.pVar
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
iny
|
iny
|
||||||
|
|
|
@ -12,7 +12,7 @@ NEW
|
||||||
* CC = success, A = hCTX
|
* CC = success, A = hCTX
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
CTX.Init >LDYA L.SEQ.INIT
|
CTX.Init >LDYA L.SEQ.INIT
|
||||||
jsr CTX.fputs
|
jsr IO.fputs
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>LDYAI S.CTX
|
>LDYAI S.CTX
|
||||||
|
@ -32,23 +32,19 @@ CTX.Init >LDYA L.SEQ.INIT
|
||||||
dey
|
dey
|
||||||
bpl .10
|
bpl .10
|
||||||
|
|
||||||
jsr CTX.GetC.Reset
|
jsr IO.GetC.Reset
|
||||||
|
|
||||||
.1 >SLEEP
|
.1 >SLEEP
|
||||||
|
|
||||||
jsr CTX.GetC
|
jsr IO.GetC
|
||||||
bcs .98
|
|
||||||
|
|
||||||
beq .2
|
|
||||||
|
|
||||||
jsr CTX.PutC
|
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
.2 ldy #S.CTX.W
|
.2 ldy #S.CTX.W
|
||||||
lda (ZPCtxPtr),y
|
lda (ZPCtxPtr),y
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
lda (pStack)
|
.3 lda (pStack)
|
||||||
|
|
||||||
dec
|
dec
|
||||||
sta (pStack)
|
sta (pStack)
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -63,6 +59,7 @@ CTX.Init >LDYA L.SEQ.INIT
|
||||||
sta (ZPCtxPtr),y
|
sta (ZPCtxPtr),y
|
||||||
|
|
||||||
.8 inc pStack Discard counter
|
.8 inc pStack Discard counter
|
||||||
|
|
||||||
>PULLA hCTX
|
>PULLA hCTX
|
||||||
clc
|
clc
|
||||||
.99 rts
|
.99 rts
|
||||||
|
@ -90,291 +87,21 @@ CTX.Close pha
|
||||||
|
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
>STYA ZPCtxPtr
|
>STYA ZPCtxPtr
|
||||||
|
|
||||||
lda (ZPCtxPtr) S.CTX.hSCRN
|
lda (ZPCtxPtr) S.CTX.hSCRN
|
||||||
beq .1
|
beq .1
|
||||||
>DEBUG
|
|
||||||
jsr LIB.Destroy
|
jsr LIB.Destroy
|
||||||
|
|
||||||
.1 pla
|
.1 pla
|
||||||
>SYSCALL2 FreeMem
|
>SYSCALL2 FreeMem
|
||||||
|
|
||||||
>LDYA L.SEQ.CLOSE
|
>LDYA L.SEQ.CLOSE
|
||||||
jsr CTX.fputs
|
jsr IO.fputs
|
||||||
|
|
||||||
clc
|
clc
|
||||||
CTX.Close.RTS rts
|
CTX.Close.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CTX.GetC ldx ZPCtxPtr
|
|
||||||
phx
|
|
||||||
ldx ZPCtxPtr+1
|
|
||||||
phx
|
|
||||||
ldx ZPObjPtr
|
|
||||||
phx
|
|
||||||
ldx ZPObjPtr+1
|
|
||||||
phx
|
|
||||||
|
|
||||||
>SYSCALL GetChar
|
|
||||||
|
|
||||||
plx
|
|
||||||
stx ZPObjPtr+1
|
|
||||||
plx
|
|
||||||
stx ZPObjPtr
|
|
||||||
plx
|
|
||||||
stx ZPCtxPtr+1
|
|
||||||
plx
|
|
||||||
stx ZPCtxPtr
|
|
||||||
|
|
||||||
bcs CTX.Close.RTS
|
|
||||||
|
|
||||||
tax
|
|
||||||
|
|
||||||
ldy #S.CTX.bEscMode
|
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
beq .20
|
|
||||||
|
|
||||||
bmi .40 IAC mode
|
|
||||||
|
|
||||||
iny S.CTX.InBufPtr
|
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
|
|
||||||
cpx #'[' CSI ?
|
|
||||||
bne .12
|
|
||||||
|
|
||||||
cmp #S.CTX.InBufPtr
|
|
||||||
bne .49 buffer not empty...bad SEQ
|
|
||||||
|
|
||||||
.12 jsr CTX.GetC.ToBuf
|
|
||||||
bcs .49 Buffer Full
|
|
||||||
|
|
||||||
cpx #'['
|
|
||||||
beq .18
|
|
||||||
|
|
||||||
cpx #64
|
|
||||||
bcs CTX.GetC.ESCSEQ if CC, not a letter...SEQ is incomplete
|
|
||||||
|
|
||||||
.18 lda #0
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
.20 cpx #C.ESC
|
|
||||||
bne .30
|
|
||||||
|
|
||||||
inc A = $01
|
|
||||||
|
|
||||||
bra .31
|
|
||||||
*--------------------------------------
|
|
||||||
.30 cpx #IAC
|
|
||||||
bne .38
|
|
||||||
|
|
||||||
dec A = $FF
|
|
||||||
|
|
||||||
.31 jsr CTX.GetC.SetMode
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
.38 txa
|
|
||||||
clc
|
|
||||||
.39 rts
|
|
||||||
*--------------------------------------
|
|
||||||
.40 jsr CTX.GetC.ToBuf
|
|
||||||
bcs .49 Buffer Full
|
|
||||||
|
|
||||||
cpy #S.CTX.InBuf First char...
|
|
||||||
beq .48
|
|
||||||
|
|
||||||
ldy #S.CTX.InBuf
|
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
cmp #SB First char is SB ?
|
|
||||||
bne CTX.GetC.IACSEQ no ...
|
|
||||||
|
|
||||||
cpx #SE is SE after SB ..... ?
|
|
||||||
bne .48
|
|
||||||
|
|
||||||
bra CTX.GetC.IACSEQ yes, we have IAC SB .....SE
|
|
||||||
|
|
||||||
.49 jsr CTX.GetC.Reset
|
|
||||||
|
|
||||||
.48 lda #0
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CTX.GetC.ESCSEQ cmp #S.CTX.InBuf+2
|
|
||||||
bcs .2
|
|
||||||
|
|
||||||
ldy #ESC.Out-ESC.In-1
|
|
||||||
txa
|
|
||||||
|
|
||||||
.1 cmp ESC.In,y
|
|
||||||
beq .7
|
|
||||||
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
bra .6
|
|
||||||
*--------------------------------------
|
|
||||||
* \e[xxx;yyyR
|
|
||||||
*--------------------------------------
|
|
||||||
.2 cpx #'R' Response to cursor position query?
|
|
||||||
bne .6
|
|
||||||
|
|
||||||
lda #S.CTX.InBuf+1 skip ESC [
|
|
||||||
jsr CTX.GetC.GetCtxEA
|
|
||||||
>PUSHYA
|
|
||||||
|
|
||||||
>PUSHW L.FMT.ESCCSI.R
|
|
||||||
|
|
||||||
lda #S.CTX.H
|
|
||||||
jsr CTX.GetC.GetCtxEA
|
|
||||||
>PUSHYA
|
|
||||||
|
|
||||||
lda #S.CTX.W
|
|
||||||
jsr CTX.GetC.GetCtxEA
|
|
||||||
>PUSHYA
|
|
||||||
|
|
||||||
>PUSHBI 4 2 pointers
|
|
||||||
>SYSCALL2 sscanf
|
|
||||||
|
|
||||||
.6 ldx #0
|
|
||||||
bra .8
|
|
||||||
|
|
||||||
.7 ldx ESC.Out,y
|
|
||||||
|
|
||||||
.8 jsr CTX.GetC.Reset
|
|
||||||
|
|
||||||
txa
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
* IAC SB TN.O.NAWS ww ww hh hh IAC SE
|
|
||||||
*--------------------------------------
|
|
||||||
CTX.GetC.IACSEQ ldy #S.CTX.InBuf
|
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
cmp #SB
|
|
||||||
bne .8
|
|
||||||
|
|
||||||
iny
|
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
cmp #TN.O.NAWS
|
|
||||||
bne .8
|
|
||||||
|
|
||||||
iny
|
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
bne .8
|
|
||||||
|
|
||||||
iny
|
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
cmp #80
|
|
||||||
bcs .1
|
|
||||||
|
|
||||||
lda #80
|
|
||||||
|
|
||||||
.1 tax
|
|
||||||
|
|
||||||
iny
|
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
bne .8
|
|
||||||
|
|
||||||
iny
|
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
cmp #24
|
|
||||||
bcs .2
|
|
||||||
|
|
||||||
lda #24
|
|
||||||
|
|
||||||
.2 ldy #S.CTX.H
|
|
||||||
|
|
||||||
sta (ZPCtxPtr),y
|
|
||||||
|
|
||||||
dey S.CTX.W
|
|
||||||
|
|
||||||
txa
|
|
||||||
sta (ZPCtxPtr),y
|
|
||||||
|
|
||||||
jsr CTX.GetC.Reset
|
|
||||||
|
|
||||||
lda #EV.RESIZE
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.8 jsr CTX.GetC.Reset
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CTX.GetC.Reset lda #0
|
|
||||||
|
|
||||||
CTX.GetC.SetMode
|
|
||||||
ldy #S.CTX.bEscMode
|
|
||||||
sta (ZPCtxPtr),y
|
|
||||||
|
|
||||||
iny Y = S.CTX.InBufPtr
|
|
||||||
tya
|
|
||||||
sta (ZPCtxPtr),y
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CTX.GetC.GetCtxEA
|
|
||||||
clc
|
|
||||||
adc ZPCtxPtr
|
|
||||||
tay
|
|
||||||
lda ZPCtxPtr+1
|
|
||||||
adc #0
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
CTX.GetC.ToBuf ldy #S.CTX.InBufPtr
|
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
|
|
||||||
cmp #S.CTX.EndBuf buffer full
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
phy
|
|
||||||
inc
|
|
||||||
tay
|
|
||||||
txa
|
|
||||||
sta (ZPCtxPtr),y
|
|
||||||
tya
|
|
||||||
ply
|
|
||||||
sta (ZPCtxPtr),y
|
|
||||||
|
|
||||||
* clc
|
|
||||||
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
CTX.PutC ldx ZPCtxPtr
|
|
||||||
phx
|
|
||||||
ldx ZPCtxPtr+1
|
|
||||||
phx
|
|
||||||
ldx ZPObjPtr
|
|
||||||
phx
|
|
||||||
ldx ZPObjPtr+1
|
|
||||||
phx
|
|
||||||
|
|
||||||
>SYSCALL PutChar
|
|
||||||
|
|
||||||
plx
|
|
||||||
stx ZPObjPtr+1
|
|
||||||
plx
|
|
||||||
stx ZPObjPtr
|
|
||||||
plx
|
|
||||||
stx ZPCtxPtr+1
|
|
||||||
plx
|
|
||||||
stx ZPCtxPtr
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CTX.fputs dec pStack
|
|
||||||
>PUSHYA
|
|
||||||
ldy #S.PS.hStdOut
|
|
||||||
lda (pPS),y
|
|
||||||
ldy #2
|
|
||||||
sta (pStack),y
|
|
||||||
>SYSCALL fputs
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/lib/libtui.s.ctx
|
SAVE usr/src/lib/libtui.s.ctx
|
||||||
LOAD usr/src/lib/libtui.s
|
LOAD usr/src/lib/libtui.s
|
||||||
|
|
|
@ -43,11 +43,11 @@ DLG.New lda #S.OBJ.T.DLG
|
||||||
sta (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
|
|
||||||
jsr OBJ.SetX2Y2
|
jsr OBJ.SetX2Y2
|
||||||
|
|
||||||
lda hObj
|
lda hObj
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 >POP 5
|
.9 >POP 5
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -0,0 +1,324 @@
|
||||||
|
NEW
|
||||||
|
AUTO 3,1
|
||||||
|
.LIST OFF
|
||||||
|
*--------------------------------------
|
||||||
|
IO.GetC ldx ZPCtxPtr
|
||||||
|
phx
|
||||||
|
ldx ZPCtxPtr+1
|
||||||
|
phx
|
||||||
|
ldx ZPObjPtr
|
||||||
|
phx
|
||||||
|
ldx ZPObjPtr+1
|
||||||
|
phx
|
||||||
|
|
||||||
|
jsr IO.GetChar
|
||||||
|
|
||||||
|
plx
|
||||||
|
stx ZPObjPtr+1
|
||||||
|
plx
|
||||||
|
stx ZPObjPtr
|
||||||
|
plx
|
||||||
|
stx ZPCtxPtr+1
|
||||||
|
plx
|
||||||
|
stx ZPCtxPtr
|
||||||
|
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
tax
|
||||||
|
|
||||||
|
ldy #S.CTX.bEscMode
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
beq .20
|
||||||
|
|
||||||
|
bmi .40 IAC mode
|
||||||
|
|
||||||
|
iny S.CTX.InBufPtr
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
|
||||||
|
cpx #'[' CSI ?
|
||||||
|
bne .12
|
||||||
|
|
||||||
|
cmp #S.CTX.InBufPtr
|
||||||
|
bne .49 buffer not empty...bad SEQ
|
||||||
|
|
||||||
|
.12 jsr IO.GetC.ToBuf
|
||||||
|
bcs .49 Buffer Full
|
||||||
|
|
||||||
|
cpx #'['
|
||||||
|
beq .18
|
||||||
|
|
||||||
|
cpx #64
|
||||||
|
bcs IO.GetC.ESCSEQ if CC, not a letter...SEQ is incomplete
|
||||||
|
|
||||||
|
.18 lda #0
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
.20 cpx #C.ESC
|
||||||
|
bne .30
|
||||||
|
|
||||||
|
inc A = $01
|
||||||
|
|
||||||
|
bra .31
|
||||||
|
*--------------------------------------
|
||||||
|
.30 cpx #IAC
|
||||||
|
bne .38
|
||||||
|
|
||||||
|
dec A = $FF
|
||||||
|
|
||||||
|
.31 jsr IO.GetC.SetMode
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
.38 txa
|
||||||
|
clc
|
||||||
|
.39 rts
|
||||||
|
*--------------------------------------
|
||||||
|
.40 jsr IO.GetC.ToBuf
|
||||||
|
bcs .49 Buffer Full
|
||||||
|
|
||||||
|
cpy #S.CTX.InBuf First char...
|
||||||
|
beq .48
|
||||||
|
|
||||||
|
ldy #S.CTX.InBuf
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
cmp #SB First char is SB ?
|
||||||
|
bne IO.GetC.IACSEQ no ...
|
||||||
|
|
||||||
|
cpx #SE is SE after SB ..... ?
|
||||||
|
bne .48
|
||||||
|
|
||||||
|
bra IO.GetC.IACSEQ yes, we have IAC SB .....SE
|
||||||
|
|
||||||
|
.49 jsr IO.GetC.Reset
|
||||||
|
|
||||||
|
.48 lda #0
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
IO.GetC.ESCSEQ cmp #S.CTX.InBuf+2
|
||||||
|
bcs .2
|
||||||
|
|
||||||
|
ldy #ESC.Out-ESC.In-1
|
||||||
|
txa
|
||||||
|
|
||||||
|
.1 cmp ESC.In,y
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
dey
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
bra .6
|
||||||
|
*--------------------------------------
|
||||||
|
* \e[xxx;yyyR
|
||||||
|
*--------------------------------------
|
||||||
|
.2 cpx #'R' Response to cursor position query?
|
||||||
|
bne .6
|
||||||
|
|
||||||
|
lda #S.CTX.InBuf+1 skip ESC [
|
||||||
|
jsr IO.GetC.GetCtxEA
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
>PUSHW L.FMT.ESCCSI.R
|
||||||
|
|
||||||
|
lda #S.CTX.H
|
||||||
|
jsr IO.GetC.GetCtxEA
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
lda #S.CTX.W
|
||||||
|
jsr IO.GetC.GetCtxEA
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
|
>PUSHBI 4 2 pointers
|
||||||
|
>SYSCALL2 sscanf
|
||||||
|
|
||||||
|
.6 ldx #0
|
||||||
|
bra .8
|
||||||
|
|
||||||
|
.7 ldx ESC.Out,y
|
||||||
|
|
||||||
|
.8 jsr IO.GetC.Reset
|
||||||
|
|
||||||
|
txa
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
* IAC SB TN.O.NAWS ww ww hh hh IAC SE
|
||||||
|
*--------------------------------------
|
||||||
|
IO.GetC.IACSEQ ldy #S.CTX.InBuf
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
cmp #SB
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
cmp #TN.O.NAWS
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
cmp #80
|
||||||
|
bcs .1
|
||||||
|
|
||||||
|
lda #80
|
||||||
|
|
||||||
|
.1 tax
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
cmp #24
|
||||||
|
bcs .2
|
||||||
|
|
||||||
|
lda #24
|
||||||
|
|
||||||
|
.2 ldy #S.CTX.H
|
||||||
|
|
||||||
|
sta (ZPCtxPtr),y
|
||||||
|
|
||||||
|
dey S.CTX.W
|
||||||
|
|
||||||
|
txa
|
||||||
|
sta (ZPCtxPtr),y
|
||||||
|
|
||||||
|
jsr IO.GetC.Reset
|
||||||
|
|
||||||
|
lda #EV.RESIZE
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.8 jsr IO.GetC.Reset
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
IO.GetC.Reset lda #0
|
||||||
|
|
||||||
|
IO.GetC.SetMode
|
||||||
|
ldy #S.CTX.bEscMode
|
||||||
|
sta (ZPCtxPtr),y
|
||||||
|
|
||||||
|
iny Y = S.CTX.InBufPtr
|
||||||
|
tya
|
||||||
|
sta (ZPCtxPtr),y
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
IO.GetC.GetCtxEA
|
||||||
|
clc
|
||||||
|
adc ZPCtxPtr
|
||||||
|
tay
|
||||||
|
lda ZPCtxPtr+1
|
||||||
|
adc #0
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
IO.GetC.ToBuf ldy #S.CTX.InBufPtr
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
|
||||||
|
cmp #S.CTX.EndBuf buffer full
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
phy
|
||||||
|
inc
|
||||||
|
tay
|
||||||
|
txa
|
||||||
|
sta (ZPCtxPtr),y
|
||||||
|
tya
|
||||||
|
ply
|
||||||
|
sta (ZPCtxPtr),y
|
||||||
|
|
||||||
|
* clc
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
IO.GetChar >SYSCALL GetChar
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
cmp #C.CR
|
||||||
|
clc
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
ldy #S.PS.hStdIn Check for any extra LF
|
||||||
|
lda (pPS),y
|
||||||
|
>SYSCALL FEOF
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
tay
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
>SYSCALL GetChar
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
.8 lda #C.CR
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
IO.fputs ldx ZPCtxPtr
|
||||||
|
phx
|
||||||
|
ldx ZPCtxPtr+1
|
||||||
|
phx
|
||||||
|
ldx ZPObjPtr
|
||||||
|
phx
|
||||||
|
ldx ZPObjPtr+1
|
||||||
|
phx
|
||||||
|
|
||||||
|
dec pStack
|
||||||
|
>PUSHYA
|
||||||
|
ldy #S.PS.hStdOut
|
||||||
|
lda (pPS),y
|
||||||
|
ldy #2
|
||||||
|
sta (pStack),y
|
||||||
|
>SYSCALL fputs
|
||||||
|
|
||||||
|
plx
|
||||||
|
stx ZPObjPtr+1
|
||||||
|
plx
|
||||||
|
stx ZPObjPtr
|
||||||
|
plx
|
||||||
|
stx ZPCtxPtr+1
|
||||||
|
plx
|
||||||
|
stx ZPCtxPtr
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
IO.LBWrite ldx ZPCtxPtr
|
||||||
|
phx
|
||||||
|
ldx ZPCtxPtr+1
|
||||||
|
phx
|
||||||
|
ldx ZPObjPtr
|
||||||
|
phx
|
||||||
|
ldx ZPObjPtr+1
|
||||||
|
phx
|
||||||
|
|
||||||
|
ldy #S.PS.hStdOut
|
||||||
|
lda (pPS),y
|
||||||
|
>PUSHA
|
||||||
|
>PUSHW LineBuf
|
||||||
|
>PUSHW ZPLineBufCnt
|
||||||
|
>SYSCALL fwrite
|
||||||
|
|
||||||
|
plx
|
||||||
|
stx ZPObjPtr+1
|
||||||
|
plx
|
||||||
|
stx ZPObjPtr
|
||||||
|
plx
|
||||||
|
stx ZPCtxPtr+1
|
||||||
|
plx
|
||||||
|
stx ZPCtxPtr
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE usr/src/lib/libtui.s.io
|
||||||
|
LOAD usr/src/lib/libtui.s
|
||||||
|
ASM
|
|
@ -92,22 +92,6 @@ LB.PrintF >SYSCALL2 SPrintF
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LB.HexOut pha
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
jsr .1
|
|
||||||
|
|
||||||
pla
|
|
||||||
and #$0F
|
|
||||||
|
|
||||||
.1 ora #$30
|
|
||||||
cmp #'9'+1
|
|
||||||
bcc LB.COut
|
|
||||||
|
|
||||||
adc #6
|
|
||||||
*--------------------------------------
|
|
||||||
LB.COut sta (ZPLineBufPtr)
|
LB.COut sta (ZPLineBufPtr)
|
||||||
inc ZPLineBufPtr
|
inc ZPLineBufPtr
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -121,33 +105,6 @@ LB.COut sta (ZPLineBufPtr)
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LB.Out ldx ZPCtxPtr
|
|
||||||
phx
|
|
||||||
ldx ZPCtxPtr+1
|
|
||||||
phx
|
|
||||||
ldx ZPObjPtr
|
|
||||||
phx
|
|
||||||
ldx ZPObjPtr+1
|
|
||||||
phx
|
|
||||||
|
|
||||||
ldy #S.PS.hStdOut
|
|
||||||
lda (pPS),y
|
|
||||||
>PUSHA
|
|
||||||
>PUSHW LineBuf
|
|
||||||
>PUSHW ZPLineBufCnt
|
|
||||||
>SYSCALL fwrite
|
|
||||||
|
|
||||||
plx
|
|
||||||
stx ZPObjPtr+1
|
|
||||||
plx
|
|
||||||
stx ZPObjPtr
|
|
||||||
plx
|
|
||||||
stx ZPCtxPtr+1
|
|
||||||
plx
|
|
||||||
stx ZPCtxPtr
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/lib/libtui.s.lb
|
SAVE usr/src/lib/libtui.s.lb
|
||||||
LOAD usr/src/lib/libtui.s
|
LOAD usr/src/lib/libtui.s
|
||||||
|
|
|
@ -8,7 +8,7 @@ LBOX.New lda #S.OBJ.T.LBOX
|
||||||
jsr OBJ.Create
|
jsr OBJ.Create
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #S.LBOX.pVar
|
ldy #S.OBJ.pVar
|
||||||
jsr OBJ.PullWordY
|
jsr OBJ.PullWordY
|
||||||
|
|
||||||
ldy #S.OBJ.pBuf
|
ldy #S.OBJ.pBuf
|
||||||
|
|
|
@ -11,7 +11,7 @@ OBJ.Create pha Type
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPObjPtr
|
>STYA ZPObjPtr
|
||||||
|
|
||||||
stx hObj
|
stx hObj
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
@ -19,15 +19,15 @@ OBJ.Create pha Type
|
||||||
tax
|
tax
|
||||||
|
|
||||||
ldy OBJ.SIZES,x
|
ldy OBJ.SIZES,x
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
|
|
||||||
dey
|
dey
|
||||||
|
|
||||||
.1 sta (ZPObjPtr),y
|
.1 sta (ZPObjPtr),y
|
||||||
dey
|
dey
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
@ -182,26 +182,28 @@ OBJ.SetX2Y2 ldy #S.OBJ.X1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OBJ.Exec >PUSHA hOBJ
|
OBJ.Exec >PUSHA hOBJ
|
||||||
jsr LIB.GetOBJ
|
jsr LIB.GetOBJ
|
||||||
|
|
||||||
jsr LIB.GetCTX
|
jsr LIB.GetCTX
|
||||||
|
|
||||||
.1 jsr CTX.GetC
|
.1 >SLEEP
|
||||||
|
|
||||||
|
jsr IO.GetC
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #EV.RESIZE
|
cmp #EV.RESIZE
|
||||||
clc
|
clc
|
||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
tay
|
tay
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
jsr OBJ.Run
|
jsr OBJ.Run
|
||||||
inc pStack
|
inc pStack
|
||||||
|
|
||||||
tay
|
tay
|
||||||
beq .1 no event, no error
|
beq .1 no event, no error
|
||||||
|
|
||||||
.9 inc pStack
|
.9 inc pStack
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
|
@ -213,11 +215,11 @@ OBJ.Run ldx ZPObjPtr
|
||||||
phx
|
phx
|
||||||
ldx ZPObjPtr+1
|
ldx ZPObjPtr+1
|
||||||
phx
|
phx
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
jsr LIB.GetOBJ
|
jsr LIB.GetOBJ
|
||||||
|
|
||||||
ldy #S.OBJ.S
|
ldy #S.OBJ.S
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
and #S.OBJ.S.bDisabled
|
and #S.OBJ.S.bDisabled
|
||||||
|
@ -235,11 +237,11 @@ OBJ.Run ldx ZPObjPtr
|
||||||
|
|
||||||
tax
|
tax
|
||||||
bne .8 error / event
|
bne .8 error / event
|
||||||
|
|
||||||
bcc .8
|
bcc .8
|
||||||
|
|
||||||
ldy #S.OBJ.Childs
|
ldy #S.OBJ.Childs
|
||||||
|
|
||||||
.1 lda (ZPObjPtr),y
|
.1 lda (ZPObjPtr),y
|
||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
|
@ -272,12 +274,12 @@ OBJ.Run ldx ZPObjPtr
|
||||||
stx ZPObjPtr+1
|
stx ZPObjPtr+1
|
||||||
plx
|
plx
|
||||||
stx ZPObjPtr
|
stx ZPObjPtr
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.80 lda (ZPObjPtr) S.OBJ.T
|
.80 lda (ZPObjPtr) S.OBJ.T
|
||||||
tax
|
tax
|
||||||
jmp (J.ObjRun,x)
|
jmp (J.ObjRun,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OBJ.Draw >PUSHA hObj
|
OBJ.Draw >PUSHA hObj
|
||||||
|
|
||||||
|
@ -419,11 +421,11 @@ OBJ.Draw.Top.I jsr LB.Init
|
||||||
ldx #SEQ.BORDERTR-SEQS
|
ldx #SEQ.BORDERTR-SEQS
|
||||||
jsr LB.SeqOut
|
jsr LB.SeqOut
|
||||||
|
|
||||||
.7 jmp LB.Out
|
.7 jmp IO.LBWrite
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OBJ.Draw.Body lda (pStack)
|
OBJ.Draw.Body lda (pStack)
|
||||||
jsr LIB.GetOBJ
|
jsr LIB.GetOBJ
|
||||||
|
|
||||||
OBJ.Draw.Body.I ldy #S.OBJ.InnerY
|
OBJ.Draw.Body.I ldy #S.OBJ.InnerY
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
>PUSHA Start
|
>PUSHA Start
|
||||||
|
@ -462,7 +464,7 @@ OBJ.Draw.Lines jsr OBJ.CurOff
|
||||||
|
|
||||||
ldx #SEQ.NORMAL-SEQS
|
ldx #SEQ.NORMAL-SEQS
|
||||||
jsr LB.SeqOut
|
jsr LB.SeqOut
|
||||||
|
|
||||||
plp
|
plp
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
|
@ -480,7 +482,7 @@ OBJ.Draw.Lines jsr OBJ.CurOff
|
||||||
ldx #SEQ.BORDERV-SEQS
|
ldx #SEQ.BORDERV-SEQS
|
||||||
jsr LB.SeqOut
|
jsr LB.SeqOut
|
||||||
|
|
||||||
.4 jsr LB.Out
|
.4 jsr IO.LBWrite
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda (pStack) Relative Y
|
lda (pStack) Relative Y
|
||||||
|
@ -607,7 +609,7 @@ OBJ.Draw.Bottom.I
|
||||||
ldx #SEQ.BORDERBR-SEQS
|
ldx #SEQ.BORDERBR-SEQS
|
||||||
jsr LB.SeqOut
|
jsr LB.SeqOut
|
||||||
|
|
||||||
.7 jmp LB.Out
|
.7 jmp IO.LBWrite
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OBJ.GetProp ldy #1 hObj
|
OBJ.GetProp ldy #1 hObj
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
|
@ -626,37 +628,19 @@ OBJ.GetProp ldy #1 hObj
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OBJ.SetProp ldy #3 hObj
|
OBJ.SetProp cpy #S.OBJ.pTitle
|
||||||
lda (pStack),y
|
|
||||||
|
|
||||||
jsr LIB.GetOBJ
|
|
||||||
|
|
||||||
ldy #2
|
|
||||||
lda (pStack),y
|
|
||||||
tay prop
|
|
||||||
|
|
||||||
>PULLA Value
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
iny
|
|
||||||
>PULLA
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
|
|
||||||
>PULLA prop
|
|
||||||
inc pStack hObj
|
|
||||||
cmp #S.OBJ.pTitle
|
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jmp OBJ.Draw.Top.I
|
|
||||||
|
|
||||||
.1 cmp #S.OBJ.pBuf
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
jmp OBJ.Draw.Body.I
|
jsr OBJ.Draw.Top.I
|
||||||
|
ldy #0
|
||||||
.2 cmp #S.OBJ.pStatus
|
rts
|
||||||
|
|
||||||
|
.1 cpy #S.OBJ.pStatus
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
jmp OBJ.Draw.Bottom.I
|
jsr OBJ.Draw.Bottom.I
|
||||||
|
ldy #0
|
||||||
|
rts
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
@ -712,11 +696,11 @@ OBJ.FindActive ldx ZPObjPtr
|
||||||
jsr LIB.GetOBJ
|
jsr LIB.GetOBJ
|
||||||
|
|
||||||
ldy #S.OBJ.Childs
|
ldy #S.OBJ.Childs
|
||||||
|
|
||||||
.1 phy
|
.1 phy
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
|
@ -724,39 +708,39 @@ OBJ.FindActive ldx ZPObjPtr
|
||||||
ldy #S.OBJ.S
|
ldy #S.OBJ.S
|
||||||
lda (ZPPtr1),y S.OBJ.S.bActive
|
lda (ZPPtr1),y S.OBJ.S.bActive
|
||||||
bmi .8
|
bmi .8
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
|
||||||
.7 ply
|
.7 ply
|
||||||
iny
|
iny
|
||||||
cpy #S.OBJ
|
cpy #S.OBJ
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
* sec
|
* sec
|
||||||
bra .80
|
bra .80
|
||||||
|
|
||||||
.8 pla
|
.8 pla
|
||||||
ply
|
ply
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.80 plx
|
.80 plx
|
||||||
stx ZPObjPtr+1
|
stx ZPObjPtr+1
|
||||||
plx
|
plx
|
||||||
stx ZPObjPtr
|
stx ZPObjPtr
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OBJ.CurUpdPos ldy #S.OBJ.F
|
OBJ.CurUpdPos ldy #S.OBJ.F
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
and #S.OBJ.F.bEdit
|
and #S.OBJ.F.bEdit
|
||||||
beq .8
|
* beq .8
|
||||||
|
|
||||||
ldy #S.OBJ.S
|
ldy #S.OBJ.S
|
||||||
lda (ZPObjPtr),y S.OBJ.S.bActive
|
lda (ZPObjPtr),y S.OBJ.S.bActive
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
jsr LB.Init
|
jsr LB.Init
|
||||||
|
|
||||||
ldy #S.OBJ.InnerX
|
ldy #S.OBJ.InnerX
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
clc
|
clc
|
||||||
|
@ -772,19 +756,19 @@ OBJ.CurUpdPos ldy #S.OBJ.F
|
||||||
tay
|
tay
|
||||||
jsr LB.GotoXY
|
jsr LB.GotoXY
|
||||||
|
|
||||||
jsr LB.Out
|
jsr IO.LBWrite
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OBJ.CurOn ldy #S.OBJ.F
|
OBJ.CurOn ldy #S.OBJ.F
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
and #S.OBJ.F.bEdit
|
and #S.OBJ.F.bEdit
|
||||||
beq .8
|
* beq .8
|
||||||
|
|
||||||
ldy #S.OBJ.S
|
ldy #S.OBJ.S
|
||||||
lda (ZPObjPtr),y S.OBJ.S.bActive
|
lda (ZPObjPtr),y S.OBJ.S.bActive
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
bit #S.OBJ.S.bCurOn
|
bit #S.OBJ.S.bCurOn
|
||||||
bne .8
|
bne .8
|
||||||
|
@ -793,7 +777,7 @@ OBJ.CurOn ldy #S.OBJ.F
|
||||||
sta (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
|
|
||||||
jsr LB.Init
|
jsr LB.Init
|
||||||
|
|
||||||
ldy #S.OBJ.InnerX
|
ldy #S.OBJ.InnerX
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
clc
|
clc
|
||||||
|
@ -811,9 +795,9 @@ OBJ.CurOn ldy #S.OBJ.F
|
||||||
|
|
||||||
ldx #SEQ.CURON-SEQS
|
ldx #SEQ.CURON-SEQS
|
||||||
jsr LB.SeqOut
|
jsr LB.SeqOut
|
||||||
|
|
||||||
jsr LB.Out
|
jsr IO.LBWrite
|
||||||
|
|
||||||
.8 lda #0
|
.8 lda #0
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -821,31 +805,31 @@ OBJ.CurOn ldy #S.OBJ.F
|
||||||
OBJ.CurOff ldy #S.OBJ.F
|
OBJ.CurOff ldy #S.OBJ.F
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
and #S.OBJ.F.bEdit
|
and #S.OBJ.F.bEdit
|
||||||
beq .8
|
* beq .8
|
||||||
|
|
||||||
ldy #S.OBJ.S
|
ldy #S.OBJ.S
|
||||||
lda (ZPObjPtr),y S.OBJ.S.bActive
|
lda (ZPObjPtr),y S.OBJ.S.bActive
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
bit #S.OBJ.S.bCurOn
|
bit #S.OBJ.S.bCurOn
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
eor #S.OBJ.S.bCurOn
|
eor #S.OBJ.S.bCurOn
|
||||||
sta (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
|
|
||||||
jsr LB.Init
|
jsr LB.Init
|
||||||
|
|
||||||
ldx #SEQ.CUROFF-SEQS
|
ldx #SEQ.CUROFF-SEQS
|
||||||
jsr LB.SeqOut
|
jsr LB.SeqOut
|
||||||
|
|
||||||
jmp LB.Out
|
jmp IO.LBWrite
|
||||||
|
|
||||||
.8 lda #0
|
.8 lda #0
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OBJ.ZeroWordAtY lda #0
|
OBJ.ZeroWordAtY lda #0
|
||||||
lda (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
iny
|
iny
|
||||||
sta (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
rts
|
rts
|
||||||
|
@ -854,9 +838,9 @@ OBJ.IncWordAtY lda (ZPObjPtr),y
|
||||||
inc
|
inc
|
||||||
sta (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
inc
|
inc
|
||||||
sta (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
|
@ -869,7 +853,7 @@ OBJ.DecWordAtY clc
|
||||||
sta (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
sbc #0
|
sbc #0
|
||||||
sta (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
|
@ -888,9 +872,9 @@ OBJ.GetLineXAtY lda (ZPObjPtr),y
|
||||||
iny
|
iny
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
sta ZPPtr1+1
|
sta ZPPtr1+1
|
||||||
|
|
||||||
stz TempI
|
stz TempI
|
||||||
|
|
||||||
.1 lda (ZPPtr1)
|
.1 lda (ZPPtr1)
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
|
@ -905,7 +889,7 @@ OBJ.GetLineXAtY lda (ZPObjPtr),y
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
clc
|
clc
|
||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
|
@ -915,13 +899,13 @@ OBJ.GetLineXAtY lda (ZPObjPtr),y
|
||||||
adc ZPPtr1
|
adc ZPPtr1
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
inc ZPPtr1+1
|
inc ZPPtr1+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -8,7 +8,7 @@ RADIO.New lda #S.OBJ.T.RADIO
|
||||||
jsr OBJ.Create
|
jsr OBJ.Create
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #S.RADIO.pVar
|
ldy #S.OBJ.pVar
|
||||||
jsr OBJ.PullWordY
|
jsr OBJ.PullWordY
|
||||||
|
|
||||||
ldy #S.OBJ.pBuf
|
ldy #S.OBJ.pBuf
|
||||||
|
@ -87,7 +87,7 @@ RADIO.Run ldy #S.OBJ.S
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
ldy #S.RADIO.pVar
|
ldy #S.OBJ.pVar
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
iny
|
iny
|
||||||
|
@ -154,7 +154,7 @@ RADIO.Draw lda (pStack) Relative Y
|
||||||
jsr OBJ.GetLineXAtY
|
jsr OBJ.GetLineXAtY
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
ldy #S.RADIO.pVar
|
ldy #S.OBJ.pVar
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
sta ZPPtr2
|
sta ZPPtr2
|
||||||
iny
|
iny
|
||||||
|
|
|
@ -33,37 +33,53 @@ TBOX.Run ldy #S.OBJ.S
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
bpl TBOX.RUN.Ignore
|
bpl TBOX.RUN.Ignore
|
||||||
|
|
||||||
|
ldy #S.OBJ.F
|
||||||
|
lda (ZPObjPtr),y
|
||||||
|
and #S.OBJ.F.bEdit
|
||||||
|
bne TBOX.Run.RW
|
||||||
|
|
||||||
lda (pStack) Event
|
lda (pStack) Event
|
||||||
|
|
||||||
|
cmp #C.SPACE
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
cmp #27
|
||||||
|
bcs TBOX.RUN.Ignore
|
||||||
|
|
||||||
|
asl
|
||||||
|
tax
|
||||||
|
jmp (J.TBOX.RUN.RO,x)
|
||||||
|
|
||||||
|
.1 jmp TBOX.RUN.GetLink
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.Run.RW lda (pStack) Event
|
||||||
|
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
|
cmp #27
|
||||||
|
bcs TBOX.RUN.Ignore
|
||||||
|
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jmp (J.TBOX.RUN,x)
|
jmp (J.TBOX.RUN.RW,x)
|
||||||
|
|
||||||
.1 cmp #C.DEL
|
.1 cmp #C.DEL
|
||||||
beq .3
|
beq .2
|
||||||
|
|
||||||
jsr TBOX.GetBuf
|
jsr TBOX.GetBuf
|
||||||
jsr TBOX.ToBuf1
|
jsr TBOX.ToBuf1
|
||||||
bcs .8 Buffer full
|
bcs TBOX.RUN.Ignore Buffer full
|
||||||
|
|
||||||
jsr TBOX.RUN.FS1
|
jsr TBOX.RUN.FS1
|
||||||
bit bRepaintAll
|
bra .3
|
||||||
bmi .2
|
|
||||||
|
|
||||||
jsr OBJ.CurUpdPos
|
.2 jsr TBOX.GetBuf
|
||||||
|
|
||||||
jmp TBOX.DrawCurLine
|
|
||||||
|
|
||||||
.2 jmp TBOX.DrawAllLines
|
|
||||||
|
|
||||||
.3 jsr TBOX.GetBuf
|
|
||||||
jsr TBOX.Delete1
|
jsr TBOX.Delete1
|
||||||
bcs .8 Buffer Empty
|
bcs TBOX.RUN.Ignore Buffer Empty
|
||||||
|
|
||||||
bit bRepaintAll
|
.3 bit bRepaintAll
|
||||||
bmi .4
|
bmi .4
|
||||||
|
|
||||||
jsr OBJ.CurUpdPos
|
jsr OBJ.CurUpdPos
|
||||||
|
@ -71,13 +87,185 @@ TBOX.Run ldy #S.OBJ.S
|
||||||
jmp TBOX.DrawCurLine
|
jmp TBOX.DrawCurLine
|
||||||
|
|
||||||
.4 jmp TBOX.DrawAllLines
|
.4 jmp TBOX.DrawAllLines
|
||||||
|
|
||||||
.8
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.RUN.Ignore lda #0
|
TBOX.RUN.Ignore lda #0
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
TBOX.RUN.PrevLink
|
||||||
|
|
||||||
|
|
||||||
|
TBOX.RUN.PrevLink.9
|
||||||
|
lda #0
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.RUN.NextLink
|
||||||
|
jsr TBOX.GetDocYInAX
|
||||||
|
|
||||||
|
jsr TBOX.GetLineAX will do GetBuf
|
||||||
|
bcs TBOX.RUN.PrevLink.9
|
||||||
|
|
||||||
|
jsr TBOX.SetLineAtDocX
|
||||||
|
|
||||||
|
.1 ldx #$ff
|
||||||
|
|
||||||
|
.2 inx
|
||||||
|
|
||||||
|
jsr TBOX.GetChar
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
cmp #C.CR
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
cmp #'['
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
cmp (ZPPtr1) "[["
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
jsr TBOX.RUN.SelectLink
|
||||||
|
|
||||||
|
.3 jsr TBOX.GetChar
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
cmp #C.CR
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
cmp #']'
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
jsr TBOX.RUN.Link2pVar
|
||||||
|
|
||||||
|
jsr TBOX.SetViewPort
|
||||||
|
bit bRepaintAll
|
||||||
|
bmi .6
|
||||||
|
|
||||||
|
jsr OBJ.CurUpdPos
|
||||||
|
|
||||||
|
jsr TBOX.DrawCurLine
|
||||||
|
bra .60
|
||||||
|
|
||||||
|
.6 jsr TBOX.DrawAllLines
|
||||||
|
|
||||||
|
.60 lda #EV.HL.SELECTED
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.7 ldy #S.TBOX.DocX
|
||||||
|
jsr OBJ.ZeroWordAtY
|
||||||
|
|
||||||
|
ldy #S.TBOX.DocY
|
||||||
|
jsr OBJ.IncWordAtY
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.9 lda #0
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.RUN.SelectLink
|
||||||
|
txa
|
||||||
|
sec skip first [
|
||||||
|
ldy #S.TBOX.DocX
|
||||||
|
adc (ZPObjPtr),y
|
||||||
|
sta (ZPObjPtr),y
|
||||||
|
iny
|
||||||
|
lda #0
|
||||||
|
adc (ZPObjPtr),y
|
||||||
|
sta (ZPObjPtr),y
|
||||||
|
|
||||||
|
ldy #S.TBOX.BufPtr
|
||||||
|
jsr TBOX.SetTempCAtY
|
||||||
|
|
||||||
|
ldy #S.TBOX.SelBegin
|
||||||
|
jmp TBOX.SetTempCAtY
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.RUN.Link2pVar
|
||||||
|
ldy #S.TBOX.SelEnd
|
||||||
|
jsr TBOX.SetTempCAtY
|
||||||
|
|
||||||
|
ldy #S.OBJ.pVar
|
||||||
|
lda (ZPObjPtr),y
|
||||||
|
sta ZPPtr2
|
||||||
|
iny
|
||||||
|
lda (ZPObjPtr),y
|
||||||
|
sta ZPPtr2+1
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.1 jsr TBOX.GetChar
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
cmp #C.CR
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
cmp #']'
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
iny
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 lda #0
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.RUN.GetLink
|
||||||
|
|
||||||
|
lda #EV.HL.PRESSED
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.RUN.ScrollUp
|
||||||
|
jsr TBOX.GetBuf
|
||||||
|
|
||||||
|
ldy #S.TBOX.VScroll
|
||||||
|
lda (ZPObjPtr),y
|
||||||
|
clc
|
||||||
|
ldy #S.OBJ.InnerH
|
||||||
|
adc (ZPObjPtr),y
|
||||||
|
pha
|
||||||
|
|
||||||
|
ldy #S.TBOX.VScroll+1
|
||||||
|
lda (ZPObjPtr),y
|
||||||
|
ldy #S.OBJ.InnerH+1
|
||||||
|
adc (ZPObjPtr),y
|
||||||
|
plx
|
||||||
|
|
||||||
|
jsr TBOX.GetLineAX
|
||||||
|
bcs .8
|
||||||
|
|
||||||
|
ldy #S.TBOX.VScroll
|
||||||
|
jsr OBJ.IncWordAtY
|
||||||
|
|
||||||
|
jmp TBOX.DrawAllLines
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.RUN.ScrollDown
|
||||||
|
jsr TBOX.GetBuf
|
||||||
|
|
||||||
|
ldy #S.TBOX.VScroll+1
|
||||||
|
lda (ZPObjPtr),y
|
||||||
|
dey
|
||||||
|
ora (ZPObjPtr),y
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
jsr OBJ.DecWordAtY
|
||||||
|
|
||||||
|
ldy #S.TBOX.DocY
|
||||||
|
jsr OBJ.DecWordAtY
|
||||||
|
|
||||||
|
jmp TBOX.DrawAllLines
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
TBOX.RUN.SelBegin
|
TBOX.RUN.SelBegin
|
||||||
ldy #S.TBOX.BufPtr
|
ldy #S.TBOX.BufPtr
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
|
@ -91,7 +279,7 @@ TBOX.RUN.SelBegin
|
||||||
dey
|
dey
|
||||||
sta (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
|
|
||||||
rts
|
jmp TBOX.DrawAllLines
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.RUN.SelEnd ldy #S.TBOX.BufPtr
|
TBOX.RUN.SelEnd ldy #S.TBOX.BufPtr
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
|
@ -105,7 +293,7 @@ TBOX.RUN.SelEnd ldy #S.TBOX.BufPtr
|
||||||
dey
|
dey
|
||||||
sta (ZPObjPtr),y
|
sta (ZPObjPtr),y
|
||||||
|
|
||||||
rts
|
jmp TBOX.DrawAllLines
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.RUN.BS ldy #S.TBOX.BufPtr+1
|
TBOX.RUN.BS ldy #S.TBOX.BufPtr+1
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
|
@ -135,7 +323,7 @@ TBOX.RUN.BS ldy #S.TBOX.BufPtr+1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.RUN.LF jsr TBOX.GetBuf
|
TBOX.RUN.LF jsr TBOX.GetBuf
|
||||||
|
|
||||||
TBOX.RUN.LF1 jsr TBOX.GetCurlineInAX
|
TBOX.RUN.LF1 jsr TBOX.GetDocYInAX
|
||||||
inx
|
inx
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
@ -158,7 +346,7 @@ TBOX.RUN.VT jsr TBOX.GetBuf
|
||||||
|
|
||||||
jsr OBJ.DecWordAtY
|
jsr OBJ.DecWordAtY
|
||||||
|
|
||||||
TBOX.RUN.VT1 jsr TBOX.GetCurlineInAX
|
TBOX.RUN.VT1 jsr TBOX.GetDocYInAX
|
||||||
jsr TBOX.GetLineAX
|
jsr TBOX.GetLineAX
|
||||||
|
|
||||||
jsr TBOX.GetLineLenInAXC
|
jsr TBOX.GetLineLenInAXC
|
||||||
|
@ -210,17 +398,11 @@ TBOX.RUN.FS1 lda (ZPPtr2)
|
||||||
ldy #S.TBOX.BufPtr
|
ldy #S.TBOX.BufPtr
|
||||||
jsr OBJ.IncWordAtY
|
jsr OBJ.IncWordAtY
|
||||||
|
|
||||||
|
ldy #S.TBOX.DocX
|
||||||
cpx #C.CR
|
cpx #C.CR
|
||||||
beq .1
|
bne .7
|
||||||
|
|
||||||
ldy #S.TBOX.DocX
|
.1 jsr OBJ.ZeroWordAtY
|
||||||
bra .7
|
|
||||||
|
|
||||||
.1 lda #0
|
|
||||||
ldy #S.TBOX.DocX
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
iny
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
|
|
||||||
ldy #S.TBOX.DocY
|
ldy #S.TBOX.DocY
|
||||||
|
|
||||||
|
@ -231,25 +413,18 @@ TBOX.RUN.FS1 lda (ZPPtr2)
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.RUN.SOL lda #0
|
TBOX.RUN.SOL ldy #S.TBOX.DocX
|
||||||
ldy #S.TBOX.DocX
|
jsr OBJ.ZeroWordAtY
|
||||||
sta (ZPObjPtr),y
|
|
||||||
iny
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
|
|
||||||
jsr TBOX.GetCurlineInAX
|
jsr TBOX.GetDocYInAX
|
||||||
jsr TBOX.GetLineAX
|
jsr TBOX.GetLineAX
|
||||||
|
|
||||||
ldy #S.TBOX.BufPtr
|
ldy #S.TBOX.BufPtr
|
||||||
lda TempC BufPtr at SOL
|
jsr TBOX.SetTempCAtY BufPtr at SOL
|
||||||
sta (ZPObjPtr),y
|
|
||||||
iny
|
|
||||||
lda TempC+1
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
|
|
||||||
jmp TBOX.CheckViewPort
|
jmp TBOX.CheckViewPort
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.RUN.EOL jsr TBOX.GetCurlineInAX
|
TBOX.RUN.EOL jsr TBOX.GetDocYInAX
|
||||||
jsr TBOX.GetLineAX
|
jsr TBOX.GetLineAX
|
||||||
jsr TBOX.GetLineLenInAXC
|
jsr TBOX.GetLineLenInAXC
|
||||||
|
|
||||||
|
@ -278,11 +453,8 @@ TBOX.RUN.CR jsr TBOX.GetBuf
|
||||||
jsr TBOX.ToBuf1
|
jsr TBOX.ToBuf1
|
||||||
bcs .8 Buffer full
|
bcs .8 Buffer full
|
||||||
|
|
||||||
lda #0
|
|
||||||
ldy #S.TBOX.DocX
|
ldy #S.TBOX.DocX
|
||||||
sta (ZPObjPtr),y
|
jsr OBJ.ZeroWordAtY
|
||||||
iny
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
|
|
||||||
jsr TBOX.RUN.LF1
|
jsr TBOX.RUN.LF1
|
||||||
|
|
||||||
|
@ -309,25 +481,18 @@ TBOX.RUN.QUIT lda #3 User Interrupt
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.RUN.Home ldy #S.TBOX.DocX
|
TBOX.RUN.Home ldy #S.TBOX.DocX
|
||||||
|
jsr OBJ.ZeroWordAtY
|
||||||
|
|
||||||
ldx #4 DocX + DocY
|
ldy #S.TBOX.DocY
|
||||||
|
jsr OBJ.ZeroWordAtY
|
||||||
lda #0
|
|
||||||
|
|
||||||
.1 sta (ZPObjPtr),y
|
|
||||||
iny
|
|
||||||
dex
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
ldy #S.TBOX.BufPtr
|
ldy #S.TBOX.BufPtr
|
||||||
sta (ZPObjPtr),y
|
jsr OBJ.ZeroWordAtY
|
||||||
iny
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
|
|
||||||
jmp TBOX.CheckViewPort
|
jmp TBOX.CheckViewPort
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.RUN.EraseCL
|
TBOX.RUN.EraseCL
|
||||||
jsr TBOX.GetCurlineInAX
|
jsr TBOX.GetDocYInAX
|
||||||
jsr TBOX.GetLineAX
|
jsr TBOX.GetLineAX
|
||||||
jsr TBOX.GetLineLenInAXC
|
jsr TBOX.GetLineLenInAXC
|
||||||
jsr TBOX.DeleteAXC
|
jsr TBOX.DeleteAXC
|
||||||
|
@ -423,7 +588,7 @@ TBOX.DrawCurLine
|
||||||
|
|
||||||
jmp OBJ.Draw.Lines
|
jmp OBJ.Draw.Lines
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* hyperlinks: [[text to show|targetUrl]]
|
* hyperlinks: [[text to show]targetUrl]
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.Draw ldy #S.TBOX.VScroll
|
TBOX.Draw ldy #S.TBOX.VScroll
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
|
@ -457,7 +622,8 @@ TBOX.Draw ldy #S.TBOX.VScroll
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
stz bTemp reset selection
|
stz bTemp1 reset selection
|
||||||
|
stz bTemp2 reset Hyperlink
|
||||||
|
|
||||||
.2 jsr TBOX.CheckSel
|
.2 jsr TBOX.CheckSel
|
||||||
|
|
||||||
|
@ -497,6 +663,47 @@ TBOX.Activate
|
||||||
TBOX.Deactivate clc
|
TBOX.Deactivate clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
TBOX.SetProp jsr OBJ.SetProp
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
cpy #S.OBJ.pBuf
|
||||||
|
bne .8
|
||||||
|
|
||||||
|
ldy #S.TBOX.DocX
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
.1 sta (ZPObjPtr),y
|
||||||
|
iny
|
||||||
|
cpy #S.TBOX.BufPtr+2
|
||||||
|
bcc .1
|
||||||
|
|
||||||
|
jsr OBJ.GetBuf
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.2 lda (ZPPtr1),y
|
||||||
|
beq .3
|
||||||
|
|
||||||
|
iny
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
inc ZPPtr1+1
|
||||||
|
inx
|
||||||
|
bra .2
|
||||||
|
|
||||||
|
.3 tya
|
||||||
|
ldy #S.TBOX.BufCnt
|
||||||
|
sta (ZPObjPtr),y
|
||||||
|
iny
|
||||||
|
txa
|
||||||
|
sta (ZPObjPtr),y
|
||||||
|
|
||||||
|
jmp OBJ.Draw.Body.I
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
TBOX.GetBuf jsr OBJ.GetBuf
|
TBOX.GetBuf jsr OBJ.GetBuf
|
||||||
|
|
||||||
ldy #S.TBOX.BufPtr
|
ldy #S.TBOX.BufPtr
|
||||||
|
@ -512,7 +719,7 @@ TBOX.GetBuf jsr OBJ.GetBuf
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.GetCurlineInAX
|
TBOX.GetDocYInAX
|
||||||
ldy #S.TBOX.DocY
|
ldy #S.TBOX.DocY
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
tax
|
tax
|
||||||
|
@ -546,7 +753,8 @@ TBOX.GetLineAX stx TempW
|
||||||
jsr TBOX.GetLineLenInAXC
|
jsr TBOX.GetLineLenInAXC
|
||||||
bcc .9
|
bcc .9
|
||||||
|
|
||||||
php
|
* sec
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
adc TempC
|
adc TempC
|
||||||
|
@ -555,8 +763,9 @@ TBOX.GetLineAX stx TempW
|
||||||
adc TempC+1
|
adc TempC+1
|
||||||
sta TempC+1
|
sta TempC+1
|
||||||
|
|
||||||
|
sec
|
||||||
|
|
||||||
pla
|
pla
|
||||||
plp
|
|
||||||
|
|
||||||
adc ZPPtr1
|
adc ZPPtr1
|
||||||
sta ZPPtr1
|
sta ZPPtr1
|
||||||
|
@ -576,43 +785,52 @@ TBOX.GetLineAX stx TempW
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* TempC charPos
|
TBOX.SetLineAtDocX
|
||||||
*--------------------------------------
|
ldy #S.TBOX.DocX
|
||||||
TBOX.CheckSel bit bTemp
|
|
||||||
bmi .1
|
|
||||||
|
|
||||||
ldy #S.TBOX.SelBegin
|
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
cmp TempC
|
clc
|
||||||
|
adc ZPPtr1
|
||||||
|
sta ZPPtr1
|
||||||
iny
|
iny
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
sbc TempC+1
|
adc ZPPtr1+1
|
||||||
bcc .8
|
sta ZPPtr1+1
|
||||||
|
|
||||||
|
* clc
|
||||||
|
|
||||||
|
dey #S.TBOX.DocX
|
||||||
|
lda (ZPObjPtr),y
|
||||||
|
adc TempC
|
||||||
|
sta TempC
|
||||||
|
iny
|
||||||
|
lda (ZPObjPtr),y
|
||||||
|
adc TempC+1
|
||||||
|
sta TempC+1
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
* TempC charPos
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.CheckSel ldy #S.TBOX.SelBegin
|
||||||
|
jsr TBOX.CmpTempCAtY
|
||||||
|
bcc TBOX.ResetSel
|
||||||
|
|
||||||
|
iny #S.TBOX.SelEnd
|
||||||
|
jsr TBOX.CmpTempCAtY
|
||||||
|
bcs TBOX.ResetSel
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.SetSel bit bTemp1
|
||||||
|
bmi .8
|
||||||
|
|
||||||
phx
|
phx
|
||||||
ldx #SEQ.INVERSE-SEQS
|
ldx #SEQ.INVERSE-SEQS
|
||||||
jsr LB.SeqOut
|
jsr LB.SeqOut
|
||||||
plx
|
plx
|
||||||
rts
|
|
||||||
|
|
||||||
.1 ldy #S.TBOX.SelEnd
|
dec bTemp1
|
||||||
lda (ZPObjPtr),y
|
|
||||||
cmp TempC
|
|
||||||
|
|
||||||
iny
|
|
||||||
lda (ZPObjPtr),y
|
|
||||||
sbc TempC+1
|
|
||||||
bcc .8
|
|
||||||
|
|
||||||
phx
|
|
||||||
ldx #SEQ.NORMAL-SEQS
|
|
||||||
jsr LB.SeqOut
|
|
||||||
plx
|
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.ResetSel bit bTemp
|
TBOX.ResetSel bit bTemp1
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
phx
|
phx
|
||||||
|
@ -620,24 +838,83 @@ TBOX.ResetSel bit bTemp
|
||||||
jsr LB.SeqOut
|
jsr LB.SeqOut
|
||||||
plx
|
plx
|
||||||
|
|
||||||
|
stz bTemp1
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TBOX.GetLineChar
|
TBOX.GetLineChar
|
||||||
lda (ZPPtr1)
|
ldy #S.OBJ.F
|
||||||
|
lda (ZPObjPtr),y
|
||||||
|
and #S.OBJ.F.bEdit
|
||||||
|
bne TBOX.GetChar
|
||||||
|
|
||||||
|
bit bTemp2
|
||||||
|
bmi .1
|
||||||
|
|
||||||
|
jsr TBOX.GetChar
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
cmp #'['
|
||||||
|
bne .8 NZ
|
||||||
|
|
||||||
|
cmp (ZPPtr1) "[["
|
||||||
|
bne .8 NZ
|
||||||
|
|
||||||
|
dec bTemp2
|
||||||
|
rts NZ
|
||||||
|
|
||||||
|
.1 jsr TBOX.GetChar
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
cmp #'['
|
||||||
|
beq .1 skip 2nd [
|
||||||
|
|
||||||
|
cmp #']' "[[display]"
|
||||||
|
bne .8 NZ
|
||||||
|
|
||||||
|
stz bTemp2
|
||||||
|
|
||||||
|
.2 jsr TBOX.GetChar skip "link]"
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
cmp #']'
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
lda #']' NZ
|
||||||
|
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.GetChar lda (ZPPtr1)
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
inc ZPPtr1
|
inc ZPPtr1
|
||||||
bne .7
|
bne .1
|
||||||
|
|
||||||
inc ZPPtr1+1
|
inc ZPPtr1+1
|
||||||
|
|
||||||
.7 inc TempC
|
.1 inc TempC
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
inc TempC+1
|
inc TempC+1 NZ
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
TBOX.CmpTempCAtY
|
||||||
|
lda TempC
|
||||||
|
cmp (ZPObjPtr),y
|
||||||
|
lda TempC+1
|
||||||
|
iny
|
||||||
|
sbc (ZPObjPtr),y
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
TBOX.SetTempCAtY
|
||||||
|
lda TempC
|
||||||
|
sta (ZPObjPtr),y
|
||||||
|
lda TempC+1
|
||||||
|
iny
|
||||||
|
sta (ZPObjPtr),y
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
TBOX.GetLineLenInAXC
|
TBOX.GetLineLenInAXC
|
||||||
lda ZPPtr1+1
|
lda ZPPtr1+1
|
||||||
pha
|
pha
|
||||||
|
@ -944,11 +1221,8 @@ TBOX.SetViewPort
|
||||||
|
|
||||||
bra .40
|
bra .40
|
||||||
|
|
||||||
.32 lda #0
|
.32 ldy #S.TBOX.VScroll
|
||||||
ldy #S.TBOX.VScroll+1
|
jsr OBJ.ZeroWordAtY
|
||||||
sta (ZPObjPtr),y
|
|
||||||
dey
|
|
||||||
sta (ZPObjPtr),y
|
|
||||||
|
|
||||||
ldy #S.TBOX.DocY
|
ldy #S.TBOX.DocY
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
|
|
115
LIB/LIBTUI.S.txt
115
LIB/LIBTUI.S.txt
|
@ -22,7 +22,8 @@ ZPLineBufCnt .BS 2
|
||||||
ZPPtr1 .BS 2
|
ZPPtr1 .BS 2
|
||||||
ZPPtr2 .BS 2
|
ZPPtr2 .BS 2
|
||||||
ZPPtr3 .BS 2
|
ZPPtr3 .BS 2
|
||||||
bTemp .BS 1
|
bTemp1 .BS 1
|
||||||
|
bTemp2 .BS 1
|
||||||
|
|
||||||
TempW .BS 2
|
TempW .BS 2
|
||||||
TempC .BS 2
|
TempC .BS 2
|
||||||
|
@ -66,7 +67,7 @@ CS.START cld
|
||||||
.DA OBJ.Run
|
.DA OBJ.Run
|
||||||
.DA OBJ.Draw
|
.DA OBJ.Draw
|
||||||
.DA OBJ.GetProp
|
.DA OBJ.GetProp
|
||||||
.DA OBJ.SetProp
|
.DA LIB.SetProp
|
||||||
.DA OBJ.Activate
|
.DA OBJ.Activate
|
||||||
.DA OBJ.Deactivate
|
.DA OBJ.Deactivate
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -120,7 +121,45 @@ J.ObjDeactivate .DA OBJ.Deactivate
|
||||||
.DA BUT.Deactivate
|
.DA BUT.Deactivate
|
||||||
.DA RADIO.Deactivate
|
.DA RADIO.Deactivate
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
J.TBOX.RUN .DA TBOX.RUN.Ignore
|
J.ObjSetProp .DA OBJ.SetProp
|
||||||
|
.DA OBJ.SetProp
|
||||||
|
.DA OBJ.SetProp
|
||||||
|
.DA OBJ.SetProp
|
||||||
|
.DA TBOX.SetProp
|
||||||
|
.DA OBJ.SetProp
|
||||||
|
.DA OBJ.SetProp
|
||||||
|
.DA OBJ.SetProp
|
||||||
|
.DA OBJ.SetProp
|
||||||
|
*--------------------------------------
|
||||||
|
J.TBOX.RUN.RO .DA TBOX.RUN.Ignore
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-A
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-B
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-C
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-D
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-E
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-F
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-G
|
||||||
|
.DA TBOX.RUN.PrevLink BS
|
||||||
|
.DA TBOX.RUN.Ignore TAB
|
||||||
|
.DA TBOX.RUN.ScrollUp LF
|
||||||
|
.DA TBOX.RUN.ScrollDown VT
|
||||||
|
.DA TBOX.RUN.EOL Ctrl-L
|
||||||
|
.DA TBOX.RUN.GetLink CR
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-N
|
||||||
|
.DA TBOX.RUN.PGUP Ctrl-O
|
||||||
|
.DA TBOX.RUN.PGDN Ctrl-P
|
||||||
|
.DA TBOX.RUN.QUIT Ctrl-Q
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-R
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-S
|
||||||
|
.DA TBOX.RUN.Home Ctrl-T
|
||||||
|
.DA TBOX.RUN.NextLink FS
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-V
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-W
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-X
|
||||||
|
.DA TBOX.RUN.EOF Ctrl-Y
|
||||||
|
.DA TBOX.RUN.Ignore Ctrl-Z
|
||||||
|
*--------------------------------------
|
||||||
|
J.TBOX.RUN.RW .DA TBOX.RUN.Ignore
|
||||||
.DA TBOX.RUN.Ignore
|
.DA TBOX.RUN.Ignore
|
||||||
.DA TBOX.RUN.SelBegin Ctrl-B
|
.DA TBOX.RUN.SelBegin Ctrl-B
|
||||||
.DA TBOX.RUN.Ignore ** Copy
|
.DA TBOX.RUN.Ignore ** Copy
|
||||||
|
@ -147,11 +186,6 @@ J.TBOX.RUN .DA TBOX.RUN.Ignore
|
||||||
.DA TBOX.RUN.Ignore ** Cut
|
.DA TBOX.RUN.Ignore ** Cut
|
||||||
.DA TBOX.RUN.EOF Ctrl-Y
|
.DA TBOX.RUN.EOF Ctrl-Y
|
||||||
.DA TBOX.RUN.Ignore ** delete under cusror
|
.DA TBOX.RUN.Ignore ** delete under cusror
|
||||||
.DA TBOX.RUN.Ignore
|
|
||||||
.DA TBOX.RUN.Ignore
|
|
||||||
.DA TBOX.RUN.Ignore
|
|
||||||
.DA TBOX.RUN.Ignore
|
|
||||||
.DA TBOX.RUN.Ignore
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
L.SEQ.INIT .DA SEQ.INIT
|
L.SEQ.INIT .DA SEQ.INIT
|
||||||
L.SEQ.GOTOXY .DA SEQ.GOTOXY
|
L.SEQ.GOTOXY .DA SEQ.GOTOXY
|
||||||
|
@ -185,32 +219,56 @@ LIB.UNLOAD dec LibCnt
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
LIB.SetProp ldy #3 hObj
|
||||||
|
lda (pStack),y
|
||||||
|
|
||||||
|
jsr LIB.GetOBJ
|
||||||
|
|
||||||
|
ldy #2
|
||||||
|
lda (pStack),y
|
||||||
|
tay prop
|
||||||
|
|
||||||
|
>PULLA Value
|
||||||
|
sta (ZPObjPtr),y
|
||||||
|
iny
|
||||||
|
>PULLA
|
||||||
|
sta (ZPObjPtr),y
|
||||||
|
|
||||||
|
dey prop
|
||||||
|
|
||||||
|
inc pStack prop
|
||||||
|
inc pStack hObj
|
||||||
|
|
||||||
|
lda (ZPObjPtr) S.OBJ.T
|
||||||
|
tax
|
||||||
|
jmp (J.ObjSetProp,x)
|
||||||
|
*--------------------------------------
|
||||||
LIB.Destroy ldx ZPObjPtr
|
LIB.Destroy ldx ZPObjPtr
|
||||||
phx
|
phx
|
||||||
ldx ZPObjPtr+1
|
ldx ZPObjPtr+1
|
||||||
phx
|
phx
|
||||||
|
|
||||||
pha
|
pha
|
||||||
jsr LIB.GetOBJ
|
jsr LIB.GetOBJ
|
||||||
|
|
||||||
ldy #S.OBJ.S
|
ldy #S.OBJ.S
|
||||||
lda (ZPObjPtr),y
|
lda (ZPObjPtr),y
|
||||||
and #S.OBJ.S.bHasChilds
|
and #S.OBJ.S.bHasChilds
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
ldy #S.OBJ.Childs
|
ldy #S.OBJ.Childs
|
||||||
|
|
||||||
.1 lda (ZPObjPtr),y
|
.1 lda (ZPObjPtr),y
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
phy
|
phy
|
||||||
pha
|
pha
|
||||||
jsr OBJ.Destroy
|
jsr OBJ.Destroy
|
||||||
|
|
||||||
pla
|
pla
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
ply
|
ply
|
||||||
|
|
||||||
.2 iny
|
.2 iny
|
||||||
cpy #S.OBJ
|
cpy #S.OBJ
|
||||||
bcc .1
|
bcc .1
|
||||||
|
@ -218,7 +276,7 @@ LIB.Destroy ldx ZPObjPtr
|
||||||
pla
|
pla
|
||||||
pha
|
pha
|
||||||
jsr LIB.GetOBJ
|
jsr LIB.GetOBJ
|
||||||
|
|
||||||
.3 jsr .7
|
.3 jsr .7
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
@ -235,26 +293,28 @@ LIB.Destroy ldx ZPObjPtr
|
||||||
tax
|
tax
|
||||||
jmp (J.ObjDestroy,x)
|
jmp (J.ObjDestroy,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIB.GetCTX ldy #S.OBJ.hParent
|
LIB.GetCTX >LDYA ZPObjPtr
|
||||||
lda (ZPObjPtr),y
|
|
||||||
|
|
||||||
.1 >SYSCALL2 GetMemPtr
|
|
||||||
>STYA ZPCtxPtr
|
>STYA ZPCtxPtr
|
||||||
|
|
||||||
lda (ZPCtxPtr)
|
.1 lda (ZPCtxPtr)
|
||||||
* cmp #S.OBJ.T.SCRN
|
* cmp #S.OBJ.T.SCRN
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
ldy #S.OBJ.hParent
|
jsr .8
|
||||||
lda (ZPCtxPtr),y
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 rts
|
.8 ldy #S.OBJ.hParent
|
||||||
|
lda (ZPCtxPtr),y
|
||||||
|
>SYSCALL2 GetMemPtr
|
||||||
|
>STYA ZPCtxPtr
|
||||||
|
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIB.GetOBJ >SYSCALL2 GetMemPtr
|
LIB.GetOBJ >SYSCALL2 GetMemPtr
|
||||||
>STYA ZPObjPtr
|
>STYA ZPObjPtr
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
.INB usr/src/lib/libtui.s.io
|
||||||
.INB usr/src/lib/libtui.s.lb
|
.INB usr/src/lib/libtui.s.lb
|
||||||
.INB usr/src/lib/libtui.s.ctx
|
.INB usr/src/lib/libtui.s.ctx
|
||||||
.INB usr/src/lib/libtui.s.cont
|
.INB usr/src/lib/libtui.s.cont
|
||||||
|
@ -292,7 +352,8 @@ OBJ.COLORS .DA #93,#44 SCRN
|
||||||
.DA #92,#100 BUT
|
.DA #92,#100 BUT
|
||||||
.DA #93,#0 RADIO
|
.DA #93,#0 RADIO
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SEQ.INIT .CS "\ec\e[999;999H" Set Cursor Pos to 999,999
|
SEQ.INIT .CS "\ec" reset
|
||||||
|
.CS "\e[999;999H" Set Cursor Pos to 999,999
|
||||||
.CS "\e[6n" then query Cursor Pos
|
.CS "\e[6n" then query Cursor Pos
|
||||||
.CS "\e(B" font select
|
.CS "\e(B" font select
|
||||||
.CS "\e)0" font select
|
.CS "\e)0" font select
|
||||||
|
|
|
@ -68,7 +68,7 @@ CS.INIT >LDYA L.LIBTUI
|
||||||
|
|
||||||
CS.INIT.RTS rts
|
CS.INIT.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >LIBCALL hLIBTUI,LIBTUI.Init
|
CS.RUN >LIBCALL hLIBTUI,LIBTUI.Init
|
||||||
bcs CS.RUN.RTS
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
sta hCTX
|
sta hCTX
|
||||||
|
|
|
@ -21,7 +21,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
char *pBuf = malloc(1024);
|
char *pBuf = malloc(1024);
|
||||||
pBuf[0]=0;
|
pBuf[0]=0;
|
||||||
short int hTBOX = tuiNewTBox(hSCRN, 1, 1, 44, 20, F_bTitle+F_bStatus+F_bHBorder+F_bVBorder, pBuf, 1024);
|
short int hTBOX = tuiNewTBox(hSCRN, 1, 1, 44, 20, F_bTitle+F_bStatus+F_bHBorder+F_bVBorder+F_bEdit, pBuf, 1024);
|
||||||
tuiSetProp(hTBOX, P_pTitle, "Text Box Title");
|
tuiSetProp(hTBOX, P_pTitle, "Text Box Title");
|
||||||
tuiSetProp(hTBOX, P_pStatus, "Text Box Status");
|
tuiSetProp(hTBOX, P_pStatus, "Text Box Status");
|
||||||
|
|
||||||
|
@ -65,10 +65,13 @@ int main(int argc, char *argv[])
|
||||||
if (e == EV_SAVE) {
|
if (e == EV_SAVE) {
|
||||||
short int hDLGS = tuiNewDlg(hCTX, 70, 11, "Save As...");
|
short int hDLGS = tuiNewDlg(hCTX, 70, 11, "Save As...");
|
||||||
short int hOKBut = tuiNewBut(hDLGS, 50, 7, 13, EV_OK, " OK ");
|
short int hOKBut = tuiNewBut(hDLGS, 50, 7, 13, EV_OK, " OK ");
|
||||||
tuiNewBut(hDLGS, 57, 7, 3, EV_CANCEL, "Cancel");
|
short int hCanBut = tuiNewBut(hDLGS, 57, 7, 3, EV_CANCEL, "Cancel");
|
||||||
tuiDraw(hDLGS);
|
tuiDraw(hDLGS);
|
||||||
tuiActivate(hOKBut);
|
tuiActivate(hOKBut);
|
||||||
tuiExec(hDLGS);
|
short int e;
|
||||||
|
do {
|
||||||
|
e = tuiExec(hDLGS);
|
||||||
|
} while (e != EV_CANCEL);
|
||||||
tuiDestroy(hDLGS);
|
tuiDestroy(hDLGS);
|
||||||
tuiDraw(hSCRN);
|
tuiDraw(hSCRN);
|
||||||
}
|
}
|
||||||
|
|
|
@ -451,8 +451,10 @@ PRODOS.FT.TXT .AZ "txt"
|
||||||
.AZ "sys"
|
.AZ "sys"
|
||||||
PRODOS.FT.END .EQ *-PRODOS.FT.TXT
|
PRODOS.FT.END .EQ *-PRODOS.FT.TXT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SMBERR01 .DA #2,#3,#32
|
SMBERR01 .DA #2,#3,#4,#5,#12
|
||||||
MLIERR01 .DA #MLI.E.FNOTFND,#MLI.E.PNOTFND,#MLI.E.OPEN
|
.DA #32
|
||||||
|
MLIERR01 .DA #MLI.E.FNOTFND,#MLI.E.PNOTFND,#MLI.E.FCBFULL,#MLI.E.WRTPROT,#MLI.E.WRTPROT
|
||||||
|
.DA #MLI.E.OPEN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
NETBIOS.H .DA #0 DIRECT TCP TRANSPORT
|
NETBIOS.H .DA #0 DIRECT TCP TRANSPORT
|
||||||
.DA #0 24 BITS LENGTH
|
.DA #0 24 BITS LENGTH
|
||||||
|
@ -538,7 +540,7 @@ SMB.ComCreate.H .DA #24 WORD COUNT
|
||||||
.BS 2 NameLength
|
.BS 2 NameLength
|
||||||
.HS 00000000 Flags
|
.HS 00000000 Flags
|
||||||
.HS 00000000 RootDirectoryFID
|
.HS 00000000 RootDirectoryFID
|
||||||
.HS 00000010 DesiredAccess = GENERIC_ALL
|
.HS 000000C0 DesiredAccess = GENERIC_READ+GENERIC_WRITE
|
||||||
.HS 0000000000000000 AllocationSize
|
.HS 0000000000000000 AllocationSize
|
||||||
.HS 00000000 ExtFileAttributes
|
.HS 00000000 ExtFileAttributes
|
||||||
.HS 00000000 ShareAccess
|
.HS 00000000 ShareAccess
|
||||||
|
|
|
@ -54,7 +54,7 @@ STDIO.Put1 >PUSHWI K.IOBuf buf
|
||||||
inc write 1 byte
|
inc write 1 byte
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
STDIO.Write jsr K.FWrite
|
STDIO.Write jsr K.FWrite.PFT
|
||||||
bcc .9
|
bcc .9
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
@ -480,12 +480,15 @@ K.FRead.RTS rts
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* Y,A = Bytes Written
|
* Y,A = Bytes Written
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
|
K.FWrite.PFT ldx #SYS.FWrite Needed by PFT
|
||||||
|
|
||||||
K.FWrite jsr PFT.CheckNode4
|
K.FWrite jsr PFT.CheckNode4
|
||||||
bcs K.FWrite.RET5
|
bcs K.FWrite.RET5
|
||||||
|
|
||||||
jsr UNISTD.Write
|
jsr UNISTD.Write
|
||||||
|
|
||||||
bcc K.FRead.RTS
|
bcc K.FRead.RTS
|
||||||
|
|
||||||
K.FWrite.9 cmp #E.NODATA
|
K.FWrite.9 cmp #E.NODATA
|
||||||
sec
|
sec
|
||||||
bne K.FRead.RTS IO Error
|
bne K.FRead.RTS IO Error
|
||||||
|
@ -899,8 +902,8 @@ K.PrintF.1 sec format string->ptr2
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHWI K.IOBuf
|
>PUSHWI K.IOBuf
|
||||||
>PUSHW PrintF.Cnt Writing to File/dev...
|
>PUSHW PrintF.Cnt Writing to File/dev...
|
||||||
ldx #SYS.FWrite Needed by PFT
|
|
||||||
jsr K.FWrite
|
jsr K.FWrite.PFT
|
||||||
bcc .81
|
bcc .81
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
|
Loading…
Reference in New Issue