new-experiment 128 by 128 space 8 K create-buffer cam6buf "" diagrel-cam6.pat cam6buf load-buffer 128 128 * create-buffer cam8buf : cam6-bit@ (s bit.addr -- bit ) 8 /mod cam6buf buffer + c@ swap >> 1 and ; : cam6-block@ (s bit# block.x block.y -- bit ) rot swap 2* over 1 >> + X 2* * -rot 1 and swap 2* + + cam6-bit@ ; : cam8-bit! (s val bit# cell.x cell.y -- ) \ assumes don't have to store 0's X * + cam8buf buffer swap wa+ -rot << ( addr mask ) over w@ or swap w! ; : convert>cam8 128 0 do 128 0 do 4 0 do i j k cam6-block@ i {{ 0 2 8 a }} j k cam8-bit! i j k Y + cam6-block@ i {{ 4 6 c e }} j k cam8-bit! loop loop loop ; convert>cam8 "" diagrel-2x2x4.pat cam8buf save-buffer