From 56200a1c5985e5e35e22b309e926f96356824d9f Mon Sep 17 00:00:00 2001 From: d6 Date: Sat, 11 Feb 2023 21:53:34 -0500 Subject: [PATCH] better effect docs --- term.tal | 100 ++++++++++++++++++++++++++----------------------------- 1 file changed, 47 insertions(+), 53 deletions(-) diff --git a/term.tal b/term.tal index 6653352..231f773 100644 --- a/term.tal +++ b/term.tal @@ -129,8 +129,6 @@ ( 80 cols x 24 rows + 1 col for padding ) #0018 .rows STZ2 #0051 .cols STZ2 -( #0024 .rows STZ2 - #005b .cols STZ2 ) ( set initial cursor ) #0000 .cur-x STZ2 @@ -146,8 +144,11 @@ #07bf .System/r DEO2 #07bf .System/g DEO2 #07bf .System/b DEO2 + + ( load theme to override colors and maybe dimension ) load-theme + ( calculate derived dimensions from cols/rows ) update-dimensions ( set starting tint: reverse=0, bg=0, fg=2 ) @@ -251,7 +252,7 @@ LTH2 ?&yloop ( y+1* [addr*] ) POP2 POP2r JMP2r ( ) -@redraw ( -> ) +@redraw ( -> BRK ) .dirty LDZ #00 EQU ?&done LIT2r =cells ( [addr*] ) .rows LDZ2 #0000 DUP2 #0008 ( border ) ADD2 .Screen/y DEO2 @@ -301,7 +302,7 @@ .tcem LDZ #00 EQU ?&skip SWP reverse-tint SWP &skip !draw-cell -@on-button ( -> ) +@on-button ( -> BRK ) .lastkey LDZ ( last^ ) .Controller/button DEI ( last^ button^ ) STHk EOR ( last-xor-button^ [button^] ) @@ -513,7 +514,7 @@ screen-to-cursor ( ) JMP2r ( ) -@on-mouse ( -> ) +@on-mouse ( -> BRK ) .lastmouse-st LDZ ( last ) .Mouse/state DEI ( last st ) STHk OVR EOR STHkr AND ( last (last^st)&st [st] ) @@ -523,7 +524,7 @@ STHr .lastmouse-st STZ ( ) on-move BRK ( ) -@on-key ( -> ) +@on-key ( -> BRK ) .Controller/key DEI ?&ok !on-button &ok alt ?on-alt-key ctrl ?on-ctrl-key @@ -536,7 +537,7 @@ @alt ( -> is-down? ) .Controller/button DEI #02 AND JMP2r ( alt-XYZ emits ESC and then emits XYZ ) -@on-alt-key ( -> ) +@on-alt-key ( -> BRK ) #1b .Console/w DEO ctrl ?on-ctrl-key .Controller/key DEI .Console/w DEO BRK @@ -545,7 +546,7 @@ ( 0 <= $n < @ -> $n ) ( @ <= $n < ` -> $n #40 SUB ) ( ` <= $n <= #ff -> $n #60 SUB ) -@on-ctrl-key ( -> ) +@on-ctrl-key ( -> BRK ) .Controller/key DEI DUP LIT "@ LTH ?&done DUP LIT "` LTH ?&c1 @@ -553,17 +554,17 @@ &c1 LIT "@ SUB &done .Console/w DEO BRK -@on-read-priv +@on-read-priv ( -> BRK ) .Console/r DEI DUP LIT "; EQU ?next-arg DUP LIT "0 LTH ?end-arg-priv DUP LIT "9 GTH ?end-arg-priv !add-to-arg -@start-priv +@start-priv ( -> BRK ) POP ;on-read-priv .Console/vect DEO2 BRK -@on-read-csi ( -> ) +@on-read-csi ( -> BRK ) .Console/r DEI DUP LIT "? EQU ?start-priv DUP LIT "; EQU ?next-arg @@ -571,7 +572,7 @@ DUP LIT "9 GTH ?end-arg !add-to-arg -@on-read-osc ( -> ) +@on-read-osc ( -> BRK ) .Console/r DEI DUP #07 ( bell ) EQU ?&end-osc #9c ( esc-\ ) EQU ?&end-osc BRK @@ -608,7 +609,7 @@ ;scratch .File1/w DEO2 JMP2r -@end-arg-priv ( c^ -> ) +@end-arg-priv ( c^ -> BRK ) ;on-read .Console/vect DEO2 DUP LIT "h EQU ?exec-priv-set-or-unset DUP LIT "l EQU ?exec-priv-set-or-unset @@ -616,7 +617,7 @@ ( TODO: handle these ) POP BRK -@exec-priv-set-or-unset ( c^ -> ) +@exec-priv-set-or-unset ( c^ -> BRK ) #0001 read-arg-1 ( c^ n* ) DUP2 #0019 NEQ2 ?&!25 POP2 .tcem !&change &!25 DUP2 #07d4 NEQ2 ?&!2004 POP2 .paste !&change @@ -648,7 +649,7 @@ ;scratch .File1/w DEO2 JMP2r -@end-arg ( c^ -> ) +@end-arg ( c^ -> BRK ) ;on-read .Console/vect DEO2 DUP debug-csi DUP LIT "d EQU ?exec-move-row ( move cursor to row ) @@ -677,19 +678,19 @@ ( = 1 C - bold cursor ) debug-csi BRK -@exec-noop ( c^ -> ) +@exec-noop ( c^ -> BRK ) POP BRK ( set mode ) ( TODO: insert/replace, line wrap, etc. ) -@exec-set-mode ( c^ -> ) +@exec-set-mode ( c^ -> BRK ) POP #0001 read-arg-1 DUP2 #0004 NEQ2 ?&!irm POP2 .irm !&set &!irm DUP2 #0007 NEQ2 ?&!awm POP2 .awm !&set &!awm POP2 BRK &set #01 SWP STZ BRK -@exec-reset-mode ( c^ -> ) +@exec-reset-mode ( c^ -> BRK ) POP #0001 read-arg-1 DUP2 #0004 NEQ2 ?&!irm POP2 .irm !&reset &!irm DUP2 #0007 NEQ2 ?&!awm POP2 .awm !&reset @@ -707,7 +708,7 @@ &done update-tint &ignored POP2 JMP2r -@exec-set-attr ( c^ -> ) +@exec-set-attr ( c^ -> BRK ) POP ;args/pos LDA2 ;args &loop @@ -717,10 +718,10 @@ &done POP2 POP2 BRK -@exec1 ( addr* -> ) +@exec1 ( addr* -> BRK ) STH2 #0001 read-arg-1 STH2r JSR2 BRK -@exec-status +@exec-status ( c^ -> BRK ) POP #0000 read-arg-1 #0006 NEQ2 ,&done #1b .Console/w DEO LIT "[ .Console/w DEO @@ -740,7 +741,7 @@ @exec-insert-lines POP ;insert-n-lines !exec1 @exec-forward-tabs POP ;forward-n-tabs !exec1 -@exec-erase-line +@exec-erase-line ( c^ -> BRK ) POP #0000 read-arg-1 DUP2 #0000 EQU2 ?&erase-to-end DUP2 #0001 EQU2 ?&erase-from-start @@ -753,7 +754,7 @@ &erase-from-start POP2 bol-addr cur-addr erase BRK -@exec-erase-screen +@exec-erase-screen ( c^ -> BRK ) POP #0000 read-arg-1 DUP2 #0000 EQU2 ?&erase-to-end DUP2 #0001 EQU2 ?&erase-from-start @@ -779,19 +780,19 @@ JMP2r ( ) &skip POP2 POP2 JMP2r ( ) -@exec-move-row ( c^ -> ) +@exec-move-row ( c^ -> BRK ) POP #0001 read-arg-1 dec-floor ( row ) .cur-x LDZ2 ( col ) goto BRK -@exec-move-col ( c^ -> ) +@exec-move-col ( c^ -> BRK ) POP .cur-y LDZ2 ( row ) #0001 read-arg-1 dec-floor ( col ) goto BRK -@exec-move ( c^ -> ) +@exec-move ( c^ -> BRK ) POP #0001 read-arg-1 dec-floor ( row ) #0001 read-arg-2 dec-floor ( col ) @@ -812,7 +813,7 @@ ;scratch .File1/w DEO2 JMP2r -@on-read-esc ( -> ) +@on-read-esc ( -> BRK ) .Console/r DEI DUP debug-esc DUP LIT "[ EQU ?start-csi @@ -826,7 +827,7 @@ !on-read &skip POP ;on-read .Console/vect DEO2 BRK -@on-read-skip ( -> ) +@on-read-skip ( -> BRK ) ;on-read .Console/vect DEO2 BRK @@ -834,28 +835,28 @@ ( ')' = designate G1 charset ) ( '*' = designate G2 charset ) ( '+' = designate G3 charset ) -@start-charset ( c^ -> ) +@start-charset ( c^ -> BRK ) POP ;on-read-skip .Console/vect DEO2 BRK -@start-csi ( c^ -> ) +@start-csi ( c^ -> BRK ) POP reset-args ;on-read-csi .Console/vect DEO2 BRK -@start-osc ( c^ -> ) +@start-osc ( c^ -> BRK ) POP reset-args ;on-read-osc .Console/vect DEO2 BRK -@on-read ( -> ) +@on-read ( -> BRK ) .Console/r DEI DUP debug-read DUP ?&ok POP BRK &ok ( #42 .tint STZ ) !read -@read ( c^ -> ) +@read ( c^ -> BRK ) DUP #20 LTH ?read-ctrl DUP #7f EQU ?read-del !read-printable -@read-ctrl ( c^ -> ) +@read-ctrl ( c^ -> BRK ) DUP #07 EQU ?read-bel DUP #08 EQU ?read-bs DUP #09 EQU ?read-tab @@ -863,26 +864,25 @@ DUP #0d EQU ?read-cr DUP #1b EQU ?read-esc -@read-bel ( 07 -> ) +@read-bel ( 07 -> BRK ) POP .visual-bell LDZ #00 EQU ?&done #06 .flash STZ #01 .dirty STZ &done BRK -@read-bs ( 08 -> ) +@read-bs ( 08 -> BRK ) POP clear-cursor #0001 back-n draw-cursor BRK -@read-esc ( 1b -> ) +@read-esc ( 1b -> BRK ) POP ;on-read-esc .Console/vect DEO2 BRK -@read-del ( 7f -> ) +@read-del ( 7f -> BRK ) POP BRK -( @read-tab POP JMP2r ) -@read-tab +@read-tab ( 09 -> BRK ) POP .cur-x LDZ2 ( x* ) NIP #07 AND #08 SUB ( i=(xlo&7)-8^ ) @@ -894,17 +894,17 @@ INC DUP ?&loop ( i+1^ ) POP BRK ( ) -@read-cr ( 0d -> ) +@read-cr ( 0d -> BRK ) POP clear-cursor #0000 .cur-x STZ2 draw-cursor BRK @at-max-y ( -> true? ) .cur-y LDZ2 .max-y LDZ2 EQU2 JMP2r -@read-nl ( 0a -> ) +@read-nl ( 0a -> BRK ) POP clear-cursor at-max-y ?scroll down BRK -@read-printable ( c -> ) +@read-printable ( c^ -> BRK ) .tint LDZ SWP DUP2 cur-addr STA2 draw-cell forward BRK @@ -954,7 +954,7 @@ cur-addr ( cell* last* cur* ) &loop ( cell* last* pos* ) LDA2k OVR2 INC2 STA2 ( cell* last* pos* ; pos+1<-pos ) - INC2 LTH2k ?&loop ( cell* last pos+1* ) + INC2 GTH2k ?&loop ( cell* last pos+1* ) POP2 POP2 ( cell* ) &replace ( cell* ) cur-addr STA2 JMP2r ( ) @@ -1019,7 +1019,7 @@ eol-addr ( limit* start* [n*] ) !delete-n-chars/loop -@scroll +@scroll ( -> BRK ) limit-addr STH2 ;cells .col-bytes LDZ2 ADD2 STH2 &loop @@ -1030,12 +1030,6 @@ #01 .dirty STZ draw-cursor BRK -( ( 0 <= index < 128 ) -@load-tile ( index^ -> ) - #00 SWP #30 SFT2 ( size in bytes ) - ;ascii ADD2 .Screen/addr DEO2 - JMP2r ) - ( bits: Rx xx FF BB ) ( - R: reversed [0=normal, 1=reversed] ) ( - F: foreground [0:black, 1:dim, 2:normal, 3:bright] ) @@ -1092,12 +1086,12 @@ .Screen/y DEI2k #0004 SUB2 ROT DEO2 ( ) JMP2r ( ) -@next-arg ( c^ -> ) +@next-arg ( c^ -> BRK ) POP ( TODO: check if we already have max args ) ;args/pos LDA2k INC2 INC2 SWP2 STA2 BRK -@add-to-arg ( c^ -> ) +@add-to-arg ( c^ -> BRK ) LIT "0 SUB LITr 00 STH ( [digit*] ) ;args/pos LDA2 LDA2k ( addr* value* [digit*] ) #000a MUL2 STH2r ADD2 ( addr* value*10+digit )