etherforth_logo

Node 415

Block buffer memory.

Source code

usb node 315 node 415
415 last buffer
intro screen
date 720301 o, 723014 o, 357202 o,    200 o,
umbilical 717736 o, 261322 o, 252214 o,
122571 o, 740000 o,

59 org
go 3B @b -if - a! @b ! go ; then a! @ !b go ; 40

init up b! go ; 43

3 d 7 r 0 u ether

Definitions

go
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.

init
Set register B, and jump to go.

Description

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.