From 274532a56f28aef3fa4e04cd548b2edcf763cd40 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Fri, 2 Sep 2016 05:20:08 -0400 Subject: regenerate jumpmanjr.html --- jumpmanjr.html | 1350 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 714 insertions(+), 636 deletions(-) diff --git a/jumpmanjr.html b/jumpmanjr.html index 265a18a..e42f1e6 100644 --- a/jumpmanjr.html +++ b/jumpmanjr.html @@ -7,7 +7,7 @@
 ; da65 V2.15 - Git 104f898
-; Created:    2016-09-02 00:00:42
+; Created:    2016-09-02 05:18:59
 ; Input file: jumpmanjr.rom
 ; Page:       1
 
@@ -124,7 +124,7 @@
 work_level_sub_bomb:= $07A0                     ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
 work_level_sub_start:= $07A2                    ; called at start of level, $06E6 for some levels, or else a ROM subroutine
 work_level_sub6 := $07A4                        ; always $9740 aka game_main_loop
-work_level_sub_eol:= $07A6                      ; called at end of level (all bombs picked up). $06E6 for all but level07
+work_level_sub_eol:= $07A6                      ; called at end of level (all bombs picked up). $06E6 for all but level08
 work_level_offs_40:= $07A8                      ; all zeroes
 work_level_colpf3:= $07AE                       ; color (not sure what gets drawn in this color yet)
 work_level_colpf0:= $07AF                       ; color for girders and up-ropes
@@ -133,7 +133,7 @@
 work_level_offs_50:= $07B2                      ; unknown
 work_level_offs_55:= $07B7                      ; unknown, always $00 $00 $00
 work_level_offs_58:= $07BA                      ; unknown, not a ROM address
-work_level_offs_60:= $07BC                      ; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+work_level_offs_60:= $07BC                      ; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
 cur_level_desc  := $07C0                        ; first 2 bytes are level number in screencodes
 cur_level_sub0  := $07C2                        ; a subroutine
 cur_level_sub1  := $07C4                        ; a subroutine
@@ -157,7 +157,7 @@
 cur_level_sub_bomb:= $07E0                      ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
 cur_level_sub_start:= $07E2                     ; called at start of level, $06E6 for some levels, or else a ROM subroutine
 cur_level_sub6  := $07E4                        ; always $9740 aka game_main_loop
-cur_level_sub_eol:= $07E6                       ; called at end of level (all bombs picked up). $06E6 for all but level07
+cur_level_sub_eol:= $07E6                       ; called at end of level (all bombs picked up). $06E6 for all but level08
 cur_level_offs_40:= $07E8                       ; all zeroes
 cur_level_colpf3:= $07EE                        ; color (not sure what gets drawn in this color yet)
 cur_level_colpf0:= $07EF                        ; color for girders and up-ropes
@@ -166,7 +166,7 @@
 cur_level_offs_50:= $07F2                       ; unknown
 cur_level_offs_55:= $07F7                       ; unknown, always $00 $00 $00
 cur_level_offs_58:= $07FA                       ; unknown, not a ROM address
-cur_level_offs_60:= $07FC                       ; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+cur_level_offs_60:= $07FC                       ; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
 game_display_list:= $0881                       ; display list for game board
 pm_memory       := $2800
 HPOSP0_minus_two:= $CFFE
@@ -328,7 +328,7 @@
 ; the entry point for parsing the level map and drawing graphics from it. see level_maps.txt. caller must set $C0/$C1 to the address of the map data. modders beware: bogus map data can & will cause infinite loops.
 draw_map:
         ldy     #$00                            ; 8049 A0 00                    ..
-; $C0/$C1 points to $A300 (level00_desc) on the first call
+; $C0/$C1 points to $A300 (level01_desc) on the first call
 dm_get_opcode:
         lda     (dm_progctr),y                  ; 804B B1 C0                    ..
 ; map opcodes: $FC = jump, $FF = end, $FD = set drawing direction, $FE = select graphics object
@@ -1460,7 +1460,7 @@
         lsr     a                               ; 8818 4A                       J
         lsr     a                               ; 8819 4A                       J
         tay                                     ; 881A A8                       .
-; some bombs redraw parts of the level (e.g. disappearing platforms on level00)
+; some bombs redraw parts of the level (e.g. disappearing platforms on level01)
 change_map:
         lda     work_level_map_changes          ; 881B AD 9C 07                 ...
         sta     $B0                             ; 881E 85 B0                    ..
@@ -4036,7 +4036,7 @@
         .byte   $02,$02,$02,$02,$02,$02,$02,$02 ; 9C77 02 02 02 02 02 02 02 02  ........
         .byte   $00,$03,$02,$02,$02,$06,$03,$02 ; 9C7F 00 03 02 02 02 06 03 02  ........
         .byte   $02,$FF                         ; 9C87 02 FF                    ..
-; dunno what this is yet
+; dunno, solid black shape
 sh_9c89:.byte   $02,$00,$00,$00,$00,$02,$06,$00 ; 9C89 02 00 00 00 00 02 06 00  ........
         .byte   $00,$00,$02,$00,$01,$00,$00,$02 ; 9C91 00 00 02 00 01 00 00 02  ........
         .byte   $06,$01,$00,$00,$08,$00,$02,$00 ; 9C99 06 01 00 00 08 00 02 00  ........
@@ -4054,7 +4054,7 @@
         .byte   $01,$00,$00,$02,$01,$00,$01,$02 ; 9CDA 01 00 00 02 01 00 01 02  ........
         .byte   $01,$01,$02,$02,$01,$01,$03,$02 ; 9CE2 01 01 02 02 01 01 03 02  ........
         .byte   $FF                             ; 9CEA FF                       .
-; dunno what this is yet
+; dunno, solid black shape
 sh_9ceb:.byte   $02,$00,$00,$00,$00,$02,$00,$01 ; 9CEB 02 00 00 00 00 02 00 01  ........
         .byte   $00,$00,$02,$00,$02,$00,$00,$02 ; 9CF3 00 00 02 00 02 00 00 02  ........
         .byte   $00,$03,$00,$00,$FF             ; 9CFB 00 03 00 00 FF           .....
@@ -4175,1292 +4175,1292 @@
 cartinit_right:
         .addr   cart_start_stub                 ; 9FFE FE 8A                    ..
 ; ----------------------------------------------------------------------------
-; 64-byte level descriptors, 12 of them (1 per level). first 2 bytes are level number in screencodes
-level00_desc:
+; 64-byte level descriptors, 12 of them (1 per level). Descriptor for Nothing To It. first 2 bytes are level number in screencodes
+level01_desc:
         .byte   $10,$11                         ; A000 10 11                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level00_sub0:
+level01_sub0:
         .addr   L0000                           ; A002 00 00                    ..
 ; a subroutine
-level00_sub1:
+level01_sub1:
         .addr   L0000                           ; A004 00 00                    ..
 ; a subroutine
-level00_sub2:
+level01_sub2:
         .addr   L0000                           ; A006 00 00                    ..
 ; a subroutine
-level00_sub3:
+level01_sub3:
         .addr   check_collisions_1              ; A008 73 8F                    s.
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level00_num_bombs:
+level01_num_bombs:
         .byte   $0C                             ; A00A 0C                       .
 ; 0 = no bullets, range 0-4.
-level00_bullet_max:
+level01_bullet_max:
         .byte   $01                             ; A00B 01                       .
 ; jumpman starting Y position
-level00_y_start:
+level01_y_start:
         .byte   $A0                             ; A00C A0                       .
 ; jumpman starting X position
-level00_x_start:
+level01_x_start:
         .byte   $7C                             ; A00D 7C                       |
 ; fudge factor for bomb locations, always $00
-level00_fudge_x:
+level01_fudge_x:
         .byte   $00                             ; A00E 00                       .
 ; fudge factor for bomb locations, always $06
-level00_fudge_y:
+level01_fudge_y:
         .byte   $06                             ; A00F 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level00_points_per_bomb:
+level01_points_per_bomb:
         .byte   $64                             ; A010 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level00_time_bonus:
+level01_time_bonus:
         .word   $03E8                           ; A011 E8 03                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level00_offs_19:
+level01_offs_19:
         .byte   $00                             ; A013 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level00_unkn_table0:
+level01_unkn_table0:
         .addr   L06DF                           ; A014 DF 06                    ..
 ; used to draw the level initially (see also map_changes)
-level00_map:
-        .addr   l00_map                         ; A016 00 A3                    ..
+level01_map:
+        .addr   l01_map                         ; A016 00 A3                    ..
 ; start of bombs in map data (which must come last!)
-level00_map_bombs:
-        .addr   l00_map_bombs                   ; A018 66 A3                    f.
+level01_map_bombs:
+        .addr   l01_map_bombs                   ; A018 66 A3                    f.
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level00_bomblist:
-        .addr   l00_bombs                       ; A01A 8B A3                    ..
+level01_bomblist:
+        .addr   l01_bombs                       ; A01A 8B A3                    ..
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level00_map_changes:
-        .addr   l00_map_changes                 ; A01C A4 A3                    ..
+level01_map_changes:
+        .addr   l01_map_changes                 ; A01C A4 A3                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level00_indirect_subs:
+level01_indirect_subs:
         .byte   $00,$00                         ; A01E 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level00_sub_bomb:
+level01_sub_bomb:
         .addr   L06E6                           ; A020 E6 06                    ..
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level00_sub_start:
+level01_sub_start:
         .addr   L06E6                           ; A022 E6 06                    ..
 ; always $9740 aka game_main_loop
-level00_sub6:
+level01_sub6:
         .addr   game_main_loop                  ; A024 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level00_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level01_sub_eol:
         .addr   L06E6                           ; A026 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level00_offs_40:
+level01_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A028 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level00_colpf3:
+level01_colpf3:
         .byte   $CA                             ; A02E CA                       .
 ; color for girders and up-ropes
-level00_colpf0:
+level01_colpf0:
         .byte   $96                             ; A02F 96                       .
 ; color for ladders and down-ropes
-level00_colpf1:
+level01_colpf1:
         .byte   $18                             ; A030 18                       .
 ; color for bombs
-level00_colpf2:
+level01_colpf2:
         .byte   $5A                             ; A031 5A                       Z
 ; unknown
-level00_offs_50:
+level01_offs_50:
         .byte   $0C,$24,$4C,$74,$8C             ; A032 0C 24 4C 74 8C           .$Lt.
 ; unknown, always $00 $00 $00
-level00_offs_55:
+level01_offs_55:
         .byte   $00,$00,$00                     ; A037 00 00 00                 ...
 ; unknown, not a ROM address
-level00_offs_58:
+level01_offs_58:
         .byte   $1A,$7E                         ; A03A 1A 7E                    .~
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level00_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level01_offs_60:
         .byte   $00,$00,$00,$00                 ; A03C 00 00 00 00              ....
-; first 2 bytes are level number in screencodes
-level01_desc:
+; Descriptor for Electrocution. first 2 bytes are level number in screencodes
+level02_desc:
         .byte   $10,$12                         ; A040 10 12                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level01_sub0:
+level02_sub0:
         .addr   electrocution_done              ; A042 DD A4                    ..
 ; a subroutine
-level01_sub1:
+level02_sub1:
         .addr   electrocute                     ; A044 09 A5                    ..
 ; a subroutine
-level01_sub2:
+level02_sub2:
         .addr   L0000                           ; A046 00 00                    ..
 ; a subroutine
-level01_sub3:
-        .addr   level02_collisions              ; A048 3D A5                    =.
+level02_sub3:
+        .addr   level03_collisions              ; A048 3D A5                    =.
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level01_num_bombs:
+level02_num_bombs:
         .byte   $10                             ; A04A 10                       .
 ; 0 = no bullets, range 0-4.
-level01_bullet_max:
+level02_bullet_max:
         .byte   $02                             ; A04B 02                       .
 ; jumpman starting Y position
-level01_y_start:
+level02_y_start:
         .byte   $20                             ; A04C 20                        
 ; jumpman starting X position
-level01_x_start:
+level02_x_start:
         .byte   $7C                             ; A04D 7C                       |
 ; fudge factor for bomb locations, always $00
-level01_fudge_x:
+level02_fudge_x:
         .byte   $00                             ; A04E 00                       .
 ; fudge factor for bomb locations, always $06
-level01_fudge_y:
+level02_fudge_y:
         .byte   $06                             ; A04F 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level01_points_per_bomb:
+level02_points_per_bomb:
         .byte   $64                             ; A050 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level01_time_bonus:
+level02_time_bonus:
         .word   $07D0                           ; A051 D0 07                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level01_offs_19:
+level02_offs_19:
         .byte   $00                             ; A053 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level01_unkn_table0:
+level02_unkn_table0:
         .addr   LA5C2                           ; A054 C2 A5                    ..
 ; used to draw the level initially (see also map_changes)
-level01_map:
-        .addr   l01_map                         ; A056 E0 A3                    ..
+level02_map:
+        .addr   l02_map                         ; A056 E0 A3                    ..
 ; start of bombs in map data (which must come last!)
-level01_map_bombs:
-        .addr   LA446                           ; A058 46 A4                    F.
+level02_map_bombs:
+        .addr   l02_map_bombs                   ; A058 46 A4                    F.
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level01_bomblist:
-        .addr   LA477                           ; A05A 77 A4                    w.
+level02_bomblist:
+        .addr   l02_bombs                       ; A05A 77 A4                    w.
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level01_map_changes:
+level02_map_changes:
         .addr   L0000                           ; A05C 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level01_indirect_subs:
+level02_indirect_subs:
         .byte   $00,$00                         ; A05E 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level01_sub_bomb:
+level02_sub_bomb:
         .addr   electrocution_bomb_pickup       ; A060 98 A4                    ..
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level01_sub_start:
+level02_sub_start:
         .addr   L8036                           ; A062 36 80                    6.
 ; always $9740 aka game_main_loop
-level01_sub6:
+level02_sub6:
         .addr   game_main_loop                  ; A064 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level01_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level02_sub_eol:
         .addr   L06E6                           ; A066 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level01_offs_40:
+level02_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A068 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level01_colpf3:
+level02_colpf3:
         .byte   $6A                             ; A06E 6A                       j
 ; color for girders and up-ropes
-level01_colpf0:
+level02_colpf0:
         .byte   $08                             ; A06F 08                       .
 ; color for ladders and down-ropes
-level01_colpf1:
+level02_colpf1:
         .byte   $C6                             ; A070 C6                       .
 ; color for bombs
-level01_colpf2:
+level02_colpf2:
         .byte   $1A                             ; A071 1A                       .
 ; unknown
-level01_offs_50:
+level02_offs_50:
         .byte   $18,$4C,$80,$00,$00             ; A072 18 4C 80 00 00           .L...
 ; unknown, always $00 $00 $00
-level01_offs_55:
+level02_offs_55:
         .byte   $00,$00,$00                     ; A077 00 00 00                 ...
 ; unknown, not a ROM address
-level01_offs_58:
+level02_offs_58:
         .byte   $02,$94                         ; A07A 02 94                    ..
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level01_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level02_offs_60:
         .byte   $00,$00,$00,$00                 ; A07C 00 00 00 00              ....
-; first 2 bytes are level number in screencodes
-level02_desc:
+; Descriptor for Dumbwaiter. first 2 bytes are level number in screencodes
+level03_desc:
         .byte   $10,$13                         ; A080 10 13                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level02_sub0:
+level03_sub0:
         .addr   dumbwaiter_sub0                 ; A082 BD A6                    ..
 ; a subroutine
-level02_sub1:
+level03_sub1:
         .addr   L0000                           ; A084 00 00                    ..
 ; a subroutine
-level02_sub2:
+level03_sub2:
         .addr   L0000                           ; A086 00 00                    ..
 ; a subroutine
-level02_sub3:
+level03_sub3:
         .addr   dumbwaiter_sub3                 ; A088 24 A7                    $.
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level02_num_bombs:
+level03_num_bombs:
         .byte   $0C                             ; A08A 0C                       .
 ; 0 = no bullets, range 0-4.
-level02_bullet_max:
+level03_bullet_max:
         .byte   $00                             ; A08B 00                       .
 ; jumpman starting Y position
-level02_y_start:
+level03_y_start:
         .byte   $40                             ; A08C 40                       @
 ; jumpman starting X position
-level02_x_start:
+level03_x_start:
         .byte   $B4                             ; A08D B4                       .
 ; fudge factor for bomb locations, always $00
-level02_fudge_x:
+level03_fudge_x:
         .byte   $00                             ; A08E 00                       .
 ; fudge factor for bomb locations, always $06
-level02_fudge_y:
+level03_fudge_y:
         .byte   $06                             ; A08F 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level02_points_per_bomb:
+level03_points_per_bomb:
         .byte   $64                             ; A090 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level02_time_bonus:
+level03_time_bonus:
         .word   $09C4                           ; A091 C4 09                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level02_offs_19:
+level03_offs_19:
         .byte   $00                             ; A093 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level02_unkn_table0:
-        .addr   LA66D                           ; A094 6D A6                    m.
+level03_unkn_table0:
+        .addr   l03_unkn                        ; A094 6D A6                    m.
 ; used to draw the level initially (see also map_changes)
-level02_map:
-        .addr   LA5F0                           ; A096 F0 A5                    ..
+level03_map:
+        .addr   l03_map                         ; A096 F0 A5                    ..
 ; start of bombs in map data (which must come last!)
-level02_map_bombs:
-        .addr   LA62F                           ; A098 2F A6                    /.
+level03_map_bombs:
+        .addr   l03_map_bombs                   ; A098 2F A6                    /.
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level02_bomblist:
-        .addr   LA654                           ; A09A 54 A6                    T.
+level03_bomblist:
+        .addr   l03_bombs                       ; A09A 54 A6                    T.
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level02_map_changes:
+level03_map_changes:
         .addr   L0000                           ; A09C 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level02_indirect_subs:
+level03_indirect_subs:
         .byte   $00,$00                         ; A09E 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level02_sub_bomb:
+level03_sub_bomb:
         .addr   L06E6                           ; A0A0 E6 06                    ..
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level02_sub_start:
+level03_sub_start:
         .addr   dumbwaiter_setup                ; A0A2 8C A6                    ..
 ; always $9740 aka game_main_loop
-level02_sub6:
+level03_sub6:
         .addr   game_main_loop                  ; A0A4 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level02_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level03_sub_eol:
         .addr   L06E6                           ; A0A6 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level02_offs_40:
+level03_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A0A8 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level02_colpf3:
+level03_colpf3:
         .byte   $1A                             ; A0AE 1A                       .
 ; color for girders and up-ropes
-level02_colpf0:
+level03_colpf0:
         .byte   $C6                             ; A0AF C6                       .
 ; color for ladders and down-ropes
-level02_colpf1:
+level03_colpf1:
         .byte   $96                             ; A0B0 96                       .
 ; color for bombs
-level02_colpf2:
+level03_colpf2:
         .byte   $1A                             ; A0B1 1A                       .
 ; unknown
-level02_offs_50:
+level03_offs_50:
         .byte   $0C,$8C,$00,$00,$00             ; A0B2 0C 8C 00 00 00           .....
 ; unknown, always $00 $00 $00
-level02_offs_55:
+level03_offs_55:
         .byte   $00,$00,$00                     ; A0B7 00 00 00                 ...
 ; unknown, not a ROM address
-level02_offs_58:
+level03_offs_58:
         .byte   $00,$00                         ; A0BA 00 00                    ..
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level02_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level03_offs_60:
         .byte   $00,$00,$00,$00                 ; A0BC 00 00 00 00              ....
-; first 2 bytes are level number in screencodes
-level03_desc:
+; Descriptor for Hellstones. first 2 bytes are level number in screencodes
+level04_desc:
         .byte   $10,$14                         ; A0C0 10 14                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level03_sub0:
+level04_sub0:
         .addr   hellstones_sub0                 ; A0C2 36 A8                    6.
 ; a subroutine
-level03_sub1:
+level04_sub1:
         .addr   L0000                           ; A0C4 00 00                    ..
 ; a subroutine
-level03_sub2:
+level04_sub2:
         .addr   L0000                           ; A0C6 00 00                    ..
 ; a subroutine
-level03_sub3:
+level04_sub3:
         .addr   hellstones_sub3                 ; A0C8 27 A8                    '.
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level03_num_bombs:
+level04_num_bombs:
         .byte   $10                             ; A0CA 10                       .
 ; 0 = no bullets, range 0-4.
-level03_bullet_max:
+level04_bullet_max:
         .byte   $00                             ; A0CB 00                       .
 ; jumpman starting Y position
-level03_y_start:
+level04_y_start:
         .byte   $C0                             ; A0CC C0                       .
 ; jumpman starting X position
-level03_x_start:
+level04_x_start:
         .byte   $7C                             ; A0CD 7C                       |
 ; fudge factor for bomb locations, always $00
-level03_fudge_x:
+level04_fudge_x:
         .byte   $00                             ; A0CE 00                       .
 ; fudge factor for bomb locations, always $06
-level03_fudge_y:
+level04_fudge_y:
         .byte   $06                             ; A0CF 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level03_points_per_bomb:
+level04_points_per_bomb:
         .byte   $64                             ; A0D0 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level03_time_bonus:
+level04_time_bonus:
         .word   $07D0                           ; A0D1 D0 07                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level03_offs_19:
+level04_offs_19:
         .byte   $00                             ; A0D3 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level03_unkn_table0:
+level04_unkn_table0:
         .addr   L06DF                           ; A0D4 DF 06                    ..
 ; used to draw the level initially (see also map_changes)
-level03_map:
-        .addr   LA790                           ; A0D6 90 A7                    ..
+level04_map:
+        .addr   l04_map                         ; A0D6 90 A7                    ..
 ; start of bombs in map data (which must come last!)
-level03_map_bombs:
-        .addr   LA7D5                           ; A0D8 D5 A7                    ..
+level04_map_bombs:
+        .addr   l04_map_bombs                   ; A0D8 D5 A7                    ..
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level03_bomblist:
-        .addr   LA806                           ; A0DA 06 A8                    ..
+level04_bomblist:
+        .addr   l04_bombs                       ; A0DA 06 A8                    ..
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level03_map_changes:
+level04_map_changes:
         .addr   L0000                           ; A0DC 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level03_indirect_subs:
+level04_indirect_subs:
         .byte   $00,$00                         ; A0DE 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level03_sub_bomb:
+level04_sub_bomb:
         .addr   L06E6                           ; A0E0 E6 06                    ..
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level03_sub_start:
+level04_sub_start:
         .addr   L8036                           ; A0E2 36 80                    6.
 ; always $9740 aka game_main_loop
-level03_sub6:
+level04_sub6:
         .addr   game_main_loop                  ; A0E4 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level03_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level04_sub_eol:
         .addr   L06E6                           ; A0E6 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level03_offs_40:
+level04_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A0E8 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level03_colpf3:
+level04_colpf3:
         .byte   $CA                             ; A0EE CA                       .
 ; color for girders and up-ropes
-level03_colpf0:
+level04_colpf0:
         .byte   $96                             ; A0EF 96                       .
 ; color for ladders and down-ropes
-level03_colpf1:
+level04_colpf1:
         .byte   $18                             ; A0F0 18                       .
 ; color for bombs
-level03_colpf2:
+level04_colpf2:
         .byte   $5A                             ; A0F1 5A                       Z
 ; unknown
-level03_offs_50:
+level04_offs_50:
         .byte   $4C,$18,$2C,$80,$6C             ; A0F2 4C 18 2C 80 6C           L.,.l
 ; unknown, always $00 $00 $00
-level03_offs_55:
+level04_offs_55:
         .byte   $00,$00,$00                     ; A0F7 00 00 00                 ...
 ; unknown, not a ROM address
-level03_offs_58:
+level04_offs_58:
         .byte   $00,$00                         ; A0FA 00 00                    ..
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level03_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level04_offs_60:
         .byte   $00,$00,$00,$00                 ; A0FC 00 00 00 00              ....
-; first 2 bytes are level number in screencodes
-level04_desc:
+; Descriptor for Figurits Revenge. first 2 bytes are level number in screencodes
+level05_desc:
         .byte   $10,$15                         ; A100 10 15                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level04_sub0:
+level05_sub0:
         .addr   L0000                           ; A102 00 00                    ..
 ; a subroutine
-level04_sub1:
+level05_sub1:
         .addr   L0000                           ; A104 00 00                    ..
 ; a subroutine
-level04_sub2:
+level05_sub2:
         .addr   L0000                           ; A106 00 00                    ..
 ; a subroutine
-level04_sub3:
+level05_sub3:
         .addr   check_collisions_1              ; A108 73 8F                    s.
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level04_num_bombs:
+level05_num_bombs:
         .byte   $0E                             ; A10A 0E                       .
 ; 0 = no bullets, range 0-4.
-level04_bullet_max:
+level05_bullet_max:
         .byte   $02                             ; A10B 02                       .
 ; jumpman starting Y position
-level04_y_start:
+level05_y_start:
         .byte   $C0                             ; A10C C0                       .
 ; jumpman starting X position
-level04_x_start:
+level05_x_start:
         .byte   $34                             ; A10D 34                       4
 ; fudge factor for bomb locations, always $00
-level04_fudge_x:
+level05_fudge_x:
         .byte   $00                             ; A10E 00                       .
 ; fudge factor for bomb locations, always $06
-level04_fudge_y:
+level05_fudge_y:
         .byte   $06                             ; A10F 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level04_points_per_bomb:
+level05_points_per_bomb:
         .byte   $64                             ; A110 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level04_time_bonus:
+level05_time_bonus:
         .word   $07D0                           ; A111 D0 07                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level04_offs_19:
+level05_offs_19:
         .byte   $00                             ; A113 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level04_unkn_table0:
+level05_unkn_table0:
         .addr   L06DF                           ; A114 DF 06                    ..
 ; used to draw the level initially (see also map_changes)
-level04_map:
-        .addr   LAAD0                           ; A116 D0 AA                    ..
+level05_map:
+        .addr   l05_map                         ; A116 D0 AA                    ..
 ; start of bombs in map data (which must come last!)
-level04_map_bombs:
-        .addr   LAB42                           ; A118 42 AB                    B.
+level05_map_bombs:
+        .addr   l05_map_bombs                   ; A118 42 AB                    B.
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level04_bomblist:
-        .addr   LAB6D                           ; A11A 6D AB                    m.
+level05_bomblist:
+        .addr   l05_bombs                       ; A11A 6D AB                    m.
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level04_map_changes:
-        .addr   LAB8A                           ; A11C 8A AB                    ..
+level05_map_changes:
+        .addr   l05_map_changes                 ; A11C 8A AB                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level04_indirect_subs:
+level05_indirect_subs:
         .byte   $00,$00                         ; A11E 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level04_sub_bomb:
+level05_sub_bomb:
         .addr   L06E6                           ; A120 E6 06                    ..
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level04_sub_start:
+level05_sub_start:
         .addr   L06E6                           ; A122 E6 06                    ..
 ; always $9740 aka game_main_loop
-level04_sub6:
+level05_sub6:
         .addr   game_main_loop                  ; A124 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level04_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level05_sub_eol:
         .addr   L06E6                           ; A126 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level04_offs_40:
+level05_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A128 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level04_colpf3:
+level05_colpf3:
         .byte   $6A                             ; A12E 6A                       j
 ; color for girders and up-ropes
-level04_colpf0:
+level05_colpf0:
         .byte   $08                             ; A12F 08                       .
 ; color for ladders and down-ropes
-level04_colpf1:
+level05_colpf1:
         .byte   $C6                             ; A130 C6                       .
 ; color for bombs
-level04_colpf2:
+level05_colpf2:
         .byte   $1A                             ; A131 1A                       .
 ; unknown
-level04_offs_50:
+level05_offs_50:
         .byte   $0C,$22,$84,$8E,$00             ; A132 0C 22 84 8E 00           ."...
 ; unknown, always $00 $00 $00
-level04_offs_55:
+level05_offs_55:
         .byte   $00,$00,$00                     ; A137 00 00 00                 ...
 ; unknown, not a ROM address
-level04_offs_58:
+level05_offs_58:
         .byte   $96,$00                         ; A13A 96 00                    ..
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level04_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level05_offs_60:
         .byte   $00,$00,$00,$00                 ; A13C 00 00 00 00              ....
-; first 2 bytes are level number in screencodes
-level05_desc:
+; Descriptor for Walls. first 2 bytes are level number in screencodes
+level06_desc:
         .byte   $10,$16                         ; A140 10 16                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level05_sub0:
-        .addr   LAA3A                           ; A142 3A AA                    :.
+level06_sub0:
+        .addr   walls_sub0                      ; A142 3A AA                    :.
 ; a subroutine
-level05_sub1:
-        .addr   LAA35                           ; A144 35 AA                    5.
+level06_sub1:
+        .addr   walls_sub1                      ; A144 35 AA                    5.
 ; a subroutine
-level05_sub2:
-        .addr   LAA55                           ; A146 55 AA                    U.
+level06_sub2:
+        .addr   walls_sub2                      ; A146 55 AA                    U.
 ; a subroutine
-level05_sub3:
-        .addr   LAABC                           ; A148 BC AA                    ..
+level06_sub3:
+        .addr   walls_sub3                      ; A148 BC AA                    ..
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level05_num_bombs:
+level06_num_bombs:
         .byte   $10                             ; A14A 10                       .
 ; 0 = no bullets, range 0-4.
-level05_bullet_max:
+level06_bullet_max:
         .byte   $00                             ; A14B 00                       .
 ; jumpman starting Y position
-level05_y_start:
+level06_y_start:
         .byte   $80                             ; A14C 80                       .
 ; jumpman starting X position
-level05_x_start:
+level06_x_start:
         .byte   $34                             ; A14D 34                       4
 ; fudge factor for bomb locations, always $00
-level05_fudge_x:
+level06_fudge_x:
         .byte   $00                             ; A14E 00                       .
 ; fudge factor for bomb locations, always $06
-level05_fudge_y:
+level06_fudge_y:
         .byte   $06                             ; A14F 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level05_points_per_bomb:
+level06_points_per_bomb:
         .byte   $64                             ; A150 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level05_time_bonus:
+level06_time_bonus:
         .word   $05DC                           ; A151 DC 05                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level05_offs_19:
+level06_offs_19:
         .byte   $00                             ; A153 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level05_unkn_table0:
+level06_unkn_table0:
         .addr   L06DF                           ; A154 DF 06                    ..
 ; used to draw the level initially (see also map_changes)
-level05_map:
-        .addr   LA920                           ; A156 20 A9                     .
+level06_map:
+        .addr   l06_map                         ; A156 20 A9                     .
 ; start of bombs in map data (which must come last!)
-level05_map_bombs:
-        .addr   LA974                           ; A158 74 A9                    t.
+level06_map_bombs:
+        .addr   l06_map_bombs                   ; A158 74 A9                    t.
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level05_bomblist:
-        .addr   LA9A5                           ; A15A A5 A9                    ..
+level06_bomblist:
+        .addr   l06_bombs                       ; A15A A5 A9                    ..
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level05_map_changes:
+level06_map_changes:
         .addr   L0000                           ; A15C 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level05_indirect_subs:
+level06_indirect_subs:
         .byte   $00,$00                         ; A15E 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level05_sub_bomb:
-        .addr   LAA73                           ; A160 73 AA                    s.
+level06_sub_bomb:
+        .addr   walls_bomb_sub                  ; A160 73 AA                    s.
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level05_sub_start:
-        .addr   LA9C6                           ; A162 C6 A9                    ..
+level06_sub_start:
+        .addr   walls_init                      ; A162 C6 A9                    ..
 ; always $9740 aka game_main_loop
-level05_sub6:
+level06_sub6:
         .addr   game_main_loop                  ; A164 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level05_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level06_sub_eol:
         .addr   L06E6                           ; A166 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level05_offs_40:
+level06_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A168 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level05_colpf3:
+level06_colpf3:
         .byte   $56                             ; A16E 56                       V
 ; color for girders and up-ropes
-level05_colpf0:
+level06_colpf0:
         .byte   $C6                             ; A16F C6                       .
 ; color for ladders and down-ropes
-level05_colpf1:
+level06_colpf1:
         .byte   $96                             ; A170 96                       .
 ; color for bombs
-level05_colpf2:
+level06_colpf2:
         .byte   $28                             ; A171 28                       (
 ; unknown
-level05_offs_50:
+level06_offs_50:
         .byte   $04,$30,$68,$94,$00             ; A172 04 30 68 94 00           .0h..
 ; unknown, always $00 $00 $00
-level05_offs_55:
+level06_offs_55:
         .byte   $00,$00,$00                     ; A177 00 00 00                 ...
 ; unknown, not a ROM address
-level05_offs_58:
+level06_offs_58:
         .byte   $4C,$FF                         ; A17A 4C FF                    L.
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level05_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level06_offs_60:
         .byte   $FF,$FF,$FF,$FF                 ; A17C FF FF FF FF              ....
-; first 2 bytes are level number in screencodes
-level06_desc:
+; Descriptor for Zig-Zag. first 2 bytes are level number in screencodes
+level07_desc:
         .byte   $10,$17                         ; A180 10 17                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level06_sub0:
+level07_sub0:
         .addr   zigzag_sub0                     ; A182 68 AD                    h.
 ; a subroutine
-level06_sub1:
+level07_sub1:
         .addr   L0000                           ; A184 00 00                    ..
 ; a subroutine
-level06_sub2:
+level07_sub2:
         .addr   L0000                           ; A186 00 00                    ..
 ; a subroutine
-level06_sub3:
+level07_sub3:
         .addr   check_collisions_1              ; A188 73 8F                    s.
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level06_num_bombs:
+level07_num_bombs:
         .byte   $0E                             ; A18A 0E                       .
 ; 0 = no bullets, range 0-4.
-level06_bullet_max:
+level07_bullet_max:
         .byte   $03                             ; A18B 03                       .
 ; jumpman starting Y position
-level06_y_start:
+level07_y_start:
         .byte   $C0                             ; A18C C0                       .
 ; jumpman starting X position
-level06_x_start:
+level07_x_start:
         .byte   $7C                             ; A18D 7C                       |
 ; fudge factor for bomb locations, always $00
-level06_fudge_x:
+level07_fudge_x:
         .byte   $00                             ; A18E 00                       .
 ; fudge factor for bomb locations, always $06
-level06_fudge_y:
+level07_fudge_y:
         .byte   $06                             ; A18F 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level06_points_per_bomb:
+level07_points_per_bomb:
         .byte   $64                             ; A190 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level06_time_bonus:
+level07_time_bonus:
         .word   $05DC                           ; A191 DC 05                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level06_offs_19:
+level07_offs_19:
         .byte   $00                             ; A193 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level06_unkn_table0:
+level07_unkn_table0:
         .addr   L06DF                           ; A194 DF 06                    ..
 ; used to draw the level initially (see also map_changes)
-level06_map:
-        .addr   LAC60                           ; A196 60 AC                    `.
+level07_map:
+        .addr   l07_map                         ; A196 60 AC                    `.
 ; start of bombs in map data (which must come last!)
-level06_map_bombs:
-        .addr   LACBA                           ; A198 BA AC                    ..
+level07_map_bombs:
+        .addr   l07_map_bombs                   ; A198 BA AC                    ..
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level06_bomblist:
-        .addr   LACE5                           ; A19A E5 AC                    ..
+level07_bomblist:
+        .addr   l07_bombs                       ; A19A E5 AC                    ..
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level06_map_changes:
-        .addr   LAD02                           ; A19C 02 AD                    ..
+level07_map_changes:
+        .addr   l07_map_changes                 ; A19C 02 AD                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level06_indirect_subs:
+level07_indirect_subs:
         .byte   $00,$00                         ; A19E 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level06_sub_bomb:
+level07_sub_bomb:
         .addr   L06E6                           ; A1A0 E6 06                    ..
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level06_sub_start:
+level07_sub_start:
         .addr   L8036                           ; A1A2 36 80                    6.
 ; always $9740 aka game_main_loop
-level06_sub6:
+level07_sub6:
         .addr   game_main_loop                  ; A1A4 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level06_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level07_sub_eol:
         .addr   L06E6                           ; A1A6 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level06_offs_40:
+level07_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A1A8 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level06_colpf3:
+level07_colpf3:
         .byte   $CA                             ; A1AE CA                       .
 ; color for girders and up-ropes
-level06_colpf0:
+level07_colpf0:
         .byte   $96                             ; A1AF 96                       .
 ; color for ladders and down-ropes
-level06_colpf1:
+level07_colpf1:
         .byte   $18                             ; A1B0 18                       .
 ; color for bombs
-level06_colpf2:
+level07_colpf2:
         .byte   $5A                             ; A1B1 5A                       Z
 ; unknown
-level06_offs_50:
+level07_offs_50:
         .byte   $0C,$4C,$8C,$00,$00             ; A1B2 0C 4C 8C 00 00           .L...
 ; unknown, always $00 $00 $00
-level06_offs_55:
+level07_offs_55:
         .byte   $00,$00,$00                     ; A1B7 00 00 00                 ...
 ; unknown, not a ROM address
-level06_offs_58:
+level07_offs_58:
         .byte   $1C,$7E                         ; A1BA 1C 7E                    .~
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level06_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level07_offs_60:
         .byte   $00,$00,$00,$00                 ; A1BC 00 00 00 00              ....
-; first 2 bytes are level number in screencodes
-level07_desc:
+; Descriptor for Spellbound. first 2 bytes are level number in screencodes
+level08_desc:
         .byte   $10,$18                         ; A1C0 10 18                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level07_sub0:
+level08_sub0:
         .addr   LAF1C                           ; A1C2 1C AF                    ..
 ; a subroutine
-level07_sub1:
+level08_sub1:
         .addr   L0000                           ; A1C4 00 00                    ..
 ; a subroutine
-level07_sub2:
+level08_sub2:
         .addr   L0000                           ; A1C6 00 00                    ..
 ; a subroutine
-level07_sub3:
+level08_sub3:
         .addr   check_collisions_1              ; A1C8 73 8F                    s.
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level07_num_bombs:
+level08_num_bombs:
         .byte   $0C                             ; A1CA 0C                       .
 ; 0 = no bullets, range 0-4.
-level07_bullet_max:
+level08_bullet_max:
         .byte   $02                             ; A1CB 02                       .
 ; jumpman starting Y position
-level07_y_start:
+level08_y_start:
         .byte   $20                             ; A1CC 20                        
 ; jumpman starting X position
-level07_x_start:
+level08_x_start:
         .byte   $7C                             ; A1CD 7C                       |
 ; fudge factor for bomb locations, always $00
-level07_fudge_x:
+level08_fudge_x:
         .byte   $00                             ; A1CE 00                       .
 ; fudge factor for bomb locations, always $06
-level07_fudge_y:
+level08_fudge_y:
         .byte   $06                             ; A1CF 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level07_points_per_bomb:
+level08_points_per_bomb:
         .byte   $64                             ; A1D0 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level07_time_bonus:
+level08_time_bonus:
         .word   $05DC                           ; A1D1 DC 05                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level07_offs_19:
+level08_offs_19:
         .byte   $00                             ; A1D3 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level07_unkn_table0:
-        .addr   LAE8A                           ; A1D4 8A AE                    ..
+level08_unkn_table0:
+        .addr   l08_unkn0                       ; A1D4 8A AE                    ..
 ; used to draw the level initially (see also map_changes)
-level07_map:
-        .addr   LADE0                           ; A1D6 E0 AD                    ..
+level08_map:
+        .addr   l08_map                         ; A1D6 E0 AD                    ..
 ; start of bombs in map data (which must come last!)
-level07_map_bombs:
-        .addr   LAE4C                           ; A1D8 4C AE                    L.
+level08_map_bombs:
+        .addr   l08_map_bombs                   ; A1D8 4C AE                    L.
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level07_bomblist:
-        .addr   LAE71                           ; A1DA 71 AE                    q.
+level08_bomblist:
+        .addr   l08_bombs                       ; A1DA 71 AE                    q.
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level07_map_changes:
+level08_map_changes:
         .addr   L0000                           ; A1DC 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level07_indirect_subs:
+level08_indirect_subs:
         .byte   $00,$00                         ; A1DE 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level07_sub_bomb:
-        .addr   LAF23                           ; A1E0 23 AF                    #.
+level08_sub_bomb:
+        .addr   spellbound_bomb_sub             ; A1E0 23 AF                    #.
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level07_sub_start:
-        .addr   LAE9B                           ; A1E2 9B AE                    ..
+level08_sub_start:
+        .addr   spellbound_init                 ; A1E2 9B AE                    ..
 ; always $9740 aka game_main_loop
-level07_sub6:
+level08_sub6:
         .addr   game_main_loop                  ; A1E4 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level07_sub_eol:
-        .addr   level07_letters                 ; A1E6 58 AF                    X.
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level08_sub_eol:
+        .addr   spellbound_letters              ; A1E6 58 AF                    X.
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level07_offs_40:
+level08_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A1E8 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level07_colpf3:
+level08_colpf3:
         .byte   $6A                             ; A1EE 6A                       j
 ; color for girders and up-ropes
-level07_colpf0:
+level08_colpf0:
         .byte   $08                             ; A1EF 08                       .
 ; color for ladders and down-ropes
-level07_colpf1:
+level08_colpf1:
         .byte   $C6                             ; A1F0 C6                       .
 ; color for bombs
-level07_colpf2:
+level08_colpf2:
         .byte   $1A                             ; A1F1 1A                       .
 ; unknown
-level07_offs_50:
+level08_offs_50:
         .byte   $0C,$30,$68,$8C,$00             ; A1F2 0C 30 68 8C 00           .0h..
 ; unknown, always $00 $00 $00
-level07_offs_55:
+level08_offs_55:
         .byte   $00,$00,$00                     ; A1F7 00 00 00                 ...
 ; unknown, not a ROM address
-level07_offs_58:
+level08_offs_58:
         .byte   $40,$56                         ; A1FA 40 56                    @V
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level07_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level08_offs_60:
         .byte   $00,$00,$00,$00                 ; A1FC 00 00 00 00              ....
-; first 2 bytes are level number in screencodes
-level08_desc:
+; Descriptor for Blackout. first 2 bytes are level number in screencodes
+level09_desc:
         .byte   $10,$19                         ; A200 10 19                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level08_sub0:
-        .addr   LB140                           ; A202 40 B1                    @.
+level09_sub0:
+        .addr   blackout_sub0                   ; A202 40 B1                    @.
 ; a subroutine
-level08_sub1:
+level09_sub1:
         .addr   L0000                           ; A204 00 00                    ..
 ; a subroutine
-level08_sub2:
+level09_sub2:
         .addr   L0000                           ; A206 00 00                    ..
 ; a subroutine
-level08_sub3:
+level09_sub3:
         .addr   L0000                           ; A208 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level08_num_bombs:
+level09_num_bombs:
         .byte   $08                             ; A20A 08                       .
 ; 0 = no bullets, range 0-4.
-level08_bullet_max:
+level09_bullet_max:
         .byte   $00                             ; A20B 00                       .
 ; jumpman starting Y position
-level08_y_start:
+level09_y_start:
         .byte   $C0                             ; A20C C0                       .
 ; jumpman starting X position
-level08_x_start:
+level09_x_start:
         .byte   $9E                             ; A20D 9E                       .
 ; fudge factor for bomb locations, always $00
-level08_fudge_x:
+level09_fudge_x:
         .byte   $00                             ; A20E 00                       .
 ; fudge factor for bomb locations, always $06
-level08_fudge_y:
+level09_fudge_y:
         .byte   $06                             ; A20F 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level08_points_per_bomb:
+level09_points_per_bomb:
         .byte   $64                             ; A210 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level08_time_bonus:
+level09_time_bonus:
         .word   $07D0                           ; A211 D0 07                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level08_offs_19:
+level09_offs_19:
         .byte   $00                             ; A213 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level08_unkn_table0:
+level09_unkn_table0:
         .addr   L06DF                           ; A214 DF 06                    ..
 ; used to draw the level initially (see also map_changes)
-level08_map:
-        .addr   LB0A2                           ; A216 A2 B0                    ..
+level09_map:
+        .addr   l09_map                         ; A216 A2 B0                    ..
 ; start of bombs in map data (which must come last!)
-level08_map_bombs:
-        .addr   LB072                           ; A218 72 B0                    r.
+level09_map_bombs:
+        .addr   l09_map_bombs                   ; A218 72 B0                    r.
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level08_bomblist:
-        .addr   LB0A3                           ; A21A A3 B0                    ..
+level09_bomblist:
+        .addr   l09_bombs                       ; A21A A3 B0                    ..
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level08_map_changes:
+level09_map_changes:
         .addr   L0000                           ; A21C 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level08_indirect_subs:
+level09_indirect_subs:
         .byte   $00,$00                         ; A21E 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level08_sub_bomb:
-        .addr   LB121                           ; A220 21 B1                    !.
+level09_sub_bomb:
+        .addr   blackout_bomb_sub               ; A220 21 B1                    !.
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level08_sub_start:
-        .addr   LB0C4                           ; A222 C4 B0                    ..
+level09_sub_start:
+        .addr   blackout_init                   ; A222 C4 B0                    ..
 ; always $9740 aka game_main_loop
-level08_sub6:
+level09_sub6:
         .addr   game_main_loop                  ; A224 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level08_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level09_sub_eol:
         .addr   L06E6                           ; A226 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level08_offs_40:
+level09_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A228 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level08_colpf3:
+level09_colpf3:
         .byte   $1A                             ; A22E 1A                       .
 ; color for girders and up-ropes
-level08_colpf0:
+level09_colpf0:
         .byte   $C6                             ; A22F C6                       .
 ; color for ladders and down-ropes
-level08_colpf1:
+level09_colpf1:
         .byte   $96                             ; A230 96                       .
 ; color for bombs
-level08_colpf2:
+level09_colpf2:
         .byte   $28                             ; A231 28                       (
 ; unknown
-level08_offs_50:
+level09_offs_50:
         .byte   $0C,$3C,$00,$00,$8C             ; A232 0C 3C 00 00 8C           .<...
 ; unknown, always $00 $00 $00
-level08_offs_55:
+level09_offs_55:
         .byte   $00,$00,$00                     ; A237 00 00 00                 ...
 ; unknown, not a ROM address
-level08_offs_58:
+level09_offs_58:
         .byte   $80,$00                         ; A23A 80 00                    ..
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level08_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level09_offs_60:
         .byte   $00,$00,$00,$00                 ; A23C 00 00 00 00              ....
-; first 2 bytes are level number in screencodes
-level09_desc:
+; Descriptor for HereThereEverywhere. first 2 bytes are level number in screencodes
+level10_desc:
         .byte   $11,$10                         ; A240 11 10                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level09_sub0:
-        .addr   LB27E                           ; A242 7E B2                    ~.
+level10_sub0:
+        .addr   herethere_sub0                  ; A242 7E B2                    ~.
 ; a subroutine
-level09_sub1:
+level10_sub1:
         .addr   L0000                           ; A244 00 00                    ..
 ; a subroutine
-level09_sub2:
+level10_sub2:
         .addr   L0000                           ; A246 00 00                    ..
 ; a subroutine
-level09_sub3:
-        .addr   LB2E0                           ; A248 E0 B2                    ..
+level10_sub3:
+        .addr   herethere_sub3                  ; A248 E0 B2                    ..
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level09_num_bombs:
+level10_num_bombs:
         .byte   $0C                             ; A24A 0C                       .
 ; 0 = no bullets, range 0-4.
-level09_bullet_max:
+level10_bullet_max:
         .byte   $02                             ; A24B 02                       .
 ; jumpman starting Y position
-level09_y_start:
+level10_y_start:
         .byte   $C0                             ; A24C C0                       .
 ; jumpman starting X position
-level09_x_start:
+level10_x_start:
         .byte   $3C                             ; A24D 3C                       <
 ; fudge factor for bomb locations, always $00
-level09_fudge_x:
+level10_fudge_x:
         .byte   $00                             ; A24E 00                       .
 ; fudge factor for bomb locations, always $06
-level09_fudge_y:
+level10_fudge_y:
         .byte   $06                             ; A24F 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level09_points_per_bomb:
+level10_points_per_bomb:
         .byte   $64                             ; A250 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level09_time_bonus:
+level10_time_bonus:
         .word   $05DC                           ; A251 DC 05                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level09_offs_19:
+level10_offs_19:
         .byte   $00                             ; A253 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level09_unkn_table0:
-        .addr   LB275                           ; A254 75 B2                    u.
+level10_unkn_table0:
+        .addr   l10_unkn0                       ; A254 75 B2                    u.
 ; used to draw the level initially (see also map_changes)
-level09_map:
-        .addr   LB1E0                           ; A256 E0 B1                    ..
+level10_map:
+        .addr   l10_map                         ; A256 E0 B1                    ..
 ; start of bombs in map data (which must come last!)
-level09_map_bombs:
-        .addr   LB237                           ; A258 37 B2                    7.
+level10_map_bombs:
+        .addr   l10_map_bombs                   ; A258 37 B2                    7.
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level09_bomblist:
-        .addr   LB25C                           ; A25A 5C B2                    \.
+level10_bomblist:
+        .addr   l10_bombs                       ; A25A 5C B2                    \.
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level09_map_changes:
+level10_map_changes:
         .addr   L0000                           ; A25C 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level09_indirect_subs:
+level10_indirect_subs:
         .byte   $00,$00                         ; A25E 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level09_sub_bomb:
-        .addr   LB2FD                           ; A260 FD B2                    ..
+level10_sub_bomb:
+        .addr   herethere_bomb_sub              ; A260 FD B2                    ..
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level09_sub_start:
+level10_sub_start:
         .addr   L8036                           ; A262 36 80                    6.
 ; always $9740 aka game_main_loop
-level09_sub6:
+level10_sub6:
         .addr   game_main_loop                  ; A264 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level09_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level10_sub_eol:
         .addr   L06E6                           ; A266 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level09_offs_40:
+level10_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A268 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level09_colpf3:
+level10_colpf3:
         .byte   $CA                             ; A26E CA                       .
 ; color for girders and up-ropes
-level09_colpf0:
+level10_colpf0:
         .byte   $96                             ; A26F 96                       .
 ; color for ladders and down-ropes
-level09_colpf1:
+level10_colpf1:
         .byte   $18                             ; A270 18                       .
 ; color for bombs
-level09_colpf2:
+level10_colpf2:
         .byte   $5A                             ; A271 5A                       Z
 ; unknown
-level09_offs_50:
+level10_offs_50:
         .byte   $0C,$40,$8C,$00,$00             ; A272 0C 40 8C 00 00           .@...
 ; unknown, always $00 $00 $00
-level09_offs_55:
+level10_offs_55:
         .byte   $00,$00,$00                     ; A277 00 00 00                 ...
 ; unknown, not a ROM address
-level09_offs_58:
+level10_offs_58:
         .byte   $62,$00                         ; A27A 62 00                    b.
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level09_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level10_offs_60:
         .byte   $00,$00,$00,$00                 ; A27C 00 00 00 00              ....
-; first 2 bytes are level number in screencodes
-level10_desc:
+; Descriptor for Hatchlings. first 2 bytes are level number in screencodes
+level11_desc:
         .byte   $11,$11                         ; A280 11 11                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level10_sub0:
-        .addr   LB457                           ; A282 57 B4                    W.
+level11_sub0:
+        .addr   hatch_sub0                      ; A282 57 B4                    W.
 ; a subroutine
-level10_sub1:
-        .addr   LB581                           ; A284 81 B5                    ..
+level11_sub1:
+        .addr   hatch_sub1                      ; A284 81 B5                    ..
 ; a subroutine
-level10_sub2:
+level11_sub2:
         .addr   L0000                           ; A286 00 00                    ..
 ; a subroutine
-level10_sub3:
-        .addr   LB57C                           ; A288 7C B5                    |.
+level11_sub3:
+        .addr   hatch_sub3                      ; A288 7C B5                    |.
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level10_num_bombs:
+level11_num_bombs:
         .byte   $0F                             ; A28A 0F                       .
 ; 0 = no bullets, range 0-4.
-level10_bullet_max:
+level11_bullet_max:
         .byte   $00                             ; A28B 00                       .
 ; jumpman starting Y position
-level10_y_start:
+level11_y_start:
         .byte   $B6                             ; A28C B6                       .
 ; jumpman starting X position
-level10_x_start:
+level11_x_start:
         .byte   $C4                             ; A28D C4                       .
 ; fudge factor for bomb locations, always $00
-level10_fudge_x:
+level11_fudge_x:
         .byte   $00                             ; A28E 00                       .
 ; fudge factor for bomb locations, always $06
-level10_fudge_y:
+level11_fudge_y:
         .byte   $06                             ; A28F 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level10_points_per_bomb:
+level11_points_per_bomb:
         .byte   $64                             ; A290 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level10_time_bonus:
+level11_time_bonus:
         .word   $03E8                           ; A291 E8 03                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level10_offs_19:
+level11_offs_19:
         .byte   $00                             ; A293 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level10_unkn_table0:
-        .addr   data_table_b50b                 ; A294 0B B5                    ..
+level11_unkn_table0:
+        .addr   hatch_table_b50b                ; A294 0B B5                    ..
 ; used to draw the level initially (see also map_changes)
-level10_map:
-        .addr   LB320                           ; A296 20 B3                     .
+level11_map:
+        .addr   l11_map                         ; A296 20 B3                     .
 ; start of bombs in map data (which must come last!)
-level10_map_bombs:
-        .addr   LB38F                           ; A298 8F B3                    ..
+level11_map_bombs:
+        .addr   l11_map_bombs                   ; A298 8F B3                    ..
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level10_bomblist:
-        .addr   LB3BD                           ; A29A BD B3                    ..
+level11_bomblist:
+        .addr   l11_bombs                       ; A29A BD B3                    ..
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level10_map_changes:
-        .addr   LB3DC                           ; A29C DC B3                    ..
+level11_map_changes:
+        .addr   l11_map_changes                 ; A29C DC B3                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level10_indirect_subs:
+level11_indirect_subs:
         .byte   $00,$00                         ; A29E 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level10_sub_bomb:
-        .addr   LB44C                           ; A2A0 4C B4                    L.
+level11_sub_bomb:
+        .addr   hatch_bomb_sub                  ; A2A0 4C B4                    L.
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level10_sub_start:
+level11_sub_start:
         .addr   L8036                           ; A2A2 36 80                    6.
 ; always $9740 aka game_main_loop
-level10_sub6:
+level11_sub6:
         .addr   game_main_loop                  ; A2A4 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level10_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level11_sub_eol:
         .addr   L06E6                           ; A2A6 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level10_offs_40:
+level11_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A2A8 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level10_colpf3:
+level11_colpf3:
         .byte   $6A                             ; A2AE 6A                       j
 ; color for girders and up-ropes
-level10_colpf0:
+level11_colpf0:
         .byte   $08                             ; A2AF 08                       .
 ; color for ladders and down-ropes
-level10_colpf1:
+level11_colpf1:
         .byte   $C6                             ; A2B0 C6                       .
 ; color for bombs
-level10_colpf2:
+level11_colpf2:
         .byte   $1A                             ; A2B1 1A                       .
 ; unknown
-level10_offs_50:
+level11_offs_50:
         .byte   $0C,$30,$54,$8C,$00             ; A2B2 0C 30 54 8C 00           .0T..
 ; unknown, always $00 $00 $00
-level10_offs_55:
+level11_offs_55:
         .byte   $00,$00,$00                     ; A2B7 00 00 00                 ...
 ; unknown, not a ROM address
-level10_offs_58:
+level11_offs_58:
         .byte   $00,$66                         ; A2BA 00 66                    .f
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level10_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level11_offs_60:
         .byte   $00,$00,$00,$00                 ; A2BC 00 00 00 00              ....
-; first 2 bytes are level number in screencodes
-level11_desc:
+; Descriptor for Hurricane. first 2 bytes are level number in screencodes
+level12_desc:
         .byte   $11,$12                         ; A2C0 11 12                    ..
 ; ----------------------------------------------------------------------------
 ; a subroutine
-level11_sub0:
-        .addr   LB691                           ; A2C2 91 B6                    ..
+level12_sub0:
+        .addr   hurr_sub0                       ; A2C2 91 B6                    ..
 ; a subroutine
-level11_sub1:
-        .addr   LB69B                           ; A2C4 9B B6                    ..
+level12_sub1:
+        .addr   hurr_sub1                       ; A2C4 9B B6                    ..
 ; a subroutine
-level11_sub2:
-        .addr   LB709                           ; A2C6 09 B7                    ..
+level12_sub2:
+        .addr   hurr_sub2                       ; A2C6 09 B7                    ..
 ; a subroutine
-level11_sub3:
+level12_sub3:
         .addr   check_collisions_1              ; A2C8 73 8F                    s.
 ; ----------------------------------------------------------------------------
 ; number of bombs to pick up on this level
-level11_num_bombs:
+level12_num_bombs:
         .byte   $0E                             ; A2CA 0E                       .
 ; 0 = no bullets, range 0-4.
-level11_bullet_max:
+level12_bullet_max:
         .byte   $00                             ; A2CB 00                       .
 ; jumpman starting Y position
-level11_y_start:
+level12_y_start:
         .byte   $C0                             ; A2CC C0                       .
 ; jumpman starting X position
-level11_x_start:
+level12_x_start:
         .byte   $7C                             ; A2CD 7C                       |
 ; fudge factor for bomb locations, always $00
-level11_fudge_x:
+level12_fudge_x:
         .byte   $00                             ; A2CE 00                       .
 ; fudge factor for bomb locations, always $06
-level11_fudge_y:
+level12_fudge_y:
         .byte   $06                             ; A2CF 06                       .
 ; points awarded per bomb pickup (always $64 aka 100)
-level11_points_per_bomb:
+level12_points_per_bomb:
         .byte   $64                             ; A2D0 64                       d
 ; ----------------------------------------------------------------------------
 ; amount of time bonus at start of level
-level11_time_bonus:
+level12_time_bonus:
         .word   $09C4                           ; A2D1 C4 09                    ..
 ; ----------------------------------------------------------------------------
 ; always $00
-level11_offs_19:
+level12_offs_19:
         .byte   $00                             ; A2D3 00                       .
 ; ----------------------------------------------------------------------------
 ; pointer to ROM table or $06xx
-level11_unkn_table0:
-        .addr   LB658                           ; A2D4 58 B6                    X.
+level12_unkn_table0:
+        .addr   l12_unkn0                       ; A2D4 58 B6                    X.
 ; used to draw the level initially (see also map_changes)
-level11_map:
-        .addr   data_b590                       ; A2D6 90 B5                    ..
+level12_map:
+        .addr   l12_map                         ; A2D6 90 B5                    ..
 ; start of bombs in map data (which must come last!)
-level11_map_bombs:
-        .addr   LB5D2                           ; A2D8 D2 B5                    ..
+level12_map_bombs:
+        .addr   l12_map_bombs                   ; A2D8 D2 B5                    ..
 ; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
-level11_bomblist:
-        .addr   LB5FD                           ; A2DA FD B5                    ..
+level12_bomblist:
+        .addr   l12_bombs                       ; A2DA FD B5                    ..
 ; address of list of addresses of map data, used for changing the map when certain bombs are picked up
-level11_map_changes:
-        .addr   LB61A                           ; A2DC 1A B6                    ..
+level12_map_changes:
+        .addr   l12_map_changes                 ; A2DC 1A B6                    ..
 ; ----------------------------------------------------------------------------
 ; pointer to list of indirect subs, always $0000 in this game
-level11_indirect_subs:
+level12_indirect_subs:
         .byte   $00,$00                         ; A2DE 00 00                    ..
 ; ----------------------------------------------------------------------------
 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
-level11_sub_bomb:
+level12_sub_bomb:
         .addr   L06E6                           ; A2E0 E6 06                    ..
 ; called at start of level, $06E6 for some levels, or else a ROM subroutine
-level11_sub_start:
+level12_sub_start:
         .addr   L8036                           ; A2E2 36 80                    6.
 ; always $9740 aka game_main_loop
-level11_sub6:
+level12_sub6:
         .addr   game_main_loop                  ; A2E4 40 97                    @.
-; called at end of level (all bombs picked up). $06E6 for all but level07
-level11_sub_eol:
+; called at end of level (all bombs picked up). $06E6 for all but level08
+level12_sub_eol:
         .addr   L06E6                           ; A2E6 E6 06                    ..
 ; ----------------------------------------------------------------------------
 ; all zeroes
-level11_offs_40:
+level12_offs_40:
         .byte   $00,$00,$00,$00,$00,$00         ; A2E8 00 00 00 00 00 00        ......
 ; color (not sure what gets drawn in this color yet)
-level11_colpf3:
+level12_colpf3:
         .byte   $08                             ; A2EE 08                       .
 ; color for girders and up-ropes
-level11_colpf0:
+level12_colpf0:
         .byte   $C6                             ; A2EF C6                       .
 ; color for ladders and down-ropes
-level11_colpf1:
+level12_colpf1:
         .byte   $96                             ; A2F0 96                       .
 ; color for bombs
-level11_colpf2:
+level12_colpf2:
         .byte   $28                             ; A2F1 28                       (
 ; unknown
-level11_offs_50:
+level12_offs_50:
         .byte   $0C,$2A,$4C,$6A,$8C             ; A2F2 0C 2A 4C 6A 8C           .*Lj.
 ; unknown, always $00 $00 $00
-level11_offs_55:
+level12_offs_55:
         .byte   $00,$00,$00                     ; A2F7 00 00 00                 ...
 ; unknown, not a ROM address
-level11_offs_58:
+level12_offs_58:
         .byte   $00,$00                         ; A2FA 00 00                    ..
-; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
-level11_offs_60:
+; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
+level12_offs_60:
         .byte   $00,$00,$00,$00                 ; A2FC 00 00 00 00              ....
 ; level map data starts here
-l00_map:.byte   $FE,$33,$9C,$FD,$04,$00,$44,$05 ; A300 FE 33 9C FD 04 00 44 05  .3....D.
+l01_map:.byte   $FE,$33,$9C,$FD,$04,$00,$44,$05 ; A300 FE 33 9C FD 04 00 44 05  .3....D.
         .byte   $06,$04,$15,$0A,$74,$15,$0A,$24 ; A308 06 04 15 0A 74 15 0A 24  ....t..$
         .byte   $22,$02,$74,$22,$02,$24,$25,$16 ; A310 22 02 74 22 02 24 25 16  ".t".$%.
         .byte   $04,$45,$04,$44,$45,$06,$8C,$45 ; A318 04 45 04 44 45 06 8C 45  .E.DE..E
@@ -5474,39 +5474,39 @@
         .byte   $18,$0A,$FE,$DA,$9C,$1D,$38,$06 ; A358 18 0A FE DA 9C 1D 38 06  ......8.
         .byte   $81,$38,$06,$FE,$B3,$9C         ; A360 81 38 06 FE B3 9C        .8....
 ; gfx_draw instructions for bombs, used by bomb_pickup to get bomb coords. $ff terminated
-l00_map_bombs:
+l01_map_bombs:
         .byte   $04,$12,$01,$38,$02,$01,$64,$02 ; A366 04 12 01 38 02 01 64 02  ...8..d.
         .byte   $01,$98,$12,$01,$44,$22,$01,$58 ; A36E 01 98 12 01 44 22 01 58  ....D".X
         .byte   $22,$01,$04,$42,$01,$98,$42,$01 ; A376 22 01 04 42 01 98 42 01  "..B..B.
         .byte   $04,$52,$01,$38,$52,$01,$64,$52 ; A37E 04 52 01 38 52 01 64 52  .R.8R.dR
         .byte   $01,$98,$52,$01,$FF             ; A386 01 98 52 01 FF           ..R..
 ; 2 bytes per entry, terminated by $FF. 1st byte is coarse grid coords (top nybble = X, bottom = Y), 2nd byte is index into map_changes
-l00_bombs:
+l01_bombs:
         .byte   $24,$00,$62,$10,$82,$20,$C4,$00 ; A38B 24 00 62 10 82 20 C4 00  $.b.. ..
         .byte   $66,$30,$86,$40,$2A,$00,$CA,$00 ; A393 66 30 86 40 2A 00 CA 00  f0.@*...
         .byte   $2C,$00,$6C,$00,$8C,$00,$CC,$00 ; A39B 2C 00 6C 00 8C 00 CC 00  ,.l.....
-; terminator for l00_bombs
-l00_bombs_term:
+; terminator for l01_bombs
+l01_bombs_term:
         .byte   $FF                             ; A3A3 FF                       .
 ; ----------------------------------------------------------------------------
 ; 0000 = no change
-l00_map_changes:
+l01_map_changes:
         .addr   L0000                           ; A3A4 00 00                    ..
-        .addr   l00_map_change_0                ; A3A6 AE A3                    ..
-        .addr   l00_map_change_1                ; A3A8 B8 A3                    ..
-        .addr   l00_map_change_2                ; A3AA C2 A3                    ..
-        .addr   l00_map_change_3                ; A3AC CC A3                    ..
+        .addr   l01_map_change_0                ; A3A6 AE A3                    ..
+        .addr   l01_map_change_1                ; A3A8 B8 A3                    ..
+        .addr   l01_map_change_2                ; A3AA C2 A3                    ..
+        .addr   l01_map_change_3                ; A3AC CC A3                    ..
 ; ----------------------------------------------------------------------------
-l00_map_change_0:
+l01_map_change_0:
         .byte   $FE,$49,$9C,$FD,$04,$01,$64,$08 ; A3AE FE 49 9C FD 04 01 64 08  .I....d.
         .byte   $02,$FF                         ; A3B6 02 FF                    ..
-l00_map_change_1:
+l01_map_change_1:
         .byte   $FE,$49,$9C,$FD,$04,$FF,$34,$09 ; A3B8 FE 49 9C FD 04 FF 34 09  .I....4.
         .byte   $02,$FF                         ; A3C0 02 FF                    ..
-l00_map_change_2:
+l01_map_change_2:
         .byte   $FE,$49,$9C,$FD,$04,$00,$2C,$25 ; A3C2 FE 49 9C FD 04 00 2C 25  .I....,%
         .byte   $05,$FF                         ; A3CA 05 FF                    ..
-l00_map_change_3:
+l01_map_change_3:
         .byte   $FE,$49,$9C,$FD,$04,$00,$60,$25 ; A3CC FE 49 9C FD 04 00 60 25  .I....`%
         .byte   $05,$FF                         ; A3D4 05 FF                    ..
 ; probably just filler
@@ -5514,7 +5514,7 @@
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; A3D6 00 00 00 00 00 00 00 00  ........
         .byte   $00,$00                         ; A3DE 00 00                    ..
 ; level map data starts here
-l01_map:.byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A3E0 FE 33 9C FD 04 00 04 05  .3......
+l02_map:.byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A3E0 FE 33 9C FD 04 00 04 05  .3......
         .byte   $08,$34,$05,$0E,$7C,$05,$08,$14 ; A3E8 08 34 05 0E 7C 05 08 14  .4..|...
         .byte   $15,$04,$34,$15,$04,$5C,$15,$04 ; A3F0 15 04 34 15 04 5C 15 04  ..4..\..
         .byte   $7C,$15,$04,$04,$25,$10,$5C,$25 ; A3F8 7C 15 04 04 25 10 5C 25  |...%.\%
@@ -5527,17 +5527,20 @@
         .byte   $05,$FE,$C9,$9C,$19,$3C,$05,$85 ; A430 05 FE C9 9C 19 3C 05 85  .....<..
         .byte   $3C,$05,$FE,$DA,$9C,$05,$30,$08 ; A438 3C 05 FE DA 9C 05 30 08  <.....0.
         .byte   $99,$30,$08,$FE,$B3,$9C         ; A440 99 30 08 FE B3 9C        .0....
-LA446:  .byte   $04,$02,$01,$38,$02,$01,$64,$02 ; A446 04 02 01 38 02 01 64 02  ...8..d.
+l02_map_bombs:
+        .byte   $04,$02,$01,$38,$02,$01,$64,$02 ; A446 04 02 01 38 02 01 64 02  ...8..d.
         .byte   $01,$98,$02,$01,$04,$12,$01,$38 ; A44E 01 98 02 01 04 12 01 38  .......8
         .byte   $12,$01,$64,$12,$01,$98,$12,$01 ; A456 12 01 64 12 01 98 12 01  ..d.....
         .byte   $20,$22,$01,$7C,$22,$01,$38,$32 ; A45E 20 22 01 7C 22 01 38 32   ".|".82
         .byte   $01,$64,$32,$01,$04,$52,$01,$38 ; A466 01 64 32 01 04 52 01 38  .d2..R.8
         .byte   $52,$01,$64,$52,$01,$98,$52,$01 ; A46E 52 01 64 52 01 98 52 01  R.dR..R.
         .byte   $FF                             ; A476 FF                       .
-LA477:  .byte   $22,$00,$62,$00,$82,$00,$C2,$00 ; A477 22 00 62 00 82 00 C2 00  ".b.....
+l02_bombs:
+        .byte   $22,$00,$62,$00,$82,$00,$C2,$00 ; A477 22 00 62 00 82 00 C2 00  ".b.....
         .byte   $24,$00,$64,$00,$84,$00,$C4,$00 ; A47F 24 00 64 00 84 00 C4 00  $.d.....
         .byte   $46,$00,$A6,$00,$68,$00,$88,$00 ; A487 46 00 A6 00 68 00 88 00  F...h...
         .byte   $2C,$00,$6C,$00,$8C,$00,$CC,$00 ; A48F 2C 00 6C 00 8C 00 CC 00  ,.l.....
+l02_bombs_term:
         .byte   $FF                             ; A497 FF                       .
 ; ----------------------------------------------------------------------------
 ; not sure what this actually does
@@ -5626,7 +5629,7 @@
         .byte   $32,$02,$01,$81,$00,$1E,$02,$00 ; A535 32 02 01 81 00 1E 02 00  2.......
 ; ----------------------------------------------------------------------------
 ; skip a couple of the collision regs, so we don't register a collision when Jumpman is being electrocuted
-level02_collisions:
+level03_collisions:
         lda     #$00                            ; A53D A9 00                    ..
         jmp     L8F79                           ; A53F 4C 79 8F                 Ly.
 
@@ -5659,7 +5662,8 @@
         .byte   $00,$C3,$C3,$C3,$C3,$FF,$FF,$C3 ; A5DA 00 C3 C3 C3 C3 FF FF C3  ........
         .byte   $C3,$00,$00,$00,$00,$00,$00,$00 ; A5E2 C3 00 00 00 00 00 00 00  ........
         .byte   $00,$00,$00,$00,$00,$00         ; A5EA 00 00 00 00 00 00        ......
-LA5F0:  .byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A5F0 FE 33 9C FD 04 00 04 05  .3......
+; level map data starts here
+l03_map:.byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A5F0 FE 33 9C FD 04 00 04 05  .3......
         .byte   $06,$84,$05,$06,$04,$15,$06,$84 ; A5F8 06 84 05 06 04 15 06 84  ........
         .byte   $15,$06,$04,$25,$0C,$6C,$25,$0C ; A600 15 06 04 25 0C 6C 25 0C  ...%.l%.
         .byte   $04,$35,$0C,$6C,$35,$0C,$04,$45 ; A608 04 35 0C 6C 35 0C 04 45  .5.l5..E
@@ -5667,19 +5671,23 @@
         .byte   $45,$04,$04,$55,$06,$84,$55,$06 ; A618 45 04 04 55 06 84 55 06  E..U..U.
         .byte   $FE,$5F,$9C,$FD,$00,$04,$0C,$01 ; A620 FE 5F 9C FD 00 04 0C 01  ._......
         .byte   $05,$8C,$01,$05,$FE,$B3,$9C     ; A628 05 8C 01 05 FE B3 9C     .......
-LA62F:  .byte   $04,$02,$01,$04,$12,$01,$04,$22 ; A62F 04 02 01 04 12 01 04 22  ......."
+l03_map_bombs:
+        .byte   $04,$02,$01,$04,$12,$01,$04,$22 ; A62F 04 02 01 04 12 01 04 22  ......."
         .byte   $01,$04,$32,$01,$04,$42,$01,$04 ; A637 01 04 32 01 04 42 01 04  ..2..B..
         .byte   $52,$01,$98,$02,$01,$98,$12,$01 ; A63F 52 01 98 02 01 98 12 01  R.......
         .byte   $98,$22,$01,$98,$32,$01,$98,$42 ; A647 98 22 01 98 32 01 98 42  ."..2..B
         .byte   $01,$98,$52,$01,$FF             ; A64F 01 98 52 01 FF           ..R..
-LA654:  .byte   $22,$00,$24,$00,$26,$00,$28,$00 ; A654 22 00 24 00 26 00 28 00  ".$.&.(.
+l03_bombs:
+        .byte   $22,$00,$24,$00,$26,$00,$28,$00 ; A654 22 00 24 00 26 00 28 00  ".$.&.(.
         .byte   $2A,$00,$2C,$00,$C2,$00,$C4,$00 ; A65C 2A 00 2C 00 C2 00 C4 00  *.,.....
         .byte   $C6,$00,$C8,$00,$CA,$00,$CC,$00 ; A664 C6 00 C8 00 CA 00 CC 00  ........
+l03_bombs_term:
         .byte   $FF                             ; A66C FF                       .
-LA66D:  .byte   $00,$00,$00,$01,$7A,$01,$01,$66 ; A66D 00 00 00 01 7A 01 01 66  ....z..f
+l03_unkn:
+        .byte   $00,$00,$00,$01,$7A,$01,$01,$66 ; A66D 00 00 00 01 7A 01 01 66  ....z..f
         .byte   $03,$86,$A6,$06,$4C,$4A,$01,$66 ; A675 03 86 A6 06 4C 4A 01 66  ....LJ.f
         .byte   $04,$86,$A6,$06,$A4,$CA,$01,$66 ; A67D 04 86 A6 06 A4 CA 01 66  .......f
-; horizontally moving platforms from level02
+; horizontally moving platforms from level03
 dw_platform_player:
         .byte   $FF,$FF,$FF,$AA,$55,$FF,$FF     ; A685 FF FF FF AA 55 FF FF     ....U..
 ; ----------------------------------------------------------------------------
@@ -5806,11 +5814,12 @@
 LA781:  rts                                     ; A781 60                       `
 
 ; ----------------------------------------------------------------------------
-; the dumbwaiters from level02. stored upside-down.
+; the dumbwaiters from level03. stored upside-down. trailing 00's might just be filler.
 dumbwaiter_player:
         .byte   $18,$3C,$7E,$FF,$FF,$FF,$00,$00 ; A782 18 3C 7E FF FF FF 00 00  .<~.....
         .byte   $00,$00,$00,$00,$00,$00         ; A78A 00 00 00 00 00 00        ......
-LA790:  .byte   $FE,$33,$9C,$FD,$04,$00,$40,$05 ; A790 FE 33 9C FD 04 00 40 05  .3....@.
+; level map data starts here
+l04_map:.byte   $FE,$33,$9C,$FD,$04,$00,$40,$05 ; A790 FE 33 9C FD 04 00 40 05  .3....@.
         .byte   $08,$18,$15,$0A,$04,$25,$14,$18 ; A798 08 18 15 0A 04 25 14 18  .....%..
         .byte   $35,$0A,$2C,$45,$0A,$04,$55,$0F ; A7A0 35 0A 2C 45 0A 04 55 0F  5.,E..U.
         .byte   $60,$55,$0F,$4C,$15,$0F,$60,$25 ; A7A8 60 55 0F 4C 15 0F 60 25  `U.L..`%
@@ -5819,17 +5828,20 @@
         .byte   $4C,$21,$05,$4C,$41,$05,$18,$11 ; A7C0 4C 21 05 4C 41 05 18 11  L!.LA...
         .byte   $05,$80,$11,$05,$2C,$31,$05,$6C ; A7C8 05 80 11 05 2C 31 05 6C  ....,1.l
         .byte   $31,$05,$FE,$B3,$9C             ; A7D0 31 05 FE B3 9C           1....
-LA7D5:  .byte   $40,$02,$01,$5C,$02,$01,$24,$12 ; A7D5 40 02 01 5C 02 01 24 12  @..\..$.
+l04_map_bombs:
+        .byte   $40,$02,$01,$5C,$02,$01,$24,$12 ; A7D5 40 02 01 5C 02 01 24 12  @..\..$.
         .byte   $01,$3C,$12,$01,$60,$12,$01,$78 ; A7DD 01 3C 12 01 60 12 01 78  .<..`..x
         .byte   $12,$01,$04,$22,$01,$3C,$22,$01 ; A7E5 12 01 04 22 01 3C 22 01  ...".<".
         .byte   $60,$22,$01,$98,$22,$01,$18,$32 ; A7ED 60 22 01 98 22 01 18 32  `".."..2
         .byte   $01,$84,$32,$01,$3C,$42,$01,$60 ; A7F5 01 84 32 01 3C 42 01 60  ..2.<B.`
         .byte   $42,$01,$04,$52,$01,$98,$52,$01 ; A7FD 42 01 04 52 01 98 52 01  B..R..R.
         .byte   $FF                             ; A805 FF                       .
-LA806:  .byte   $62,$00,$82,$00,$44,$00,$64,$00 ; A806 62 00 82 00 44 00 64 00  b...D.d.
+l04_bombs:
+        .byte   $62,$00,$82,$00,$44,$00,$64,$00 ; A806 62 00 82 00 44 00 64 00  b...D.d.
         .byte   $84,$00,$A4,$00,$26,$00,$66,$00 ; A80E 84 00 A4 00 26 00 66 00  ....&.f.
         .byte   $86,$00,$C6,$00,$48,$00,$A8,$00 ; A816 86 00 C6 00 48 00 A8 00  ....H...
         .byte   $6A,$00,$8A,$00,$2C,$00,$CC,$00 ; A81E 6A 00 8A 00 2C 00 CC 00  j...,...
+l04_bombs_term:
         .byte   $FF                             ; A826 FF                       .
 ; ----------------------------------------------------------------------------
 hellstones_sub3:
@@ -5945,7 +5957,7 @@
         jmp     LA845                           ; A8FA 4C 45 A8                 LE.
 
 ; ----------------------------------------------------------------------------
-; dunno, referenced by routine at $A8D4
+; dunno, referenced hellstones_sub0
 data_table_a8fd:
         .byte   $00,$02,$02,$02,$02,$02,$02,$00 ; A8FD 00 02 02 02 02 02 02 00  ........
 LA905:  .byte   $FE,$FE,$FE,$00,$00,$02,$02,$02 ; A905 FE FE FE 00 00 02 02 02  ........
@@ -5953,7 +5965,7 @@
         .byte   $01,$83,$00,$0A,$03,$00,$00,$00 ; A90D 01 83 00 0A 03 00 00 00  ........
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; A915 00 00 00 00 00 00 00 00  ........
         .byte   $00,$00,$00                     ; A91D 00 00 00                 ...
-LA920:  .byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A920 FE 33 9C FD 04 00 04 05  .3......
+l06_map:.byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A920 FE 33 9C FD 04 00 04 05  .3......
         .byte   $04,$24,$05,$04,$44,$05,$06,$6C ; A928 04 24 05 04 44 05 06 6C  .$..D..l
         .byte   $05,$04,$8C,$05,$04,$30,$16,$04 ; A930 05 04 8C 05 04 30 16 04  .....0..
         .byte   $60,$16,$04,$04,$25,$09,$78,$25 ; A938 60 16 04 04 25 09 78 25  `...%.x%
@@ -5964,20 +5976,24 @@
         .byte   $5F,$9C,$FD,$00,$04,$04,$01,$09 ; A960 5F 9C FD 00 04 04 01 09  _.......
         .byte   $94,$01,$09,$30,$19,$0F,$68,$19 ; A968 94 01 09 30 19 0F 68 19  ...0..h.
         .byte   $0F,$FE,$B3,$9C                 ; A970 0F FE B3 9C              ....
-LA974:  .byte   $24,$02,$01,$44,$02,$01,$58,$02 ; A974 24 02 01 44 02 01 58 02  $..D..X.
+l06_map_bombs:
+        .byte   $24,$02,$01,$44,$02,$01,$58,$02 ; A974 24 02 01 44 02 01 58 02  $..D..X.
         .byte   $01,$78,$02,$01,$44,$12,$01,$58 ; A97C 01 78 02 01 44 12 01 58  .x..D..X
         .byte   $12,$01,$24,$22,$01,$78,$22,$01 ; A984 12 01 24 22 01 78 22 01  ..$".x".
         .byte   $40,$32,$01,$5C,$32,$01,$40,$42 ; A98C 40 32 01 5C 32 01 40 42  @2.\2.@B
         .byte   $01,$5C,$42,$01,$04,$52,$01,$3C ; A994 01 5C 42 01 04 52 01 3C  .\B..R.<
         .byte   $52,$01,$60,$52,$01,$98,$52,$01 ; A99C 52 01 60 52 01 98 52 01  R.`R..R.
         .byte   $FF                             ; A9A4 FF                       .
-LA9A5:  .byte   $42,$00,$62,$00,$82,$00,$A2,$00 ; A9A5 42 00 62 00 82 00 A2 00  B.b.....
+l06_bombs:
+        .byte   $42,$00,$62,$00,$82,$00,$A2,$00 ; A9A5 42 00 62 00 82 00 A2 00  B.b.....
         .byte   $64,$00,$84,$00,$46,$00,$A6,$00 ; A9AD 64 00 84 00 46 00 A6 00  d...F...
         .byte   $68,$00,$88,$00,$6A,$00,$8A,$00 ; A9B5 68 00 88 00 6A 00 8A 00  h...j...
         .byte   $2C,$00,$6C,$00,$8C,$00,$CC,$00 ; A9BD 2C 00 6C 00 8C 00 CC 00  ,.l.....
+l06_bombs_term:
         .byte   $FF                             ; A9C5 FF                       .
 ; ----------------------------------------------------------------------------
-LA9C6:  jsr     L8036                           ; A9C6 20 36 80                  6.
+walls_init:
+        jsr     L8036                           ; A9C6 20 36 80                  6.
         lda     #$02                            ; A9C9 A9 02                    ..
         sta     $0770                           ; A9CB 8D 70 07                 .p.
         sta     $0772                           ; A9CE 8D 72 07                 .r.
@@ -6035,14 +6051,16 @@
         rts                                     ; AA34 60                       `
 
 ; ----------------------------------------------------------------------------
-LAA35:  lda     $0622                           ; AA35 AD 22 06                 .".
+walls_sub1:
+        lda     $0622                           ; AA35 AD 22 06                 .".
         bne     LAA3B                           ; AA38 D0 01                    ..
-LAA3A:  rts                                     ; AA3A 60                       `
+walls_sub0:
+        rts                                     ; AA3A 60                       `
 
 ; ----------------------------------------------------------------------------
 LAA3B:  ldx     #$05                            ; AA3B A2 05                    ..
 LAA3D:  dex                                     ; AA3D CA                       .
-        beq     LAA3A                           ; AA3E F0 FA                    ..
+        beq     walls_sub0                      ; AA3E F0 FA                    ..
         lda     $0773,x                         ; AA40 BD 73 07                 .s.
         beq     LAA3D                           ; AA43 F0 F8                    ..
         lda     $0777,x                         ; AA45 BD 77 07                 .w.
@@ -6053,11 +6071,12 @@
         jmp     LAA3D                           ; AA52 4C 3D AA                 L=.
 
 ; ----------------------------------------------------------------------------
-LAA55:  lda     $0622                           ; AA55 AD 22 06                 .".
-        beq     LAA3A                           ; AA58 F0 E0                    ..
+walls_sub2:
+        lda     $0622                           ; AA55 AD 22 06                 .".
+        beq     walls_sub0                      ; AA58 F0 E0                    ..
         ldx     #$05                            ; AA5A A2 05                    ..
 LAA5C:  dex                                     ; AA5C CA                       .
-        beq     LAA3A                           ; AA5D F0 DB                    ..
+        beq     walls_sub0                      ; AA5D F0 DB                    ..
         lda     collision_save+7,x              ; AA5F BD B7 06                 ...
         and     #$01                            ; AA62 29 01                    ).
         beq     LAA5C                           ; AA64 F0 F6                    ..
@@ -6068,7 +6087,9 @@
         jmp     LAA5C                           ; AA70 4C 5C AA                 L\.
 
 ; ----------------------------------------------------------------------------
-LAA73:  inc     $0764                           ; AA73 EE 64 07                 .d.
+; toggles the center rope between up and down ropes
+walls_bomb_sub:
+        inc     $0764                           ; AA73 EE 64 07                 .d.
         lda     $0764                           ; AA76 AD 64 07                 .d.
         and     #$01                            ; AA79 29 01                    ).
         beq     LAA82                           ; AA7B F0 05                    ..
@@ -6084,18 +6105,19 @@
         jmp     LAA25                           ; AA8D 4C 25 AA                 L%.
 
 ; ----------------------------------------------------------------------------
-; dunno what this is for yet
-map_aa90:
+; map data for center down-rope, referenced by walls_bomb_sub
+walls_down_rope:
         .byte   $FE,$EB,$9C,$FD,$00,$04,$50,$00 ; AA90 FE EB 9C FD 00 04 50 00  ......P.
         .byte   $0C,$FE,$33,$9C,$4E,$05,$01,$FE ; AA98 0C FE 33 9C 4E 05 01 FE  ..3.N...
         .byte   $DA,$9C,$50,$00,$0C,$FF         ; AAA0 DA 9C 50 00 0C FF        ..P...
-; referenced by routine at $AA82
-map_aaa6:
+; map data for center up-rope, referenced walls_bomb_sub
+walls_up_rope:
         .byte   $FE,$EB,$9C,$FD,$00,$04,$50,$00 ; AAA6 FE EB 9C FD 00 04 50 00  ......P.
         .byte   $0C,$FE,$33,$9C,$4E,$05,$01,$FE ; AAAE 0C FE 33 9C 4E 05 01 FE  ..3.N...
         .byte   $C9,$9C,$50,$08,$0A,$FF         ; AAB6 C9 9C 50 08 0A FF        ..P...
 ; ----------------------------------------------------------------------------
-LAABC:  lda     $062A                           ; AABC AD 2A 06                 .*.
+walls_sub3:
+        lda     $062A                           ; AABC AD 2A 06                 .*.
         sta     COLOR3                          ; AABF 8D C7 02                 ...
         rts                                     ; AAC2 60                       `
 
@@ -6105,10 +6127,11 @@
         rts                                     ; AAC7 60                       `
 
 ; ----------------------------------------------------------------------------
-; dunno what this is for yet
-map_aac8:
+; non-map data, dunno what for. grouped with the level 5 stuff, but doesn't seem to be used by level 5
+data_aac8:
         .byte   $00,$09,$40,$45,$02,$58,$45,$02 ; AAC8 00 09 40 45 02 58 45 02  ..@E.XE.
-LAAD0:  .byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; AAD0 FE 33 9C FD 04 00 04 05  .3......
+; level map data starts here
+l05_map:.byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; AAD0 FE 33 9C FD 04 00 04 05  .3......
         .byte   $02,$1A,$05,$0B,$50,$05,$07,$04 ; AAD8 02 1A 05 0B 50 05 07 04  ....P...
         .byte   $25,$26,$7C,$33,$08,$20,$3B,$03 ; AAE0 25 26 7C 33 08 20 3B 03  %&|3. ;.
         .byte   $40,$3B,$03,$60,$3B,$06,$04,$47 ; AAE8 40 3B 03 60 3B 06 04 47  @;.`;..G
@@ -6123,17 +6146,22 @@
         .byte   $3C,$08,$06,$35,$28,$04,$55,$28 ; AB30 3C 08 06 35 28 04 55 28  <..5(.U(
         .byte   $04,$FE,$DA,$9C,$9A,$30,$08,$FE ; AB38 04 FE DA 9C 9A 30 08 FE  .....0..
         .byte   $B3,$9C                         ; AB40 B3 9C                    ..
-LAB42:  .byte   $04,$02,$01,$44,$02,$01,$24,$16 ; AB42 04 02 01 44 02 01 24 16  ...D..$.
+l05_map_bombs:
+        .byte   $04,$02,$01,$44,$02,$01,$24,$16 ; AB42 04 02 01 44 02 01 24 16  ...D..$.
         .byte   $01,$44,$22,$01,$64,$22,$01,$98 ; AB4A 01 44 22 01 64 22 01 98  .D".d"..
         .byte   $22,$01,$24,$32,$01,$44,$32,$01 ; AB52 22 01 24 32 01 44 32 01  ".$2.D2.
         .byte   $64,$32,$01,$24,$52,$01,$44,$52 ; AB5A 64 32 01 24 52 01 44 52  d2.$R.DR
         .byte   $01,$64,$52,$01,$84,$52,$01,$98 ; AB62 01 64 52 01 84 52 01 98  .dR..R..
         .byte   $52,$01,$FF                     ; AB6A 52 01 FF                 R..
-LAB6D:  .byte   $22,$10,$62,$20,$44,$30,$66,$40 ; AB6D 22 10 62 20 44 30 66 40  ".b D0f@
+l05_bombs:
+        .byte   $22,$10,$62,$20,$44,$30,$66,$40 ; AB6D 22 10 62 20 44 30 66 40  ".b D0f@
         .byte   $86,$50,$C6,$60,$48,$70,$68,$80 ; AB75 86 50 C6 60 48 70 68 80  .P.`Hph.
         .byte   $88,$90,$4C,$A0,$6C,$B0,$8C,$C0 ; AB7D 88 90 4C A0 6C B0 8C C0  ..L.l...
-        .byte   $AC,$00,$CC,$D0,$FF             ; AB85 AC 00 CC D0 FF           .....
-LAB8A:  .byte   $00,$00,$A6,$AB,$B6,$AB,$C0,$AB ; AB8A 00 00 A6 AB B6 AB C0 AB  ........
+        .byte   $AC,$00,$CC,$D0                 ; AB85 AC 00 CC D0              ....
+l05_bombs_term:
+        .byte   $FF                             ; AB89 FF                       .
+l05_map_changes:
+        .byte   $00,$00,$A6,$AB,$B6,$AB,$C0,$AB ; AB8A 00 00 A6 AB B6 AB C0 AB  ........
         .byte   $D3,$AB,$DD,$AB,$F0,$AB,$FA,$AB ; AB92 D3 AB DD AB F0 AB FA AB  ........
         .byte   $04,$AC,$0E,$AC,$18,$AC,$22,$AC ; AB9A 04 AC 0E AC 18 AC 22 AC  ......".
         .byte   $2C,$AC,$36,$AC,$FE,$49,$9C,$FD ; ABA2 2C AC 36 AC FE 49 9C FD  ,.6..I..
@@ -6160,7 +6188,7 @@
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; AC4A 00 00 00 00 00 00 00 00  ........
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; AC52 00 00 00 00 00 00 00 00  ........
         .byte   $00,$00,$00,$00,$00,$00         ; AC5A 00 00 00 00 00 00        ......
-LAC60:  .byte   $FE,$33,$9C,$FD,$04,$00,$3C,$05 ; AC60 FE 33 9C FD 04 00 3C 05  .3....<.
+l07_map:.byte   $FE,$33,$9C,$FD,$04,$00,$3C,$05 ; AC60 FE 33 9C FD 04 00 3C 05  .3....<.
         .byte   $0A,$04,$0C,$08,$7C,$0C,$08,$04 ; AC68 0A 04 0C 08 7C 0C 08 04  ....|...
         .byte   $15,$08,$7C,$15,$08,$38,$16,$01 ; AC70 15 08 7C 15 08 38 16 01  ..|..8..
         .byte   $64,$16,$01,$2C,$2C,$04,$64,$2C ; AC78 64 16 01 2C 2C 04 64 2C  d..,,.d,
@@ -6172,17 +6200,22 @@
         .byte   $39,$19,$03,$65,$19,$03,$FE,$DA ; ACA8 39 19 03 65 19 03 FE DA  9..e....
         .byte   $9C,$1F,$12,$0F,$80,$12,$0F,$FE ; ACB0 9C 1F 12 0F 80 12 0F FE  ........
         .byte   $B3,$9C                         ; ACB8 B3 9C                    ..
-LACBA:  .byte   $04,$02,$01,$3C,$02,$01,$60,$02 ; ACBA 04 02 01 3C 02 01 60 02  ...<..`.
+l07_map_bombs:
+        .byte   $04,$02,$01,$3C,$02,$01,$60,$02 ; ACBA 04 02 01 3C 02 01 60 02  ...<..`.
         .byte   $01,$98,$02,$01,$24,$22,$01,$78 ; ACC2 01 98 02 01 24 22 01 78  ....$".x
         .byte   $22,$01,$24,$32,$01,$78,$32,$01 ; ACCA 22 01 24 32 01 78 32 01  ".$2.x2.
         .byte   $24,$42,$01,$78,$42,$01,$04,$52 ; ACD2 24 42 01 78 42 01 04 52  $B.xB..R
         .byte   $01,$3C,$52,$01,$60,$52,$01,$98 ; ACDA 01 3C 52 01 60 52 01 98  .<R.`R..
         .byte   $52,$01,$FF                     ; ACE2 52 01 FF                 R..
-LACE5:  .byte   $22,$10,$62,$20,$82,$30,$C2,$40 ; ACE5 22 10 62 20 82 30 C2 40  ".b .0.@
+l07_bombs:
+        .byte   $22,$10,$62,$20,$82,$30,$C2,$40 ; ACE5 22 10 62 20 82 30 C2 40  ".b .0.@
         .byte   $46,$50,$A6,$50,$48,$60,$A8,$60 ; ACED 46 50 A6 50 48 60 A8 60  FP.PH`.`
         .byte   $4A,$70,$AA,$70,$2C,$80,$6C,$00 ; ACF5 4A 70 AA 70 2C 80 6C 00  Jp.p,.l.
-        .byte   $8C,$00,$CC,$90,$FF             ; ACFD 8C 00 CC 90 FF           .....
-LAD02:  .byte   $00,$00,$16,$AD,$16,$AD,$20,$AD ; AD02 00 00 16 AD 16 AD 20 AD  ...... .
+        .byte   $8C,$00,$CC,$90                 ; ACFD 8C 00 CC 90              ....
+l07_bombs_term:
+        .byte   $FF                             ; AD01 FF                       .
+l07_map_changes:
+        .byte   $00,$00,$16,$AD,$16,$AD,$20,$AD ; AD02 00 00 16 AD 16 AD 20 AD  ...... .
         .byte   $20,$AD,$2A,$AD,$34,$AD,$3E,$AD ; AD0A 20 AD 2A AD 34 AD 3E AD   .*.4.>.
         .byte   $48,$AD,$58,$AD,$FE,$49,$9C,$FD ; AD12 48 AD 58 AD FE 49 9C FD  H.X..I..
         .byte   $04,$FF,$24,$0B,$06,$FF,$FE,$49 ; AD1A 04 FF 24 0B 06 FF FE 49  ..$....I
@@ -6254,7 +6287,7 @@
         .byte   $00,$FF,$FE,$FD,$FC,$FD,$FE,$FF ; ADCF 00 FF FE FD FC FD FE FF  ........
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; ADD7 00 00 00 00 00 00 00 00  ........
         .byte   $00                             ; ADDF 00                       .
-LADE0:  .byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; ADE0 FE 33 9C FD 04 00 04 05  .3......
+l08_map:.byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; ADE0 FE 33 9C FD 04 00 04 05  .3......
         .byte   $02,$44,$05,$06,$94,$05,$02,$30 ; ADE8 02 44 05 06 94 05 02 30  .D.....0
         .byte   $0A,$02,$68,$0A,$02,$28,$21,$04 ; ADF0 0A 02 68 0A 02 28 21 04  ..h..(!.
         .byte   $68,$21,$04,$04,$25,$06,$84,$25 ; ADF8 68 21 04 04 25 06 84 25  h!..%..%
@@ -6268,20 +6301,25 @@
         .byte   $C9,$9C,$34,$0C,$04,$6B,$0C,$04 ; AE38 C9 9C 34 0C 04 6B 0C 04  ..4..k..
         .byte   $FE,$DA,$9C,$44,$02,$10,$5A,$02 ; AE40 FE DA 9C 44 02 10 5A 02  ...D..Z.
         .byte   $10,$FE,$B3,$9C                 ; AE48 10 FE B3 9C              ....
-LAE4C:  .byte   $04,$02,$01,$98,$02,$01,$04,$22 ; AE4C 04 02 01 98 02 01 04 22  ......."
+l08_map_bombs:
+        .byte   $04,$02,$01,$98,$02,$01,$04,$22 ; AE4C 04 02 01 98 02 01 04 22  ......."
         .byte   $01,$98,$22,$01,$18,$34,$01,$84 ; AE54 01 98 22 01 18 34 01 84  .."..4..
         .byte   $34,$01,$04,$42,$01,$98,$42,$01 ; AE5C 34 01 04 42 01 98 42 01  4..B..B.
         .byte   $04,$52,$01,$38,$52,$01,$64,$52 ; AE64 04 52 01 38 52 01 64 52  .R.8R.dR
         .byte   $01,$98,$52,$01,$FF             ; AE6C 01 98 52 01 FF           ..R..
-LAE71:  .byte   $22,$00,$C2,$00,$26,$00,$C6,$00 ; AE71 22 00 C2 00 26 00 C6 00  "...&...
+l08_bombs:
+        .byte   $22,$00,$C2,$00,$26,$00,$C6,$00 ; AE71 22 00 C2 00 26 00 C6 00  "...&...
         .byte   $48,$00,$A8,$00,$2A,$00,$CA,$00 ; AE79 48 00 A8 00 2A 00 CA 00  H...*...
         .byte   $2C,$00,$6C,$00,$8C,$00,$CC,$00 ; AE81 2C 00 6C 00 8C 00 CC 00  ,.l.....
+l08_bombs_term:
         .byte   $FF                             ; AE89 FF                       .
-LAE8A:  .byte   $03,$00,$00,$01,$7C,$01,$01,$00 ; AE8A 03 00 00 01 7C 01 01 00  ....|...
+l08_unkn0:
+        .byte   $03,$00,$00,$01,$7C,$01,$01,$00 ; AE8A 03 00 00 01 7C 01 01 00  ....|...
         .byte   $04,$0C,$AF,$10,$86,$00,$01,$0F ; AE92 04 0C AF 10 86 00 01 0F  ........
         .byte   $FF                             ; AE9A FF                       .
 ; ----------------------------------------------------------------------------
-LAE9B:  jsr     L8036                           ; AE9B 20 36 80                  6.
+spellbound_init:
+        jsr     L8036                           ; AE9B 20 36 80                  6.
         lda     #$C0                            ; AE9E A9 C0                    ..
         sta     $0770                           ; AEA0 8D 70 07                 .p.
         rts                                     ; AEA3 60                       `
@@ -6291,7 +6329,7 @@
 data_table_aea4:
         .byte   $18,$08,$38,$20,$00,$48,$30,$18 ; AEA4 18 08 38 20 00 48 30 18  ..8 .H0.
         .byte   $28,$10,$10                     ; AEAC 28 10 10                 (..
-; letters for level07, spellbound (not ASCII or screencodes though)
+; letters for level08, spellbound (not ASCII or screencodes though)
 epyx_jumpman:
         .byte   $40,$29,$21,$11,$19,$11,$09,$01 ; AEAF 40 29 21 11 19 11 09 01  @)!.....
         .byte   $49,$41,$39,$19,$31             ; AEB7 49 41 39 19 31           IA9.1
@@ -6316,7 +6354,8 @@
         rts                                     ; AF22 60                       `
 
 ; ----------------------------------------------------------------------------
-LAF23:  lda     $B2                             ; AF23 A5 B2                    ..
+spellbound_bomb_sub:
+        lda     $B2                             ; AF23 A5 B2                    ..
         lsr     a                               ; AF25 4A                       J
         tax                                     ; AF26 AA                       .
         ldy     data_table_aea4,x               ; AF27 BC A4 AE                 ...
@@ -6344,14 +6383,14 @@
 
 ; ----------------------------------------------------------------------------
 ; called at end of Spellbound, adds up letter bonus
-level07_letters:
+spellbound_letters:
         lda     work_level_num_bombs            ; AF58 AD 8A 07                 ...
-        beq     l07_got_all                     ; AF5B F0 01                    ..
+        beq     spellbound_got_all              ; AF5B F0 01                    ..
         rts                                     ; AF5D 60                       `
 
 ; ----------------------------------------------------------------------------
 ; got all the bombs
-l07_got_all:
+spellbound_got_all:
         lda     #$09                            ; AF5E A9 09                    ..
         sta     player_speed                    ; AF60 8D 24 06                 .$.
         lda     #$00                            ; AF63 A9 00                    ..
@@ -6409,7 +6448,7 @@
         jmp     LAF86                           ; AFC8 4C 86 AF                 L..
 
 ; ----------------------------------------------------------------------------
-; played once per correct letter at end of level07 (spellbound)
+; played once per correct letter at end of level08 (spellbound)
 sfx_letter_bonus:
         .byte   $01,$A5,$00,$18,$04,$F3,$04,$00 ; AFCB 01 A5 00 18 04 F3 04 00  ........
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; AFD3 00 00 00 00 00 00 00 00  ........
@@ -6418,8 +6457,8 @@
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; AFEB 00 00 00 00 00 00 00 00  ........
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; AFF3 00 00 00 00 00 00 00 00  ........
         .byte   $00,$00,$00,$00,$00             ; AFFB 00 00 00 00 00           .....
-; referenced by routine at $B0C4
-map_b000:
+; blackout doesn't draw the map initially
+l09_real_map:
         .byte   $FE,$33,$9C,$FD,$04,$00,$04,$07 ; B000 FE 33 9C FD 04 00 04 07  .3......
         .byte   $06,$24,$07,$02,$6C,$05,$04,$8C ; B008 06 24 07 02 6C 05 04 8C  .$..l...
         .byte   $05,$04,$28,$18,$04,$48,$15,$06 ; B010 05 04 28 18 04 48 15 06  ..(..H..
@@ -6435,21 +6474,25 @@
         .byte   $1A,$0A,$06,$5E,$18,$09,$9A,$08 ; B060 1A 0A 06 5E 18 09 9A 08  ...^....
         .byte   $0B,$FE,$DA,$9C,$83,$04,$13,$FE ; B068 0B FE DA 9C 83 04 13 FE  ........
         .byte   $49,$9C                         ; B070 49 9C                    I.
-LB072:  .byte   $04                             ; B072 04                       .
-LB073:  .byte   $02,$01,$24,$02,$01,$44,$02,$01 ; B073 02 01 24 02 01 44 02 01  ..$..D..
-        .byte   $78,$02,$01,$98,$02,$01,$3C,$12 ; B07B 78 02 01 98 02 01 3C 12  x.....<.
-        .byte   $01,$5C,$12,$01,$7C,$12,$01,$24 ; B083 01 5C 12 01 7C 12 01 24  .\..|..$
-        .byte   $22,$01,$78,$22,$01,$04,$38,$01 ; B08B 22 01 78 22 01 04 38 01  ".x"..8.
-        .byte   $1C,$46,$01,$78,$42,$01,$04,$52 ; B093 1C 46 01 78 42 01 04 52  .F.xB..R
-        .byte   $01,$58,$52,$01,$98,$52,$01     ; B09B 01 58 52 01 98 52 01     .XR..R.
-LB0A2:  .byte   $FF                             ; B0A2 FF                       .
-LB0A3:  .byte   $22,$00,$42,$00,$62,$00,$A2,$00 ; B0A3 22 00 42 00 62 00 A2 00  ".B.b...
+l09_map_bombs:
+        .byte   $04,$02,$01,$24,$02,$01,$44,$02 ; B072 04 02 01 24 02 01 44 02  ...$..D.
+        .byte   $01,$78,$02,$01,$98,$02,$01,$3C ; B07A 01 78 02 01 98 02 01 3C  .x.....<
+        .byte   $12,$01,$5C,$12,$01,$7C,$12,$01 ; B082 12 01 5C 12 01 7C 12 01  ..\..|..
+        .byte   $24,$22,$01,$78,$22,$01,$04,$38 ; B08A 24 22 01 78 22 01 04 38  $".x"..8
+        .byte   $01,$1C,$46,$01,$78,$42,$01,$04 ; B092 01 1C 46 01 78 42 01 04  ..F.xB..
+        .byte   $52,$01,$58,$52,$01,$98,$52,$01 ; B09A 52 01 58 52 01 98 52 01  R.XR..R.
+; blackout doesn't draw the map initially
+l09_map:.byte   $FF                             ; B0A2 FF                       .
+l09_bombs:
+        .byte   $22,$00,$42,$00,$62,$00,$A2,$00 ; B0A3 22 00 42 00 62 00 A2 00  ".B.b...
         .byte   $C2,$00,$64,$00,$84,$00,$A4,$00 ; B0AB C2 00 64 00 84 00 A4 00  ..d.....
         .byte   $46,$00,$A6,$00,$28,$00,$4A,$00 ; B0B3 46 00 A6 00 28 00 4A 00  F...(.J.
         .byte   $AA,$00,$2C,$00,$8C,$00,$CC,$00 ; B0BB AA 00 2C 00 8C 00 CC 00  ..,.....
+l09_bombs_term:
         .byte   $FF                             ; B0C3 FF                       .
 ; ----------------------------------------------------------------------------
-LB0C4:  jsr     L8036                           ; B0C4 20 36 80                  6.
+blackout_init:
+        jsr     L8036                           ; B0C4 20 36 80                  6.
         lda     #$10                            ; B0C7 A9 10                    ..
         sta     SAVMSC+1                        ; B0C9 85 59                    .Y
         jsr     clear_screen_mem_jv             ; B0CB 20 1E 80                  ..
@@ -6477,9 +6520,9 @@
         clc                                     ; B0FA 18                       .
         adc     $AB                             ; B0FB 65 AB                    e.
         tay                                     ; B0FD A8                       .
-        lda     LB072,y                         ; B0FE B9 72 B0                 .r.
+        lda     l09_map_bombs,y                 ; B0FE B9 72 B0                 .r.
         sta     $0903                           ; B101 8D 03 09                 ...
-        lda     LB073,y                         ; B104 B9 73 B0                 .s.
+        lda     l09_map_bombs+1,y               ; B104 B9 73 B0                 .s.
         sta     $0904                           ; B107 8D 04 09                 ...
         lda     #$00                            ; B10A A9 00                    ..
         sta     dm_progctr                      ; B10C 85 C0                    ..
@@ -6495,7 +6538,8 @@
 map_b11a:
         .byte   $FE,$B3,$9C,$00,$00,$01,$FF     ; B11A FE B3 9C 00 00 01 FF     .......
 ; ----------------------------------------------------------------------------
-LB121:  lda     #$10                            ; B121 A9 10                    ..
+blackout_bomb_sub:
+        lda     #$10                            ; B121 A9 10                    ..
         sta     SAVMSC+1                        ; B123 85 59                    .Y
         lda     #$D9                            ; B125 A9 D9                    ..
         sta     dm_progctr                      ; B127 85 C0                    ..
@@ -6512,7 +6556,8 @@
         rts                                     ; B13F 60                       `
 
 ; ----------------------------------------------------------------------------
-LB140:  lda     falling_flag                    ; B140 AD 21 06                 .!.
+blackout_sub0:
+        lda     falling_flag                    ; B140 AD 21 06                 .!.
         bne     LB146                           ; B143 D0 01                    ..
 LB145:  rts                                     ; B145 60                       `
 
@@ -6608,10 +6653,9 @@
 LB1DE:  rts                                     ; B1DE 60                       `
 
 ; ----------------------------------------------------------------------------
-; dunno what this is for yet
-data_table_b1df:
+zero_filler_b1df:
         .byte   $00                             ; B1DF 00                       .
-LB1E0:  .byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B1E0 FE 33 9C FD 04 00 04 05  .3......
+l10_map:.byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B1E0 FE 33 9C FD 04 00 04 05  .3......
         .byte   $06,$38,$05,$08,$7C,$05,$06,$24 ; B1E8 06 38 05 08 7C 05 06 24  .8..|..$
         .byte   $15,$06,$64,$15,$0E,$04,$2D,$06 ; B1F0 15 06 64 15 0E 04 2D 06  ..d...-.
         .byte   $38,$35,$0C,$04,$45,$06,$30,$45 ; B1F8 38 35 0C 04 45 06 30 45  85..E.0E
@@ -6622,19 +6666,24 @@
         .byte   $01,$0B,$0C,$41,$05,$40,$01,$05 ; B220 01 0B 0C 41 05 40 01 05  ...A.@..
         .byte   $40,$31,$05,$8C,$01,$15,$FE,$DA ; B228 40 31 05 8C 01 15 FE DA  @1......
         .byte   $9C,$66,$30,$04,$FE,$B3,$9C     ; B230 9C 66 30 04 FE B3 9C     .f0....
-LB237:  .byte   $04,$02,$01,$38,$02,$01,$7C,$02 ; B237 04 02 01 38 02 01 7C 02  ...8..|.
+l10_map_bombs:
+        .byte   $04,$02,$01,$38,$02,$01,$7C,$02 ; B237 04 02 01 38 02 01 7C 02  ...8..|.
         .byte   $01,$38,$12,$01,$64,$12,$01,$98 ; B23F 01 38 12 01 64 12 01 98  .8..d...
         .byte   $12,$01,$04,$22,$01,$98,$39,$01 ; B247 12 01 04 22 01 98 39 01  ..."..9.
         .byte   $58,$47,$01,$04,$52,$01,$38,$52 ; B24F 58 47 01 04 52 01 38 52  XG..R.8R
         .byte   $01,$98,$52,$01,$FF             ; B257 01 98 52 01 FF           ..R..
-LB25C:  .byte   $22,$00,$62,$00,$A2,$00,$64,$00 ; B25C 22 00 62 00 A2 00 64 00  ".b...d.
+l10_bombs:
+        .byte   $22,$00,$62,$00,$A2,$00,$64,$00 ; B25C 22 00 62 00 A2 00 64 00  ".b...d.
         .byte   $84,$00,$C4,$00,$26,$00,$C8,$00 ; B264 84 00 C4 00 26 00 C8 00  ....&...
         .byte   $8A,$00,$2C,$00,$6C,$00,$CC,$00 ; B26C 8A 00 2C 00 6C 00 CC 00  ..,.l...
+l10_bombs_term:
         .byte   $FF                             ; B274 FF                       .
-LB275:  .byte   $03,$A8,$B2,$0A,$A4,$20,$01,$56 ; B275 03 A8 B2 0A A4 20 01 56  ..... .V
+l10_unkn0:
+        .byte   $03,$A8,$B2,$0A,$A4,$20,$01,$56 ; B275 03 A8 B2 0A A4 20 01 56  ..... .V
         .byte   $FF                             ; B27D FF                       .
 ; ----------------------------------------------------------------------------
-LB27E:  lda     $06F5                           ; B27E AD F5 06                 ...
+herethere_sub0:
+        lda     $06F5                           ; B27E AD F5 06                 ...
         sta     $066C                           ; B281 8D 6C 06                 .l.
         bne     LB287                           ; B284 D0 01                    ..
         rts                                     ; B286 60                       `
@@ -6651,24 +6700,35 @@
         lda     bullet_y_delta+3                ; B295 AD 61 07                 .a.
         and     #$07                            ; B298 29 07                    ).
         tax                                     ; B29A AA                       .
-        lda     LB2D0,x                         ; B29B BD D0 B2                 ...
+        lda     portal_x,x                      ; B29B BD D0 B2                 ...
         sta     $0680                           ; B29E 8D 80 06                 ...
-        lda     LB2D8,x                         ; B2A1 BD D8 B2                 ...
+        lda     portal_y,x                      ; B2A1 BD D8 B2                 ...
         sta     $0685                           ; B2A4 8D 85 06                 ...
         rts                                     ; B2A7 60                       `
 
 ; ----------------------------------------------------------------------------
-; dunno what this is for yet
-data_table_b2a8:
+; portal animation frames
+herethere_sprite0:
         .byte   $00,$00,$00,$18,$18,$18,$18,$00 ; B2A8 00 00 00 18 18 18 18 00  ........
-        .byte   $00,$00,$00,$00,$3C,$24,$24,$24 ; B2B0 00 00 00 00 3C 24 24 24  ....<$$$
-        .byte   $24,$3C,$00,$00,$00,$7E,$42,$42 ; B2B8 24 3C 00 00 00 7E 42 42  $<...~BB
-        .byte   $42,$42,$42,$42,$7E,$00,$FF,$81 ; B2C0 42 42 42 42 7E 00 FF 81  BBBB~...
-        .byte   $81,$81,$81,$81,$81,$81,$81,$FF ; B2C8 81 81 81 81 81 81 81 FF  ........
-LB2D0:  .byte   $A4,$4C,$52,$70,$86,$86,$A4,$82 ; B2D0 A4 4C 52 70 86 86 A4 82  .LRp....
-LB2D8:  .byte   $20,$20,$98,$C0,$B4,$80,$68,$40 ; B2D8 20 20 98 C0 B4 80 68 40    ....h@
-; ----------------------------------------------------------------------------
-LB2E0:  lda     $0619                           ; B2E0 AD 19 06                 ...
+        .byte   $00,$00                         ; B2B0 00 00                    ..
+herethere_sprite1:
+        .byte   $00,$00,$3C,$24,$24,$24,$24,$3C ; B2B2 00 00 3C 24 24 24 24 3C  ..<$$$$<
+        .byte   $00,$00                         ; B2BA 00 00                    ..
+herethere_sprite2:
+        .byte   $00,$7E,$42,$42,$42,$42,$42,$42 ; B2BC 00 7E 42 42 42 42 42 42  .~BBBBBB
+        .byte   $7E,$00                         ; B2C4 7E 00                    ~.
+herethere_sprite3:
+        .byte   $FF,$81,$81,$81,$81,$81,$81,$81 ; B2C6 FF 81 81 81 81 81 81 81  ........
+        .byte   $81,$FF                         ; B2CE 81 FF                    ..
+; herethere portal X positions
+portal_x:
+        .byte   $A4,$4C,$52,$70,$86,$86,$A4,$82 ; B2D0 A4 4C 52 70 86 86 A4 82  .LRp....
+; herethere portal Y positions
+portal_y:
+        .byte   $20,$20,$98,$C0,$B4,$80,$68,$40 ; B2D8 20 20 98 C0 B4 80 68 40    ....h@
+; ----------------------------------------------------------------------------
+herethere_sub3:
+        lda     $0619                           ; B2E0 AD 19 06                 ...
         and     #$0F                            ; B2E3 29 0F                    ).
         bne     LB2F2                           ; B2E5 D0 0B                    ..
         lda     $068A                           ; B2E7 AD 8A 06                 ...
@@ -6681,7 +6741,8 @@
         jmp     L8F79                           ; B2FA 4C 79 8F                 Ly.
 
 ; ----------------------------------------------------------------------------
-LB2FD:  lda     $0680                           ; B2FD AD 80 06                 ...
+herethere_bomb_sub:
+        lda     $0680                           ; B2FD AD 80 06                 ...
         sta     player_x_pos                    ; B300 8D 7E 06                 .~.
         lda     $0685                           ; B303 AD 85 06                 ...
         sta     player_y_pos                    ; B306 8D 83 06                 ...
@@ -6694,10 +6755,10 @@
         rts                                     ; B318 60                       `
 
 ; ----------------------------------------------------------------------------
-; referenced by routine at $B2FD
-sxf_b319:
+; referenced by herethere_bomb_sub
+sxf_teleport:
         .byte   $01,$86,$00,$0A,$20,$00,$00     ; B319 01 86 00 0A 20 00 00     .... ..
-LB320:  .byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B320 FE 33 9C FD 04 00 04 05  .3......
+l11_map:.byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B320 FE 33 9C FD 04 00 04 05  .3......
         .byte   $08,$2C,$07,$15,$84,$05,$06,$1C ; B328 08 2C 07 15 84 05 06 1C  .,......
         .byte   $15,$03,$48,$15,$0D,$04,$25,$07 ; B330 15 03 48 15 0D 04 25 07  ..H...%.
         .byte   $30,$2F,$0D,$04,$35,$06,$74,$35 ; B338 30 2F 0D 04 35 06 74 35  0/..5.t5
@@ -6711,17 +6772,22 @@
         .byte   $C9,$9C,$04,$38,$02,$1A,$38,$02 ; B378 C9 9C 04 38 02 1A 38 02  ...8..8.
         .byte   $33,$32,$07,$74,$38,$05,$FE,$DA ; B380 33 32 07 74 38 05 FE DA  32.t8...
         .byte   $9C,$6A,$12,$0F,$FE,$B3,$9C     ; B388 9C 6A 12 0F FE B3 9C     .j.....
-LB38F:  .byte   $04,$02,$01,$3A,$02,$01,$5A,$02 ; B38F 04 02 01 3A 02 01 5A 02  ...:..Z.
+l11_map_bombs:
+        .byte   $04,$02,$01,$3A,$02,$01,$5A,$02 ; B38F 04 02 01 3A 02 01 5A 02  ...:..Z.
         .byte   $01,$7A,$02,$01,$98,$02,$01,$20 ; B397 01 7A 02 01 98 02 01 20  .z..... 
         .byte   $12,$01,$5A,$12,$01,$04,$22,$01 ; B39F 12 01 5A 12 01 04 22 01  ..Z...".
         .byte   $3A,$22,$01,$04,$32,$01,$78,$32 ; B3A7 3A 22 01 04 32 01 78 32  :"..2.x2
         .byte   $01,$98,$32,$01,$04,$52,$01,$38 ; B3AF 01 98 32 01 04 52 01 38  ..2..R.8
         .byte   $52,$01,$60,$52,$01,$FF         ; B3B7 52 01 60 52 01 FF        R.`R..
-LB3BD:  .byte   $22,$10,$62,$20,$82,$30,$A2,$40 ; B3BD 22 10 62 20 82 30 A2 40  ".b .0.@
+l11_bombs:
+        .byte   $22,$10,$62,$20,$82,$30,$A2,$40 ; B3BD 22 10 62 20 82 30 A2 40  ".b .0.@
         .byte   $C2,$50,$44,$60,$84,$70,$26,$80 ; B3C5 C2 50 44 60 84 70 26 80  .PD`.p&.
         .byte   $66,$90,$28,$A0,$A8,$B0,$C8,$C0 ; B3CD 66 90 28 A0 A8 B0 C8 C0  f.(.....
-        .byte   $2C,$D0,$6C,$E0,$8C,$F0,$FF     ; B3D5 2C D0 6C E0 8C F0 FF     ,.l....
-LB3DC:  .byte   $00,$00,$FC,$B3,$06,$B4,$10,$B4 ; B3DC 00 00 FC B3 06 B4 10 B4  ........
+        .byte   $2C,$D0,$6C,$E0,$8C,$F0         ; B3D5 2C D0 6C E0 8C F0        ,.l...
+l11_bombs_term:
+        .byte   $FF                             ; B3DB FF                       .
+l11_map_changes:
+        .byte   $00,$00,$FC,$B3,$06,$B4,$10,$B4 ; B3DC 00 00 FC B3 06 B4 10 B4  ........
         .byte   $06,$B4,$10,$B4,$1A,$B4,$24,$B4 ; B3E4 06 B4 10 B4 1A B4 24 B4  ......$.
         .byte   $2E,$B4,$38,$B4,$2E,$B4,$38,$B4 ; B3EC 2E B4 38 B4 2E B4 38 B4  ..8...8.
         .byte   $FC,$B3,$24,$B4,$1A,$B4,$42,$B4 ; B3F4 FC B3 24 B4 1A B4 42 B4  ..$...B.
@@ -6736,14 +6802,16 @@
         .byte   $00,$04,$54,$3F,$04,$FF,$FE,$89 ; B43C 00 04 54 3F 04 FF FE 89  ..T?....
         .byte   $9C,$FD,$00,$04,$8C,$1D,$04,$FF ; B444 9C FD 00 04 8C 1D 04 FF  ........
 ; ----------------------------------------------------------------------------
-LB44C:  lda     #$01                            ; B44C A9 01                    ..
+hatch_bomb_sub:
+        lda     #$01                            ; B44C A9 01                    ..
         sta     $0770                           ; B44E 8D 70 07                 .p.
         lda     #$00                            ; B451 A9 00                    ..
         sta     $0771                           ; B453 8D 71 07                 .q.
         rts                                     ; B456 60                       `
 
 ; ----------------------------------------------------------------------------
-LB457:  lda     $0623                           ; B457 AD 23 06                 .#.
+hatch_sub0:
+        lda     $0623                           ; B457 AD 23 06                 .#.
         cmp     #$02                            ; B45A C9 02                    ..
         bne     LB46A                           ; B45C D0 0C                    ..
         lda     #$00                            ; B45E A9 00                    ..
@@ -6831,7 +6899,7 @@
 
 ; ----------------------------------------------------------------------------
 ; dunno what this is for yet
-data_table_b50b:
+hatch_table_b50b:
         .byte   $03,$1C,$B5,$08,$00,$00,$01,$56 ; B50B 03 1C B5 08 00 00 01 56  .......V
         .byte   $04,$1C,$B5,$08,$00,$00,$05,$1A ; B513 04 1C B5 08 00 00 05 1A  ........
         .byte   $FF,$00,$00,$18,$18,$24,$24,$18 ; B51B FF 00 00 18 18 24 24 18  .....$$.
@@ -6849,19 +6917,20 @@
         .byte   $DC,$01,$01,$A6,$00,$C8,$02,$01 ; B56C DC 01 01 A6 00 C8 02 01  ........
         .byte   $A4,$DC,$01,$01,$A2,$F0,$01,$00 ; B574 A4 DC 01 01 A2 F0 01 00  ........
 ; ----------------------------------------------------------------------------
-LB57C:  lda     #$00                            ; B57C A9 00                    ..
+hatch_sub3:
+        lda     #$00                            ; B57C A9 00                    ..
         jmp     L8F76                           ; B57E 4C 76 8F                 Lv.
 
 ; ----------------------------------------------------------------------------
-LB581:  lda     $062A                           ; B581 AD 2A 06                 .*.
+hatch_sub1:
+        lda     $062A                           ; B581 AD 2A 06                 .*.
         sta     PCOLR3                          ; B584 8D C3 02                 ...
         rts                                     ; B587 60                       `
 
 ; ----------------------------------------------------------------------------
 zero_filler_8588:
         .byte   $00,$00,$00,$00,$00,$00,$00,$00 ; B588 00 00 00 00 00 00 00 00  ........
-data_b590:
-        .byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B590 FE 33 9C FD 04 00 04 05  .3......
+l12_map:.byte   $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B590 FE 33 9C FD 04 00 04 05  .3......
         .byte   $08,$3C,$05,$0A,$7C,$05,$08,$04 ; B598 08 3C 05 0A 7C 05 08 04  .<..|...
         .byte   $25,$26,$04,$43,$26,$04,$55,$06 ; B5A0 25 26 04 43 26 04 55 06  %&.C&.U.
         .byte   $3C,$55,$0A,$84,$55,$06,$04,$43 ; B5A8 3C 55 0A 84 55 06 04 43  <U..U..C
@@ -6870,17 +6939,22 @@
         .byte   $2A,$1F,$09,$6A,$1F,$09,$0C,$3F ; B5C0 2A 1F 09 6A 1F 09 0C 3F  *..j...?
         .byte   $05,$4C,$3F,$05,$8C,$3F,$05,$FE ; B5C8 05 4C 3F 05 8C 3F 05 FE  .L?..?..
         .byte   $B3,$9C                         ; B5D0 B3 9C                    ..
-LB5D2:  .byte   $04,$02,$01,$20,$02,$01,$3C,$02 ; B5D2 04 02 01 20 02 01 3C 02  ... ..<.
+l12_map_bombs:
+        .byte   $04,$02,$01,$20,$02,$01,$3C,$02 ; B5D2 04 02 01 20 02 01 3C 02  ... ..<.
         .byte   $01,$60,$02,$01,$7C,$02,$01,$98 ; B5DA 01 60 02 01 7C 02 01 98  .`..|...
         .byte   $02,$01,$04,$22,$01,$98,$22,$01 ; B5E2 02 01 04 22 01 98 22 01  ..."..".
         .byte   $3C,$36,$01,$60,$36,$01,$04,$52 ; B5EA 3C 36 01 60 36 01 04 52  <6.`6..R
         .byte   $01,$3C,$52,$01,$60,$52,$01,$98 ; B5F2 01 3C 52 01 60 52 01 98  .<R.`R..
         .byte   $52,$01,$FF                     ; B5FA 52 01 FF                 R..
-LB5FD:  .byte   $22,$10,$42,$20,$62,$00,$82,$00 ; B5FD 22 10 42 20 62 00 82 00  ".B b...
+l12_bombs:
+        .byte   $22,$10,$42,$20,$62,$00,$82,$00 ; B5FD 22 10 42 20 62 00 82 00  ".B b...
         .byte   $A2,$30,$C2,$40,$26,$00,$C6,$00 ; B605 A2 30 C2 40 26 00 C6 00  .0.@&...
         .byte   $68,$00,$88,$00,$2C,$00,$6C,$00 ; B60D 68 00 88 00 2C 00 6C 00  h...,.l.
-        .byte   $8C,$00,$CC,$00,$FF             ; B615 8C 00 CC 00 FF           .....
-LB61A:  .byte   $00,$00,$24,$B6,$2E,$B6,$3E,$B6 ; B61A 00 00 24 B6 2E B6 3E B6  ..$...>.
+        .byte   $8C,$00,$CC,$00                 ; B615 8C 00 CC 00              ....
+l12_bombs_term:
+        .byte   $FF                             ; B619 FF                       .
+l12_map_changes:
+        .byte   $00,$00,$24,$B6,$2E,$B6,$3E,$B6 ; B61A 00 00 24 B6 2E B6 3E B6  ..$...>.
         .byte   $4E,$B6,$FE,$49,$9C,$FD,$04,$00 ; B622 4E B6 FE 49 9C FD 04 00  N..I....
         .byte   $78,$43,$02,$FF,$FE,$49,$9C,$FD ; B62A 78 43 02 FF FE 49 9C FD  xC...I..
         .byte   $04,$00,$3C,$25,$02,$FD,$04,$00 ; B632 04 00 3C 25 02 FD 04 00  ..<%....
@@ -6888,7 +6962,8 @@
         .byte   $04,$00,$7C,$25,$02,$FD,$04,$00 ; B642 04 00 7C 25 02 FD 04 00  ..|%....
         .byte   $5C,$25,$02,$FF,$FE,$49,$9C,$FD ; B64A 5C 25 02 FF FE 49 9C FD  \%...I..
         .byte   $04,$00,$5C,$43,$02,$FF         ; B652 04 00 5C 43 02 FF        ..\C..
-LB658:  .byte   $00,$71,$B6,$08,$40,$02,$01,$08 ; B658 00 71 B6 08 40 02 01 08  .q..@...
+l12_unkn0:
+        .byte   $00,$71,$B6,$08,$40,$02,$01,$08 ; B658 00 71 B6 08 40 02 01 08  .q..@...
         .byte   $03,$71,$B6,$08,$14,$40,$02,$08 ; B660 03 71 B6 08 14 40 02 08  .q...@..
         .byte   $04,$71,$B6,$08,$00,$80,$03,$08 ; B668 04 71 B6 08 00 80 03 08  .q......
         .byte   $FF,$47,$EF,$3E,$1E,$1E,$0E,$02 ; B670 FF 47 EF 3E 1E 1E 0E 02  .G.>....
@@ -6897,7 +6972,8 @@
         .byte   $05,$40,$EE,$3F,$1E,$1C,$0C,$02 ; B688 05 40 EE 3F 1E 1C 0C 02  .@.?....
         .byte   $05                             ; B690 05                       .
 ; ----------------------------------------------------------------------------
-LB691:  lda     falling_flag                    ; B691 AD 21 06                 .!.
+hurr_sub0:
+        lda     falling_flag                    ; B691 AD 21 06                 .!.
         bne     LB697                           ; B694 D0 01                    ..
         rts                                     ; B696 60                       `
 
@@ -6906,7 +6982,8 @@
 LB69A:  rts                                     ; B69A 60                       `
 
 ; ----------------------------------------------------------------------------
-LB69B:  lda     player_speed                    ; B69B AD 24 06                 .$.
+hurr_sub1:
+        lda     player_speed                    ; B69B AD 24 06                 .$.
         cmp     #$09                            ; B69E C9 09                    ..
         bcs     LB6A9                           ; B6A0 B0 07                    ..
         lda     $0623                           ; B6A2 AD 23 06                 .#.
@@ -6955,7 +7032,8 @@
         rts                                     ; B708 60                       `
 
 ; ----------------------------------------------------------------------------
-LB709:  lda     $06F5                           ; B709 AD F5 06                 ...
+hurr_sub2:
+        lda     $06F5                           ; B709 AD F5 06                 ...
         cmp     #$01                            ; B70C C9 01                    ..
         bne     LB71C                           ; B70E D0 0C                    ..
         inc     $0669                           ; B710 EE 69 06                 .i.
@@ -7002,7 +7080,7 @@
         jmp     LB724                           ; B768 4C 24 B7                 L$.
 
 ; ----------------------------------------------------------------------------
-; used in level11
+; used in level12
 wind_table_1:
         .byte   $01,$02,$03,$03,$03,$03         ; B76B 01 02 03 03 03 03        ......
 wind_table_2:
-- 
cgit v1.2.3