diff --git a/blk/000 b/blk/000 index 2bb121c..af5a917 100644 --- a/blk/000 +++ b/blk/000 @@ -3,7 +3,8 @@ Collapse OS file system This is a Forth-style filesystems which is very simple. It is a list of 1024 bytes block, organised in 16 lines of 64 columns each. You refer to blocks by numbers. You show them with LIST. -You interpret them with LOAD. +You interpret them with LOAD. For a convenient way to browse +blocks, see Block Explorer at B100. Conventions: When you see "(cont.)" at the bottom right of a block, it means that the next block continues the same kind of diff --git a/blk/100 b/blk/100 index 8680085..32059f1 100644 --- a/blk/100 +++ b/blk/100 @@ -7,4 +7,4 @@ USAGE: When loaded, the Forth interpreter is replaced by the explorer interpreter. Typing "Q" quits the program. Typing a decimal number followed by space or return lists the -contents of that block. +contents of that block. B for previous block, N for next. diff --git a/blk/102 b/blk/102 index 6e9ec68..aa7598f 100644 --- a/blk/102 +++ b/blk/102 @@ -1,2 +1,14 @@ -: foo ." Hello world! " 42 . ; -foo +103 LOAD +VARIABLE _K + +: PGM + 100 _LIST + BEGIN + KEY + DUP 'Q' = IF DROP EXIT THEN + DUP 58 ( '9'+1 ) < IF _NUM + ELSE + _K ! _K (find) IF EXECUTE THEN + THEN + AGAIN +; PGM diff --git a/blk/103 b/blk/103 index 2d94bff..d99ee77 100644 --- a/blk/103 +++ b/blk/103 @@ -1 +1,9 @@ -42 . 102 LOAD 43 . +VARIABLE ACC +: _LIST ." Block " DUP . CRLF LIST ; +: _NUM + ACC @ SWAP _pdacc + IF _LIST 0 THEN + ACC ! +; +: B BLK> @ 1- DUP BLK> ! _LIST ; +: N BLK> @ 1+ DUP BLK> ! _LIST ;