Block buffer memory.
date 720301 o, 723014 o, 357202 o, 200 o,
umbilical 717736 o, 261322 o, 252214 o,
122571 o, 740000 o,
go 3B @b -if - a! @b ! go ; then a! @ !b go ; 40
init up b! go ; 43
3 d 7 r 0 u ether
- Fetch address from UP. Negative value indicates write, so invert it, set A to the address, fetch data from UP and store it to RAM, then jump back to go. If address is positive (meaning read from RAM) set A to the address, and return word from RAM. Then jump to go.
- Set register B, and jump to go.
Chuck invented this method of linking several nodes together to create a large memory. Each node in the chain reserves 47 words of RAM (59 in the last node) as data storage. Word go reads an address from entry port (UP). A fast and easy way of choosing between write and read operations (using -if instruction) is to invert the address for write.
Since this is the last node in the chain we directly use it (upon inversion for write operation) to write to or read from our RAM. Data read from RAM are immediately sent back where the request came from (UP port).
Access to such a memory is transparent from the outside. We do not need to care how many nodes the request travels through, provided the longest delay is still within acceptable limits.
Block buffer memory is filled with intro screen out of reset.