( PLAYER HOSTAGE INTERFACE JUNK )                               SUBR dishos 0 H LXI, PLYRV AHEAD + SHLD,                        PLYRV BEHIND + SHLD, A XRA, Hctr STA, 0 HOSTAB H LXI,           BEGIN, M E MOV, H INX, M D MOV, H INX, D A MOV, E ORA, 0<>,     WHILE, XCHG, OBJSV B LXI, B DAD, M A MOV, HSATP CPI, 0=, IF,    HSFREE M MVI, ASSMSV OBJSV - B LXI, B DAD, ASNOT M MVI,         MYFLAG ASSMSV - B LXI, B DAD, 1 M MVI,                          BEHIND MYFLAG - B LXI, B DAD, A XRA, A M MOV, H INX, A M MOV,   H INX, A M MOV, H INX, A M MOV, THEN, XCHG, REPEAT, RET,         CODE DISHOS B PUSH, dishos CALL, B POP, NEXT                   -->                                                                                                                                                                                                                                                                                                                                                                                             ( PLAYER HOSTAGE INTERFACE JUNK )                               SUBR cutup Y PUSHX, X POPX,                                     BEGIN, Hctr H LXI, M DCR, BEHIND X E LDX, BEHIND 1+ X D LDX,    A XRA, A BEHIND X STX, A BEHIND 1+ X STX, A AHEAD X STX,        A AHEAD 1+ X STX,                                               D A MOV, E ORA, 0<>, WHILE,                                     D PUSH, X POPX, HSFREE OBJSV X MVIX,                            ASNOT ASSMSV X MVIX, ( AND UNASSIM )                            1 MYFLAG X MVIX, REPEAT, RET, -->                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ( FREE HOSTAGES FROM MONSTER )                                  CODE FREM B PUSH, 0 H LXI, PLYRV AHEAD + SHLD,                  PLYRV BEHIND + SHLD, A XRA, Hctr STA, 0 HOSTAB H LXI,           BEGIN, M E MOV, H INX, M D MOV, H INX, D A MOV, E ORA, 0<>,     WHILE, XCHG, OBJSV B LXI, B DAD, M A MOV, HSATM CPI, 0=, IF,    HSFREE M MVI, ASSMSV OBJSV - B LXI, B DAD, ASNOT M MVI,         MYFLAG ASSMSV - B LXI, B DAD, 1 M MVI,                          BEHIND MYFLAG - B LXI, B DAD, A XRA, A M MOV, H INX, A M MOV,   H INX, A M MOV, H INX, A M MOV, THEN, XCHG, REPEAT,             B POP, NEXT                                                     -->                                                                                                                                                                                                                                                                                                                                                                                             ( HOSTAGE TABLE, HOSTAGE INTERCEPT CHECKER )                    ( CHECK HOSTAGE INTERCEPT WITH MONSTERS )                       HEX ( HOSTAGES INTERCEPT CHECKER, RUNS AS HOOK )                SUBR HOS-MON? FREEZE? CALL, RNZ, OBJSV Y A LDX, HSATP CPI, RNZ, P-S LDA, A DCR, 2 CPI, RNC, ( MAKE SURE PLAYER IN MAZE )        EXX, 0280 B LXI, PX-M CALL, ( WIDER WINDOW FOR MON - HOS )      0<>, IF, 1 MYFLAG Y MVIX, ( SET ME EATEN )                      ASNOT ASSMSV Y MVIX, ( SET UNASSIMILATED )                      X PUSHX, Y PUSHX, D POP, B POP,                                 XC? IFTRUE JAWSV H LXI, A ANA, B DSBC,                          OTHERWISE 1 A MVI, A ANA, IFEND                                 0=, IF, HSFREE OBJSV Y MVIX, XC? IFTRUE chomp-s CALL, IFEND     ELSE, HSATM OBJSV Y MVIX, MSSNA OBJSV X MVIX,                   1 MYFLAG X MVIX, B H MOV, C L MOV, FUZH CALL, THEN,             X PUSHX, cutup CALL, X POPX, HALTNOW CALL,                      THEN, EXX, RET, DECIMAL -->                                     ( UNLINK ROUTINE )                                              CODE UNLINK Y PUSHX, vaddr LIYD, AHEAD Y E LDX,                 AHEAD 1+ Y D LDX, D PUSH, XTIX,                                 A XRA, A AHEAD Y STX, A AHEAD 1+ Y STX,                         A AHEAD X STX, A AHEAD 1+ X STX, A DRPO X STX,                  A BEHIND Y STX, A BEHIND 1+ Y STX,                              A BEHIND X STX, A BEHIND 1+ X STX, X POPX, Y POPX, NEXT         -->                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ( HOSTAGE INDEXER GOODIES )                                     : I:H V#L * HOSV1 SWAP - ;                                      : HOS#? HOSV1 SWAP - V#L / ;                                                                                                    ( CALCULATE POSITION ON FREED HOSTAGE LINE )                    : FH-P -16 SWAP 16 * + 94 ;                                     : H-DIS FH-P 96 JHOS-S WRITEP ;                                 DECIMAL                                                         <ANIM-TBL Ha1 JHOS-S 100 TBL>                                   <ANIM-TBL Ha2 IJHOS-S 100 TBL>                                  <PER-ANIM-TBL Hsml Ha1 Ha2 TBL>                                 -->                                                                                                                                                                                                                                                                                                                             ( TASK FOR A TEST HOSTAGE )                                     : H-T ;TASK: DIVG H-H-D DISPF VB!                               EMOV 1STWRITE HSFREE OBJSV VB! RNIT BEGIN DIVG                  OBJSV VB@ HSFREE CASE 0 DELTADIST V! DVECT-ON                   DISTANCE V@ NOT IF PUSH:CCR G-D? NOT IF                         ESTPOS NULPAT ANIM! ERASEWRITE DIVG                             ' CH:R SETCO COGO XPAND-OFF THEN THEN                           ( SELF HOS#? 1+ DUP GA# B@ + 10 < IF                            I:M DUP HGSV OVB@ MPCHP >= IF                                   MPRTH SWAP HGSV OVB! ELSE DROP THEN ELSE DROP THEN )            JHOS-F ANIM!                                                    XOR-ON 10 TIMEBSCALE! 0 TIMEBMAX! POA GO                        ELSE HSATP CASE                                                 NULPAT ANIM! ERASEWRITE DIVG                                    Hctr B@ CAPT-S Hsml ANIM!                                       TBCL POA HOS-MON? HOOK!-ON -->                                  100 INCSCORE HVECT-ON GO DIVG                                   DEST? OBJSV VB@ HSATP = AND IF HSLPF OBJSV VB! THEN             ( FOLLOW MONSTER TO NEW HANGOUT )                               ELSE HSATM CASE Hctr B@ DRUG-S JHOS-F ANIM!                     HVECT-ON                                                        400 TIMER!-ON ( PREVENT HOSTAGE HANGUP )                        ( FOLLOW MONSTER TO ITS TARGET POSITION )                       POA GO DIVG                                                     UNLINK                                                          FLAG? NOT IF                                                    ARRIVE:NODE ESTPOS                                              HSFREE OBJSV VB! ASNOT ASSMSV VB! THEN                          -->                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             