Compare commits

..

No commits in common. "9d4e9ef08dc3b9e831f16380dcf7220e14d4e408" and "a1b99275e69baf863a36d52e10da9af4b7cc8ad9" have entirely different histories.

5 changed files with 16 additions and 18 deletions

View File

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

View File

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

View File

@ -1,9 +1,9 @@
: X ( len -- , delete len chars after curpos )
EDPOS @ _cpos 2DUP + ( l a1 a1+l )
: E
FBUF _blen EDPOS @ _cpos 2DUP + ( l a1 a1+l )
SWAP _rbufsz MOVE ( l )
( get to next line - l )
DUP EDPOS @ 0xffc0 AND 0x40 + -^ _cpos ( l a )
SWAP 0 FILL
EDPOS @ 64 / _pln ;
: E FBUF _blen X ;
EDPOS @ 64 / _pln
;

View File

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

View File

@ -6,10 +6,7 @@
: $g ACC @ selblk 0acc ;
: $[ BLK> @ acc@ - selblk ;
: $] BLK> @ acc@ + selblk ;
: $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 ;
: $X acc@ X contents ;
: $I mode! 'I' EMIT 3 1 AT-XY I contents mode! SPC ;
: $h -1 cmv ; : $l 1 cmv ; : $k -64 cmv ; : $j 64 cmv ;
: $H 0acc EDPOS @ 0x3c0 AND EDPOS ! ;
: $L 0acc EDPOS @ 0x3f OR EDPOS ! ;