diff --git a/blk/064 b/blk/064 index 28752d4..abad1c3 100644 --- a/blk/064 +++ b/blk/064 @@ -1,6 +1,8 @@ Disk BLK> -- a Address of the current block variable. +COPY s d -- Copy contents of s block to d block. +FLUSH -- Write current block to disk if dirty. LIST n -- Prints the contents of the block n on screen in the form of 16 lines of 64 columns. LOAD n -- Interprets Forth code from block n diff --git a/blk/466 b/blk/466 index d7b688a..6b1063e 100644 --- a/blk/466 +++ b/blk/466 @@ -2,10 +2,10 @@ BLK> @ BLK!* @ EXECUTE 0 BLKDTY ! ; - +: FLUSH BLKDTY @ IF BLK! THEN ; : BLK@ ( n -- ) + FLUSH DUP BLK> @ = IF DROP EXIT THEN - BLKDTY @ IF BLK! THEN DUP BLK> ! BLK@* @ EXECUTE ; diff --git a/blk/470 b/blk/470 index ebbcb7e..63dcc04 100644 --- a/blk/470 +++ b/blk/470 @@ -2,3 +2,6 @@ : LOADR 1+ SWAP DO I DUP . CRLF LOAD LOOP ; : WIPE BLK( 1024 0 FILL BLK!! ; + +( src dst -- ) +: COPY SWAP BLK@ BLK> ! BLK! ; diff --git a/emul/forth.bin b/emul/forth.bin index c2de2e4..2b950d3 100644 Binary files a/emul/forth.bin and b/emul/forth.bin differ