( CONNECTIVITY TESTING )                                        HEX                                                             : ZAM NCOLS 0 DO NROWS 0 DO J I                                 COMP:XY J I NODY NODE! J I NODX NODE! LOOP LOOP                 ST-X Src NODX NODE!                                             ST-Y Src NODY NODE!                                             81 Src NODMSK NODE^ B!                                          NROWS 0 DO 0 I NODX NODE@ 0FF70 <                               IF 0FF70 0 I NODX NODE! THEN                                    0A I NODX NODE@ 8F >                                            IF 8F 0A I NODX NODE! THEN LOOP ;                               : START:CHAMBER?                                                2DUP START-ROW = IF START-COL = IF 2DROP 0 ELSE 1 THEN          ELSE DROP 1 THEN ;                                              DECIMAL -->                                                                                                                     ( CREATE MAZE )                                                 HEX ( MAKE NODE ENTRY )                                         SUBR MN-L H PUSH, B PUSH,                                       A B MOV, 0 C MVI,                                               BEGIN, 0 B BIT, 0<>, IF,                                        B PUSH, D PUSH, addpath CALL, D POP, B POP, THEN,               B RRCR, C INR, C A MOV, 2 CPI, 0=, END,                         E INR, E A MOV, NCOLS CPI, CY~, IF, 0 E MVI, D INR, THEN,       B POP, H POP, RET,                                              DECIMAL                                                         -->                                                                                                                                                                                                                                                                                                                                                                                             ( HOSTAGE HIDER AND MAZE GENERATOR )                            HEX                                                             CODE flm                                                        ( FIRST DEAL WITH HOSTAGE STUFF )                               H POP, ( XVSA ) D POP, ( HOSTAGE TABLE )                        B PUSH, D PUSH, TOTAL-HOSTAGES DO,                              D LDAX, A C MOV, 0F ANI, A M MOV, H INX,                        C A MOV, RRC, RRC, RRC, RRC, 0F ANI, A M MOV, H INX,            H INX, H INX, H INX, H INX,  D INX, LOOP,                       H POP, 0B D LXI, D DAD, 0 D LXI, ( ADVANCE TO NODE AREA )       NNODES 2/ DO, M A MOV, RRC, RRC, RRC, RRC, MN-L CALL,           M A MOV, MN-L CALL,                                             H INX, LOOP, B POP, NEXT                                        : FILMAT DUP MZP ! 0 XVSA flm ;                                 DECIMAL -->                                                                                                                     ( MAZE TABLE )                                                  XC? IFTRUE --> IFEND                                            HEX                                                             DATA MTMD 1 B, ( # OF MAZES )                                   02 B, 51 B, 92 B, ( HOSPOS )                                    XC? IFTRUE 3 B, OTHERWISE 1 B, IFEND ( # OF SPIDERS )           50 B, 00 B, 0A0 B, 70 B, 30 B, ( SPIDER LOCATIONS )             0 , ( GROWL ROUTINE )                                           ( AND THE MAZE DATA )                                           13 B, 22 B, 32 B, 32 B, 23 B,                                   31 B, 21 B, 33 B, 33 B, 33 B, 03 B,                             03 B, 21 B, 12 B, 31 B, 03 B, 21 B,                             0AF B, FF B, FF B, 5F B, 0AF B,                                 11 B, 21 B, 32 B, 33 B, 03 B,                                   10 B, 22 B, 20 B, 22 B, 20 B, 02 B,                             DECIMAL -->                                                     ( MAZE LOOKER UPPER ) DECIMAL                                   XC? IFTRUE                                                      ( MAZE TABLES )                                                 ( DATA MZTTBL MTMD , MTMD , MTMD , MTMD , )                     DATA MAZELST 0 , ( DANGEROUS )                                  : MAKE:MAZE CL:NM ZAM                                           GA# B@ DIF B@ 5 > +                                             2 MIN 2* MAZELST @ + @ DUP                                      B@ ?M URND 44 * 1+ + FILMAT ;                                   OTHERWISE                                                       ." SLEAZED MAZE STUFF"                                          : MAKE:MAZE CL:NM ZAM MTMD 1+ FILMAT ; IFEND                    -->                                                                                                                                                                                                                                                             