;;; $8000..8686: Common to all enemy banks ;;;
;;; $8687..8F8B: Evir ;;;
    ;;; $8687: Palette - enemy $E63F/$E67F (evir) ;;;
    ;;; $86A7..878E: Instruction lists ;;;
        ;;; $86A7: Instruction list - evir body - facing left ;;;
        ;;; $86C3: Instruction list - evir arms - facing left ;;;
        ;;; $870B: Instruction list - evir body - facing right ;;;
        ;;; $8727: Instruction list - evir arms - facing right ;;;
        ;;; $876F: Instruction list - evir projectile - normal ;;;
        ;;; $8775: Instruction list - evir projectile - regenerating ;;;
    ;;; $878F..DF: Instructions ;;;
        ;;; $878F: Instruction - queue evir spit sound effect ;;;
        ;;; $879B: Instruction - set initial regeneration X offset ;;;
        ;;; $87B6: Instruction - advance regeneration X offset ;;;
        ;;; $87CB: Instruction - finish regeneration ;;;
    ;;; $87E0: Initialisation AI - enemy $E63F (evir) ;;;
    ;;; $8838: Set evir facing direction ;;;
    ;;; $8866: Handle evir arms ;;;
    ;;; $88B0: Initialisation AI - enemy $E67F (evir projectile) ;;;
    ;;; $88E5: Reset evir projectile position ;;;
    ;;; $891B: Main AI - enemy $E63F (evir) ;;;
    ;;; $8922: Evir function - handle body/arms ;;;
    ;;; $8933: Handle evir body ;;;
    ;;; $8997: Handle evir arms ;;;
    ;;; $899E: Main AI - enemy $E67F (evir projectile) ;;;
    ;;; $89D4: Shoot evir projectile at Samus ;;;
    ;;; $8A34: Evir projectile function - idle ;;;
    ;;; $8A3B: Evir projectile function - moving ;;;
    ;;; $8A78: Evir projectile function - regenerating ;;;
    ;;; $8AB1: Start evir projectile regenerating if far off-screen ;;;
    ;;; $8AE8: Set evir instruction list ;;;
    ;;; $8B06: Enemy shot - enemy $E63F (evir) ;;;
    ;;; $8B0C: Power bomb reaction - enemy $E63F (evir) ;;;
    ;;; $8B12: Enemy touch - enemy $E63F (evir) ;;;
    ;;; $8B16: Evir shared contact reaction ;;;
    ;;; $8B59: Evir spritemaps ;;;
;;; $8F8C..9378: Morph ball eye ;;;
    ;;; $8F8C: Palette - enemy $E6BF (morph ball eye) ;;;
    ;;; $8FAC..904F: Instruction lists ;;;
        ;;; $8FAC: Instruction list - eye - active ;;;
        ;;; $8FF0: Instruction list - eye - facing right - deactivating ;;;
        ;;; $8FFC: Instruction list - eye - facing right - closed ;;;
        ;;; $9002: Instruction list - eye - facing left - deactivating ;;;
        ;;; $900E: Instruction list - eye - facing left - closed ;;;
        ;;; $9014: Instruction list - eye - activating - facing right ;;;
        ;;; $9026: Instruction list - eye - activating - facing left ;;;
        ;;; $9038: Instruction list - mount - facing right ;;;
        ;;; $903E: Instruction list - mount - facing down ;;;
        ;;; $9044: Instruction list - mount - facing left ;;;
        ;;; $904A: Instruction list - mount - facing up ;;;
    ;;; $9050: Morph ball eye proximities ;;;
    ;;; $9058: Initialisation AI - enemy $E6BF (morph ball eye) ;;;
    ;;; $90E2: Main AI - enemy $E6BF (morph ball eye) ;;;
    ;;; $90F1: Morph ball eye function - wait for Samus to get near ;;;
    ;;; $912E: Morph ball eye function - activating ;;;
    ;;; $9160: Morph ball eye function - active ;;;
    ;;; $91CE: Morph ball eye function - deactivating ;;;
    ;;; $91DC: RTL ;;;
    ;;; $91DD: RTL ;;;
    ;;; $91DE: RTL ;;;
    ;;; $91DF: Morph ball eye spritemaps ;;;
;;; $9379..99AB: Fune / namihe ;;;
    ;;; $9379: Palette - enemy $E6FF (fune) ;;;
    ;;; $9399..F8: Fune instruction lists ;;;
        ;;; $9399: Instruction list - fune - facing left - idle ;;;
        ;;; $939F: Instruction list - fune - facing left - active ;;;
        ;;; $93C9: Instruction list - fune - facing right - idle ;;;
        ;;; $93CF: Instruction list - fune - facing right - active ;;;
    ;;; $93F9: Fune spritemaps ;;;
    ;;; $959D: Palette - enemy $E73F (namihe) ;;;
    ;;; $95BD..9624: Namihe instruction lists ;;;
        ;;; $95BD: Instruction list - namihe - facing left - idle ;;;
        ;;; $95C3: Instruction list - namihe - facing left - active ;;;
        ;;; $95F1: Instruction list - namihe - facing right - idle ;;;
        ;;; $95F7: Instruction list - namihe - facing right - active ;;;
    ;;; $9625..D2: Instructions ;;;
        ;;; $9625: Instruction - queue fune spits sound effect ;;;
        ;;; $9631: Instruction - spawn leftwards namihe fireball ;;;
        ;;; $964A: Instruction - spawn rightwards namihe fireball ;;;
        ;;; $9663: Instruction - spawn leftwards fune fireball ;;;
        ;;; $967C: Instruction - spawn rightwards fune fireball ;;;
        ;;; $9695: Instruction - finish activity ;;;
        ;;; $96B4: Instruction - finish activity ;;;
    ;;; $96D3: Instruction list pointers ;;;
    ;;; $96E3: Initialisation AI - enemy $E6FF/$E73F (fune / namihe) ;;;
    ;;; $9730: Main AI - enemy $E6FF/$E73F (fune / namihe) ;;;
    ;;; $9737: Fune / namihe function - wait for timer (fune) ;;;
    ;;; $975C: Fune / namihe function - wait for Samus to get near (namihe) ;;;
    ;;; $978E: RTS ;;;
    ;;; $978F: RTS ;;;
    ;;; $9790: Check if Samus is in proximity ;;;
    ;;; $979B: Set fune / namihe instruction list ;;;
    ;;; $97B2: RTL ;;;
    ;;; $97B3: RTL ;;;
    ;;; $97B4: Namihe spritemaps ;;;
;;; $99AC..9F4E: Coven ;;;
    ;;; $99AC: Palette - enemy $E77F (coven) ;;;
    ;;; $99CC: Unused. Black palettes ;;;
    ;;; $9A8C: Instruction list - coven ;;;
    ;;; $9A9C: Coven constants ;;;
    ;;; $9AEE: Initialisation AI - enemy $E77F (coven) ;;;
    ;;; $9B3C: Main AI - enemy $E77F (coven) ;;;
    ;;; $9B42: Coven function - materialising - fade to white ;;;
    ;;; $9BAD: Coven function - materialising - fade from white ;;;
    ;;; $9C31: Process coven palette transition delay ;;;
    ;;; $9C69: Coven function - dematerialising ;;;
    ;;; $9C8A: Coven function - materialised ;;;
    ;;; $9D13: Coven function - dematerialised - asleep ;;;
    ;;; $9D31: RTL ;;;
    ;;; $9D32: Coven stationary zone radii ;;;
    ;;; $9D36: Coven function - dematerialised - awake ;;;
    ;;; $9E44: RTL ;;;
    ;;; $9E45: RTL ;;;
    ;;; $9E46: Coven spritemaps ;;;
    ;;; $9E88: Advance coven palette transition ;;;
;;; $9F4F..AAFD: Yapping maw ;;;
    ;;; $9F4F: Palette - enemy $E7BF (yapping maw) ;;;
    ;;; $9F6F..A096: Instruction lists - yapping maw ;;;
        ;;; $9F6F: Instruction list - attacking - facing up / initial - facing up ;;;
        ;;; $9F85: Instruction list - attacking - facing up-right ;;;
        ;;; $9F9B: Instruction list - attacking - facing right ;;;
        ;;; $9FB1: Instruction list - attacking - facing down-right ;;;
        ;;; $9FC7: Instruction list - attacking - facing down / initial - facing down ;;;
        ;;; $9FDD: Instruction list - attacking - facing down-left ;;;
        ;;; $9FF3: Instruction list - attacking - facing left ;;;
        ;;; $A009: Instruction list - attacking - facing up-left ;;;
        ;;; $A01F: Instruction list - cooldown - facing up-right ;;;
        ;;; $A025: Instruction list - cooldown - facing up ;;;
        ;;; $A03D: Instruction list - cooldown - facing up-left ;;;
        ;;; $A05B: Instruction list - cooldown - facing down-right ;;;
        ;;; $A061: Instruction list - cooldown - facing down ;;;
        ;;; $A079: Instruction list - cooldown - facing down-left ;;;
    ;;; $A097: Yapping maw attack instruction list pointers ;;;
    ;;; $A0A7: Yapping maw Samus offsets ;;;
    ;;; $A0C7..A147: Instructions ;;;
        ;;; $A0C7: Instruction - offset Samus up-right ;;;
        ;;; $A0D9: Instruction - offset Samus up-left ;;;
        ;;; $A0EB: Instruction - offset Samus down-right ;;;
        ;;; $A0FD: Instruction - offset Samus down-left ;;;
        ;;; $A10F: Instruction - offset Samus up ;;;
        ;;; $A121: Instruction - offset Samus down ;;;
        ;;; $A133: Instruction - queue yapping maw sound effect if on screen ;;;
    ;;; $A148: Initialisation AI - enemy $E7BF (yapping maw) ;;;
    ;;; $A211: Main AI - enemy $E7BF (yapping maw) ;;;
    ;;; $A235: Yapping maw function - neutral ;;;
    ;;; $A28C: Yapping maw function - attack ;;;
    ;;; $A310: Calculate yapping maw origin position ;;;
    ;;; $A339: Calculate body segment 1 velocities ;;;
    ;;; $A37C: Calculate body segment 2 velocities ;;;
    ;;; $A3BF: Calculate body segment 3 velocities ;;;
    ;;; $A402: Calculate head segment velocities ;;;
    ;;; $A445: Yapping maw function - attacking ;;;
    ;;; $A63E: Update yapping maw angular speed ;;;
    ;;; $A665: Move Samus with yapping maw pincers ;;;
    ;;; $A68A: Yapping maw function - cooldown ;;;
    ;;; $A6C4: Set body segment 0 position ;;;
    ;;; $A6DB: Set body segment 1 position ;;;
    ;;; $A6FC: Set body segment 2 position ;;;
    ;;; $A71D: Set body segment 3 position ;;;
    ;;; $A73E: A = [$0E32] * cos([A] * pi / 80h) * 7FFFh / 8000h ;;;
    ;;; $A742: A = [$0E32] * -sin([A] * pi / 80h) * 7FFFh / 8000h ;;;
    ;;; $A799: Enemy touch - enemy $E7BF (yapping maw) ;;;
    ;;; $A7BD: Enemy shot - enemy $E7BF (yapping maw) ;;;
    ;;; $A835: Frozen AI - enemy $E7BF (yapping maw) ;;;
    ;;; $A85D: Set yapping maw body segment frozen palette ;;;
    ;;; $A899: Set yapping maw base frozen palette ;;;
    ;;; $A8EE: Yapping maw spritemaps ;;;
;;; $AAFE..AC1B: Kago ;;;
    ;;; $AAFE: Palette - enemy $E7FF (kago) ;;;
    ;;; $AB1E: Instruction list - slow ;;;
    ;;; $AB32: Instruction list - fast ;;;
    ;;; $AB46: Initialisation AI - enemy $E7FF (kago) ;;;
    ;;; $AB75: Main AI - enemy $E7FF (kago) ;;;
    ;;; $AB7B: Kago function - nothing ;;;
    ;;; $AB82: RTL ;;;
    ;;; $AB83: Enemy shot - enemy $E7FF (kago) ;;;
    ;;; $ABDA: Kago spritemaps ;;;
;;; $AC1C..B65D: Magdollite ;;;
    ;;; $AC1C: Palette - enemy $E83F (magdollite) ;;;
    ;;; $AC3C: Magdollite glow palettes ;;;
    ;;; $AC9C..AE11: Instruction lists - magdollite ;;;
        ;;; $AC9C: Instruction list - head - facing left - idle ;;;
        ;;; $ACB0: Instruction list - hand - facing left - throwing lava ;;;
        ;;; $ACDE: Instruction list - head - facing left - submerge into lava ;;;
        ;;; $AD0C: Instruction list - head - facing left - emerge from lava ;;;
        ;;; $AD3C: Instruction list - head - facing right - idle ;;;
        ;;; $AD50: Instruction list - hand - facing right - throwing lava ;;;
        ;;; $AD7E: Instruction list - head - facing right - submerge into lava ;;;
        ;;; $ADAC: Instruction list - head - facing right - emerge from lava ;;;
        ;;; $ADDC: Instruction list - arm - growth level 0 ;;;
        ;;; $ADE2: Instruction list - arm - growth level 1 ;;;
        ;;; $ADE8: Instruction list - arm - growth level 2 ;;;
        ;;; $ADEE: Instruction list - arm - growth level 3 ;;;
        ;;; $ADF4: Instruction list - arm - growth level 4 ;;;
        ;;; $ADFA: Instruction list - arm - growth level 5 ;;;
        ;;; $AE00: Instruction list - arm - growth level 6 ;;;
        ;;; $AE06: Instruction list - arm - growth level 7 ;;;
        ;;; $AE0C: Instruction list - hand - stub ;;;
    ;;; $AE12..AF4E: Magdollite instructions ;;;
        ;;; $AE12: Instruction - queue sound [[Y]], sound library 2, max queued sounds allowed = 6, if enemy is on-screen ;;;
        ;;; $AE26: Instruction - move head down 2px ;;;
        ;;; $AE30: Instruction - move head up 2px ;;;
        ;;; $AE3A: Instruction - set animation active flag ;;;
        ;;; $AE45: Instruction - clear animation active flag ;;;
        ;;; $AE50: Instruction - move head + arm up 1px ;;;
        ;;; $AE5A: Instruction - move head + arm down 1px ;;;
        ;;; $AE64: Instruction - set submerged head + arm position, make arm + hand visible ;;;
        ;;; $AE88: Instruction - reset head + arm position ;;;
        ;;; $AE96: Instruction - set emerged head + arm position, make arm + hand invisible ;;;
        ;;; $AEBA: Instruction - spawn magdollite lava enemy projectile ;;;
        ;;; $AECA: Instruction - set open hand position - facing right ;;;
        ;;; $AEE4: Instruction - set open hand position - facing left ;;;
        ;;; $AEFE: Instruction - set closed hand position - facing right ;;;
        ;;; $AF18: Instruction - set closed hand position - facing left ;;;
        ;;; $AF32: Unused. Set hand throw position ;;;
        ;;; $AF44: Instruction - reset cooldown timer ;;;
    ;;; $AF4F: Initialisation function pointers ;;;
    ;;; $AF55: Magdollite arm growth table ;;;
    ;;; $AF8B: Initialisation AI - enemy $E83F (magdollite) ;;;
    ;;; $AF9D: Magdollite initialisation function - head ;;;
    ;;; $AFE2: Magdollite initialisation function - arm ;;;
    ;;; $B020: Magdollite initialisation function - hand ;;;
    ;;; $B05E: Set magdollite arm Y velocities ;;;
    ;;; $B088: Set up magdollite palette cycling ;;;
    ;;; $B0B2: Enemy graphics drawn hook - magdollite - periodically cycle between palettes ;;;
    ;;; $B10A: Main AI - enemy $E83F (magdollite) ;;;
    ;;; $B11A..DC: Head ;;;
        ;;; $B11A: Magdollite function - idle ;;;
        ;;; $B175: Magdollite function - wait until submerged ;;;
        ;;; $B193: Magdollite function - emerge when ready ;;;
        ;;; $B1B8: Magdollite function - wait until emerged ;;;
    ;;; $B1DD..B30C: Arm ;;;
        ;;; $B1DD: Magdollite function - wait until head submerged ;;;
        ;;; $B204: Magdollite function - growing arm ;;;
        ;;; $B230: Grow arm ;;;
        ;;; $B291: RTS ;;;
        ;;; $B295: Magdollite function - shrinking arm ;;;
        ;;; $B2C5: Shrink arm ;;;
    ;;; $B30D..E4: Hand ;;;
        ;;; $B30D: Magdollite function - idle ;;;
        ;;; $B31F: Magdollite function - wait until finished throwing lava and shrink arm ;;;
        ;;; $B356: Magdollite function - wait until finished growing and throw lava ;;;
        ;;; $B3A7: Magdollite function - move with shrinking arm ;;;
        ;;; $B3CB: Update magdollite head Y radius ;;;
    ;;; $B3E5: Set magdollite instruction list ;;;
    ;;; $B400: Power bomb reaction - enemy $E83F (magdollite) ;;;
    ;;; $B406: Enemy touch - enemy $E83F (magdollite) ;;;
    ;;; $B40C: Enemy shot - enemy $E83F (magdollite) ;;;
    ;;; $B410: Magdollite shared contact reaction ;;;
    ;;; $B448: Magdollite spritemaps ;;;
;;; $B65E..C142: Beetom ;;;
    ;;; $B65E: Palette - enemy $E87F (beetom) ;;;
    ;;; $B67E: Unused. Beetom eye colours ;;;
    ;;; $B696..B74D: Instruction lists ;;;
        ;;; $B696: Instruction list - crawling - facing left ;;;
        ;;; $B6AC: Instruction list - hop - facing left ;;;
        ;;; $B6C0: Unused. Instruction list - small hop - facing left ;;;
        ;;; $B6CC: Instruction list - draining Samus - facing left ;;;
        ;;; $B6F2: Instruction list - crawling - facing right ;;;
        ;;; $B708: Instruction list - hop - facing right ;;;
        ;;; $B71C: Unused. Instruction list - small hop - facing right ;;;
        ;;; $B728: Instruction list - draining Samus - facing right ;;;
    ;;; $B74E: Samus not in proximity beetom function pointers ;;;
    ;;; $B75E: Instruction - nothing ;;;
    ;;; $B762: Set beetom instruction list ;;;
    ;;; $B776: Initialisation AI - enemy $E87F (beetom) ;;;
    ;;; $B7EF: Calculate initial hop speed ;;;
    ;;; $B80D: Main AI - enemy $E87F (beetom) ;;;
    ;;; $B814..BE2D: Beetom functions ;;;
        ;;; $B814: Beetom function - decide action ;;;
        ;;; $B82F: Beetom function - decide action - Samus not in proximity ;;;
        ;;; $B84F: Beetom function - start idling ;;;
        ;;; $B85F: Beetom function - start crawling left ;;;
        ;;; $B873: Beetom function - start crawling right ;;;
        ;;; $B887: Beetom function - start short hop left ;;;
        ;;; $B8A9: Beetom function - start short hop right ;;;
        ;;; $B8CB: Beetom function - start long hop left ;;;
        ;;; $B8ED: Beetom function - start long hop right ;;;
        ;;; $B90F: Beetom function - decide action - Samus in proximity ;;;
        ;;; $B952: Beetom function - start draining Samus - facing left ;;;
        ;;; $B966: Beetom function - start draining Samus - facing right ;;;
        ;;; $B97A: Beetom function - start dropping ;;;
        ;;; $B9A2: Beetom function - start being flung ;;;
        ;;; $B9B2: Beetom function - idling ;;;
        ;;; $B9C1: Beetom function - crawling left ;;;
        ;;; $BA24: Beetom function - crawling right ;;;
        ;;; $BA84: Beetom function - short hop left ;;;
        ;;; $BAB7: Beetom function - short hop right ;;;
        ;;; $BAE7: Beetom Y movement - short hop - rising ;;;
        ;;; $BB20: Beetom Y movement - short hop - falling ;;;
        ;;; $BB55: Beetom function - long hop left ;;;
        ;;; $BB88: Beetom function - long hop right ;;;
        ;;; $BBB8: Beetom Y movement - long hop - rising ;;;
        ;;; $BBF1: Beetom Y movement - long hop - falling ;;;
        ;;; $BC26: Beetom function - lunge left ;;;
        ;;; $BC5A: Beetom function - lunge right ;;;
        ;;; $BC8A: Beetom Y movement - lunge - rising ;;;
        ;;; $BCC3: Beetom Y movement - lunge - falling ;;;
        ;;; $BCF8: Beetom function - draining Samus - facing left ;;;
        ;;; $BD42: Beetom function - draining Samus - facing right ;;;
        ;;; $BD8C: Update beetom button counter ;;;
        ;;; $BD9D: Beetom function - dropping ;;;
        ;;; $BDC5: Beetom function - being flung ;;;
        ;;; $BDCC: Beetom movement - being flung ;;;
    ;;; $BE2E: Enemy touch - enemy $E87F (beetom) ;;;
    ;;; $BEAC: Enemy shot - enemy $E87F (beetom) ;;;
    ;;; $BED3: Beetom spritemaps ;;;
;;; $C143..C6B2: Powamp ;;;
    ;;; $C143: Palette - enemy $E8BF (powamp) ;;;
    ;;; $C163..9E: Instruction lists ;;;
        ;;; $C163: Instruction list - body - fast ;;;
        ;;; $C173: Instruction list - body - slow ;;;
        ;;; $C183: Instruction list - balloon - inflate ;;;
        ;;; $C191: Instruction list - balloon - deflate ;;;
        ;;; $C199: Instruction list - balloon - initial ;;;
    ;;; $C19F: Powamp constants ;;;
    ;;; $C1C9: Initialisation AI - enemy $E8BF (powamp) ;;;
    ;;; $C21C: Main AI - enemy $E8BF (powamp) ;;;
    ;;; $C222: RTL ;;;
    ;;; $C223: Spawn powamp spike enemy projectiles ;;;
    ;;; $C234: Set powamp balloon Y position ;;;
    ;;; $C283..C5BD: Powamp functions ;;;
        ;;; $C283: Powamp function - body - deflated - resting ;;;
        ;;; $C2A6: Powamp function - body - inflating ;;;
        ;;; $C2CF: Powamp function - body - inflated - rise to target height ;;;
        ;;; $C36B: Powamp function - body - inflated - finish wiggle ;;;
        ;;; $C3E1: Powamp function - body - grappled - rise to target height ;;;
        ;;; $C469: Powamp function - body - grappled - finish wiggle ;;;
        ;;; $C4DC: Powamp function - body - grappled - resting ;;;
        ;;; $C500: Powamp function - body - deflating ;;;
        ;;; $C51D: Powamp function - body - deflated - sinking ;;;
        ;;; $C568: RTL ;;;
        ;;; $C569: Powamp function - body - fatal damage ;;;
        ;;; $C59F: Powamp function - body - death sequence ;;;
    ;;; $C5BE: Enemy touch - enemy $E8BF (powamp) ;;;
    ;;; $C5EF: Enemy shot - enemy $E8BF (powamp) ;;;
    ;;; $C63F: Power bomb reaction - enemy $E8BF (powamp) ;;;
    ;;; $C675: Powamp spritemaps ;;;
;;; $C6B3..D820: Work robot ;;;
    ;;; $C6B3: Palette - enemy $E8FF/$E93F (work robot) ;;;
    ;;; $C6D3..C6E4: Instruction lists - work robot deactivated ;;;
        ;;; $C6D3: Instruction list - work robot deactivated - neutral ;;;
        ;;; $C6D9: Instruction list - work robot deactivated - leaning left ;;;
        ;;; $C6DF: Instruction list - work robot deactivated - leaning right ;;;
    ;;; $C6E5..CB76: Instruction lists - work robot ;;;
        ;;; $C6E5: Instruction list - initial ;;;
        ;;; $C6E9: Instruction list - facing left - walking forwards ;;;
        ;;; $C73F: Instruction list - facing left - hit wall moving forwards ;;;
        ;;; $C7BB: Instruction list - facing left - shot - Samus is ahead ;;;
        ;;; $C833: Instruction list - facing left - shot - Samus is behind ;;;
        ;;; $C8B1: Instruction list - facing left - shot laser down-left ;;;
        ;;; $C8BD: Instruction list - facing left - shot laser left ;;;
        ;;; $C8D1: Instruction list - facing left - shot laser up-left ;;;
        ;;; $C8E9: Instruction list - facing left - laser shot recoil ;;;
        ;;; $C91B: Instruction list - approaching a fall to the right ;;;
        ;;; $C92D: Instruction list - facing right - walking forwards ;;;
        ;;; $C985: Instruction list - facing right - hit wall moving forwards ;;;
        ;;; $CA01: Instruction list - facing right - shot - Samus is ahead ;;;
        ;;; $CA7D: Instruction list - facing right - shot - Samus is behind ;;;
        ;;; $CAFD: Instruction list - facing right - shot laser down-right ;;;
        ;;; $CB09: Instruction list - facing right - shot laser right ;;;
        ;;; $CB1D: Instruction list - facing right - shot laser up-right ;;;
        ;;; $CB35: Instruction list - facing right - laser shot recoil ;;;
        ;;; $CB65: Instruction list - approaching a fall to the left ;;;
    ;;; $CB77: Initialisation AI - enemy $E8FF (work robot) ;;;
    ;;; $CBCC: Initialisation AI - enemy $E93F (work robot deactivated) ;;;
    ;;; $CC36: Main AI - enemy $E8FF (work robot) ;;;
    ;;; $CC66: RTL. Main AI - enemy $E93F (work robot deactivated) ;;;
    ;;; $CC67: Enemy graphics drawn hook - work robot - periodically cycle between palettes ;;;
    ;;; $CCFF: Decrement enemy laser cooldown ;;;
    ;;; $CD09..D173: Instructions ;;;
        ;;; $CD09: Instruction - facing left - move forwards, go to $C73F if hit wall, go to $CB65 if approaching a fall ;;;
        ;;; $CDA4: Instruction - facing left - move forwards, go to $C73F if hit wall ;;;
        ;;; $CDEA: Instruction - facing left - move backwards, go to $C6E9 if hit wall, go to $C91B if approaching a fall ;;;
        ;;; $CE85: Instruction - facing left - move backwards, go to $C6E9 if hit wall ;;;
        ;;; $CECB: Instruction - go to $C92D ;;;
        ;;; $CECF: Instruction - facing right - move forwards, go to $C985 if hit wall, go to $C91B if approaching a fall ;;;
        ;;; $CF6A: Instruction - facing right - move forwards, go to $C985 if hit wall ;;;
        ;;; $CFB0: Instruction - facing right - move backwards, go to $C6E9 if hit wall, go to $CB65 if approaching a fall ;;;
        ;;; $D04B: Instruction - facing right - move backwards, go to $C6E9 if hit wall ;;;
        ;;; $D091: Instruction - queue work robot sound effect if on screen ;;;
        ;;; $D0C2: Instruction - go to $C6E9 ;;;
        ;;; $D0C6: Instruction - try shooting laser up-right and go to $CB1D if so ;;;
        ;;; $D0D2: Instruction - try shooting laser up-left and go to $C8D1 if so ;;;
        ;;; $D0DC: Handle firing laser - upwards ;;;
        ;;; $D100: Instruction - try shooting laser horizontally and go to $CB09 if so ;;;
        ;;; $D107: Instruction - try shooting laser horizontally and go to $C8BD if so ;;;
        ;;; $D10C: Handle firing laser - horizontal ;;;
        ;;; $D131: Instruction - try shooting laser down-right and go to $CAFD if so ;;;
        ;;; $D13D: Instruction - try shooting laser down-left and go to $C8B1 if so ;;;
        ;;; $D147: Handle firing laser - downwards ;;;
        ;;; $D16B: Instruction - decrement enemy laser cooldown ;;;
    ;;; $D174: Enemy touch - enemy $E8FF/$E93F (work robot) ;;;
    ;;; $D18D: Enemy shot - enemy $E93F (work robot deactivated) ;;;
    ;;; $D192: Enemy shot - enemy $E8FF (work robot) ;;;
    ;;; $D1F1: Work robot spritemaps ;;;
;;; $D821..DBC6: Bull ;;;
    ;;; $D821: Palette - enemy $E97F (bull) ;;;
    ;;; $D841: Instruction list - normal ;;;
    ;;; $D855: Instruction list - shot ;;;
    ;;; $D871: Bull constants ;;;
    ;;; $D895: Bull acceleration interval table ;;;
    ;;; $D8C9: Initialisation AI - enemy $E97F (bull) ;;;
    ;;; $D90B: Main AI - enemy $E97F (bull) ;;;
    ;;; $D92B: Bull function - movement delay ;;;
    ;;; $D940: Bull function - target Samus ;;;
    ;;; $D963: Bull function - accelerating ;;;
    ;;; $D97C: Bull function - decelerating ;;;
    ;;; $D9AA: Trigger bull deceleration if too far off target ;;;
    ;;; $D9DB: Bull X movement ;;;
    ;;; $DA28: Bull Y movement ;;;
    ;;; $DA71: Accelerate bull ;;;
    ;;; $DA92: Decelerate bull ;;;
    ;;; $DAB3: $1E.$1C = [$16] * [$18] / 10000h (24-bit unsigned multiplication) ;;;
    ;;; $DAF6: Negate $1E.$1C ;;;
    ;;; $DB14: Enemy shot - enemy $E97F (bull) ;;;
    ;;; $DB76: Bull spritemaps ;;;
;;; $DBC7..E22F: Alcoon ;;;
    ;;; $DBC7: Palette - enemy $E9BF (alcoon) ;;;
    ;;; $DBE7..DCC6: Instruction lists ;;;
        ;;; $DBE7: Instruction list - facing left - walking ;;;
        ;;; $DC03: Instruction list - facing left - spawn fireballs ;;;
        ;;; $DC4B: Instruction list - facing left - airborne - looking up ;;;
        ;;; $DC51: Instruction list - facing left - airborne - looking forward ;;;
        ;;; $DC57: Instruction list - facing right - walking ;;;
        ;;; $DC73: Instruction list - facing right - spawn fireballs ;;;
        ;;; $DCBB: Instruction list - facing right - airborne - looking up ;;;
        ;;; $DCC1: Instruction list - facing right - airborne - looking forward ;;;
    ;;; $DCC7: Alcoon constants ;;;
    ;;; $DCCD: Initialisation AI - enemy $E9BF (alcoon) ;;;
    ;;; $DD37: Set up jump movement ;;;
    ;;; $DD55: Alcoon Y acceleration ;;;
    ;;; $DD6B: Main AI - enemy $E9BF (alcoon) ;;;
    ;;; $DD71: Alcoon function - wait for Samus to get near ;;;
    ;;; $DDC6: Alcoon function - emerging - rising ;;;
    ;;; $DE05: Alcoon function - emerging - falling ;;;
    ;;; $DE4B: Alcoon function - emerged ;;;
    ;;; $DECC: RTL ;;;
    ;;; $DECD: Alcoon function - hiding - rising ;;;
    ;;; $DEEC: Alcoon function - hiding - falling ;;;
    ;;; $DF1C..9B: Instructions ;;;
        ;;; $DF1C: Instruction - spawn alcoon fireball with Y velocity index 0 ;;;
        ;;; $DF20: Spawn alcoon fireball with Y velocity index [A] ;;;
        ;;; $DF33: Instruction - spawn alcoon fireball with Y velocity index 2 ;;;
        ;;; $DF39: Instruction - spawn alcoon fireball with Y velocity index 4 ;;;
        ;;; $DF3F: Instruction - start walking ;;;
        ;;; $DF63: Instruction - decrement step counter and move horizontally ;;;
        ;;; $DF71: Instruction - move horizontally ;;;
    ;;; $DF9C: RTL ;;;
    ;;; $DF9D: Unused. Normal enemy shot AI ;;;
    ;;; $DFA2: Alcoon spritemaps ;;;
;;; $E230..E586: Atomic ;;;
    ;;; $E230: Palette - enemy $E9FF (atomic) ;;;
    ;;; $E250: Palettes - atomic ;;;
    ;;; $E310..7F: Instruction lists - atomic ;;;
        ;;; $E310: Instruction list - spinning up-right ;;;
        ;;; $E32C: Instruction list - spinning up-left ;;;
        ;;; $E348: Instruction list - spinning down-left ;;;
        ;;; $E364: Instruction list - spinning down-right ;;;
    ;;; $E380: Atomic instruction list pointers ;;;
    ;;; $E388: Initialisation AI - enemy $E9FF (atomic) ;;;
    ;;; $E3C3: Main AI - enemy $E9FF (atomic) ;;;
    ;;; $E3D9: Set atomic Y movement function ;;;
    ;;; $E3EF: Set atomic X movement function ;;;
    ;;; $E405: Atomic Y movement function - move up ;;;
    ;;; $E424: Atomic Y movement function - move down ;;;
    ;;; $E443: Atomic X movement function - move left ;;;
    ;;; $E462: Atomic X movement function - move right ;;;
    ;;; $E481: Unused. RTL ;;;
    ;;; $E485: Unused. RTL ;;;
    ;;; $E489: Spritemaps - atomic ;;;
;;; $E587..E7AB: Wrecked Ship spark ;;;
    ;;; $E587: Palette - enemy $EA3F (Wrecked Ship spark) ;;;
    ;;; $E5A7..E61C: Wrecked Ship spark instruction lists ;;;
        ;;; $E5A7: Instruction list - activate ;;;
        ;;; $E5D1: Instruction list - active ;;;
        ;;; $E5E5: Instruction list - deactivate ;;;
        ;;; $E609: Instruction list - emit falling sparks ;;;
    ;;; $E61D: Instruction - set enemy as intangible ;;;
    ;;; $E62A: Instruction - set enemy as tangible ;;;
    ;;; $E637: Initialisation AI - enemy $EA3F (Wrecked Ship spark) ;;;
    ;;; $E68E: Main AI - enemy $EA3F (Wrecked Ship spark) ;;;
    ;;; $E694: RTL. Wrecked Ship spark function - always active ;;;
    ;;; $E695: Wrecked Ship spark function - intermittent - inactive ;;;
    ;;; $E6B7: Wrecked Ship spark function - intermittent - active ;;;
    ;;; $E6DC: Wrecked Ship spark function - emit falling sparks ;;;
    ;;; $E6F6: Set Wrecked Ship spark function timer ;;;
    ;;; $E70D: RTL ;;;
    ;;; $E70E: Enemy shot - enemy $EA3F (Wrecked Ship spark) ;;;
    ;;; $E71F: Spritemaps - Wrecked Ship spark ;;;
;;; $E7AC..E999: Blue Brinstar face block ;;;
    ;;; $E7AC: Palette - enemy $EA7F (blue Brinstar face block) ;;;
    ;;; $E7CC: Blue Brinstar face block glow colours ;;;
    ;;; $E80C: Instruction list - turning left ;;;
    ;;; $E81A: Instruction list - turning right ;;;
    ;;; $E828: Instruction list - facing forward ;;;
    ;;; $E82E: Initialisation AI - enemy $EA7F (blue Brinstar face block) ;;;
    ;;; $E86E: Enemy graphics drawn hook - blue Brinstar face block - periodically cycle between palettes ;;;
    ;;; $E8AE: Main AI - enemy $EA7F (blue Brinstar face block) ;;;
    ;;; $E91C: RTL ;;;
    ;;; $E91D: Enemy shot - enemy $EA7F (blue Brinstar face block) ;;;
    ;;; $E92C: Blue Brinstar face block spritemaps ;;;
;;; $E99A..F9BD: Ki-hunter ;;;
    ;;; $E99A: Palette - enemy $EABF/$EAFF (green ki-hunter) ;;;
    ;;; $E9BA: Palette - enemy $EB3F/$EB7F (yellow ki-hunter) ;;;
    ;;; $E9DA: Palette - enemy $EB7F/$EBBF (red ki-hunter) ;;;
    ;;; $E9FA..EB2D: Instruction lists - ki-hunter ;;;
        ;;; $E9FA: Instruction list - ki-hunter - idling - facing left ;;;
        ;;; $EA08: Instruction list - ki-hunter - swiping - facing left ;;;
        ;;; $EA24: Instruction list - ki-hunter - idling - facing right ;;;
        ;;; $EA32: Instruction list - ki-hunter - swiping - facing right ;;;
        ;;; $EA4E: Instruction list - ki-hunter wings - facing left ;;;
        ;;; $EA5E: Instruction list - ki-hunter wings - facing right ;;;
        ;;; $EA6E: Unused. Instruction list - ki-hunter wings - falling - X flipped ;;;
        ;;; $EA76: Unused. Instruction list - ki-hunter wings - falling - X flipped ;;;
        ;;; $EA7E: Instruction list - ki-hunter wings - falling ;;;
        ;;; $EA84: Unused. Instruction list - ki-hunter wings - falling ;;;
        ;;; $EA8A: Instruction list - ki-hunter - hop - facing left ;;;
        ;;; $EAA6: Instruction list - ki-hunter - hop - facing right ;;;
        ;;; $EAC2: Instruction list - ki-hunter - landed from hop - facing left ;;;
        ;;; $EADA: Instruction list - ki-hunter - landed from hop - facing right ;;;
        ;;; $EAF2: Instruction list - acid spit attack - facing left ;;;
        ;;; $EB10: Instruction list - acid spit attack - facing right ;;;
    ;;; $EB2E: Ki-hunter spritemaps ;;;
    ;;; $F180: Ki-hunter constants ;;;
    ;;; $F188: Initialisation AI - enemy $EABF/$EB3F/$EBBF (ki-hunter) ;;;
    ;;; $F214: Initialisation AI - enemy $EAFF/$EB7F/$EBFF (ki-hunter wings) ;;;
    ;;; $F25C: Main AI - enemy $EABF/$EB3F/$EBBF (ki-hunter) ;;;
    ;;; $F262: Main AI - enemy $EAFF/$EB7F/$EBFF (ki-hunter wings) ;;;
    ;;; $F268: Ki-hunter function - winged - idle flying ;;;
    ;;; $F3B8: Ki-hunter function - winged - swoop ;;;
    ;;; $F4ED: Ki-hunter function - winged - back off ;;;
    ;;; $F526: Instruction - set idling instruction lists facing forwards ;;;
    ;;; $F55A: Ki-hunter function - wingless - initial falling ;;;
    ;;; $F58B: Ki-hunter function - wingless - prepare to hop ;;;
    ;;; $F5E4: Instruction - enemy function = hop ;;;
    ;;; $F5F0: Ki-hunter function - wingless - hop ;;;
    ;;; $F67F: Instruction - enemy function = wingless - thinking ;;;
    ;;; $F68B: Ki-hunter function - wingless - thinking ;;;
    ;;; $F6B3: Ki-hunter function - wingless - fire acid spit ;;;
    ;;; $F6D2: Instruction - fire acid spit left ;;;
    ;;; $F6D8: Instruction - fire acid spit right ;;;
    ;;; $F6DC: Fire acid spit ;;;
    ;;; $F6F3..F9BD: Ki-hunter wings ;;;
        ;;; $F6F3: Ki-hunter wings function - attached ;;;
        ;;; $F700: RTL ;;;
        ;;; $F701: Enemy shot - enemy $EABF/$EB3F/$EBBF (ki-hunter) ;;;
        ;;; $F7CF: Ki-hunter wings function - falling ;;;
        ;;; $F7DB: Ki-hunter wings falling function - drifting left ;;;
        ;;; $F851: Determine falling ki-hunter wings left arc centre offsets ;;;
        ;;; $F87F: Determine falling ki-hunter wings right arc centre offsets ;;;
        ;;; $F8AD: Ki-hunter wings falling function - drifting right ;;;
        ;;; $F947: Set up falling ki-hunter wings drifting left ;;;
        ;;; $F96A: Set up falling ki-hunter wings drifting right ;;;
        ;;; $F98D: Determine falling ki-hunter wings speed table index reset value ;;;
;;; $F9BE: Free space ;;;