Add usage guide section about disk blocks
This commit is contained in:
parent
986a40d3e2
commit
3c2e0dd9df
2
blk/003
2
blk/003
@ -13,4 +13,4 @@ Contents
|
|||||||
4 Number literals 6 Compilation vs meta-comp.
|
4 Number literals 6 Compilation vs meta-comp.
|
||||||
8 Interpreter I/O 11 Signed-ness
|
8 Interpreter I/O 11 Signed-ness
|
||||||
14 Addressed devices 17 DOES>
|
14 Addressed devices 17 DOES>
|
||||||
|
18 Disk blocks
|
||||||
|
16
blk/018
Normal file
16
blk/018
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
Disk blocks
|
||||||
|
|
||||||
|
Disk blocks are Collapse OS' main access to permanent storage.
|
||||||
|
The system is exceedingly simple: blocks are contiguous
|
||||||
|
chunks of 1024 bytes each living on some permanent media such
|
||||||
|
as floppy disks or SD cards. They are mostly used for text,
|
||||||
|
either informational or source code, which is organized into
|
||||||
|
16 lines of 64 characters each.
|
||||||
|
|
||||||
|
Blocks are referred to by number, 0-indexed. They are read
|
||||||
|
through BLK@ and written through BLK!. When a block is read,
|
||||||
|
its 1024 bytes content is copied to an in-memory buffer
|
||||||
|
starting at BLK( and ending at BLK). Those read/write
|
||||||
|
operations are often implicit. For example, LIST calls BLK@.
|
||||||
|
|
||||||
|
(cont.)
|
11
blk/019
Normal file
11
blk/019
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
When a word modifies the buffer, it sets the buffer as dirty
|
||||||
|
by calling BLK!!. BLK@ checks, before it reads its buffer,
|
||||||
|
whether the current buffer is dirty and implicitly calls BLK!
|
||||||
|
when it is.
|
||||||
|
|
||||||
|
The index of the block currently in memory is kept in BLK>.
|
||||||
|
|
||||||
|
Many blocks contain code. That code can be interpreted through
|
||||||
|
LOAD. Programs stored in blocks frequently have "loader blocks"
|
||||||
|
that take care of loading all blocks relevant to the program.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user