Skip to content

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.