
CODE SET-PALETTE ( L / P / R / G / B )
   R0 19 # MOV,
   0 SWI,
   R1 R2 R3 R4 R5 POP,
   R0 R5 MOV,
   0 SWI,
   R0 R4 MOV,
   0 SWI,
   R0 R3 MOV,
   0 SWI,
   R0 R2 MOV,
   0 SWI,
   R0 R1 MOV,
   0 SWI,
   PC R14 MOV,
END-CODE

HEX
: INIT-PALETTE
   0 10 0 0 0 SET-PALETTE
   1 10 D0 B0 D0 SET-PALETTE
   2 10 B0 E0 30 SET-PALETTE
   3 10 E0 90 90 SET-PALETTE
   4 10 70 60 C0 SET-PALETTE
   5 10 B0 60 A0 SET-PALETTE
   6 10 90 F0 A0 SET-PALETTE
   7 10 F0 F0 F0 SET-PALETTE
   8 10 0 0 F0 SET-PALETTE
   9 10 E0 E0 0 SET-PALETTE
   A 10 0 C0 0 SET-PALETTE
   B 10 D0 0 0 SET-PALETTE
   C 10 20 C0 B0 SET-PALETTE
   D 10 50 80 0 SET-PALETTE
   E 10 F0 B0 0 SET-PALETTE
   F 10 0 B0 F0 SET-PALETTE
   0 18 70 70 70 SET-PALETTE
   1 19 0 F0 F0 SET-PALETTE
   2 19 0 0 90 SET-PALETTE
   3 19 F0 0 0 SET-PALETTE
   ;

DECIMAL
7 CONSTANT BLANK
7 CONSTANT BLACK
11 CONSTANT RED
10 CONSTANT GREEN
9 CONSTANT YELLOW
8 CONSTANT BLUE
5 CONSTANT MAGENTA
15 CONSTANT CYAN
0 CONSTANT WHITE

: ANGLE
   1 5 << OR
   ;

DEF-WALL WALL1
64 64 20 6 DEF-WALL-BLOCK WALL-BLOCK1
1 DEF-WALL-BLOCK-LIST WALL1-BLOCK-LIST

DEF-WALL WALL2
64 64 20 6 DEF-WALL-BLOCK WALL-BLOCK2
1 DEF-WALL-BLOCK-LIST WALL2-BLOCK-LIST

DEF-WALL WALL3
64 64 20 6 DEF-WALL-BLOCK WALL-BLOCK3
1 DEF-WALL-BLOCK-LIST WALL3-BLOCK-LIST

DEF-WALL WALL4
64 64 20 6 DEF-WALL-BLOCK WALL-BLOCK4
1 DEF-WALL-BLOCK-LIST WALL4-BLOCK-LIST

DEF-WALL WALL5
64 64 20 6 DEF-WALL-BLOCK WALL-BLOCK5
1 DEF-WALL-BLOCK-LIST WALL5-BLOCK-LIST

: WALL-BLOCK1-ROW1
   RED ANGLE 10 YELLOW ANGLE 10 RED ANGLE 10 YELLOW ANGLE 10
   RED ANGLE 10 YELLOW ANGLE 10 RED ANGLE 10 YELLOW ANGLE 10
   RED ANGLE 10 YELLOW ANGLE 10 RED ANGLE 10 YELLOW ANGLE 10
   RED ANGLE 10 YELLOW ANGLE 10 RED ANGLE 10 YELLOW ANGLE 10
   RED ANGLE 10 YELLOW ANGLE 10 RED ANGLE 10 YELLOW ANGLE 10
   ;

: WALL-BLOCK1-ROW2
   YELLOW ANGLE 10 RED ANGLE 10 YELLOW ANGLE 10 RED ANGLE 10
   YELLOW ANGLE 10 RED ANGLE 10 YELLOW ANGLE 10 RED ANGLE 10
   YELLOW ANGLE 10 RED ANGLE 10 YELLOW ANGLE 10 RED ANGLE 10
   YELLOW ANGLE 10 RED ANGLE 10 YELLOW ANGLE 10 RED ANGLE 10
   YELLOW ANGLE 10 RED ANGLE 10 YELLOW ANGLE 10 RED ANGLE 10
   ;

: WALL-BLOCK2-ROW1
   RED ANGLE 20 GREEN ANGLE 20 RED ANGLE 20 GREEN ANGLE 20
   RED ANGLE 20 GREEN ANGLE 20 RED ANGLE 20 GREEN ANGLE 20
   RED ANGLE 20 GREEN ANGLE 20 RED ANGLE 20 GREEN ANGLE 20
   RED ANGLE 20 GREEN ANGLE 20 RED ANGLE 20 GREEN ANGLE 20
   RED ANGLE 20 GREEN ANGLE 20 RED ANGLE 20 GREEN ANGLE 20
   ;

: WALL-BLOCK2-ROW2
   GREEN ANGLE 20 RED ANGLE 20 GREEN ANGLE 20 RED ANGLE 20
   GREEN ANGLE 20 RED ANGLE 20 GREEN ANGLE 20 RED ANGLE 20
   GREEN ANGLE 20 RED ANGLE 20 GREEN ANGLE 20 RED ANGLE 20
   GREEN ANGLE 20 RED ANGLE 20 GREEN ANGLE 20 RED ANGLE 20
   GREEN ANGLE 20 RED ANGLE 20 GREEN ANGLE 20 RED ANGLE 20
   ;

: WALL-BLOCK3-ROW1
   BLUE ANGLE 30 GREEN ANGLE 30 BLUE ANGLE 30 GREEN ANGLE 30
   BLUE ANGLE 30 GREEN ANGLE 30 BLUE ANGLE 30 GREEN ANGLE 30
   BLUE ANGLE 30 GREEN ANGLE 30 BLUE ANGLE 30 GREEN ANGLE 30
   BLUE ANGLE 30 GREEN ANGLE 30 BLUE ANGLE 30 GREEN ANGLE 30
   BLUE ANGLE 30 GREEN ANGLE 30 BLUE ANGLE 30 GREEN ANGLE 30
   ;

: WALL-BLOCK3-ROW2
   GREEN ANGLE 30 BLUE ANGLE 30 GREEN ANGLE 30 BLUE ANGLE 30
   GREEN ANGLE 30 BLUE ANGLE 30 GREEN ANGLE 30 BLUE ANGLE 30
   GREEN ANGLE 30 BLUE ANGLE 30 GREEN ANGLE 30 BLUE ANGLE 30
   GREEN ANGLE 30 BLUE ANGLE 30 GREEN ANGLE 30 BLUE ANGLE 30
   GREEN ANGLE 30 BLUE ANGLE 30 GREEN ANGLE 30 BLUE ANGLE 30
   ;

: WALL-BLOCK4-ROW1
   YELLOW ANGLE 40 CYAN ANGLE 40 YELLOW ANGLE 40 CYAN ANGLE 40
   YELLOW ANGLE 40 CYAN ANGLE 40 YELLOW ANGLE 40 CYAN ANGLE 40
   YELLOW ANGLE 40 CYAN ANGLE 40 YELLOW ANGLE 40 CYAN ANGLE 40
   YELLOW ANGLE 40 CYAN ANGLE 40 YELLOW ANGLE 40 CYAN ANGLE 40
   YELLOW ANGLE 40 CYAN ANGLE 40 YELLOW ANGLE 40 CYAN ANGLE 40
   ;

: WALL-BLOCK4-ROW2
   CYAN ANGLE 40 YELLOW ANGLE 40 CYAN ANGLE 40 YELLOW ANGLE 40
   CYAN ANGLE 40 YELLOW ANGLE 40 CYAN ANGLE 40 YELLOW ANGLE 40
   CYAN ANGLE 40 YELLOW ANGLE 40 CYAN ANGLE 40 YELLOW ANGLE 40
   CYAN ANGLE 40 YELLOW ANGLE 40 CYAN ANGLE 40 YELLOW ANGLE 40
   CYAN ANGLE 40 YELLOW ANGLE 40 CYAN ANGLE 40 YELLOW ANGLE 40
   ;

: WALL-BLOCK5-ROW1
   MAGENTA ANGLE 50 GREEN ANGLE 50 MAGENTA ANGLE 50 GREEN ANGLE 50
   MAGENTA ANGLE 50 GREEN ANGLE 50 MAGENTA ANGLE 50 GREEN ANGLE 50
   MAGENTA ANGLE 50 GREEN ANGLE 50 MAGENTA ANGLE 50 GREEN ANGLE 50
   MAGENTA ANGLE 50 GREEN ANGLE 50 MAGENTA ANGLE 50 GREEN ANGLE 50
   MAGENTA ANGLE 50 GREEN ANGLE 50 MAGENTA ANGLE 50 GREEN ANGLE 50
   ;

: WALL-BLOCK5-ROW2
   GREEN ANGLE 50 MAGENTA ANGLE 50 GREEN ANGLE 50 MAGENTA ANGLE 50
   GREEN ANGLE 50 MAGENTA ANGLE 50 GREEN ANGLE 50 MAGENTA ANGLE 50
   GREEN ANGLE 50 MAGENTA ANGLE 50 GREEN ANGLE 50 MAGENTA ANGLE 50
   GREEN ANGLE 50 MAGENTA ANGLE 50 GREEN ANGLE 50 MAGENTA ANGLE 50
   GREEN ANGLE 50 MAGENTA ANGLE 50 GREEN ANGLE 50 MAGENTA ANGLE 50
   ;

: CREATE-BLOCK1
   6 0 DO
      WALL-BLOCK1-ROW1 I WALL-BLOCK1 DEF-WALL-BLOCK-ROW
      WALL-BLOCK1-ROW2 I 1+ WALL-BLOCK1 DEF-WALL-BLOCK-ROW
   2 +LOOP
   ;

: CREATE-BLOCK2
   6 0 DO
      WALL-BLOCK2-ROW1 I WALL-BLOCK2 DEF-WALL-BLOCK-ROW
      WALL-BLOCK2-ROW2 I 1+ WALL-BLOCK2 DEF-WALL-BLOCK-ROW
   2 +LOOP
   ;

: CREATE-BLOCK3
   6 0 DO
      WALL-BLOCK3-ROW1 I WALL-BLOCK3 DEF-WALL-BLOCK-ROW
      WALL-BLOCK3-ROW2 I 1+ WALL-BLOCK3 DEF-WALL-BLOCK-ROW
   2 +LOOP
   ;

: CREATE-BLOCK4
   6 0 DO
      WALL-BLOCK4-ROW1 I WALL-BLOCK4 DEF-WALL-BLOCK-ROW
      WALL-BLOCK4-ROW2 I 1+ WALL-BLOCK4 DEF-WALL-BLOCK-ROW
   2 +LOOP
   ;

: CREATE-BLOCK5
   6 0 DO
      WALL-BLOCK5-ROW1 I WALL-BLOCK5 DEF-WALL-BLOCK-ROW
      WALL-BLOCK5-ROW2 I 1+ WALL-BLOCK5 DEF-WALL-BLOCK-ROW
   2 +LOOP
   ;

CREATE-BLOCK1
0 550 WALL-BLOCK1 WALL1-BLOCK-LIST 0 INSERT-LIST-ELT
WALL1-BLOCK-LIST WALL1 ATTACH-LIST

CREATE-BLOCK2
0 550 WALL-BLOCK2 WALL2-BLOCK-LIST 0 INSERT-LIST-ELT
WALL2-BLOCK-LIST WALL2 ATTACH-LIST

CREATE-BLOCK3
0 550 WALL-BLOCK3 WALL3-BLOCK-LIST 0 INSERT-LIST-ELT
WALL3-BLOCK-LIST WALL3 ATTACH-LIST

CREATE-BLOCK4
0 550 WALL-BLOCK4 WALL4-BLOCK-LIST 0 INSERT-LIST-ELT
WALL4-BLOCK-LIST WALL4 ATTACH-LIST

CREATE-BLOCK5
0 550 WALL-BLOCK5 WALL5-BLOCK-LIST 0 INSERT-LIST-ELT
WALL5-BLOCK-LIST WALL5 ATTACH-LIST

