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