From 77c818cfcb2a0785d95ab4f1a103f3a88bf2f572 Mon Sep 17 00:00:00 2001 From: burniouf Date: Tue, 30 May 2023 19:13:23 +0200 Subject: [PATCH] KERNEL: UC/LC fix --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/MAN.S.txt | 189 ++++++++++++++++++++++++++----------- BIN/SH.S.txt | 1 + LIB/LIBTUI.S.TBOX.txt | 3 +- ProDOS.FX/ProDOS.S.XRW.txt | 1 + SYS/KERNEL.S.STRING.txt | 3 +- 6 files changed, 141 insertions(+), 56 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 49443a24265e8bfa82edf24ce6fda55c37ba3a6d..1ef71c5c621d76efec42f89c5c2bc0ad8927cf58 100644 GIT binary patch delta 388213 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 L.MSG.USAGE sec rts *-------------------------------------- -CS.RUN 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 +CS.RUN >LDYAI 256 >SYSCALL GetMem bcs CS.INIT.RTS >STYA ZPLinePtr - stx hLine + stx hLineBuf + + lda #1 + >SYSCALL ArgV + bcc .1 + + >LDYA L.FILE.INDEX + +.1 jsr CS.GetLink + bcs CS.RUN.USAGE + + jsr CS.GetFile + bcs CS.INIT.RTS jsr CS.Scr.Init bcs CS.INIT.RTS *-------------------------------------- -CS.RUN.LOOP0 jsr CS.Scr.SetTitle - jsr CS.Scr.SetBuf +CS.RUN.LOOP0 jsr CS.Scr.SetBuf jsr CS.Scr.SetStatusOkErr *-------------------------------------- CS.RUN.LOOP >SLEEP @@ -123,6 +117,9 @@ CS.RUN.LOOP >SLEEP cmp #EV.HL.SELECTED bne .1 + >LEA.G LinkBuf + jsr CS.GetLink + jsr CS.Scr.SetStatusGoto bcc CS.RUN.LOOP @@ -131,12 +128,10 @@ CS.RUN.LOOP >SLEEP .1 cmp #EV.HL.PRESSED bne CS.RUN.LOOP - jsr CS.Net.GetHL + jsr CS.GetFile + jsr CS.Scr.SetStatusOkErr bcc CS.RUN.LOOP0 - tay - beq CS.RUN.LOOP - CS.RUN.LOOP.9 rts *-------------------------------------- CS.DOEVENT lda (pEvent) @@ -150,18 +145,30 @@ CS.DOEVENT lda (pEvent) .9 sec do not discard TIMER event rts *-------------------------------------- -CS.QUIT lda hCTX +CS.QUIT lda hLineBuf + jsr .7 + + lda hFileBuf + jsr .7 + + lda hCTX beq .1 - + >LIBCALL hLIBTUI,LIBTUI.Close .1 lda hLIBTUI - beq .8 + beq .2 >SYSCALL UnloadLib -.8 clc +.2 clc rts + +.7 beq .8 + + >SYSCALL Freemem + +.8 rts *-------------------------------------- CS.Scr.Init >LIBCALL hLIBTUI,LIBTUI.Init bcs .99 @@ -175,8 +182,8 @@ CS.Scr.Init >LIBCALL hLIBTUI,LIBTUI.Init sta hSCR - jsr CS.Scr.SetTitle0 - jsr CS.Scr.SetStatus + jsr CS.Scr.SetTitle + jsr CS.Scr.SetStatus >PUSHB hSCR >PUSHBI 0 X1 @@ -184,10 +191,10 @@ CS.Scr.Init >LIBCALL hLIBTUI,LIBTUI.Init >PUSHBI 80 W >PUSHBI 22 H >PUSHBI 0 F - lda hBuf + lda hFileBuf >SYSCALL GetMemPtr >PUSHYA - >PUSHWI BUFSIZE + >PUSHW BufSize >LIBCALL hLIBTUI,LIBTUI.NewTBox .99 bcs .9 @@ -198,7 +205,7 @@ CS.Scr.Init >LIBCALL hLIBTUI,LIBTUI.Init >PUSHB hTBOX >PUSHBI S.OBJ.pVar - >PUSHEA.G NET.HyperLink + >PUSHEA.G LinkBuf >LIBCALL hLIBTUI,LIBTUI.SetProp .9 rts @@ -211,17 +218,25 @@ CS.Scr.SetTitle >PUSHB hSCR *-------------------------------------- CS.Scr.SetBuf >PUSHB hTBOX >PUSHBI S.OBJ.pBuf - lda hBuf + lda hFileBuf >SYSCALL GetMemPtr >PUSHYA >LIBCALL hLIBTUI,LIBTUI.SetProp - rts + bcs .9 + + >PUSHB hTBOX + >PUSHBI S.OBJ.BufSize + >PUSHW BufSize + >LIBCALL hLIBTUI,LIBTUI.SetProp + +.9 rts *-------------------------------------- CS.Scr.SetStatusGoto >PUSHEA.G SCR.StatusBuf skip type >PUSHW L.MSG.GOTO - >PUSHEA.G NET.HyperLink+1 - >PUSHBI 2 + >PUSHEA.G PathBuf + >PUSHEA.G HtagBuf + >PUSHBI 4 >SYSCALL SPrintF bra CS.Scr.SetStatus *-------------------------------------- @@ -254,33 +269,99 @@ CS.Scr.SetStatus rts *-------------------------------------- * [[text]host:port/path#htag] +* [#htag]text] *-------------------------------------- -CS.GetHLink +CS.GetLink >STYA ZPPtr1 -CS.SplitLink + >LEA.G PathBuf + >STYA ZPPtr2 + + >LEA.G HTagBuf + >STYA ZPPtr3 + + lda #0 + sta (ZPPtr2) + + >PUSHW L.ENV.MANPATH + >PUSHW ZPPtr2 + >SYSCALL GetEnv + + ldy #$ff + +.1 iny + lda (ZPPtr2),y + bne .1 + +.2 jsr CS.GetCharPtr1 + beq .4 + + cmp #'#' + beq .3 + + sta (ZPPtr2),y + iny + bra .2 + +.3 lda #0 + +.4 sta (ZPPtr2),y + + ldy #$ff + +.5 iny + jsr CS.GetCharPtr1 + sta (ZPPtr3),y + bne .5 + + clc + +.9 rts +*-------------------------------------- +CS.GetCharPtr1 lda (ZPPtr1) + beq .8 + + inc ZPPtr1 + bne .8 + + inc ZPPtr1+1 + +.8 rts +*-------------------------------------- +CS.GetFile >LEA.G PathBuf + >SYSCALL LoadTxtFile + bcs .9 + + stx hFileBuf + iny + bne .1 + + inc + +.1 >STYA BufSize + +.9 rts *-------------------------------------- CS.END LIBTUI .AZ "libtui" hLIBTUI .BS 1 -ENV.MANPATH .AZ "${MANPATH}" +ENV.MANPATH .AZ "MANPATH" +FILE.INDEX .AZ "index" *-------------------------------------- MSG.ScrTitle .CZ "A2osX-MAN - uit" *-------------------------------------- MSG.USAGE .CS "Usage : MAN [#htag]" MSG.CRLF .CS "\r\n" MSG.NULL .HS 00 -MSG.GOTO .CZ "Goto: %s" +MSG.GOTO .CZ "Goto: %s#%s" MSG.OK .CZ "Ok" MSG.ERROR .CZ "Error: $%h" *-------------------------------------- .DUMMY .OR 0 DS.START -TextBuf .BS 32 -HostBuf .BS 32 -PortBuf .BS 2 +LinkBuf .BS 32 PathBuf .BS MLI.MAXPATH+1 -HTagBuf .BS 80 +HTagBuf .BS 32 SCR.StatusBuf .BS 80 DS.END .ED *-------------------------------------- diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index fb3bff0b..a3db46c3 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -435,6 +435,7 @@ CS.RUN.LOOP.END ldy #S.PS.RC .1 jsr STK.Get bcs .8 + cmp #$C0+C.CLEXEC beq .8 diff --git a/LIB/LIBTUI.S.TBOX.txt b/LIB/LIBTUI.S.TBOX.txt index 2da46629..e71f02b5 100644 --- a/LIB/LIBTUI.S.TBOX.txt +++ b/LIB/LIBTUI.S.TBOX.txt @@ -588,7 +588,8 @@ TBOX.DrawCurLine jmp OBJ.Draw.Lines *-------------------------------------- -* hyperlinks: [[text to show]targetUrl] +* hyperlinks: [[text]targetUrl] +* htags: [#htag]text] *-------------------------------------- TBOX.Draw ldy #S.TBOX.VScroll lda (ZPObjPtr),y diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index a74f33a1..b9255def 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -885,6 +885,7 @@ XRW.Trk2Qtrk sta pch rts .1 bpl .2 + cmp #$85 bcs .10 > 192 ? must be a buggy 254 diff --git a/SYS/KERNEL.S.STRING.txt b/SYS/KERNEL.S.STRING.txt index 730ea9b5..413a5191 100644 --- a/SYS/KERNEL.S.STRING.txt +++ b/SYS/KERNEL.S.STRING.txt @@ -165,6 +165,7 @@ K.StrLwr ldx #2 .1 lda (ZPPtr1),y beq K.StrDup.8 + cmp .9,x bcc .2 @@ -180,7 +181,7 @@ K.StrLwr ldx #2 inc ZPPtr1+1 bra .1 *-------------------------------------- -.9 .AS "azAZ" +.9 .AS "a{A[" */-------------------------------------- * # StrCmp * Compare 2 strings