The routine inventory¶
Every routine of the game's program, with its status in the port. The routine inventory is re/functions.csv, and chapter 4 tells what it is for. The same run of the disassembler, tools/disasm.py, that writes the listing writes the inventory, from the program and the names kept by hand, and tests/test_generated.py holds the committed file to that run byte for byte. Every column is worked out again at each run but the status, which is set by hand at the working method's fifth step, on the evidence it names (SPEC.md, 7.4); a routine new to the inventory starts as todo. Read the file, which has more columns, with a CSV reader: one of them holds commas.
The rows follow the addresses, as the file does, and a row gives:
| Column | What it holds |
|---|---|
| Address | where the routine begins, 0x and six hexadecimal digits at the fixed load layout, so that the address of an orig comment finds its row |
| Name | the project's name for it, kept in re/names.txt; a routine nobody named is sub_ and its address, as sub_022f04 |
| Kind | C for a routine the compiler made, known by its first instruction, link a5; asm for one written by hand in assembly |
| Span | its size in bytes, from its start to the next routine's, so that the spans cover the whole code |
| Status | where the port stands with the routine |
The statuses mean:
| Status | What it means |
|---|---|
verified |
ported and held to the original by a test of its own: under the oracle for a pure routine, by other tests for the rest |
ported |
ported and held by the comparisons of whole runs of the game |
partial |
ported as far as the scripts run it, the rest marked as stand-ins or, where the reading was sure, ported from the reading |
replace |
the port does the job its own way: the memory, the copper lists, the calls into the floating point |
drop |
not needed: the crack's screen, the debug reporters |
todo |
no status set; mostly the C library and the system's glue at the end of the code, whose work the port does its own way, or code with no caller in the listing |
The counts and the rows are made from the file by the book's build, which the book's check holds to it: they are the inventory as it stood when the book was last built.
| Status | Routines |
|---|---|
verified |
167 |
ported |
155 |
partial |
1 |
replace |
47 |
drop |
36 |
todo |
210 |
| all | 616 |
The routines by status, counted from the inventory at the book's build.
| Address | Name | Kind | Span | Status |
|---|---|---|---|---|
0x010000 |
entry |
asm | 6 | todo |
0x010006 |
main |
asm | 520 | ported |
0x01020E |
fatal_exit |
asm | 26 | todo |
0x010228 |
frame_update |
asm | 228 | ported |
0x01030C |
flip_buffers |
asm | 56 | ported |
0x010344 |
weapon_marker |
asm | 98 | ported |
0x0103A6 |
draw_player |
asm | 792 | ported |
0x0106BE |
draw_objects |
asm | 68 | ported |
0x010702 |
object_draw |
asm | 210 | ported |
0x0107D4 |
object_free_unused |
asm | 30 | todo |
0x0107F2 |
object_draw_first |
asm | 46 | verified |
0x010820 |
object_spawn |
asm | 378 | verified |
0x01099A |
rocket_homing |
asm | 216 | verified |
0x010A72 |
objects_step |
asm | 52 | verified |
0x010AA6 |
object_step |
asm | 768 | verified |
0x010DA6 |
draw_enemy_aircraft |
asm | 314 | ported |
0x010EE0 |
smoke_draw |
asm | 166 | ported |
0x010F86 |
sub_010f86 |
asm | 2 | todo |
0x010F88 |
snapshot_for_draw |
asm | 244 | ported |
0x01107C |
weapon_drop |
asm | 22 | verified |
0x011092 |
sub_011092 |
asm | 48 | todo |
0x0110C2 |
draw_game_over |
asm | 100 | verified |
0x011126 |
airfield_at |
asm | 54 | verified |
0x01115C |
pillbox_between |
asm | 74 | verified |
0x0111A6 |
ship_gun_between |
asm | 86 | verified |
0x0111FC |
choose_night |
asm | 56 | verified |
0x011234 |
free_mission_assets |
asm | 34 | ported |
0x011256 |
sub_011256 |
asm | 30 | ported |
0x011274 |
shot_origin |
asm | 60 | ported |
0x0112B0 |
weapon_menu |
asm | 214 | ported |
0x011386 |
logic_tick |
asm | 218 | ported |
0x011460 |
lift_step |
asm | 120 | ported |
0x0114D8 |
run_queued_ticks |
asm | 56 | ported |
0x011510 |
ship_launches |
asm | 274 | verified |
0x011622 |
airfields_step |
asm | 242 | verified |
0x011714 |
input_queue_pop |
asm | 54 | ported |
0x01174A |
input_queue_clear |
asm | 10 | ported |
0x011754 |
vblank_server |
asm | 530 | ported |
0x011966 |
sub_011966 |
asm | 86 | todo |
0x0119BC |
gun_splashes |
asm | 88 | verified |
0x011A14 |
ricochet_spawn |
asm | 46 | drop |
0x011A42 |
sub_011a42 |
asm | 4 | todo |
0x011A46 |
guns_ground_x |
asm | 62 | verified |
0x011A84 |
soldiers_hit_c |
asm | 8 | ported |
0x011A8C |
soldiers_hit |
asm | 78 | verified |
0x011ADA |
sub_011ada |
asm | 8 | todo |
0x011AE2 |
torpedoes_hit |
asm | 112 | verified |
0x011B52 |
sub_011b52 |
asm | 2 | todo |
0x011B54 |
sub_011b54 |
asm | 168 | todo |
0x011BFC |
engine_smoke |
asm | 98 | verified |
0x011C5E |
balloons_step |
asm | 80 | verified |
0x011CAE |
ships_sinking |
asm | 42 | verified |
0x011CD8 |
ship_sinking |
asm | 268 | verified |
0x011DE4 |
target_timers |
asm | 158 | verified |
0x011E82 |
soldier_out |
asm | 204 | verified |
0x011F4E |
sound_slots_clear |
asm | 22 | verified |
0x011F64 |
sound_slots_off |
asm | 18 | drop |
0x011F76 |
sound_slots_init |
asm | 240 | verified |
0x012066 |
sound_channels |
asm | 204 | verified |
0x012132 |
engine_sound |
asm | 412 | verified |
0x0122CE |
enemy_loudness |
asm | 40 | verified |
0x0122F6 |
near_loudness |
asm | 16 | verified |
0x012306 |
loudness_at |
asm | 30 | verified |
0x012324 |
sound_boom |
asm | 26 | verified |
0x01233E |
sound_splash |
asm | 22 | verified |
0x012354 |
sound_clang |
asm | 44 | verified |
0x012380 |
sound_screech |
asm | 44 | verified |
0x0123AC |
sound_scream |
asm | 48 | verified |
0x0123DC |
music_start |
asm | 148 | ported |
0x012470 |
music_stop |
asm | 108 | ported |
0x0124DC |
sub_0124dc |
asm | 4 | todo |
0x0124E0 |
mem_free_var |
asm | 34 | replace |
0x012502 |
shapes_free |
asm | 28 | todo |
0x01251E |
sub_01251e |
asm | 14 | drop |
0x01252C |
ship_block |
asm | 68 | ported |
0x012570 |
open_libraries |
asm | 46 | todo |
0x01259E |
close_libraries |
asm | 38 | todo |
0x0125C4 |
sub_0125c4 |
asm | 2 | todo |
0x0125C6 |
task_setup |
asm | 122 | drop |
0x012640 |
trap_handler |
asm | 300 | drop |
0x01276C |
sub_01276c |
asm | 40 | todo |
0x012794 |
font_load |
asm | 98 | verified |
0x0127F6 |
sub_0127f6 |
asm | 72 | todo |
0x01283E |
alloc_pools |
asm | 152 | todo |
0x0128D6 |
sub_0128d6 |
asm | 58 | todo |
0x012910 |
install_vblank_server |
asm | 74 | replace |
0x01295A |
sub_01295a |
asm | 110 | todo |
0x0129C8 |
sub_0129c8 |
asm | 20 | todo |
0x0129DC |
load_permanent_shapes |
asm | 182 | ported |
0x012A92 |
sub_012a92 |
asm | 74 | todo |
0x012ADC |
map_load |
asm | 226 | ported |
0x012BBE |
free_map |
asm | 198 | ported |
0x012C84 |
airfields_scan |
asm | 214 | ported |
0x012D5A |
map_scan |
asm | 1,134 | ported |
0x0131C8 |
sub_0131c8 |
asm | 78 | ported |
0x013216 |
sub_013216 |
asm | 32 | ported |
0x013236 |
sub_013236 |
asm | 28 | ported |
0x013252 |
load_ship_shapes |
asm | 278 | ported |
0x013368 |
sounds_load |
asm | 230 | ported |
0x01344E |
sound_engine_load |
asm | 30 | ported |
0x01346C |
sounds_free |
asm | 56 | ported |
0x0134A4 |
sound_engine_free |
asm | 10 | ported |
0x0134AE |
sub_0134ae |
asm | 14 | ported |
0x0134BC |
init_assets |
asm | 28 | ported |
0x0134D8 |
sub_0134d8 |
asm | 54 | todo |
0x01350E |
ship_guns_setup |
asm | 70 | ported |
0x013554 |
airfields_clear |
asm | 14 | ported |
0x013562 |
campaign_reset |
asm | 70 | ported |
0x0135A8 |
mission_reset_tables |
asm | 38 | ported |
0x0135CE |
next_aircraft |
asm | 10 | ported |
0x0135D8 |
player_lost_restart |
asm | 172 | ported |
0x013684 |
player_restart_state |
asm | 210 | ported |
0x013756 |
sub_013756 |
asm | 28 | ported |
0x013772 |
draw_world |
asm | 428 | ported |
0x01391E |
ship_planes |
asm | 250 | ported |
0x013A18 |
airfields_draw |
asm | 164 | ported |
0x013ABC |
deck_aircraft |
asm | 96 | ported |
0x013B1C |
record_extras |
asm | 604 | ported |
0x013D78 |
targets_3_draw |
asm | 112 | ported |
0x013DE8 |
targets_f_draw |
asm | 132 | ported |
0x013E6C |
ocean |
asm | 130 | ported |
0x013EEE |
soldiers_draw |
asm | 430 | ported |
0x01409C |
lift_aircraft |
asm | 76 | ported |
0x0140E8 |
islands_draw |
asm | 150 | ported |
0x01417E |
map_window |
asm | 54 | ported |
0x0141B4 |
window_height |
asm | 82 | verified |
0x014206 |
window_strip |
asm | 554 | ported |
0x014430 |
window_ship |
asm | 308 | ported |
0x014564 |
window_background |
asm | 66 | ported |
0x0145A6 |
window_shape |
asm | 288 | ported |
0x0146C6 |
crash_hit |
asm | 22 | verified |
0x0146DC |
weapon_hit |
asm | 882 | verified |
0x014A4E |
ship_at_offset |
asm | 4 | verified |
0x014A52 |
ship_at_span |
asm | 146 | verified |
0x014AE4 |
target_records |
asm | 92 | verified |
0x014B40 |
target_release |
asm | 20 | verified |
0x014B54 |
target_of |
asm | 234 | verified |
0x014C3E |
ship_guns_draw |
asm | 274 | verified |
0x014D50 |
target_frame |
asm | 104 | verified |
0x014DB8 |
target_range_frame |
asm | 244 | verified |
0x014EAC |
ride_on_ship |
asm | 60 | ported |
0x014EE8 |
sub_014ee8 |
asm | 20 | todo |
0x014EFC |
ship_gun_shell |
asm | 96 | verified |
0x014F5C |
target_fire |
asm | 146 | verified |
0x014FEE |
target_refill |
asm | 70 | verified |
0x015034 |
nearest_barracks |
asm | 66 | verified |
0x015076 |
sub_015076 |
asm | 2 | todo |
0x015078 |
format_to |
asm | 24 | ported |
0x015090 |
format_putch |
asm | 4 | ported |
0x015094 |
sub_015094 |
asm | 24 | todo |
0x0150AC |
sub_0150ac |
asm | 4 | todo |
0x0150B0 |
flip_view |
asm | 24 | todo |
0x0150C8 |
map_slot_at |
asm | 58 | verified |
0x015102 |
sub_015102 |
asm | 2 | todo |
0x015104 |
cosine |
asm | 4 | verified |
0x015108 |
sine |
asm | 68 | verified |
0x01514C |
tangent |
asm | 40 | verified |
0x015174 |
draw_world_shape |
asm | 78 | ported |
0x0151C2 |
draw_world_shape_xor |
asm | 74 | todo |
0x01520C |
sub_01520c |
asm | 2 | todo |
0x01520E |
read_joy_bits |
asm | 60 | ported |
0x01524A |
clip_playfield |
asm | 18 | ported |
0x01525C |
clip_dash_window |
asm | 18 | todo |
0x01526E |
clip_to_waterline |
asm | 62 | verified |
0x0152AC |
splash_spawn_c |
asm | 4 | ported |
0x0152B0 |
splash_spawn |
asm | 72 | verified |
0x0152F8 |
splashes_draw |
asm | 98 | ported |
0x01535A |
build_master_lists |
asm | 262 | ported |
0x015460 |
smoke_claim |
asm | 108 | verified |
0x0154CC |
sub_0154cc |
asm | 20 | todo |
0x0154E0 |
smoke_at_player |
asm | 122 | verified |
0x01555A |
ticker_offer |
asm | 20 | ported |
0x01556E |
sub_01556e |
asm | 14 | todo |
0x01557C |
balloons_draw |
asm | 168 | ported |
0x015624 |
ticker_say |
asm | 28 | ported |
0x015640 |
ship_sunk_message |
asm | 84 | verified |
0x015694 |
mission_won |
asm | 124 | verified |
0x015710 |
sub_015710 |
asm | 4 | verified |
0x015714 |
ground_height |
asm | 388 | verified |
0x015898 |
sub_015898 |
asm | 84 | todo |
0x0158EC |
mem_alloc_asm |
asm | 18 | replace |
0x0158FE |
sub_0158fe |
asm | 18 | replace |
0x015910 |
text_draw |
asm | 14 | verified |
0x01591E |
text_width |
asm | 56 | verified |
0x015956 |
text_render |
asm | 310 | verified |
0x015A8C |
text_draw_justified |
asm | 92 | verified |
0x015AE8 |
island_bonus |
asm | 46 | verified |
0x015B16 |
sub_015b16 |
asm | 4 | todo |
0x015B1A |
file_length |
asm | 62 | todo |
0x015B58 |
shape_mirror_x |
asm | 110 | verified |
0x015BC6 |
shapes_load |
asm | 150 | verified |
0x015C5C |
shapes_resolve |
asm | 66 | verified |
0x015C9E |
sub_015c9e |
asm | 8 | todo |
0x015CA6 |
bearing_of |
asm | 102 | verified |
0x015D0C |
sub_015d0c |
asm | 12 | verified |
0x015D18 |
sub_015d18 |
asm | 6 | verified |
0x015D1E |
sub_015d1e |
asm | 8 | verified |
0x015D26 |
sub_015d26 |
asm | 4 | verified |
0x015D2A |
sub_015d2a |
asm | 6 | verified |
0x015D30 |
sub_015d30 |
asm | 8 | verified |
0x015D38 |
sub_015d38 |
asm | 6 | verified |
0x015D3E |
load_file_public_asm |
asm | 14 | ported |
0x015D4C |
sub_015d4c |
asm | 4 | todo |
0x015D50 |
load_file_chip_asm |
asm | 10 | ported |
0x015D5A |
read_vhposr |
asm | 8 | replace |
0x015D62 |
save_nothing |
C | 8 | verified |
0x015D6A |
sub_015d6a |
asm | 18 | todo |
0x015D7C |
save_read_part |
C | 98 | verified |
0x015DDE |
save_write_part |
C | 60 | verified |
0x015E1A |
save_game_read |
C | 112 | verified |
0x015E8A |
save_game_write |
C | 56 | ported |
0x015EC2 |
save_walk |
C | 368 | verified |
0x016032 |
text_caret |
C | 84 | ported |
0x016086 |
text_input |
C | 1,206 | verified |
0x01653C |
load_dash_assets |
C | 86 | ported |
0x016592 |
path_sanitise |
C | 50 | verified |
0x0165C4 |
sub_0165c4 |
C | 8 | todo |
0x0165CC |
display_alloc_chip |
C | 18 | replace |
0x0165DE |
cop_rotate_unused |
C | 48 | drop |
0x01660E |
display_shutdown |
C | 98 | drop |
0x016670 |
display_init |
C | 386 | replace |
0x0167F2 |
vport_init_bitmap |
C | 314 | ported |
0x01692C |
view_layout |
C | 120 | ported |
0x0169A4 |
screen_dialog |
C | 64 | ported |
0x0169E4 |
screen_a_lores5_unused |
C | 50 | todo |
0x016A16 |
view_set_story |
C | 74 | ported |
0x016A60 |
screen_story |
C | 56 | ported |
0x016A98 |
view_set_picture |
C | 64 | ported |
0x016AD8 |
screen_picture |
C | 44 | ported |
0x016B04 |
screen_hires3 |
C | 92 | ported |
0x016B60 |
screen_hires2 |
C | 92 | drop |
0x016BBC |
ticker_clear |
C | 28 | ported |
0x016BD8 |
ticker_vport_init |
C | 96 | replace |
0x016C38 |
view_set_game |
C | 142 | replace |
0x016CC6 |
screen_game |
C | 108 | replace |
0x016D32 |
screen_game_restore |
C | 72 | ported |
0x016D7A |
screen_hiscore |
C | 92 | ported |
0x016DD6 |
cmap_file_to_table |
C | 156 | verified |
0x016E72 |
sub_016e72 |
C | 36 | todo |
0x016E96 |
exit_game |
C | 28 | drop |
0x016EB2 |
view_load_picture |
C | 60 | ported |
0x016EEE |
wait_frames_or_fire |
C | 50 | verified |
0x016F20 |
view_show |
C | 164 | ported |
0x016FC4 |
view_show_wait |
C | 22 | ported |
0x016FDA |
sub_016fda |
C | 28 | todo |
0x016FF6 |
colour_lerp |
C | 142 | verified |
0x017084 |
fade_to |
C | 366 | verified |
0x0171F2 |
fade_to_pair |
C | 446 | verified |
0x0173B0 |
fade_out |
C | 54 | verified |
0x0173E6 |
fade_out_pair |
C | 60 | verified |
0x017422 |
load_picture_black |
C | 2,348 | ported |
0x017D4E |
story_copper_build |
C | 306 | replace |
0x017E80 |
story_screen |
C | 418 | ported |
0x018022 |
title_sequence |
C | 330 | ported |
0x01816C |
sub_01816c |
C | 40 | todo |
0x018194 |
menu_input |
C | 148 | verified |
0x018228 |
wait_input_release |
C | 58 | verified |
0x018262 |
rank_select |
C | 712 | ported |
0x01852A |
demo_end |
C | 70 | ported |
0x018570 |
text_draw_c |
C | 32 | ported |
0x018590 |
mission_briefing |
C | 478 | ported |
0x01876E |
cop_set_split_line |
C | 76 | replace |
0x0187BA |
cop_add_ticker_ramp |
C | 76 | replace |
0x018806 |
mission_display_setup |
C | 338 | ported |
0x018958 |
dialog_draw_names |
C | 174 | ported |
0x018A06 |
dialog_file_list |
C | 400 | ported |
0x018B96 |
load_save_dialog |
C | 1,778 | ported |
0x019288 |
high_score_save |
C | 38 | verified |
0x0192AE |
high_score_reset_unused |
C | 114 | drop |
0x019320 |
high_score_sort |
C | 172 | verified |
0x0193CC |
high_score_load |
C | 166 | verified |
0x019472 |
high_score_entry |
C | 524 | ported |
0x01967E |
high_score_draw |
C | 472 | ported |
0x019856 |
high_score_screen |
C | 258 | ported |
0x019958 |
cop_reset |
C | 16 | replace |
0x019968 |
cop_init |
C | 32 | replace |
0x019988 |
cop_put_long_unused |
C | 52 | drop |
0x0199BC |
cop_move |
C | 76 | replace |
0x019A08 |
cop_move_ptr |
C | 148 | replace |
0x019A9C |
cop_wait |
C | 190 | replace |
0x019B5A |
cop_colours |
C | 176 | replace |
0x019C0A |
cop_vport_colours |
C | 58 | replace |
0x019C44 |
cop_vport_colours2_unused |
C | 60 | drop |
0x019C80 |
cop_vport_split |
C | 152 | replace |
0x019D18 |
cop_vport_planes |
C | 852 | replace |
0x01A06C |
cop_sprites_off |
C | 104 | replace |
0x01A0D4 |
view_build_copper |
C | 290 | replace |
0x01A1F6 |
iff_cmap_to_table |
C | 142 | verified |
0x01A284 |
iff_cmp2_to_table |
C | 178 | todo |
0x01A336 |
iff_next_chunk |
C | 44 | todo |
0x01A362 |
iff_body_to_vport |
C | 240 | verified |
0x01A452 |
iff_parse_ilbm |
C | 246 | verified |
0x01A548 |
iff_to_vport |
C | 160 | verified |
0x01A5E8 |
sub_01a5e8 |
C | 38 | todo |
0x01A60E |
view_poke_colours1 |
C | 158 | replace |
0x01A6AC |
view_poke_colours2 |
C | 160 | replace |
0x01A74C |
vport_clear_planes |
C | 96 | ported |
0x01A7AC |
view_clear_unused |
C | 136 | drop |
0x01A834 |
view_copy_bitmaps |
C | 144 | ported |
0x01A8C4 |
view_copy_colours |
C | 262 | ported |
0x01A9CA |
view_copy |
C | 50 | ported |
0x01A9FC |
cop_show_wait |
C | 18 | ported |
0x01AA0E |
cop_install |
asm | 36 | replace |
0x01AA32 |
wait_next_vblank |
asm | 12 | ported |
0x01AA3E |
wait_vblank |
asm | 18 | ported |
0x01AA50 |
sub_01aa50 |
C | 18 | todo |
0x01AA62 |
sub_01aa62 |
C | 12 | todo |
0x01AA6E |
turn_allowed |
C | 124 | verified |
0x01AAEA |
wheel_height |
C | 150 | verified |
0x01AB80 |
turn_step |
C | 94 | verified |
0x01ABDE |
aircraft_frame |
C | 762 | ported |
0x01AED8 |
wreck_smoke |
C | 164 | ported |
0x01AF7C |
lost_wait |
C | 62 | ported |
0x01AFBA |
crash |
C | 1,184 | ported |
0x01B45A |
hook_state |
C | 132 | verified |
0x01B4DE |
on_the_lift |
C | 210 | verified |
0x01B5B0 |
button |
C | 210 | ported |
0x01B682 |
guns |
C | 314 | verified |
0x01B7BC |
deck_span |
C | 48 | verified |
0x01B7EC |
player_reset |
C | 216 | ported |
0x01B8C4 |
touches_ground |
C | 106 | verified |
0x01B92E |
cable_hook |
C | 142 | verified |
0x01B9BC |
sub_01b9bc |
C | 16 | ported |
0x01B9CC |
engine_idle |
C | 36 | ported |
0x01B9F0 |
sub_01b9f0 |
C | 16 | todo |
0x01BA00 |
sub_01ba00 |
asm | 128 | todo |
0x01BA80 |
ground_contact |
C | 386 | ported |
0x01BC02 |
enemy_countdown_step |
C | 204 | verified |
0x01BCCE |
deck_state |
C | 236 | verified |
0x01BDBA |
deck_roll |
C | 64 | verified |
0x01BDFA |
player_motion |
C | 506 | verified |
0x01BFF4 |
flight_controls |
C | 900 | verified |
0x01C378 |
frame_select |
C | 368 | ported |
0x01C4E8 |
deck_controls |
C | 268 | verified |
0x01C5F4 |
deck_edge |
C | 108 | verified |
0x01C660 |
player_update |
C | 802 | ported |
0x01C982 |
record_at |
C | 72 | verified |
0x01C9CA |
vblank_every_frame |
C | 104 | ported |
0x01CA32 |
read_joystick |
C | 112 | ported |
0x01CAA2 |
sub_01caa2 |
C | 18 | todo |
0x01CAB4 |
flash_set |
C | 20 | ported |
0x01CAC8 |
rand_mod |
C | 24 | ported |
0x01CAE0 |
burn_smoke |
C | 60 | ported |
0x01CB1C |
sub_01cb1c |
asm | 4 | todo |
0x01CB20 |
read_joy_dispatch |
asm | 16 | todo |
0x01CB30 |
sub_01cb30 |
asm | 4 | todo |
0x01CB34 |
record_on_ship |
C | 64 | verified |
0x01CB74 |
on_water |
C | 62 | verified |
0x01CBB2 |
record_is_land |
C | 64 | verified |
0x01CBF2 |
ship_of_record |
C | 196 | partial |
0x01CCB6 |
sub_01ccb6 |
C | 64 | drop |
0x01CCF6 |
ingame_keys |
asm | 306 | ported |
0x01CE28 |
sub_01ce28 |
asm | 868 | todo |
0x01D18C |
aircraft_gone_far |
C | 94 | verified |
0x01D1EA |
enemy_frames |
C | 368 | ported |
0x01D35A |
aircraft_frame_index |
C | 90 | verified |
0x01D3B4 |
aircraft_relation |
C | 194 | verified |
0x01D476 |
aircraft_order |
C | 186 | verified |
0x01D530 |
aircraft_turn_step |
C | 50 | verified |
0x01D562 |
aircraft_turn |
C | 564 | verified |
0x01D796 |
aircraft_motion |
C | 560 | verified |
0x01D9C6 |
fighter_cruise |
C | 774 | verified |
0x01DCCC |
fighter_attack |
C | 472 | verified |
0x01DEA4 |
torpedo_plane |
C | 726 | verified |
0x01E17A |
torpedo_plane_away |
C | 202 | verified |
0x01E244 |
aircraft_falling |
C | 420 | verified |
0x01E3E8 |
aircraft_burning |
C | 224 | verified |
0x01E4C8 |
aircraft_idle |
C | 8 | verified |
0x01E4D0 |
aircraft_launch |
C | 312 | verified |
0x01E608 |
aircraft_clear |
C | 70 | ported |
0x01E64E |
aircraft_speed |
C | 218 | verified |
0x01E728 |
aircraft_fly |
C | 174 | verified |
0x01E7D6 |
enemy_aircraft_step |
C | 226 | verified |
0x01E8B8 |
sound_init |
asm | 148 | verified |
0x01E94C |
sound_shutdown |
asm | 70 | drop |
0x01E992 |
sound_play_rate |
asm | 76 | drop |
0x01E9DE |
sound_wait_music |
asm | 22 | drop |
0x01E9F4 |
channel2_to_music |
asm | 36 | drop |
0x01EA18 |
channel2_from_music |
asm | 16 | drop |
0x01EA28 |
channel_play |
asm | 140 | verified |
0x01EAB4 |
channels_stop |
asm | 12 | drop |
0x01EAC0 |
channel_stop |
asm | 110 | verified |
0x01EB2E |
channel_busy |
asm | 30 | verified |
0x01EB4C |
channel_adjust |
asm | 72 | verified |
0x01EB94 |
channel_ease |
asm | 22 | drop |
0x01EBAA |
audio_irq |
asm | 186 | verified |
0x01EC64 |
soundfx_vblank |
asm | 278 | verified |
0x01ED7A |
dash_cache_invalidate |
asm | 48 | ported |
0x01EDAA |
dashboard_invalidate |
asm | 18 | ported |
0x01EDBC |
weapon_gauge_reset |
asm | 46 | verified |
0x01EDEA |
lives_gauge_reset |
asm | 44 | verified |
0x01EE16 |
draw_dashboard |
asm | 1,002 | ported |
0x01F200 |
kill_icons |
asm | 26 | ported |
0x01F21A |
enemy_arrows |
asm | 80 | ported |
0x01F26A |
draw_score |
asm | 70 | verified |
0x01F2B0 |
dash_digit |
asm | 44 | verified |
0x01F2DC |
clip_dashboard |
asm | 16 | todo |
0x01F2EC |
sub_01f2ec |
C | 70 | todo |
0x01F332 |
sub_01f332 |
C | 66 | todo |
0x01F374 |
sub_01f374 |
C | 166 | todo |
0x01F41A |
crack_text_screen |
C | 898 | drop |
0x01F79C |
os_viewport_new_unused |
asm | 258 | todo |
0x01F89E |
sub_01f89e |
asm | 4 | todo |
0x01F8A2 |
os_viewport_free_unused |
asm | 164 | todo |
0x01F946 |
sub_01f946 |
asm | 150 | todo |
0x01F9DC |
sub_01f9dc |
asm | 542 | todo |
0x01FBFA |
sub_01fbfa |
asm | 48 | todo |
0x01FC2A |
sub_01fc2a |
asm | 260 | todo |
0x01FD2E |
sub_01fd2e |
asm | 134 | todo |
0x01FDB4 |
sub_01fdb4 |
asm | 34 | todo |
0x01FDD6 |
sub_01fdd6 |
asm | 40 | todo |
0x01FDFE |
sub_01fdfe |
asm | 56 | todo |
0x01FE36 |
sub_01fe36 |
asm | 26 | todo |
0x01FE50 |
save_file |
C | 100 | ported |
0x01FEB4 |
load_file_public |
C | 22 | ported |
0x01FECA |
load_file_chip |
C | 22 | ported |
0x01FEE0 |
rpck_unpack |
asm | 54 | verified |
0x01FF16 |
load_file |
C | 730 | verified |
0x0201F0 |
sub_0201f0 |
C | 24 | todo |
0x020208 |
sub_020208 |
C | 24 | todo |
0x020220 |
sub_020220 |
C | 342 | todo |
0x020376 |
sub_020376 |
C | 26 | todo |
0x020390 |
load_file_small |
C | 26 | replace |
0x0203AA |
rand_lcg_unused |
asm | 20 | drop |
0x0203BE |
rand_beam |
asm | 28 | ported |
0x0203DA |
rand_set_seed |
asm | 14 | ported |
0x0203E8 |
byterun1_row |
asm | 76 | verified |
0x020434 |
sub_020434 |
C | 24 | todo |
0x02044C |
poll_fire |
asm | 8 | ported |
0x020454 |
poll_joy_dir8 |
asm | 8 | ported |
0x02045C |
poll_fire_and_dir8 |
asm | 14 | drop |
0x02046A |
read_fire_button |
asm | 30 | replace |
0x020488 |
read_joy_dir8 |
asm | 56 | ported |
0x0204C0 |
sub_0204c0 |
C | 36 | todo |
0x0204E4 |
sub_0204e4 |
C | 8 | todo |
0x0204EC |
sub_0204ec |
C | 8 | todo |
0x0204F4 |
shape_find_c |
C | 26 | ported |
0x02050E |
shape_by_index |
C | 82 | verified |
0x020560 |
shape_find |
asm | 84 | verified |
0x0205B4 |
key_set_qualifier_mask |
C | 24 | drop |
0x0205CC |
keyboard_open |
C | 176 | replace |
0x02067C |
keyboard_close |
C | 114 | replace |
0x0206EE |
key_wait_char |
C | 18 | drop |
0x020700 |
key_to_char |
C | 90 | verified |
0x02075A |
input_handler |
asm | 126 | verified |
0x0207D8 |
key_available |
asm | 12 | verified |
0x0207E4 |
key_get |
asm | 100 | verified |
0x020848 |
mem_alloc |
C | 22 | replace |
0x02085E |
mem_alloc_chip |
C | 22 | replace |
0x020874 |
sub_020874 |
C | 150 | replace |
0x02090A |
mem_free |
C | 148 | replace |
0x02099E |
sub_02099e |
C | 22 | todo |
0x0209B4 |
sub_0209b4 |
asm | 8 | todo |
0x0209BC |
blit_clip_setup |
asm | 306 | verified |
0x020AEE |
shape_blit_c |
asm | 30 | ported |
0x020B0C |
shape_blit |
asm | 412 | verified |
0x020CA8 |
sub_020ca8 |
asm | 28 | todo |
0x020CC4 |
shape_draw_c |
asm | 30 | ported |
0x020CE2 |
shape_draw |
asm | 264 | verified |
0x020DEA |
shape_clear_box |
asm | 32 | todo |
0x020E0A |
shape_draw_xor_c |
asm | 26 | ported |
0x020E24 |
shape_draw_xor |
asm | 304 | verified |
0x020F54 |
blit_raw_c_unused |
asm | 40 | todo |
0x020F7C |
blit_raw_unused |
asm | 118 | drop |
0x020FF2 |
rect_fill_c |
asm | 30 | todo |
0x021010 |
rect_fill |
asm | 272 | verified |
0x021120 |
rect_fill_aligned_c |
asm | 30 | todo |
0x02113E |
rect_fill_aligned |
asm | 224 | todo |
0x02121E |
sub_02121e |
asm | 24 | todo |
0x021236 |
sub_021236 |
asm | 16 | todo |
0x021246 |
draw_set_target_c |
asm | 4 | ported |
0x02124A |
draw_set_target |
asm | 54 | verified |
0x021280 |
clip_set_full |
asm | 28 | ported |
0x02129C |
clip_set |
asm | 50 | verified |
0x0212CE |
blit_begin |
asm | 6 | todo |
0x0212D4 |
blit_end |
asm | 38 | todo |
0x0212FA |
line_draw_c |
asm | 30 | todo |
0x021318 |
line_draw |
asm | 704 | ported |
0x0215D8 |
sprintf |
C | 48 | todo |
0x021608 |
sub_021608 |
C | 28 | todo |
0x021624 |
sub_021624 |
C | 142 | todo |
0x0216B2 |
sub_0216b2 |
C | 910 | todo |
0x021A40 |
format_float |
C | 604 | drop |
0x021C9C |
ffp_add |
asm | 10 | replace |
0x021CA6 |
ffp_cmp |
asm | 10 | replace |
0x021CB0 |
ffp_neg |
asm | 10 | replace |
0x021CBA |
ffp_tst |
asm | 10 | replace |
0x021CC4 |
ffp_fix |
asm | 10 | replace |
0x021CCE |
ffp_sub |
asm | 10 | replace |
0x021CD8 |
ffp_div |
asm | 10 | replace |
0x021CE2 |
ffp_flt |
asm | 10 | replace |
0x021CEC |
ffp_mul |
asm | 122 | replace |
0x021D66 |
sub_021d66 |
asm | 8 | todo |
0x021D6E |
sub_021d6e |
asm | 14 | replace |
0x021D7C |
sub_021d7c |
asm | 22 | todo |
0x021D92 |
sub_021d92 |
asm | 18 | todo |
0x021DA4 |
sub_021da4 |
asm | 14 | todo |
0x021DB2 |
sub_021db2 |
asm | 8 | todo |
0x021DBA |
sub_021dba |
asm | 14 | todo |
0x021DC8 |
sub_021dc8 |
asm | 6 | todo |
0x021DCE |
sub_021dce |
asm | 20 | todo |
0x021DE2 |
sub_021de2 |
asm | 14 | todo |
0x021DF0 |
sub_021df0 |
asm | 18 | todo |
0x021E02 |
strcpy |
asm | 16 | todo |
0x021E12 |
strlen |
asm | 18 | todo |
0x021E24 |
sub_021e24 |
C | 52 | ported |
0x021E58 |
sub_021e58 |
C | 18 | todo |
0x021E6A |
sub_021e6a |
asm | 24 | todo |
0x021E82 |
tolower |
asm | 24 | todo |
0x021E9A |
strcmp |
asm | 48 | todo |
0x021ECA |
bcopy |
asm | 42 | todo |
0x021EF4 |
sub_021ef4 |
C | 58 | todo |
0x021F2E |
c_startup |
asm | 62 | todo |
0x021F6C |
sub_021f6c |
asm | 52 | todo |
0x021FA0 |
geta4 |
asm | 8 | todo |
0x021FA8 |
sub_021fa8 |
C | 312 | todo |
0x0220E0 |
sub_0220e0 |
C | 456 | todo |
0x0222A8 |
strcat |
asm | 6 | todo |
0x0222AE |
strncat |
asm | 36 | todo |
0x0222D2 |
strncpy |
asm | 34 | todo |
0x0222F4 |
sub_0222f4 |
asm | 36 | todo |
0x022318 |
sub_022318 |
C | 180 | todo |
0x0223CC |
sub_0223cc |
asm | 40 | todo |
0x0223F4 |
sub_0223f4 |
asm | 26 | todo |
0x02240E |
sub_02240e |
asm | 12 | todo |
0x02241A |
sub_02241a |
asm | 10 | todo |
0x022424 |
sub_022424 |
asm | 80 | todo |
0x022474 |
sub_022474 |
C | 22 | todo |
0x02248A |
sub_02248a |
C | 66 | todo |
0x0224CC |
sub_0224cc |
C | 60 | todo |
0x022508 |
sub_022508 |
C | 40 | todo |
0x022530 |
sub_022530 |
C | 132 | todo |
0x0225B4 |
sub_0225b4 |
C | 226 | todo |
0x022696 |
sub_022696 |
C | 56 | todo |
0x0226CE |
sub_0226ce |
C | 94 | todo |
0x02272C |
sub_02272c |
C | 50 | todo |
0x02275E |
sub_02275e |
C | 64 | todo |
0x02279E |
sub_02279e |
C | 20 | todo |
0x0227B2 |
sub_0227b2 |
C | 76 | todo |
0x0227FE |
sub_0227fe |
C | 88 | todo |
0x022856 |
sub_022856 |
C | 36 | todo |
0x02287A |
sub_02287a |
C | 126 | todo |
0x0228F8 |
sub_0228f8 |
C | 48 | todo |
0x022928 |
sub_022928 |
C | 30 | todo |
0x022946 |
sub_022946 |
C | 194 | todo |
0x022A08 |
sub_022a08 |
asm | 84 | todo |
0x022A5C |
sub_022a5c |
asm | 6 | todo |
0x022A62 |
sub_022a62 |
C | 76 | todo |
0x022AAE |
os_dos_close |
asm | 4 | todo |
0x022AB2 |
sub_022ab2 |
asm | 12 | todo |
0x022ABE |
sub_022abe |
asm | 12 | todo |
0x022ACA |
os_dos_delete_file |
asm | 4 | todo |
0x022ACE |
sub_022ace |
asm | 12 | todo |
0x022ADA |
os_dos_examine |
asm | 18 | todo |
0x022AEC |
os_dos_ex_next |
asm | 14 | todo |
0x022AFA |
sub_022afa |
asm | 8 | todo |
0x022B02 |
os_dos_io_err |
asm | 4 | todo |
0x022B06 |
sub_022b06 |
asm | 8 | todo |
0x022B0E |
sub_022b0e |
asm | 12 | todo |
0x022B1A |
os_dos_lock |
asm | 18 | todo |
0x022B2C |
os_dos_open |
asm | 4 | todo |
0x022B30 |
sub_022b30 |
asm | 14 | todo |
0x022B3E |
os_dos_read |
asm | 18 | todo |
0x022B50 |
os_dos_unlock |
asm | 16 | todo |
0x022B60 |
os_dos_write |
asm | 4 | replace |
0x022B64 |
sub_022b64 |
asm | 24 | todo |
0x022B7C |
os_avail_mem |
asm | 12 | drop |
0x022B88 |
sub_022b88 |
asm | 12 | todo |
0x022B94 |
sub_022b94 |
asm | 4 | todo |
0x022B98 |
sub_022b98 |
asm | 12 | todo |
0x022BA4 |
create_port |
C | 140 | drop |
0x022C30 |
sub_022c30 |
C | 70 | todo |
0x022C76 |
sub_022c76 |
asm | 12 | todo |
0x022C82 |
sub_022c82 |
asm | 12 | todo |
0x022C8E |
create_std_io |
C | 22 | drop |
0x022CA4 |
sub_022ca4 |
C | 18 | todo |
0x022CB6 |
create_ext_io |
C | 68 | drop |
0x022CFA |
sub_022cfa |
C | 60 | todo |
0x022D36 |
sub_022d36 |
asm | 4 | todo |
0x022D3A |
sub_022d3a |
asm | 14 | todo |
0x022D48 |
os_disable |
asm | 8 | todo |
0x022D50 |
os_do_io |
asm | 22 | drop |
0x022D66 |
os_enable |
asm | 8 | todo |
0x022D6E |
sub_022d6e |
asm | 4 | todo |
0x022D72 |
sub_022d72 |
asm | 12 | todo |
0x022D7E |
sub_022d7e |
asm | 8 | todo |
0x022D86 |
sub_022d86 |
asm | 4 | todo |
0x022D8A |
sub_022d8a |
asm | 16 | todo |
0x022D9A |
sub_022d9a |
asm | 12 | todo |
0x022DA6 |
sub_022da6 |
asm | 12 | todo |
0x022DB2 |
sub_022db2 |
asm | 18 | todo |
0x022DC4 |
os_open_device |
asm | 22 | drop |
0x022DDA |
sub_022dda |
asm | 12 | todo |
0x022DE6 |
sub_022de6 |
asm | 12 | todo |
0x022DF2 |
sub_022df2 |
asm | 14 | todo |
0x022E00 |
sub_022e00 |
asm | 12 | todo |
0x022E0C |
gfx_BltBitMap |
asm | 34 | todo |
0x022E2E |
gfx_BltClear |
asm | 18 | todo |
0x022E40 |
sub_022e40 |
asm | 8 | todo |
0x022E48 |
os_gfx_draw |
asm | 18 | todo |
0x022E5A |
gfx_InitBitMap |
asm | 18 | todo |
0x022E6C |
gfx_InitRastPort |
asm | 12 | todo |
0x022E78 |
os_gfx_move |
asm | 18 | todo |
0x022E8A |
sub_022e8a |
asm | 8 | todo |
0x022E92 |
os_gfx_rect_fill |
asm | 18 | todo |
0x022EA4 |
os_gfx_set_apen |
asm | 16 | todo |
0x022EB4 |
os_gfx_set_bpen |
asm | 16 | todo |
0x022EC4 |
os_gfx_set_drmd |
asm | 16 | todo |
0x022ED4 |
os_gfx_text |
asm | 26 | todo |
0x022EEE |
gfx_WaitTOF |
asm | 8 | todo |
0x022EF6 |
sub_022ef6 |
asm | 14 | todo |
0x022F04 |
sub_022f04 |
asm | 12 | todo |
0x022F10 |
sub_022f10 |
asm | 12 | todo |
0x022F1C |
os_close_window |
asm | 12 | drop |
0x022F28 |
os_close_workbench |
asm | 8 | drop |
0x022F30 |
os_console_raw_key_convert |
asm | 28 | replace |
Every routine of the program in the order of its address, its span in bytes, from the inventory at the book's build.