LIBTUI: Fixes for MAN

This commit is contained in:
burniouf 2024-01-21 18:52:41 +01:00
parent f50fee89e4
commit 246068c91b
4 changed files with 202 additions and 110 deletions

Binary file not shown.

View File

@ -232,7 +232,7 @@ CS.Scr.SetBuf >PUSHB hTBOX
.9 rts
*--------------------------------------
CS.Scr.SetStatusGoto
>PUSHEA.G SCR.StatusBuf skip type
>PUSHEA.G SCR.StatusBuf
>PUSHW L.MSG.GOTO
>PUSHEA.G PathBuf
>PUSHEA.G HtagBuf
@ -281,7 +281,7 @@ CS.GetLink >STYA ZPPtr1
lda #0
sta (ZPPtr2)
>PUSHW L.ENV.MANPATH
>PUSHW ZPPtr2
>SYSCALL GetEnv
@ -291,7 +291,7 @@ CS.GetLink >STYA ZPPtr1
.1 iny
lda (ZPPtr2),y
bne .1
.2 jsr CS.GetCharPtr1
beq .4
@ -347,12 +347,12 @@ hLIBTUI .BS 1
ENV.MANPATH .AZ "MANPATH"
FILE.INDEX .AZ "index"
*--------------------------------------
MSG.ScrTitle .CZ "A2osX-MAN - UP/DOWN : Scroll, LEFT/RIGHT : Prev/Next link, <Ctrl-Q>uit"
MSG.ScrTitle .CZ "A2osX-MAN - UP/DOWN: Scroll, LEFT/RIGHT: Prev/Next link, <Ctrl-Q>uit"
*--------------------------------------
MSG.USAGE .CS "Usage : MAN <manfile>[#htag]"
MSG.CRLF .CS "\r\n"
MSG.NULL .HS 00
MSG.GOTO .CZ "Goto: %s#%s"
MSG.GOTO .CZ "CR: Goto %s#%s"
MSG.OK .CZ "Ok"
MSG.ERROR .CZ "Error: $%h"
*--------------------------------------

View File

@ -807,7 +807,7 @@ OBJ.Hide pha
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

View File

@ -51,7 +51,9 @@ TBOX.Run ldy #S.OBJ.S
tax
jmp (J.TBOX.RUN.RO,x)
.1 jmp TBOX.RUN.GetLink
.1 lda #EV.HL.PRESSED
clc
rts
*--------------------------------------
TBOX.Run.RW lda (pStack) Event
@ -94,7 +96,34 @@ TBOX.RUN.Ignore lda #0
rts
*--------------------------------------
TBOX.RUN.PrevLink
jsr OBJ.GetBuf -> ZPPtr1
ldy #S.TBOX.SelBegin
jsr TBOX.RUN.GetSel -> TempC
.1 ldx #0
.2 jsr TBOX.GetCharBW
beq TBOX.RUN.PrevLink.9
cmp #'['
bne .1
cpx #'['
beq .3
tax
bra .2
.3 lda ZPPtr1
sta TempI
lda ZPPtr1+1
sta TempI+1
jsr TBOX.RUN.CheckLink
bcs .1
rts
TBOX.RUN.PrevLink.9
lda #0
@ -102,89 +131,93 @@ TBOX.RUN.PrevLink.9
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
jsr OBJ.GetBuf -> ZPPtr1
ldy #S.TBOX.SelEnd
jsr TBOX.RUN.GetSel -> TempC
.1 ldx #0
.2 jsr TBOX.GetCharFW
beq TBOX.RUN.PrevLink.9
cmp #'['
bne .2
bne .1
cpx #'['
beq .3
tax
bra .2
cmp (ZPPtr1) "[["
bne .2
.3 lda ZPPtr1
sec
sbc #2
sta TempI
lda ZPPtr1+1
sbc #0
sta TempI+1
lda TempC
sec
sbc #2
sta TempC
lda TempC+1
sbc #0
sta TempC+1
jsr TBOX.RUN.SelectLink
.3 jsr TBOX.GetChar
beq .9
jsr TBOX.RUN.CheckLink
bcc .99
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
.99 rts
*--------------------------------------
TBOX.RUN.GetSel lda (ZPObjPtr),y
sta TempC
clc
adc ZPPtr1
sta ZPPtr1
iny
lda (ZPObjPtr),y
sta TempC+1
adc ZPPtr1+1
sta ZPPtr1+1
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
TBOX.RUN.CheckLink
ldy #S.TBOX.BufPtr
jsr TBOX.SetTempCAtY
ldy #S.TBOX.SelBegin
jmp TBOX.SetTempCAtY
*--------------------------------------
TBOX.RUN.Link2pVar
ldy #S.TBOX.SelEnd
jsr TBOX.SetTempCAtY
ldx #0
.1 jsr TBOX.GetCharFW
beq .9
cmp #C.CR
beq .9
iny
cmp #']'
bne .1
cpx #']'
beq .2
tax
bra .1
.2 ldy #S.TBOX.SelEnd
jsr TBOX.SetTempCAtY
ldy #S.OBJ.pVar
lda (ZPObjPtr),y
sta ZPPtr2
@ -192,23 +225,48 @@ TBOX.RUN.Link2pVar
lda (ZPObjPtr),y
sta ZPPtr2+1
ldy #0
.1 jsr TBOX.GetChar
beq .8
cmp #C.CR
beq .8
ldy #$ff SKIP "[[TEXT]"
.3 iny
lda (TempI),y
cmp #']'
beq .8
bne .3
sta (ZPPtr2),y
iny
bra .1
tya
sec
adc TempI
sta TempI
bcc .4
.8 lda #0
inc TempI+1
.4 ldy #$ff
.5 iny
lda (TempI),y
sta (ZPPtr2),y
cmp #']'
bne .5
lda #0
sta (ZPPtr2),y
* 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
.9 sec
rts
*--------------------------------------
TBOX.RUN.GetLink
@ -224,17 +282,16 @@ TBOX.RUN.GetLink
TBOX.RUN.ScrollUp
jsr TBOX.GetBuf
ldy #S.TBOX.VScroll
ldy #S.OBJ.InnerH
lda (ZPObjPtr),y
clc
ldy #S.OBJ.InnerH
ldy #S.TBOX.VScroll
adc (ZPObjPtr),y
pha
ldy #S.TBOX.VScroll+1
iny #S.TBOX.VScroll+1
lda (ZPObjPtr),y
ldy #S.OBJ.InnerH+1
adc (ZPObjPtr),y
adc #0
plx
jsr TBOX.GetLineAX
@ -589,9 +646,6 @@ TBOX.DrawCurLine
jmp OBJ.Draw.Lines
*--------------------------------------
* hyperlinks: [[text]targetUrl]
* htags: [#htag]text]
*--------------------------------------
TBOX.Draw ldy #S.TBOX.VScroll
lda (ZPObjPtr),y
clc
@ -844,50 +898,66 @@ TBOX.ResetSel bit bTemp1
.8 rts
*--------------------------------------
* hyperlinks: [[text]targetUrl#targetHtag]
* htags: [#htag]
*--------------------------------------
TBOX.GetLineChar
ldy #S.OBJ.F
lda (ZPObjPtr),y
and #S.OBJ.F.bEdit
bne TBOX.GetChar
bne TBOX.GetCharFW
bit bTemp2
bmi .1
bmi .3
jsr TBOX.GetChar
jsr TBOX.GetCharFW
beq .8
cmp #'['
bne .8 NZ
cmp (ZPPtr1) "[["
bne .8 NZ
bne .1
dec bTemp2
rts NZ
dec bTemp2
bra TBOX.GetCharFW skip "[["
.1 jsr TBOX.GetChar
.1 lda (ZPPtr1) "[#" ?
cmp #'#'
beq .2
lda #'[' NZ
rts
.2 jsr TBOX.GetCharFW skip "[#"
beq .8
cmp #']' skip "htag]"
bne .2
bra TBOX.GetCharFW skip "]"
.3 jsr TBOX.GetCharFW
beq .8
cmp #'['
beq .1 skip 2nd [
cmp #']' "[[display]"
cmp #']' "text"
bne .8 NZ
stz bTemp2
.2 jsr TBOX.GetChar skip "link]"
.4 jsr TBOX.GetCharFW skip "link]"
beq .8
cmp #']'
bne .2
bne .4
lda #']' NZ
.8 rts
*--------------------------------------
TBOX.GetChar lda (ZPPtr1)
beq .8
TBOX.GetCharFW lda (ZPPtr1)
beq .9
inc ZPPtr1
bne .1
@ -895,11 +965,33 @@ TBOX.GetChar lda (ZPPtr1)
inc ZPPtr1+1
.1 inc TempC
bne .8
bne .9
inc TempC+1 NZ
.8 rts
.9 rts
*--------------------------------------
TBOX.GetCharBW lda TempC
ora TempC+1
beq .9
lda ZPPtr1
bne .1
dec ZPPtr1+1
.1 dec ZPPtr1
lda TempC
bne .2
dec TempC+1
.2 dec TempC
lda (ZPPtr1)
.9 rts
*--------------------------------------
TBOX.CmpTempCAtY
lda TempC