Skip to content

Instantly share code, notes, and snippets.

@s-ol
Last active December 23, 2015 15:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s-ol/6659116 to your computer and use it in GitHub Desktop.
Save s-ol/6659116 to your computer and use it in GitHub Desktop.
LTFU_FCVP-9
■ ■
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
▌▐█ ▀▀█▀▀▀█▀▀▀█▌▐█ ▐
▌ █ █ █▀ █ █ ▐
▌ █▄▄▄█ █ ▀██▀ ▐
█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
■ ■
L E T H E M F I N D . U S
D C P U - 1 6 S E C T I O N
HARDWARE INFO
Name: FCVP-9 - Floating Cuboid Volume Projector revision 9
Hardware ID: 0x46435650 (version 0x0009)
Manufacturer: 0x4c544655 (LTFU)
DESCRIPTION
Latest scientific Research has shown that the world is, in fact, made up of small little blocks.
We feel that noone should be forced to use such unfitting devices as the SPED-3 to visualize their
multi-dimensional data, so we felt obliged to make a technological advance.
The FCVP-9 is capable of displaying up to 768 cuboids in 16 different colors.
It projects into a 1x2x0.75m volume (8x16x6 cubes), each cube has an edge length of 12.5cm.
INTERRUPT BEHAVIOUR
Depending on the value of the A register had when you triggered the interrupt, the FCVP-9 will react differently.
A Behaviour
0 SET_BUFFER: Change buffer mode depending on B.
B Action
0 Turn off
0xffff Use internal buffer
?? Use 192w from B as the buffer - see below
1 LOAD_BUFFER: Copy 192w from memory at B to the internal buffer. Loading happens at 32w per second,
meaning the DCPU is halted for 6 seconds. Cubes appear one-by-one in the same time.
2 DUMP_BUFFER: Copy 192w from the internal buffer to memory starting at B. Halts DCPU for 128 cycles
3 LOAD_PALETTE: Load the 16-word palette ram from B
4 DUMP_PALETTE: Dump the 16 word palette RAM to B. Halts DCPU for 16 cycles
BUFFER LAYOUT
The buffer consists of 192 words of memory. Each word describes the look of four cubes:
aaaabbbbccccdddd a[,b,c,d] - palette index for cube a[,b,c,d]
Cubes are being filled starting in the bottom-left corner, the last cube of the second word descibes the appearance
of the rightmost cube (along the 8-cube edge). Cubes are then filled likewise until the maximum height (6) is reached
with the 12th word, at which point the remaining space is filled slice-by-slice until the lower face of the longest
edge is reached with the 16th slice and the 192th word of memory.
BUFFER MODES
The FCVP-9 can read it's data from (device-)internal or external memory. When operating with internal memory all
updates need to be pushed to the FCVP-9 via the LOAD_BUFFER interrupt. In external buffer mode the FCVP-9 continuosly
scans the buffer starting from the address set with the SET_BUFFER command. In this mode LOAD_BUFFER interrupts will
be handled but no difference will be visible. The FCVP-9 scans the external buffer at the same speed it loads the
internal buffer with, meaning the same cube will be updated every 6 seconds.
PALETTE LAYOUT
Every word of the palette describes the appearance of a color:
rrrrggggbbbbaaaa
where r,g and b are the red, green and blue parts of the color and a is the alpha value.
An alpha value of 1111 (15) means the cubes are fully opaque, whilst 0 makes them invisible.
The default palette is like the LEM1802's, black being fully translucent and everything else at 25%.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment