mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-30 20:48:06 +11:00
ed: free some blocks for the docs
This commit is contained in:
parent
64ce8ab3e9
commit
f90e03b0cb
2
blk/100
2
blk/100
@ -1,7 +1,7 @@
|
|||||||
Block editor
|
Block editor
|
||||||
|
|
||||||
This is an application to conveniently browse the contents of
|
This is an application to conveniently browse the contents of
|
||||||
the disk blocks and edit them. You can load it with "102 LOAD".
|
the disk blocks and edit them. You can load it with "105 LOAD".
|
||||||
|
|
||||||
Browse mode: If you execute BROWSE, the Forth interpreter is
|
Browse mode: If you execute BROWSE, the Forth interpreter is
|
||||||
replaced by browser's loop. Typing "Q" quits the browser.
|
replaced by browser's loop. Typing "Q" quits the browser.
|
||||||
|
14
blk/102
14
blk/102
@ -1,14 +0,0 @@
|
|||||||
'? CASE NOT [IF] 51 52 LOADR+ [THEN] DROP ( B152-153 )
|
|
||||||
'? FILL NOT [IF] 53 LOAD+ [THEN] DROP ( B155 )
|
|
||||||
1 7 LOADR+
|
|
||||||
: BROWSE
|
|
||||||
0 ACC ! L
|
|
||||||
BEGIN
|
|
||||||
KEY CASE
|
|
||||||
'Q' OF EXIT ENDOF
|
|
||||||
'B' OF B ENDOF
|
|
||||||
'N' OF N ENDOF
|
|
||||||
_NUM
|
|
||||||
ENDCASE
|
|
||||||
AGAIN
|
|
||||||
;
|
|
16
blk/103
16
blk/103
@ -1,16 +0,0 @@
|
|||||||
CREATE ACC 0 ,
|
|
||||||
: _LIST ." Block " DUP . NL LIST ;
|
|
||||||
: _NUM
|
|
||||||
ACC @ SWAP _pdacc
|
|
||||||
IF _LIST 0 THEN
|
|
||||||
ACC !
|
|
||||||
;
|
|
||||||
: L BLK> @ _LIST ;
|
|
||||||
: B BLK> @ 1- BLK@ L ;
|
|
||||||
: N BLK> @ 1+ BLK@ L ;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
13
blk/104
13
blk/104
@ -1,13 +0,0 @@
|
|||||||
( Cursor position in buffer. EDPOS/64 is line number )
|
|
||||||
CREATE EDPOS 0 ,
|
|
||||||
CREATE IBUF 64 ALLOT0
|
|
||||||
CREATE FBUF 64 ALLOT0
|
|
||||||
: _cpos BLK( + ;
|
|
||||||
: _lpos 64 * _cpos ;
|
|
||||||
: _pln ( lineno -- )
|
|
||||||
DUP _lpos DUP 64 + SWAP DO ( lno )
|
|
||||||
I EDPOS @ _cpos = IF '^' EMIT THEN
|
|
||||||
I C@ DUP 0x20 < IF DROP 0x20 THEN
|
|
||||||
EMIT
|
|
||||||
LOOP ( lno ) 1+ . ;
|
|
||||||
: _zbuf 64 0 FILL ; ( buf -- )
|
|
26
blk/105
26
blk/105
@ -1,12 +1,14 @@
|
|||||||
: _type ( buf -- )
|
'? CASE NOT [IF] 48 49 LOADR+ [THEN] DROP ( B153-154 )
|
||||||
C< DUP 0xd = IF 2DROP EXIT THEN SWAP DUP _zbuf ( c a )
|
'? FILL NOT [IF] 50 LOAD+ [THEN] DROP ( B155 )
|
||||||
BEGIN ( c a ) C!+ C< TUCK 0x0d = UNTIL ( c a ) C! ;
|
1 7 LOADR+
|
||||||
( user-facing lines are 1-based )
|
: BROWSE
|
||||||
: T 1- DUP 64 * EDPOS ! _pln ;
|
0 ACC ! L
|
||||||
: P IBUF _type IBUF EDPOS @ _cpos 64 MOVE BLK!! ;
|
BEGIN
|
||||||
: _mvln+ ( ln -- move ln 1 line down )
|
KEY CASE
|
||||||
DUP 14 > IF DROP EXIT THEN
|
'Q' OF EXIT ENDOF
|
||||||
_lpos DUP 64 + 64 MOVE ;
|
'B' OF B ENDOF
|
||||||
: _mvln- ( ln -- move ln 1 line up )
|
'N' OF N ENDOF
|
||||||
DUP 14 > IF DROP 15 _lpos _zbuf
|
_NUM
|
||||||
ELSE 1+ _lpos DUP 64 - 64 MOVE THEN ;
|
ENDCASE
|
||||||
|
AGAIN
|
||||||
|
;
|
||||||
|
21
blk/106
21
blk/106
@ -1,5 +1,16 @@
|
|||||||
: _U ( U without P, used in VE )
|
CREATE ACC 0 ,
|
||||||
15 EDPOS @ 64 / - 0 DO
|
: _LIST ." Block " DUP . NL LIST ;
|
||||||
14 I - _mvln+
|
: _NUM
|
||||||
LOOP ;
|
ACC @ SWAP _pdacc
|
||||||
: U _U P ;
|
IF _LIST 0 THEN
|
||||||
|
ACC !
|
||||||
|
;
|
||||||
|
: L BLK> @ _LIST ;
|
||||||
|
: B BLK> @ 1- BLK@ L ;
|
||||||
|
: N BLK> @ 1+ BLK@ L ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
23
blk/107
23
blk/107
@ -1,10 +1,13 @@
|
|||||||
: _F ( F without _type and _pln. used in VE )
|
( Cursor position in buffer. EDPOS/64 is line number )
|
||||||
FBUF EDPOS @ _cpos 1+ ( a1 a2 )
|
CREATE EDPOS 0 ,
|
||||||
BEGIN
|
CREATE IBUF 64 ALLOT0
|
||||||
C@+ ROT ( a2+1 c2 a1 ) C@+ ROT ( a2+1 a1+1 c1 c2 )
|
CREATE FBUF 64 ALLOT0
|
||||||
= NOT IF DROP FBUF THEN ( a2 a1 )
|
: _cpos BLK( + ;
|
||||||
TUCK C@ 0xd = ( a1 a2 f1 )
|
: _lpos 64 * _cpos ;
|
||||||
OVER BLK) = OR ( a1 a2 f1|f2 )
|
: _pln ( lineno -- )
|
||||||
UNTIL ( a1 a2 )
|
DUP _lpos DUP 64 + SWAP DO ( lno )
|
||||||
DUP BLK) < IF BLK( - FBUF + -^ EDPOS ! ELSE DROP THEN ;
|
I EDPOS @ _cpos = IF '^' EMIT THEN
|
||||||
: F FBUF _type _F EDPOS @ 64 / _pln ;
|
I C@ DUP 0x20 < IF DROP 0x20 THEN
|
||||||
|
EMIT
|
||||||
|
LOOP ( lno ) 1+ . ;
|
||||||
|
: _zbuf 64 0 FILL ; ( buf -- )
|
||||||
|
27
blk/108
27
blk/108
@ -1,15 +1,12 @@
|
|||||||
: _blen ( buf -- length of str in buf )
|
: _type ( buf -- )
|
||||||
DUP BEGIN C@+ EOL? UNTIL -^ 1- ;
|
C< DUP 0xd = IF 2DROP EXIT THEN SWAP DUP _zbuf ( c a )
|
||||||
: _rbufsz ( size of linebuf to the right of curpos )
|
BEGIN ( c a ) C!+ C< TUCK 0x0d = UNTIL ( c a ) C! ;
|
||||||
EDPOS @ 64 MOD 63 -^ ;
|
( user-facing lines are 1-based )
|
||||||
: i COMPILE I ; IMMEDIATE ( save overshadowed )
|
: T 1- DUP 64 * EDPOS ! _pln ;
|
||||||
: _I ( I without _pln and _type. used in VE )
|
: P IBUF _type IBUF EDPOS @ _cpos 64 MOVE BLK!! ;
|
||||||
_rbufsz IBUF _blen 2DUP > IF
|
: _mvln+ ( ln -- move ln 1 line down )
|
||||||
TUCK - ( ilen chars-to-move )
|
DUP 14 > IF DROP EXIT THEN
|
||||||
SWAP EDPOS @ _cpos 2DUP + ( ctm ilen a a+ilen )
|
_lpos DUP 64 + 64 MOVE ;
|
||||||
3 PICK MOVE- ( ctm ilen )
|
: _mvln- ( ln -- move ln 1 line up )
|
||||||
NIP ( ilen )
|
DUP 14 > IF DROP 15 _lpos _zbuf
|
||||||
ELSE DROP ( ilen becomes rbuffsize )
|
ELSE 1+ _lpos DUP 64 - 64 MOVE THEN ;
|
||||||
THEN
|
|
||||||
DUP IBUF EDPOS @ _cpos ROT MOVE ( ilen ) EDPOS +! BLK!! ;
|
|
||||||
: I IBUF _type _I EDPOS @ 64 / _pln ;
|
|
||||||
|
14
blk/109
14
blk/109
@ -1,9 +1,5 @@
|
|||||||
: X ( len -- , delete len chars after curpos )
|
: _U ( U without P, used in VE )
|
||||||
EDPOS @ _cpos 2DUP + ( l a1 a1+l )
|
15 EDPOS @ 64 / - 0 DO
|
||||||
SWAP _rbufsz MOVE ( l )
|
14 I - _mvln+
|
||||||
( get to next line - l )
|
LOOP ;
|
||||||
DUP EDPOS @ 0xffc0 AND 0x40 + -^ _cpos ( l a )
|
: U _U P ;
|
||||||
SWAP 0 FILL
|
|
||||||
EDPOS @ 64 / _pln ;
|
|
||||||
: E FBUF _blen X ;
|
|
||||||
|
|
||||||
|
10
blk/110
Normal file
10
blk/110
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
: _F ( F without _type and _pln. used in VE )
|
||||||
|
FBUF EDPOS @ _cpos 1+ ( a1 a2 )
|
||||||
|
BEGIN
|
||||||
|
C@+ ROT ( a2+1 c2 a1 ) C@+ ROT ( a2+1 a1+1 c1 c2 )
|
||||||
|
= NOT IF DROP FBUF THEN ( a2 a1 )
|
||||||
|
TUCK C@ 0xd = ( a1 a2 f1 )
|
||||||
|
OVER BLK) = OR ( a1 a2 f1|f2 )
|
||||||
|
UNTIL ( a1 a2 )
|
||||||
|
DUP BLK) < IF BLK( - FBUF + -^ EDPOS ! ELSE DROP THEN ;
|
||||||
|
: F FBUF _type _F EDPOS @ 64 / _pln ;
|
15
blk/111
Normal file
15
blk/111
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
: _blen ( buf -- length of str in buf )
|
||||||
|
DUP BEGIN C@+ EOL? UNTIL -^ 1- ;
|
||||||
|
: _rbufsz ( size of linebuf to the right of curpos )
|
||||||
|
EDPOS @ 64 MOD 63 -^ ;
|
||||||
|
: i COMPILE I ; IMMEDIATE ( save overshadowed )
|
||||||
|
: _I ( I without _pln and _type. used in VE )
|
||||||
|
_rbufsz IBUF _blen 2DUP > IF
|
||||||
|
TUCK - ( ilen chars-to-move )
|
||||||
|
SWAP EDPOS @ _cpos 2DUP + ( ctm ilen a a+ilen )
|
||||||
|
3 PICK MOVE- ( ctm ilen )
|
||||||
|
NIP ( ilen )
|
||||||
|
ELSE DROP ( ilen becomes rbuffsize )
|
||||||
|
THEN
|
||||||
|
DUP IBUF EDPOS @ _cpos ROT MOVE ( ilen ) EDPOS +! BLK!! ;
|
||||||
|
: I IBUF _type _I EDPOS @ 64 / _pln ;
|
9
blk/112
Normal file
9
blk/112
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
: X ( len -- , delete len chars after curpos )
|
||||||
|
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 ;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user