diff --git a/term.tal b/term.tal index e28c563..a5d7a1b 100644 --- a/term.tal +++ b/term.tal @@ -48,7 +48,7 @@ ( end alt charset ESC [ 10 m ) ( end alt charset ESC [ 11 m ) -|00 @System [ &vect $2 &pad $6 &r $2 &g $2 &b $2 ] +|00 @System [ &vect $2 &expansion $2 &title $2 &metadata $2 &r $2 &g $2 &b $2 ] |10 @Console [ &vect $2 &r $1 &pad $5 &w $1 ] |20 @Screen [ &vect $2 &w $2 &h $2 &auto $1 &pad $1 &x $2 &y $2 &addr $2 &pixel $1 &sprite $1 ] |80 @Controller [ &vect $2 &button $1 &key $1 &fn $1 ] @@ -78,6 +78,10 @@ ( to send CSI 200 ~ on start of paste, and CSI 201 ~ at end of paste ) |0100 + ( metadata ) + ;meta .System/metadata DEO2 + ;meta/name .System/title DEO2 + ( 80 cols x 24 rows ) #0028 .rows STZ2 #0050 .cols STZ2 @@ -183,23 +187,20 @@ @redraw .dirty? LDZ #00 EQU ?&done ;cells STH2 ( [addr*] ) - #0000 DUP2 .Screen/y DEO2 + .rows LDZ2 #0000 DUP2 .Screen/y DEO2 &yloop - #0000 DUP2 .Screen/x DEO2 + .cols LDZ2 #0000 DUP2 .Screen/x DEO2 &xloop STH2kr LDA2 draw-cell .Screen/x DEI2k #0008 ADD2 ROT DEO2 INC2 INC2r INC2r - DUP2 .cols LDZ2 LTH2 ?&xloop - POP2 + GTH2k ?&xloop + POP2 POP2 .Screen/y DEI2k #0008 ADD2 ROT DEO2 INC2 - DUP2 .rows LDZ2 LTH2 ?&yloop - POP2 POP2r - - draw-cursor - #00 .dirty? STZ - &done BRK + GTH2k ?&yloop + POP2 POP2 POP2r + draw-cursor #00 .dirty? STZ &done BRK @clear-cursor .cur-x LDZ2 #30 SFT2 .Screen/x DEO2 @@ -771,5 +772,11 @@ @ascii ~chr/ascii.tal +@meta 00 + &name "determ 0a + &details "ansi 20 "terminal 20 "emulator 0a + &author "by 20 "d_m 0a + &date "3 20 "jan 20 2023 00 + ( store tint+char for each screen position ) @cells $1900 ( 80 x 40 x 2 )