increase border size and fix small selection bug
This commit is contained in:
parent
617a1fab72
commit
2cf76e8afb
29
term.tal
29
term.tal
|
@ -138,7 +138,8 @@
|
|||
#0000 .cur-y STZ2
|
||||
|
||||
( start cursor at origin - including border )
|
||||
#0008 ( border ) DUP2 .Screen/x DEO2 .Screen/y DEO2
|
||||
#0010 ( border ) .Screen/x DEO2
|
||||
#0010 ( border ) .Screen/y DEO2
|
||||
|
||||
( confirm no buttons pressed yet )
|
||||
#00 .lastkey STZ
|
||||
|
@ -199,8 +200,8 @@
|
|||
.cols LDZ2 #0001 SUB2 .max-x STZ2
|
||||
|
||||
( set screen height/width based on rows/cols )
|
||||
.cols LDZ2 #30 SFT2 ( width ) #0010 ADD2 .Screen/w DEO2
|
||||
.rows LDZ2 #000c MUL2 ( height ) #0010 ADD2 .Screen/h DEO2
|
||||
.cols LDZ2 #30 SFT2 ( width ) #0020 ( 2xborder ) ADD2 .Screen/w DEO2
|
||||
.rows LDZ2 #000c MUL2 ( height ) #0020 ( 2xborder ) ADD2 .Screen/h DEO2
|
||||
JMP2r
|
||||
|
||||
@shell "bash 00 "-i 00 00
|
||||
|
@ -271,9 +272,9 @@
|
|||
&pointer-ok
|
||||
.dirty LDZ #00 EQU ?&done
|
||||
LIT2r =cells ( [addr*] )
|
||||
.rows LDZ2 #0000 DUP2 #0008 ( border ) ADD2 .Screen/y DEO2
|
||||
.rows LDZ2 #0000 DUP2 #0010 ( border ) ADD2 .Screen/y DEO2
|
||||
&yloop
|
||||
.cols LDZ2 #0000 DUP2 #0008 ( border ) ADD2 .Screen/x DEO2
|
||||
.cols LDZ2 #0000 DUP2 #0010 ( border ) ADD2 .Screen/x DEO2
|
||||
&xloop
|
||||
STH2kr LDA2 draw-cell erase-fg-cell
|
||||
.Screen/x DEI2k #0008 ( width ) ADD2 ROT DEO2
|
||||
|
@ -295,8 +296,8 @@
|
|||
redraw-selection !clear-selection
|
||||
|
||||
@screen-to-cell ( row* col* -> )
|
||||
#30 SFT2 ( width ) #0008 ( border ) ADD2 .Screen/x DEO2
|
||||
#000c MUL2 ( height ) #0008 ( border ) ADD2 .Screen/y DEO2
|
||||
#30 SFT2 ( width ) #0010 ( border ) ADD2 .Screen/x DEO2
|
||||
#000c MUL2 ( height ) #0010 ( border ) ADD2 .Screen/y DEO2
|
||||
JMP2r
|
||||
|
||||
@screen-to-cursor ( -> )
|
||||
|
@ -386,14 +387,19 @@
|
|||
GTH2k ?&xloop ( yn* y* xlim* x+1* [addr+2*] )
|
||||
POP2 POP2 ( yn* y* [addr+2*] )
|
||||
.Screen/y DEI2k #000c ADD2 ROT DEO2 ( yn* y* [addr+2*] )
|
||||
#0008 .Screen/x DEO2 ( yn* y* [addr+2*] )
|
||||
#0010 ( border ) .Screen/x DEO2 ( yn* y* [addr+2*] )
|
||||
LIT2r 0000 INC2 GTH2k ?&yloop ( yn* y+1* [addr+2* 0*] )
|
||||
POP2 POP2 POP2r POP2r ( )
|
||||
JMP2r ( )
|
||||
|
||||
@y-point-to-row ( y* -> row* )
|
||||
#0010 LTH2k ?&y0 SUB2 #000c DIV2 .max-y LDZ2 !min &y0 POP2 POP2 #0000 JMP2r
|
||||
|
||||
@x-point-to-col ( x* -> col* )
|
||||
#0010 LTH2k ?&x0 SUB2 #0008 DIV2 .max-x LDZ2 !min &x0 POP2 POP2 #0000 JMP2r
|
||||
|
||||
@point-to-coord ( x* y* -> row* col* )
|
||||
DUP2 #0008 SUB2 min #000c DIV2 .max-y LDZ2 min SWP2 ( row=(y-8)/12* x* )
|
||||
DUP2 #0008 SUB2 min #03 SFT2 .max-x LDZ2 !min ( row* col=(x-8)/8* )
|
||||
y-point-to-row SWP2 !x-point-to-col
|
||||
|
||||
@start-selection ( -> )
|
||||
#01 .is-lit STZ ( )
|
||||
|
@ -895,8 +901,11 @@
|
|||
DUP #08 EQU ?read-bs
|
||||
DUP #09 EQU ?read-tab
|
||||
DUP #0a EQU ?read-nl
|
||||
DUP #0b EQU ?read-nl
|
||||
DUP #0c EQU ?read-nl
|
||||
DUP #0d EQU ?read-cr
|
||||
DUP #1b EQU ?read-esc
|
||||
POP BRK
|
||||
|
||||
@read-bel ( 07 -> BRK )
|
||||
POP .visual-bell LDZ #00 EQU ?&done
|
||||
|
|
Loading…
Reference in New Issue