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 .9 rts
*-------------------------------------- *--------------------------------------
CS.Scr.SetStatusGoto CS.Scr.SetStatusGoto
>PUSHEA.G SCR.StatusBuf skip type >PUSHEA.G SCR.StatusBuf
>PUSHW L.MSG.GOTO >PUSHW L.MSG.GOTO
>PUSHEA.G PathBuf >PUSHEA.G PathBuf
>PUSHEA.G HtagBuf >PUSHEA.G HtagBuf
@ -281,7 +281,7 @@ CS.GetLink >STYA ZPPtr1
lda #0 lda #0
sta (ZPPtr2) sta (ZPPtr2)
>PUSHW L.ENV.MANPATH >PUSHW L.ENV.MANPATH
>PUSHW ZPPtr2 >PUSHW ZPPtr2
>SYSCALL GetEnv >SYSCALL GetEnv
@ -291,7 +291,7 @@ CS.GetLink >STYA ZPPtr1
.1 iny .1 iny
lda (ZPPtr2),y lda (ZPPtr2),y
bne .1 bne .1
.2 jsr CS.GetCharPtr1 .2 jsr CS.GetCharPtr1
beq .4 beq .4
@ -347,12 +347,12 @@ hLIBTUI .BS 1
ENV.MANPATH .AZ "MANPATH" ENV.MANPATH .AZ "MANPATH"
FILE.INDEX .AZ "index" 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.USAGE .CS "Usage : MAN <manfile>[#htag]"
MSG.CRLF .CS "\r\n" MSG.CRLF .CS "\r\n"
MSG.NULL .HS 00 MSG.NULL .HS 00
MSG.GOTO .CZ "Goto: %s#%s" MSG.GOTO .CZ "CR: Goto %s#%s"
MSG.OK .CZ "Ok" MSG.OK .CZ "Ok"
MSG.ERROR .CZ "Error: $%h" MSG.ERROR .CZ "Error: $%h"
*-------------------------------------- *--------------------------------------

View File

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

View File

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