VE: Add F and E

This commit is contained in:
Virgil Dupras 2020-06-05 13:54:45 -04:00
parent a1b99275e6
commit 6212a08866
4 changed files with 11 additions and 12 deletions

View File

@ -1,4 +1,4 @@
: F : _F ( F without _pln. used in VE )
FBUF _type FBUF EDPOS @ _cpos ( a1 a2 ) FBUF _type FBUF EDPOS @ _cpos ( a1 a2 )
BEGIN BEGIN
C@+ ROT ( a2+1 c2 a1 ) C@+ ROT ( a2+1 a1+1 c1 c2 ) C@+ ROT ( a2+1 c2 a1 ) C@+ ROT ( a2+1 a1+1 c1 c2 )
@ -6,7 +6,5 @@
TUCK C@ 0xd = ( a1 a2 f1 ) TUCK C@ 0xd = ( a1 a2 f1 )
OVER BLK) = OR ( a1 a2 f1|f2 ) OVER BLK) = OR ( a1 a2 f1|f2 )
UNTIL UNTIL
DUP BLK) < IF BLK( - FBUF + -^ EDPOS ! THEN DUP BLK) < IF BLK( - FBUF + -^ EDPOS ! THEN DROP ;
EDPOS @ 64 / _pln DROP : F _F EDPOS @ 64 / _pln ;
;

View File

@ -3,7 +3,7 @@
: _rbufsz ( size of linebuf to the right of curpos ) : _rbufsz ( size of linebuf to the right of curpos )
EDPOS @ 64 MOD 63 -^ ; EDPOS @ 64 MOD 63 -^ ;
: i COMPILE I ; IMMEDIATE ( save overshadowed ) : i COMPILE I ; IMMEDIATE ( save overshadowed )
: I : _I ( I without _pln. used in VE )
IBUF _type _rbufsz IBUF _blen 2DUP > IF IBUF _type _rbufsz IBUF _blen 2DUP > IF
TUCK - ( ilen chars-to-move ) TUCK - ( ilen chars-to-move )
SWAP EDPOS @ _cpos 2DUP + ( ctm ilen a a+ilen ) SWAP EDPOS @ _cpos 2DUP + ( ctm ilen a a+ilen )
@ -11,6 +11,5 @@
NIP ( ilen ) NIP ( ilen )
ELSE DROP ( ilen becomes rbuffsize ) ELSE DROP ( ilen becomes rbuffsize )
THEN THEN
DUP IBUF EDPOS @ _cpos ROT MOVE ( ilen ) DUP IBUF EDPOS @ _cpos ROT MOVE ( ilen ) EDPOS +! BLK!! ;
BLK!! EDPOS +! EDPOS @ 64 / _pln : I _I EDPOS @ 64 / _pln ;
;

View File

@ -2,8 +2,8 @@
'w' moves forward by a word. 'W' moves backward by a word. 'w' moves forward by a word. 'W' moves backward by a word.
'I' inserts text by calling the "I" command from the Block 'I', 'F' and 'E' invoke the corresponding command from the
editor. Block Editor (B100). Refer to documentation there.
'R' goes into replace mode at current cursor position. 'R' goes into replace mode at current cursor position.
Following keystrokes replace current character and advance Following keystrokes replace current character and advance

View File

@ -6,7 +6,9 @@
: $g ACC @ selblk 0acc ; : $g ACC @ selblk 0acc ;
: $[ BLK> @ acc@ - selblk ; : $[ BLK> @ acc@ - selblk ;
: $] BLK> @ acc@ + selblk ; : $] BLK> @ acc@ + selblk ;
: $I mode! 'I' EMIT 3 1 AT-XY I contents mode! SPC ; : $I mode! 'I' EMIT 3 1 AT-XY _I contents mode! SPC ;
: $F mode! 'F' EMIT 3 2 AT-XY _F setpos mode! SPC ;
: $E E contents ;
: $h -1 cmv ; : $l 1 cmv ; : $k -64 cmv ; : $j 64 cmv ; : $h -1 cmv ; : $l 1 cmv ; : $k -64 cmv ; : $j 64 cmv ;
: $H 0acc EDPOS @ 0x3c0 AND EDPOS ! ; : $H 0acc EDPOS @ 0x3c0 AND EDPOS ! ;
: $L 0acc EDPOS @ 0x3f OR EDPOS ! ; : $L 0acc EDPOS @ 0x3f OR EDPOS ! ;