{"schema":1,"platform":"c64","game":"clowns","title":"Clowns","build":"8 KB Ultimax cartridge (CRT name \"Clowns\", hardware type 0, EXROM 1, GAME 0, ROM at $E000-$FFFF); ROM SHA-1 ffebfc19263dc50d3a808135dbe88567617af6b8","symbols_sha256":"c0c873b2a6522d7a2804bb88b9efe620d87ebe3ef081038cdbd084aff73760f5","snapshot":{"file":"work/Clowns.crt","sha256":"aaee954a03521593b5a1ea48901bf1bfb452ee010414d2539cedd45a05920fa9"},"index":[{"a":57344,"n":"start","k":"routine","len":12,"c":true},{"a":57356,"n":"proc_enter","k":"routine","len":20,"c":true},{"a":57375,"n":"r_E01F","k":"branch","len":1,"c":false},{"a":57376,"n":"proc_leave","k":"routine","len":26,"c":true},{"a":57388,"n":"b_E02C","k":"branch","len":1,"c":false},{"a":57402,"n":"random","k":"routine","len":41,"c":true},{"a":57416,"n":"b_E048","k":"branch","len":1,"c":false},{"a":57443,"n":"mul8","k":"routine","len":33,"c":true},{"a":57457,"n":"b_E071","k":"branch","len":1,"c":false},{"a":57461,"n":"b_E075","k":"branch","len":1,"c":false},{"a":57473,"n":"b_E081","k":"branch","len":1,"c":false},{"a":57476,"n":"div8","k":"routine","len":2,"c":true},{"a":57478,"n":"div8_nonzero","k":"routine","len":39,"c":true},{"a":57486,"n":"b_E08E","k":"branch","len":1,"c":false},{"a":57490,"n":"b_E092","k":"branch","len":1,"c":false},{"a":57498,"n":"b_E09A","k":"branch","len":1,"c":false},{"a":57506,"n":"b_E0A2","k":"branch","len":1,"c":false},{"a":57517,"n":"div_by_zero","k":"routine","len":5,"c":true},{"a":57522,"n":"str_err_div0","k":"table","len":10,"c":true},{"a":57532,"n":"div0_halt","k":"routine","len":3,"c":true},{"a":57535,"n":"print_byte","k":"routine","len":54,"c":true},{"a":57548,"n":"b_E0CC","k":"branch","len":1,"c":false},{"a":57576,"n":"b_E0E8","k":"branch","len":1,"c":false},{"a":57589,"n":"print_inline","k":"routine","len":19,"c":true},{"a":57608,"n":"jump_ptr04","k":"routine","len":3,"c":true},{"a":57611,"n":"print_ptr_string","k":"routine","len":13,"c":true},{"a":57613,"n":"b_E10D","k":"branch","len":1,"c":false},{"a":57623,"n":"r_E117","k":"branch","len":1,"c":false},{"a":57624,"n":"print_newline","k":"routine","len":5,"c":true},{"a":57629,"n":"print_newlines","k":"routine","len":10,"c":true},{"a":57632,"n":"b_E120","k":"branch","len":1,"c":false},{"a":57639,"n":"print_spaces","k":"routine","len":12,"c":true},{"a":57644,"n":"b_E12C","k":"branch","len":1,"c":false},{"a":57651,"n":"print_char","k":"routine","len":20,"c":true},{"a":57671,"n":"device_lookup","k":"routine","len":23,"c":true},{"a":57672,"n":"b_E148","k":"branch","len":1,"c":false},{"a":57679,"n":"b_E14F","k":"branch","len":1,"c":false},{"a":57694,"n":"call_machine_code","k":"routine","len":37,"c":true},{"a":57731,"n":"device0_chrout","k":"routine","len":3,"c":true},{"a":57734,"n":"device_table","k":"variable","len":1,"c":true},{"a":57735,"n":"f_E187","k":"table","len":19,"c":true},{"a":57754,"n":"args16","k":"routine","len":29,"c":true},{"a":57783,"n":"mul16","k":"routine","len":38,"c":true},{"a":57790,"n":"b_E1BE","k":"branch","len":1,"c":false},{"a":57794,"n":"b_E1C2","k":"branch","len":1,"c":false},{"a":57813,"n":"b_E1D5","k":"branch","len":1,"c":false},{"a":57821,"n":"div16","k":"routine","len":78,"c":true},{"a":57839,"n":"b_E1EF","k":"branch","len":1,"c":false},{"a":57846,"n":"b_E1F6","k":"branch","len":1,"c":false},{"a":57869,"n":"b_E20D","k":"branch","len":1,"c":false},{"a":57886,"n":"b_E21E","k":"branch","len":1,"c":false},{"a":57893,"n":"b_E225","k":"branch","len":1,"c":false},{"a":57899,"n":"div16_remainder","k":"routine","len":3,"c":true},{"a":57902,"n":"put_char","k":"routine","len":40,"c":true},{"a":57913,"n":"b_E239","k":"branch","len":1,"c":false},{"a":57942,"n":"cursor_advance","k":"routine","len":12,"c":true},{"a":57954,"n":"cursor_down","k":"routine","len":12,"c":true},{"a":57966,"n":"put_char_done","k":"routine","len":6,"c":true},{"a":57972,"n":"cursor_dispatch","k":"routine","len":12,"c":true},{"a":57984,"n":"cursor_codes","k":"table","len":7,"c":true},{"a":57991,"n":"cursor_handlers","k":"variable","len":1,"c":true},{"a":57992,"n":"f_E288","k":"table","len":13,"c":true},{"a":58005,"n":"cursor_left","k":"routine","len":8,"c":true},{"a":58013,"n":"cursor_up","k":"routine","len":10,"c":true},{"a":58023,"n":"cursor_home","k":"routine","len":8,"c":true},{"a":58031,"n":"cursor_return","k":"routine","len":6,"c":true},{"a":58037,"n":"clear_screen","k":"routine","len":38,"c":true},{"a":58041,"n":"b_E2B9","k":"branch","len":1,"c":false},{"a":58058,"n":"b_E2CA","k":"branch","len":1,"c":false},{"a":58075,"n":"row_address","k":"routine","len":17,"c":true},{"a":58092,"n":"row_table","k":"variable","len":1,"c":true},{"a":58093,"n":"f_E2ED","k":"table","len":49,"c":true},{"a":58142,"n":"petscii_to_screen","k":"routine","len":15,"c":true},{"a":58148,"n":"b_E324","k":"branch","len":1,"c":false},{"a":58151,"n":"b_E327","k":"branch","len":1,"c":false},{"a":58157,"n":"set_cursor","k":"routine","len":17,"c":true},{"a":58174,"n":"set_colour","k":"routine","len":12,"c":true},{"a":58186,"n":"main","k":"routine","len":50,"c":true},{"a":58191,"n":"j_E34F","k":"branch","len":1,"c":false},{"a":58236,"n":"main_jump_loop","k":"routine","len":51,"c":true},{"a":58260,"n":"b_E394","k":"branch","len":1,"c":false},{"a":58262,"n":"b_E396","k":"branch","len":1,"c":false},{"a":58287,"n":"str_game_over","k":"table","len":10,"c":true},{"a":58297,"n":"after_game_over","k":"routine","len":11,"c":true},{"a":58308,"n":"main_high_score","k":"routine","len":128,"c":true},{"a":58316,"n":"j_E3CC","k":"branch","len":1,"c":false},{"a":58332,"n":"b_E3DC","k":"branch","len":1,"c":false},{"a":58334,"n":"b_E3DE","k":"branch","len":1,"c":false},{"a":58352,"n":"b_E3F0","k":"branch","len":1,"c":false},{"a":58354,"n":"b_E3F2","k":"branch","len":1,"c":false},{"a":58377,"n":"b_E409","k":"branch","len":1,"c":false},{"a":58379,"n":"b_E40B","k":"branch","len":1,"c":false},{"a":58389,"n":"b_E415","k":"branch","len":1,"c":false},{"a":58409,"n":"j_E429","k":"branch","len":1,"c":false},{"a":58425,"n":"b_E439","k":"branch","len":1,"c":false},{"a":58433,"n":"b_E441","k":"branch","len":1,"c":false},{"a":58436,"n":"init_tables","k":"routine","len":134,"c":true},{"a":58570,"n":"new_game","k":"routine","len":144,"c":true},{"a":58601,"n":"j_E4E9","k":"branch","len":1,"c":false},{"a":58645,"n":"b_E515","k":"branch","len":1,"c":false},{"a":58669,"n":"b_E52D","k":"branch","len":1,"c":false},{"a":58711,"n":"j_E557","k":"branch","len":1,"c":false},{"a":58714,"n":"new_jump","k":"routine","len":226,"c":true},{"a":58796,"n":"b_E5AC","k":"branch","len":1,"c":false},{"a":58801,"n":"j_E5B1","k":"branch","len":1,"c":false},{"a":58859,"n":"b_E5EB","k":"branch","len":1,"c":false},{"a":58870,"n":"j_E5F6","k":"branch","len":1,"c":false},{"a":58940,"n":"move_clown","k":"routine","len":134,"c":true},{"a":58981,"n":"b_E665","k":"branch","len":1,"c":false},{"a":58983,"n":"b_E667","k":"branch","len":1,"c":false},{"a":59028,"n":"b_E694","k":"branch","len":1,"c":false},{"a":59030,"n":"b_E696","k":"branch","len":1,"c":false},{"a":59064,"n":"b_E6B8","k":"branch","len":1,"c":false},{"a":59066,"n":"b_E6BA","k":"branch","len":1,"c":false},{"a":59074,"n":"launch","k":"routine","len":470,"c":true},{"a":59100,"n":"b_E6DC","k":"branch","len":1,"c":false},{"a":59120,"n":"j_E6F0","k":"branch","len":1,"c":false},{"a":59137,"n":"j_E701","k":"branch","len":1,"c":false},{"a":59148,"n":"b_E70C","k":"branch","len":1,"c":false},{"a":59150,"n":"b_E70E","k":"branch","len":1,"c":false},{"a":59162,"n":"b_E71A","k":"branch","len":1,"c":false},{"a":59164,"n":"b_E71C","k":"branch","len":1,"c":false},{"a":59174,"n":"b_E726","k":"branch","len":1,"c":false},{"a":59182,"n":"b_E72E","k":"branch","len":1,"c":false},{"a":59196,"n":"j_E73C","k":"branch","len":1,"c":false},{"a":59216,"n":"j_E750","k":"branch","len":1,"c":false},{"a":59267,"n":"b_E783","k":"branch","len":1,"c":false},{"a":59269,"n":"b_E785","k":"branch","len":1,"c":false},{"a":59356,"n":"b_E7DC","k":"branch","len":1,"c":false},{"a":59368,"n":"j_E7E8","k":"branch","len":1,"c":false},{"a":59417,"n":"b_E819","k":"branch","len":1,"c":false},{"a":59418,"n":"j_E81A","k":"branch","len":1,"c":false},{"a":59429,"n":"b_E825","k":"branch","len":1,"c":false},{"a":59431,"n":"b_E827","k":"branch","len":1,"c":false},{"a":59436,"n":"b_E82C","k":"branch","len":1,"c":false},{"a":59441,"n":"j_E831","k":"branch","len":1,"c":false},{"a":59472,"n":"b_E850","k":"branch","len":1,"c":false},{"a":59477,"n":"j_E855","k":"branch","len":1,"c":false},{"a":59544,"n":"check_fallen","k":"routine","len":17,"c":true},{"a":59556,"n":"b_E8A4","k":"branch","len":1,"c":false},{"a":59558,"n":"b_E8A6","k":"branch","len":1,"c":false},{"a":59561,"n":"draw_and_collide","k":"routine","len":64,"c":true},{"a":59571,"n":"b_E8B3","k":"branch","len":1,"c":false},{"a":59593,"n":"b_E8C9","k":"branch","len":1,"c":false},{"a":59595,"n":"b_E8CB","k":"branch","len":1,"c":false},{"a":59625,"n":"collide","k":"routine","len":207,"c":true},{"a":59653,"n":"b_E905","k":"branch","len":1,"c":false},{"a":59655,"n":"b_E907","k":"branch","len":1,"c":false},{"a":59676,"n":"b_E91C","k":"branch","len":1,"c":false},{"a":59684,"n":"j_E924","k":"branch","len":1,"c":false},{"a":59696,"n":"b_E930","k":"branch","len":1,"c":false},{"a":59698,"n":"b_E932","k":"branch","len":1,"c":false},{"a":59711,"n":"b_E93F","k":"branch","len":1,"c":false},{"a":59719,"n":"j_E947","k":"branch","len":1,"c":false},{"a":59731,"n":"b_E953","k":"branch","len":1,"c":false},{"a":59733,"n":"b_E955","k":"branch","len":1,"c":false},{"a":59754,"n":"b_E96A","k":"branch","len":1,"c":false},{"a":59762,"n":"j_E972","k":"branch","len":1,"c":false},{"a":59774,"n":"b_E97E","k":"branch","len":1,"c":false},{"a":59776,"n":"b_E980","k":"branch","len":1,"c":false},{"a":59789,"n":"b_E98D","k":"branch","len":1,"c":false},{"a":59808,"n":"j_E9A0","k":"branch","len":1,"c":false},{"a":59820,"n":"b_E9AC","k":"branch","len":1,"c":false},{"a":59822,"n":"b_E9AE","k":"branch","len":1,"c":false},{"a":59832,"n":"pop_balloons","k":"routine","len":329,"c":true},{"a":59854,"n":"b_E9CE","k":"branch","len":1,"c":false},{"a":59883,"n":"b_E9EB","k":"branch","len":1,"c":false},{"a":59885,"n":"b_E9ED","k":"branch","len":1,"c":false},{"a":59890,"n":"b_E9F2","k":"branch","len":1,"c":false},{"a":59927,"n":"j_EA17","k":"branch","len":1,"c":false},{"a":59937,"n":"b_EA21","k":"branch","len":1,"c":false},{"a":59947,"n":"j_EA2B","k":"branch","len":1,"c":false},{"a":59992,"n":"j_EA58","k":"branch","len":1,"c":false},{"a":60015,"n":"b_EA6F","k":"branch","len":1,"c":false},{"a":60026,"n":"b_EA7A","k":"branch","len":1,"c":false},{"a":60028,"n":"b_EA7C","k":"branch","len":1,"c":false},{"a":60046,"n":"b_EA8E","k":"branch","len":1,"c":false},{"a":60070,"n":"j_EAA6","k":"branch","len":1,"c":false},{"a":60097,"n":"b_EAC1","k":"branch","len":1,"c":false},{"a":60102,"n":"j_EAC6","k":"branch","len":1,"c":false},{"a":60118,"n":"j_EAD6","k":"branch","len":1,"c":false},{"a":60134,"n":"b_EAE6","k":"branch","len":1,"c":false},{"a":60158,"n":"j_EAFE","k":"branch","len":1,"c":false},{"a":60161,"n":"call_ml","k":"routine","len":76,"c":true},{"a":60237,"n":"fly","k":"routine","len":198,"c":true},{"a":60240,"n":"b_EB50","k":"branch","len":1,"c":false},{"a":60357,"n":"b_EBC5","k":"branch","len":1,"c":false},{"a":60394,"n":"b_EBEA","k":"branch","len":1,"c":false},{"a":60405,"n":"b_EBF5","k":"branch","len":1,"c":false},{"a":60407,"n":"b_EBF7","k":"branch","len":1,"c":false},{"a":60412,"n":"b_EBFC","k":"branch","len":1,"c":false},{"a":60435,"n":"str_game_over_p1","k":"table","len":19,"c":true},{"a":60454,"n":"after_game_over_p1","k":"routine","len":22,"c":true},{"a":60465,"n":"j_EC31","k":"branch","len":1,"c":false},{"a":60473,"n":"j_EC39","k":"branch","len":1,"c":false},{"a":60476,"n":"update_seesaw","k":"routine","len":43,"c":true},{"a":60519,"n":"show_score","k":"routine","len":70,"c":true},{"a":60530,"n":"b_EC72","k":"branch","len":1,"c":false},{"a":60586,"n":"j_ECAA","k":"branch","len":1,"c":false},{"a":60589,"n":"title_screen","k":"routine","len":50,"c":true},{"a":60639,"n":"str_push_f1","k":"table","len":19,"c":true},{"a":60658,"n":"after_push_f1","k":"routine","len":49,"c":true},{"a":60707,"n":"str_copyright","k":"table","len":39,"c":true},{"a":60746,"n":"j_ED4A","k":"routine","len":4,"c":true},{"a":60750,"n":"attract_loop","k":"routine","len":322,"c":true},{"a":60761,"n":"b_ED59","k":"branch","len":1,"c":false},{"a":60763,"n":"b_ED5B","k":"branch","len":1,"c":false},{"a":60768,"n":"b_ED60","k":"branch","len":1,"c":false},{"a":60773,"n":"j_ED65","k":"branch","len":1,"c":false},{"a":60841,"n":"b_EDA9","k":"branch","len":1,"c":false},{"a":60843,"n":"b_EDAB","k":"branch","len":1,"c":false},{"a":60853,"n":"b_EDB5","k":"branch","len":1,"c":false},{"a":60856,"n":"j_EDB8","k":"branch","len":1,"c":false},{"a":60868,"n":"b_EDC4","k":"branch","len":1,"c":false},{"a":60870,"n":"b_EDC6","k":"branch","len":1,"c":false},{"a":60880,"n":"b_EDD0","k":"branch","len":1,"c":false},{"a":60897,"n":"b_EDE1","k":"branch","len":1,"c":false},{"a":60902,"n":"j_EDE6","k":"branch","len":1,"c":false},{"a":60905,"n":"j_EDE9","k":"branch","len":1,"c":false},{"a":60914,"n":"j_EDF2","k":"branch","len":1,"c":false},{"a":60994,"n":"b_EE42","k":"branch","len":1,"c":false},{"a":60996,"n":"b_EE44","k":"branch","len":1,"c":false},{"a":61001,"n":"b_EE49","k":"branch","len":1,"c":false},{"a":61004,"n":"j_EE4C","k":"branch","len":1,"c":false},{"a":61023,"n":"b_EE5F","k":"branch","len":1,"c":false},{"a":61069,"n":"b_EE8D","k":"branch","len":1,"c":false},{"a":61072,"n":"delay","k":"routine","len":44,"c":true},{"a":61085,"n":"j_EE9D","k":"branch","len":1,"c":false},{"a":61112,"n":"b_EEB8","k":"branch","len":1,"c":false},{"a":61116,"n":"player_menu","k":"routine","len":37,"c":true},{"a":61153,"n":"str_push","k":"table","len":10,"c":true},{"a":61163,"n":"after_push","k":"routine","len":6,"c":true},{"a":61169,"n":"str_player_menu","k":"table","len":39,"c":true},{"a":61208,"n":"after_menu_text","k":"routine","len":38,"c":true},{"a":61238,"n":"b_EF36","k":"branch","len":1,"c":false},{"a":61240,"n":"b_EF38","k":"branch","len":1,"c":false},{"a":61246,"n":"peek","k":"routine","len":23,"c":true},{"a":61269,"n":"add_score","k":"routine","len":54,"c":true},{"a":61323,"n":"bounce_left_wall","k":"routine","len":21,"c":true},{"a":61336,"n":"b_EF98","k":"branch","len":1,"c":false},{"a":61341,"n":"j_EF9D","k":"branch","len":1,"c":false},{"a":61344,"n":"turn_left","k":"routine","len":29,"c":true},{"a":61358,"n":"b_EFAE","k":"branch","len":1,"c":false},{"a":61360,"n":"b_EFB0","k":"branch","len":1,"c":false},{"a":61365,"n":"b_EFB5","k":"branch","len":1,"c":false},{"a":61370,"n":"j_EFBA","k":"branch","len":1,"c":false},{"a":61373,"n":"negate_dx","k":"routine","len":23,"c":true},{"a":61396,"n":"bounce_ceiling","k":"routine","len":21,"c":true},{"a":61409,"n":"b_EFE1","k":"branch","len":1,"c":false},{"a":61414,"n":"j_EFE6","k":"branch","len":1,"c":false},{"a":61417,"n":"negate_dy","k":"routine","len":23,"c":true},{"a":61440,"n":"ml_table","k":"table","len":50,"c":true},{"a":61490,"n":"draw_clown_frame","k":"routine","len":2,"c":true},{"a":61492,"n":"draw_clown","k":"routine","len":271,"c":true},{"a":61512,"n":"b_F048","k":"branch","len":1,"c":false},{"a":61546,"n":"b_F06A","k":"branch","len":1,"c":false},{"a":61557,"n":"b_F075","k":"branch","len":1,"c":false},{"a":61560,"n":"b_F078","k":"branch","len":1,"c":false},{"a":61570,"n":"b_F082","k":"branch","len":1,"c":false},{"a":61580,"n":"b_F08C","k":"branch","len":1,"c":false},{"a":61679,"n":"b_F0EF","k":"branch","len":1,"c":false},{"a":61691,"n":"b_F0FB","k":"branch","len":1,"c":false},{"a":61712,"n":"b_F110","k":"branch","len":1,"c":false},{"a":61721,"n":"b_F119","k":"branch","len":1,"c":false},{"a":61763,"n":"probe_cells","k":"routine","len":70,"c":true},{"a":61767,"n":"b_F147","k":"branch","len":1,"c":false},{"a":61808,"n":"b_F170","k":"branch","len":1,"c":false},{"a":61822,"n":"b_F17E","k":"branch","len":1,"c":false},{"a":61828,"n":"b_F184","k":"branch","len":1,"c":false},{"a":61833,"n":"read_paddle_seesaw","k":"routine","len":30,"c":true},{"a":61846,"n":"b_F196","k":"branch","len":1,"c":false},{"a":61863,"n":"draw_seesaw","k":"routine","len":64,"c":true},{"a":61871,"n":"b_F1AF","k":"branch","len":1,"c":false},{"a":61887,"n":"b_F1BF","k":"branch","len":1,"c":false},{"a":61900,"n":"b_F1CC","k":"branch","len":1,"c":false},{"a":61927,"n":"scroll_balloons","k":"routine","len":150,"c":true},{"a":61948,"n":"b_F1FC","k":"branch","len":1,"c":false},{"a":61952,"n":"b_F200","k":"branch","len":1,"c":false},{"a":61989,"n":"b_F225","k":"branch","len":1,"c":false},{"a":62011,"n":"b_F23B","k":"branch","len":1,"c":false},{"a":62013,"n":"b_F23D","k":"branch","len":1,"c":false},{"a":62030,"n":"b_F24E","k":"branch","len":1,"c":false},{"a":62041,"n":"b_F259","k":"branch","len":1,"c":false},{"a":62043,"n":"b_F25B","k":"branch","len":1,"c":false},{"a":62052,"n":"b_F264","k":"branch","len":1,"c":false},{"a":62059,"n":"b_F26B","k":"branch","len":1,"c":false},{"a":62077,"n":"move_clown_sprite","k":"routine","len":168,"c":true},{"a":62091,"n":"b_F28B","k":"branch","len":1,"c":false},{"a":62100,"n":"b_F294","k":"branch","len":1,"c":false},{"a":62106,"n":"j_F29A","k":"branch","len":1,"c":false},{"a":62112,"n":"b_F2A0","k":"branch","len":1,"c":false},{"a":62131,"n":"b_F2B3","k":"branch","len":1,"c":false},{"a":62147,"n":"b_F2C3","k":"branch","len":1,"c":false},{"a":62179,"n":"b_F2E3","k":"branch","len":1,"c":false},{"a":62209,"n":"b_F301","k":"branch","len":1,"c":false},{"a":62215,"n":"b_F307","k":"branch","len":1,"c":false},{"a":62224,"n":"b_F310","k":"branch","len":1,"c":false},{"a":62241,"n":"b_F321","k":"branch","len":1,"c":false},{"a":62245,"n":"refill_row","k":"routine","len":22,"c":true},{"a":62256,"n":"b_F330","k":"branch","len":1,"c":false},{"a":62267,"n":"sound_bounce","k":"routine","len":19,"c":true},{"a":62285,"n":"r_F34D","k":"branch","len":1,"c":false},{"a":62286,"n":"sound_pop","k":"routine","len":10,"c":true},{"a":62295,"n":"r_F357","k":"branch","len":1,"c":false},{"a":62296,"n":"sound_fall","k":"routine","len":19,"c":true},{"a":62314,"n":"r_F36A","k":"branch","len":1,"c":false},{"a":62315,"n":"sound_tick","k":"routine","len":63,"c":true},{"a":62343,"n":"b_F387","k":"branch","len":1,"c":false},{"a":62375,"n":"b_F3A7","k":"branch","len":1,"c":false},{"a":62377,"n":"r_F3A9","k":"branch","len":1,"c":false},{"a":62378,"n":"play_tune","k":"routine","len":52,"c":true},{"a":62383,"n":"b_F3AF","k":"branch","len":1,"c":false},{"a":62406,"n":"b_F3C6","k":"branch","len":1,"c":false},{"a":62418,"n":"b_F3D2","k":"branch","len":1,"c":false},{"a":62429,"n":"r_F3DD","k":"branch","len":1,"c":false},{"a":62430,"n":"show_bonus","k":"routine","len":53,"c":true},{"a":62434,"n":"b_F3E2","k":"branch","len":1,"c":false},{"a":62442,"n":"b_F3EA","k":"branch","len":1,"c":false},{"a":62455,"n":"b_F3F7","k":"branch","len":1,"c":false},{"a":62473,"n":"b_F409","k":"branch","len":1,"c":false},{"a":62483,"n":"show_bonus_jump","k":"routine","len":16,"c":true},{"a":62485,"n":"b_F415","k":"branch","len":1,"c":false},{"a":62499,"n":"fall_animation","k":"routine","len":76,"c":true},{"a":62511,"n":"b_F42F","k":"branch","len":1,"c":false},{"a":62548,"n":"b_F454","k":"branch","len":1,"c":false},{"a":62568,"n":"b_F468","k":"branch","len":1,"c":false},{"a":62574,"n":"r_F46E","k":"branch","len":1,"c":false},{"a":62575,"n":"sound_on","k":"routine","len":6,"c":true},{"a":62581,"n":"sound_off","k":"routine","len":10,"c":true},{"a":62585,"n":"b_F479","k":"branch","len":1,"c":false},{"a":62591,"n":"blink_game_over","k":"routine","len":39,"c":true},{"a":62598,"n":"b_F486","k":"branch","len":1,"c":false},{"a":62613,"n":"b_F495","k":"branch","len":1,"c":false},{"a":62620,"n":"b_F49C","k":"branch","len":1,"c":false},{"a":62630,"n":"read_keys","k":"routine","len":53,"c":true},{"a":62661,"n":"b_F4C5","k":"branch","len":1,"c":false},{"a":62665,"n":"b_F4C9","k":"branch","len":1,"c":false},{"a":62670,"n":"b_F4CE","k":"branch","len":1,"c":false},{"a":62673,"n":"b_F4D1","k":"branch","len":1,"c":false},{"a":62675,"n":"b_F4D3","k":"branch","len":1,"c":false},{"a":62683,"n":"wait_key","k":"routine","len":19,"c":true},{"a":62692,"n":"b_F4E4","k":"branch","len":1,"c":false},{"a":62702,"n":"draw_playfield_twice","k":"routine","len":8,"c":true},{"a":62710,"n":"draw_playfield","k":"routine","len":152,"c":true},{"a":62715,"n":"b_F4FB","k":"branch","len":1,"c":false},{"a":62724,"n":"b_F504","k":"branch","len":1,"c":false},{"a":62731,"n":"b_F50B","k":"branch","len":1,"c":false},{"a":62750,"n":"b_F51E","k":"branch","len":1,"c":false},{"a":62758,"n":"b_F526","k":"branch","len":1,"c":false},{"a":62760,"n":"b_F528","k":"branch","len":1,"c":false},{"a":62782,"n":"b_F53E","k":"branch","len":1,"c":false},{"a":62803,"n":"b_F553","k":"branch","len":1,"c":false},{"a":62815,"n":"b_F55F","k":"branch","len":1,"c":false},{"a":62826,"n":"b_F56A","k":"branch","len":1,"c":false},{"a":62828,"n":"b_F56C","k":"branch","len":1,"c":false},{"a":62848,"n":"b_F580","k":"branch","len":1,"c":false},{"a":62862,"n":"platform_run","k":"routine","len":166,"c":true},{"a":62876,"n":"b_F59C","k":"branch","len":1,"c":false},{"a":62890,"n":"b_F5AA","k":"branch","len":1,"c":false},{"a":62899,"n":"b_F5B3","k":"branch","len":1,"c":false},{"a":62911,"n":"b_F5BF","k":"branch","len":1,"c":false},{"a":62920,"n":"b_F5C8","k":"branch","len":1,"c":false},{"a":62924,"n":"b_F5CC","k":"branch","len":1,"c":false},{"a":62940,"n":"b_F5DC","k":"branch","len":1,"c":false},{"a":62946,"n":"b_F5E2","k":"branch","len":1,"c":false},{"a":62955,"n":"b_F5EB","k":"branch","len":1,"c":false},{"a":62959,"n":"b_F5EF","k":"branch","len":1,"c":false},{"a":62974,"n":"b_F5FE","k":"branch","len":1,"c":false},{"a":62977,"n":"j_F601","k":"branch","len":1,"c":false},{"a":63004,"n":"b_F61C","k":"branch","len":1,"c":false},{"a":63019,"n":"b_F62B","k":"branch","len":1,"c":false},{"a":63028,"n":"cell_of_sprite","k":"routine","len":22,"c":true},{"a":63035,"n":"b_F63B","k":"branch","len":1,"c":false},{"a":63050,"n":"screen_address","k":"routine","len":30,"c":true},{"a":63080,"n":"show_status_number","k":"routine","len":32,"c":true},{"a":63093,"n":"b_F675","k":"branch","len":1,"c":false},{"a":63112,"n":"show_high_score","k":"routine","len":15,"c":true},{"a":63115,"n":"b_F68B","k":"branch","len":1,"c":false},{"a":63127,"n":"print_number","k":"routine","len":4,"c":true},{"a":63131,"n":"print_digits","k":"routine","len":78,"c":true},{"a":63137,"n":"j_F6A1","k":"branch","len":1,"c":false},{"a":63143,"n":"b_F6A7","k":"branch","len":1,"c":false},{"a":63160,"n":"b_F6B8","k":"branch","len":1,"c":false},{"a":63191,"n":"b_F6D7","k":"branch","len":1,"c":false},{"a":63198,"n":"b_F6DE","k":"branch","len":1,"c":false},{"a":63208,"n":"r_F6E8","k":"branch","len":1,"c":false},{"a":63209,"n":"status_put","k":"routine","len":40,"c":true},{"a":63225,"n":"b_F6F9","k":"branch","len":1,"c":false},{"a":63238,"n":"b_F706","k":"branch","len":1,"c":false},{"a":63241,"n":"j_F709","k":"branch","len":1,"c":false},{"a":63244,"n":"j_F70C","k":"branch","len":1,"c":false},{"a":63249,"n":"wait_tick","k":"routine","len":10,"c":true},{"a":63259,"n":"swap_balloons","k":"routine","len":24,"c":true},{"a":63261,"n":"b_F71D","k":"branch","len":1,"c":false},{"a":63276,"n":"b_F72C","k":"branch","len":1,"c":false},{"a":63283,"n":"vic_init","k":"table","len":25,"c":true},{"a":63308,"n":"sid_init","k":"table","len":25,"c":true},{"a":63333,"n":"irq_nmi","k":"routine","len":1,"c":true},{"a":63334,"n":"cold_start","k":"routine","len":129,"c":true},{"a":63341,"n":"b_F76D","k":"branch","len":1,"c":false},{"a":63366,"n":"b_F786","k":"branch","len":1,"c":false},{"a":63426,"n":"b_F7C2","k":"branch","len":1,"c":false},{"a":63431,"n":"b_F7C7","k":"branch","len":1,"c":false},{"a":63463,"n":"smooth_paddle","k":"routine","len":25,"c":true},{"a":63469,"n":"b_F7ED","k":"branch","len":1,"c":false},{"a":63476,"n":"b_F7F4","k":"branch","len":1,"c":false},{"a":63488,"n":"font","k":"table","len":256,"c":true},{"a":63744,"n":"font_symbols","k":"table","len":256,"c":true},{"a":64000,"n":"font_status","k":"table","len":168,"c":true},{"a":64168,"n":"font_walls","k":"table","len":88,"c":true},{"a":64256,"n":"balloon_glyphs","k":"table","len":192,"c":true},{"a":64448,"n":"seesaw_sprites","k":"table","len":128,"c":true},{"a":64576,"n":"seesaw_sprites_2","k":"table","len":127,"c":true},{"a":64703,"n":"clown_shapes","k":"table","len":352,"c":true},{"a":65055,"n":"screen_row_lo","k":"table","len":25,"c":true},{"a":65080,"n":"screen_row_hi","k":"table","len":25,"c":true},{"a":65105,"n":"probe_offsets","k":"table","len":9,"c":true},{"a":65114,"n":"balloon_row_base","k":"table","len":3,"c":true},{"a":65117,"n":"balloon_row_points","k":"table","len":3,"c":true},{"a":65120,"n":"probe_rows","k":"table","len":9,"c":true},{"a":65129,"n":"column_balloon","k":"table","len":36,"c":true},{"a":65165,"n":"playfield_layout","k":"variable","len":1,"c":true},{"a":65166,"n":"f_FE8E","k":"variable","len":1,"c":true},{"a":65167,"n":"f_FE8F","k":"variable","len":1,"c":true},{"a":65168,"n":"f_FE90","k":"variable","len":1,"c":true},{"a":65169,"n":"f_FE91","k":"table","len":47,"c":true},{"a":65216,"n":"status_line","k":"table","len":40,"c":true},{"a":65256,"n":"bonus_play_text","k":"table","len":6,"c":true},{"a":65262,"n":"player_text","k":"table","len":6,"c":true},{"a":65268,"n":"bonus_jump_text","k":"table","len":10,"c":true},{"a":65278,"n":"bonus_digits","k":"table","len":6,"c":true},{"a":65284,"n":"high_score_text","k":"table","len":10,"c":true},{"a":65294,"n":"game_over_text","k":"table","len":9,"c":true},{"a":65303,"n":"tune_notes","k":"variable","len":1,"c":true},{"a":65304,"n":"tune_notes_hi","k":"table","len":17,"c":true},{"a":65321,"n":"tune1_notes","k":"table","len":50,"c":true},{"a":65371,"n":"tune2_notes","k":"table","len":24,"c":true},{"a":65395,"n":"tune_lengths","k":"table","len":45,"c":true},{"a":65440,"n":"tune_start","k":"table","len":3,"c":true},{"a":65443,"n":"fall_pitches","k":"variable","len":1,"c":true},{"a":65444,"n":"f_FFA4","k":"table","len":44,"c":true},{"a":65488,"n":"pow10","k":"variable","len":2,"c":true},{"a":65490,"n":"pow10_ten","k":"table","len":3,"c":true},{"a":65493,"n":"pow10_hi","k":"table","len":37,"c":true},{"a":65530,"n":"cpu_vectors","k":"table","len":6,"c":true}],"records":[{"a":0,"t":"gap","n":57344,"x":[63400,63426]},{"a":2,"t":"note","l":"frame_ptr","c":"The software stack's frame pointer, low and high ($02/$03): the compiled program's procedures keep their arguments and locals at ($02),Y. Starts at $0200.","note":"outside the tracked image","x":[57348,57356,57358,57363,57367,57369,57378,57382,57390,57394,57396,57699,57704,57709,57714,57718,57763,57768,57773,57778,58162,58167,58179,58210,58268,58273,58301,58577,58583,58654,58673,58678,58683,58688,58699,58704,58863,58874,58905,58911,58917,59494,59534,59575,59606,59612,59618,59629,59836,60000,60050,60074,60080,60111,60139,60148,60169,60184,60191,60203,60207,60211,60215,60219,60223,60227,60249,60260,60276,60292,60297,60308,60314,60320,60338,60416,60421,60458,60483,60489,60495,60506,60534,60545,60556,60579,60604,60620,60625,60662,60667,60678,60684,60690,60918,60924,60930,60946,60957,60968,60979,61008,61027,61032,61037,61055,61082,61089,61123,61134,61139,61212,61223,61257,61286]},{"a":4,"t":"note","l":"ptr04","c":"A pointer the runtime uses for jumps and strings: the resume address of print_inline, the target of call_machine_code.","note":"outside the tracked image","x":[57590,57600,57602,57608,57613,57706,57780,57801,57852,57864,60175,60180,60194,60199,61259,61264]},{"a":6,"t":"note","l":"device_ptr","c":"The output device handler's address, for print_char's indirect jump.","note":"outside the tracked image","x":[57685,57691]},{"a":8,"t":"note","l":"out_device","c":"The output device number for print_char: 1, the screen, in every print the game makes.","note":"outside the tracked image","x":[57517,57658,58282,60430,60634,60699,61148]},{"a":10,"t":"note","l":"math_hi","c":"The arithmetic routines' result and work bytes: mul8 leaves the product's high byte here; div8 uses $0B (remainder), $0C (quotient), $0D and $0E. mul8 and div8 use $0A-$0E only; $0F is print_char's character, and $10 is written only by div16, which nothing calls.","note":"outside the tracked image","x":[57467,57473,57761,57792,57809,57811,57848,57854,57860,57876,57886,59320]},{"a":12,"t":"note","l":"math_tmp","c":"Work byte of mul8 and div8, and the compiled code's scratch for comparisons (the second operand of AND and OR of two truth values).","note":"outside the tracked image","x":[57427,57431,57443,57455,57462,57470,57488,57506,57514,57711,57721,57770,57794,57831,57840,57869,57888,58354,58357,58379,58382,58895,58898,59164,59167,59208,59211,59230,59233,59272,59275,59312,59315,59332,59335,59595,59598,59661,59664,59666,59669,59701,59704,59739,59742,59744,59747,59779,59782,59822,59825,60036,60039,60332,60335,60572,60575,60790,60793,60843,60846,60870,60873,61049,61052]},{"a":17,"t":"note","l":"seed","c":"The random number generator's 16-bit seed (low $11, high $12), stepped by random as seed x 125 + 1. Zero at power-on.","note":"outside the tracked image","x":[57403,57416]},{"a":19,"t":"note","l":"text_colour","c":"The colour put_char writes with each character (set_colour).","note":"outside the tracked image","x":[57938,58181]},{"a":20,"t":"note","l":"put_ptr","c":"put_char's screen address for the cursor's row ($14/$15), and the colour memory address after adding $D4 to the high byte.","note":"outside the tracked image","x":[57929,57940,58082]},{"a":22,"t":"note","l":"put_charcode","c":"The character put_char is writing.","note":"outside the tracked image","x":[57903,57911,57927,58142,58148]},{"a":23,"t":"note","l":"cursor_col","c":"The text cursor's column, 0-39.","note":"outside the tracked image","x":[57942,57944,57952,58005,58011,58025,58033,58089,58164]},{"a":24,"t":"note","l":"cursor_row","c":"The text cursor's row, 0-24.","note":"outside the tracked image","x":[57954,57956,57964,58013,58019,58027,58075,58169]},{"a":32,"t":"note","l":"ml_result","c":"Results the machine-code routines leave for the compiled program, read with peek: $20 the see-saw's x, the key or button code, or the collision code; $21 the points of balloons popped; $22 how many; $23-$25 each balloon row emptied ($FF).","note":"outside the tracked image","x":[61860,62121,62139,62143,62153,62675]},{"a":38,"t":"note","l":"scr_ptr","c":"Screen address of a cell ($26/$27), and $28/$29 the same cell in colour memory (screen_address).","note":"outside the tracked image","x":[61778,62043,62785,62791,62797,63061]},{"a":42,"t":"note","l":"src_ptr","c":"Source address for glyph and shape reads ($2A/$2B).","note":"outside the tracked image","x":[61534,61546,61793,61808]},{"a":44,"t":"note","l":"ml_tmp","c":"The machine-code routines' scratch byte.","note":"outside the tracked image","x":[61733,61740,61780,61824,61846,61851,61957,62064,62082,62114,62775,62815,63080,63097,63140,63156,63170,63172,63192,63465,63474,63479,63482]},{"a":46,"t":"note","l":"spr_x","c":"The clown's x (low byte) and $2F its y, $30 x's ninth bit, as draw_clown was given them.","note":"outside the tracked image","x":[61504,61573,61721,62924,63035]},{"a":49,"t":"note","l":"cell_col","c":"A cell's column and $32 its row, for screen_address.","note":"outside the tracked image","x":[61933,62165,62765,63040,63059]},{"a":51,"t":"note","l":"ml_count","c":"Loop counter of the machine-code routines.","note":"outside the tracked image","x":[61765,61767,61822,61828,62032,62059,62129,62131,62209,62220,62227]},{"a":54,"t":"note","l":"status_col","c":"print_digits' column on the status line, and $37 = 0 when it prints through put_char instead; $35 says a digit other than 0 has been printed.","note":"outside the tracked image","x":[63095,63225,63227]},{"a":56,"t":"note","l":"row_index","c":"scroll_balloons' balloon row, 2 down to 0.","note":"outside the tracked image","x":[61937,61959,62024,62072]},{"a":57,"t":"note","l":"glyph_base","c":"The first character of the balloon glyph copy scroll_balloons is drawing.","note":"outside the tracked image","x":[62020]},{"a":58,"t":"note","l":"clown_frame","c":"The flying clown's frame (0-10) with x's ninth bit in bit 7, for draw_clown; $3B the frame alone.","note":"outside the tracked image","x":[61490,62112,62523,62544,62949,62991,62996,63001]},{"a":60,"t":"note","l":"anim_count","c":"Tick counters of the animations: $3C ticks to the next tumble frame (11), or the run's steps; $3D the tumble frame 0-3, or the ticks in a run step.","note":"outside the tracked image","x":[62091,62095,62102,62953,63011]},{"a":62,"t":"note","l":"bounce_timer","c":"Ticks left of the bounce sound ($3E, from 32) and of the fall whistle ($3F, from 48), for sound_tick.","note":"outside the tracked image","x":[62273,62320,62324,62326]},{"a":64,"t":"note","l":"fall_timer","c":"Ticks left of fall_animation, from 48.","note":"outside the tracked image","x":[62509,62534,62538]},{"a":65,"t":"note","l":"scroll_div","c":"scroll_balloons' divider: the balloons move on every third call.","note":"outside the tracked image","x":[61939,61943,61950]},{"a":66,"t":"note","l":"run_step","c":"The pixels the clown moves each step of platform_run: +1 or -1.","note":"outside the tracked image","x":[62947,63008]},{"a":67,"t":"note","l":"blink_timer","c":"Calls left until blink_game_over toggles the text, from 50.","note":"outside the tracked image","x":[62591,62595,62600]},{"a":68,"t":"note","l":"probe_hits","c":"The nine probe cells' results of draw_clown: the character code where the clown's pixels touch it, 0 where not.","note":"outside the tracked image","x":[61771,61826,62133]},{"a":77,"t":"note","l":"seesaw_tilt","c":"The see-saw's tilt for read_paddle_seesaw: bit 0 picks sprite shapes $EF/$F0 or $F1/$F2.","note":"outside the tracked image","x":[61834,61903,62966]},{"a":78,"t":"note","l":"run_flags","c":"platform_run's flags: bit 7 attract mode, bit 6 bonus jumper, bit 0 player 2.","note":"outside the tracked image","x":[62862,62868,62882,62899,62962]},{"a":79,"t":"note","l":"sound_enabled","c":"$FF when the sound effects play (in a game), 0 in the attract mode.","note":"outside the tracked image","x":[62267,62286,62296,62552,62588]},{"a":80,"t":"note","l":"balloon_fine","c":"Each balloon row's fine scroll, 0-7 ($50-$52, top to bottom), and $53-$55 its start column, 2-37.","note":"outside the tracked image","x":[61961,61972,61994,62013,62016,62853,63261,63267]},{"a":86,"t":"note","l":"balloon_flags","c":"The 36 balloons, twelve per row from the top: non-zero while the balloon is there ($56-$79).","note":"outside the tracked image","x":[62034,62188,62202,62224,62256]},{"a":122,"t":"note","l":"clown_mask","c":"The clown's shape as three columns of 24 rows ($7A-$C1), shifted to line up with the character grid, for the collision test. draw_playfield also keeps the old status line here while it clears the screen.","note":"outside the tracked image","x":[61512,61552,61580,61691,61694,61712,61810,62718,62750]},{"a":194,"t":"note","l":"other_balloons","c":"The other player's balloon state, the 42 bytes of $50-$79, kept here between turns in a two-player game (swap_balloons).","note":"outside the tracked image","x":[63263,63265]},{"a":255,"t":"note","l":"paddle_smooth","c":"The see-saw's last position before smoothing (smooth_paddle).","note":"outside the tracked image","x":[63470,63485]},{"a":512,"t":"note","l":"clown_x_hi","c":"The flying clown's x as 24 bits: $0200 the ninth bit, $0201 the pixel, $0202 the fraction. Also the base of the main program's frame: every global from here to $0243 is a local of the main program.","note":"outside the tracked image","x":[58761,58788,58907,58962,58967,58992,58995,59084,59461,59602,60322,60798,61039,63431]},{"a":515,"t":"note","l":"clown_y","c":"The flying clown's y in pixels ($0203) and its fraction ($0204). 176 is the see-saw's height; past 184 the clown is down.","note":"outside the tracked image","x":[58777,58913,59008,59014,59052,59479,59544,59581,59614]},{"a":517,"t":"note","l":"clown_dx","c":"The clown's speed across, signed 16 bits in 256ths of a pixel a tick: $0205 high, $0206 low.","note":"outside the tracked image","x":[58725,58956,58970,59245,59368,59375,59959,59964,59976,59981,61326,61347,61387,61390]},{"a":519,"t":"note","l":"clown_dy","c":"The clown's speed down, signed 16 bits: $0207 high, $0208 low. Negative is up.","note":"outside the tracked image","x":[58722,59011,59017,59043,59049,59337,59385,59391,59418,59438,59791,60099,61399,61431,61434]},{"a":521,"t":"note","l":"speed_level","c":"The speed level, 0-2: launches are halved twice at 0 and once at 1, and gravity grows with it.","note":"outside the tracked image","x":[58737,59248,59256,59348,59364,59510,59520,59890,59897,59908]},{"a":522,"t":"note","l":"pops_to_speedup","c":"Balloons still to pop before the next speed-up.","note":"outside the tracked image","x":[58826,59278,59854,59860,59867,59870,59919]},{"a":523,"t":"note","l":"moving_right","c":"$FF while the speed across is positive.","note":"outside the tracked image","x":[58983,58986,59656,59698]},{"a":524,"t":"note","l":"falling","c":"$FF while the speed down is positive.","note":"outside the tracked image","x":[59030,59066,59577,59734,59776,60087]},{"a":525,"t":"note","l":"player","c":"The player whose turn it is, 0 or 1.","note":"outside the tracked image","x":[58595,58601,58614,58633,58639,58841,58884,58900,58924,60029,60057,60345,60357,60361,60465,60470,60485,60536,60547,60558,60564,61272,61276,61295,61299]},{"a":526,"t":"note","l":"tilt","c":"The see-saw's tilt: 0 with the left end down, $FF with the right end down.","note":"outside the tracked image","x":[58647,59092,59174,59441,59464,59482,59487,60491,60777,60926]},{"a":527,"t":"note","l":"seesaw_x","c":"The see-saw's x, from the paddle (or chasing the clown in the attract mode).","note":"outside the tracked image","x":[59078,59452,60513,60750,60770,60810,60880,60886,60899,60905,60911,60920]},{"a":528,"t":"note","l":"two_players","c":"$FF in a two-player game.","note":"outside the tracked image","x":[58590,58848,60386,60594,61240]},{"a":529,"t":"note","l":"high_score","c":"The high score, 16 bits in tens of points: $0211 high, $0212 low. Zero at power-on; never saved.","note":"outside the tracked image","x":[58323,58368,58396,60316,60686]},{"a":531,"t":"note","l":"playing","c":"$FF in a game, 0 in the title's attract mode.","note":"outside the tracked image","x":[58203,58579,58661,58851,58876,60007,60522,60597]},{"a":532,"t":"note","l":"temp_a","c":"The main program's work byte (loop counters, offsets).","note":"outside the tracked image","x":[58310,58316,58335,58360,58389,58399,58411,58419,59081,59100,59106,59120,59126,59151,59182,59190,59199,59213,59222,59238,59304,59325,59843,59864,59927,59986,59992,60015,60076,60102,60120,60128,60803,60816,60821,60830,60857]},{"a":533,"t":"note","l":"hit_code","c":"The collision code move_clown_sprite returned.","note":"outside the tracked image","x":[59636,59642,59685,59720,59763,59809]},{"a":534,"t":"note","l":"clown_down","c":"$FF once the clown has missed the see-saw and fallen past y 184.","note":"outside the tracked image","x":[58734,59558,59561,60283,61015]},{"a":535,"t":"note","l":"temp_b","c":"The main program's second work byte.","note":"outside the tracked image","x":[59089,59109,59114,59129,59134,59137,59358,59403,59411,59857,59874,60795,60806,60813,60827,61077,61098,61106]},{"a":537,"t":"note","l":"gravity","c":"Gravity, added to the speed down each tick: $0219 high, $021A low, from the level tables.","note":"outside the tracked image","x":[58838,59046,59527]},{"a":539,"t":"note","l":"bounces","c":"See-saw bounces since the last speed-up.","note":"outside the tracked image","x":[58719,59282,59501,59507,59846,59924]},{"a":540,"t":"note","l":"pops_random","c":"The random number taken off the count of balloons to the next speed-up: 1-3 at the start of a jump (new_jump), 1-2 at each speed-up after (pop_balloons). launch also reads it, in the launch speed's growing term.","note":"outside the tracked image","x":[58816,58823,59286,59905,59916]},{"a":541,"t":"note","l":"score_hi","c":"The two players' scores, 16 bits in tens of points: high bytes $021D (player 1) and $021E (player 2), low bytes $021F and $0220.","note":"outside the tracked image","x":[58225,58320,58364,58393,60551,61303,61312]},{"a":545,"t":"note","l":"jumps","c":"Each player's jumps left: $0221 player 1, $0222 player 2. Five at the start of a game.","note":"outside the tracked image","x":[58246,58611,60365,60375,60394,60568]},{"a":547,"t":"note","l":"level_gravity","c":"Per speed level 0-2: gravity's high byte ($0223-$0225, 0) and low byte ($0226-$0228: 3, 11, 27).","note":"outside the tracked image","x":[58835,59524]},{"a":553,"t":"note","l":"zone_dx","c":"Per landing zone 0-3, the launch speed across: high bytes $0229-$022C, low bytes $022D-$0230.","note":"outside the tracked image","x":[58446,59242]},{"a":561,"t":"note","l":"zone_dy","c":"Per landing zone 0-3, the base launch speed up: high bytes $0231-$0234, low bytes $0235-$0238.","note":"outside the tracked image","x":[58451,59329]},{"a":569,"t":"note","l":"next_level","c":"The speed level that follows each level: 1, 2, 1 ($0239-$023B), so the speed climbs 0, 1, 2 and then alternates between 1 and 2; $023C-$023E the balloons to pop at each level before the next: 3, 10, 50.","note":"outside the tracked image","x":[58544,59894]},{"a":575,"t":"note","l":"bonus_flag","c":"Each player's bonus flag, $023F and $0240: $FF normally, 0 after clearing the top row, when the next fall costs no jump.","note":"outside the tracked image","x":[58624,58845,58888,58934,60033,60067,60349]},{"a":577,"t":"note","l":"row_bonus","c":"The bonus for emptying each row, in tens: 100 (blue), 50 (green), 20 (yellow).","note":"outside the tracked image","x":[58554,60106]},{"a":960,"t":"note","l":"sprite0_shape","c":"Sprite 0's shape, the flying clown (pointer $0F), built here by draw_clown.","note":"outside the tracked image","x":[61560]},{"a":57344,"l":"start","c":"The compiled program's entry, jumped to by the cold start at $F7E4. Sets the software stack's frame pointer ($02/$03) to $0200, so the main program's own frame, $0200-$0243, is where every global variable of the game lives, and jumps to the main program at main ($E34A).","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[63460]},{"a":57346,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":57348,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"frame_ptr"},{"a":57350,"t":"code","b":[134,3],"m":"stx","oa":3,"o":"zpa_03"},{"a":57352,"t":"code","b":[216],"m":"cld"},{"a":57353,"t":"code","b":[76,74,227],"m":"jmp","oa":58186,"o":"main"},{"a":57356,"l":"proc_enter","c":"Opens a procedure's frame on the software stack. Every compiled procedure starts with JSR here, called with Y = the size of the caller's frame; the caller has already written the arguments just past it. Stores the caller's frame pointer ($02/$03) at frame+Y, frame+Y+1 as the link, then moves $02/$03 to frame+Y+2, which is where the arguments now sit as the callee's locals 0, 1, 2 ...","t":"code","b":[165,2],"m":"lda","oa":2,"o":"frame_ptr","x":[57694,57754,58157,58174,58436,58570,58714,58940,60161,60237,60476,60519,60589,61072,61116,61246,61269,61323,61344,61373,61396,61417]},{"a":57358,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":57360,"t":"code","b":[200],"m":"iny"},{"a":57361,"t":"code","b":[165,3],"m":"lda","oa":3,"o":"zpa_03"},{"a":57363,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":57365,"t":"code","b":[56],"m":"sec"},{"a":57366,"t":"code","b":[152],"m":"tya"},{"a":57367,"t":"code","b":[101,2],"m":"adc","oa":2,"o":"frame_ptr"},{"a":57369,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"frame_ptr"},{"a":57371,"t":"code","b":[144,2],"m":"bcc","oa":57375,"o":"r_E01F"},{"a":57373,"t":"code","b":[230,3],"m":"inc","oa":3,"o":"zpa_03"},{"a":57375,"l":"r_E01F","t":"code","b":[96],"m":"rts","x":[57371]},{"a":57376,"l":"proc_leave","c":"Closes the current procedure's frame and returns: every compiled procedure ends with JMP here. Steps $02/$03 back two bytes to the link proc_enter stored and reloads the caller's frame pointer from it. A is preserved, which is how a function returns its value (peek, $EF3E).","t":"code","b":[72],"m":"pha","x":[57728,57818,57890,58171,58183,58567,58711,58937,60158,60234,60473,60516,60586,61001,61069,61113,61243,61266,61320,61341,61370,61393,61414,61437]},{"a":57377,"t":"code","b":[56],"m":"sec"},{"a":57378,"t":"code","b":[165,2],"m":"lda","oa":2,"o":"frame_ptr"},{"a":57380,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":57382,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"frame_ptr"},{"a":57384,"t":"code","b":[176,2],"m":"bcs","oa":57388,"o":"b_E02C"},{"a":57386,"t":"code","b":[198,3],"m":"dec","oa":3,"o":"zpa_03"},{"a":57388,"l":"b_E02C","t":"code","b":[160,1],"m":"ldy","o":"#$01","x":[57384]},{"a":57390,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57392,"t":"code","b":[170],"m":"tax"},{"a":57393,"t":"code","b":[136],"m":"dey"},{"a":57394,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57396,"t":"code","b":[133,2],"m":"sta","oa":2,"o":"frame_ptr"},{"a":57398,"t":"code","b":[134,3],"m":"stx","oa":3,"o":"zpa_03"},{"a":57400,"t":"code","b":[104],"m":"pla"},{"a":57401,"t":"code","b":[96],"m":"rts"},{"a":57402,"l":"random","c":"Returns a pseudo-random number from 1 to A in A (and X). Steps a 16-bit generator held at $11/$12, seed = seed x 125 + 1 (mod 65,536), through mul8, then multiplies A by the new high byte with mul8 and returns the high byte of that product plus one. Called with A = 2, 3, 11, 45, 50 and 90 by the physics and the jump set-up.","t":"code","b":[72],"m":"pha","x":[58742,58766,58813,59218,59292,59796,59902,59949]},{"a":57403,"t":"code","b":[165,17],"m":"lda","oa":17,"o":"seed"},{"a":57405,"t":"code","b":[162,125],"m":"ldx","o":"#$7D"},{"a":57407,"t":"code","b":[32,99,224],"m":"jsr","oa":57443,"o":"mul8"},{"a":57410,"t":"code","b":[24],"m":"clc"},{"a":57411,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":57413,"t":"code","b":[144,1],"m":"bcc","oa":57416,"o":"b_E048"},{"a":57415,"t":"code","b":[232],"m":"inx"},{"a":57416,"l":"b_E048","t":"code","b":[133,17],"m":"sta","oa":17,"o":"seed","x":[57413]},{"a":57418,"t":"code","b":[138],"m":"txa"},{"a":57419,"t":"code","b":[72],"m":"pha"},{"a":57420,"t":"code","b":[165,18],"m":"lda","oa":18,"o":"zpa_12"},{"a":57422,"t":"code","b":[162,125],"m":"ldx","o":"#$7D"},{"a":57424,"t":"code","b":[32,99,224],"m":"jsr","oa":57443,"o":"mul8"},{"a":57427,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":57429,"t":"code","b":[104],"m":"pla"},{"a":57430,"t":"code","b":[24],"m":"clc"},{"a":57431,"t":"code","b":[101,12],"m":"adc","oa":12,"o":"math_tmp"},{"a":57433,"t":"code","b":[170],"m":"tax"},{"a":57434,"t":"code","b":[133,18],"m":"sta","oa":18,"o":"zpa_12"},{"a":57436,"t":"code","b":[104],"m":"pla"},{"a":57437,"t":"code","b":[32,99,224],"m":"jsr","oa":57443,"o":"mul8"},{"a":57440,"t":"code","b":[232],"m":"inx"},{"a":57441,"t":"code","b":[138],"m":"txa"},{"a":57442,"t":"code","b":[96],"m":"rts"},{"a":57443,"l":"mul8","c":"Unsigned 8 x 8 multiply of A by X; returns the 16-bit product with its low byte in A and its high byte in X and $0A. A shift-and-add over eight bits; X = 0 returns 0 at once.","t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp","x":[57407,57424,57437,58747,58771,59300,59448,60786]},{"a":57445,"t":"code","b":[138],"m":"txa"},{"a":57446,"t":"code","b":[240,25],"m":"beq","oa":57473,"o":"b_E081"},{"a":57448,"t":"code","b":[202],"m":"dex"},{"a":57449,"t":"code","b":[134,13],"m":"stx","oa":13,"o":"zpa_0D"},{"a":57451,"t":"code","b":[162,8],"m":"ldx","o":"#$08"},{"a":57453,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":57455,"t":"code","b":[102,12],"m":"ror","oa":12,"o":"math_tmp"},{"a":57457,"l":"b_E071","t":"code","b":[144,2],"m":"bcc","oa":57461,"o":"b_E075","x":[57465]},{"a":57459,"t":"code","b":[101,13],"m":"adc","oa":13,"o":"zpa_0D"},{"a":57461,"l":"b_E075","t":"code","b":[106],"m":"ror","o":"a","x":[57457]},{"a":57462,"t":"code","b":[102,12],"m":"ror","oa":12,"o":"math_tmp"},{"a":57464,"t":"code","b":[202],"m":"dex"},{"a":57465,"t":"code","b":[208,246],"m":"bne","oa":57457,"o":"b_E071"},{"a":57467,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"math_hi"},{"a":57469,"t":"code","b":[170],"m":"tax"},{"a":57470,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"math_tmp"},{"a":57472,"t":"code","b":[96],"m":"rts"},{"a":57473,"l":"b_E081","t":"code","b":[133,10],"m":"sta","oa":10,"o":"math_hi","x":[57446]},{"a":57475,"t":"code","b":[96],"m":"rts"},{"a":57476,"l":"div8","c":"Unsigned 8-bit divide of A by X; returns the quotient in A (and $0C) and the remainder in X and $0B. A divisor of zero goes to div_by_zero. Its two calls (at $E733 and $E744) divide by 6; print_byte enters at div8_nonzero instead, and nothing calls print_byte, so the error path never runs.","t":"code","b":[133,14],"m":"sta","oa":14,"o":"zpa_0E","x":[59187,59204]},{"a":57478,"l":"div8_nonzero","c":"div8's divide proper, entered here by print_byte (which nothing calls) with the divisor in X and the dividend in $0E: shifts the divisor up to the top bit and subtracts it down again, building the quotient in $0C; returns the quotient in A and the remainder in X and $0B.","t":"code","b":[138],"m":"txa","x":[57550]},{"a":57479,"t":"code","b":[208,5],"m":"bne","oa":57486,"o":"b_E08E"},{"a":57481,"t":"code","b":[134,14],"m":"stx","oa":14,"o":"zpa_0E"},{"a":57483,"t":"code","b":[170],"m":"tax"},{"a":57484,"t":"code","b":[240,31],"m":"beq","oa":57517,"o":"div_by_zero"},{"a":57486,"l":"b_E08E","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[57479]},{"a":57488,"t":"code","b":[134,12],"m":"stx","oa":12,"o":"math_tmp"},{"a":57490,"l":"b_E092","t":"code","b":[232],"m":"inx","x":[57492]},{"a":57491,"t":"code","b":[10],"m":"asl","o":"a"},{"a":57492,"t":"code","b":[144,252],"m":"bcc","oa":57490,"o":"b_E092"},{"a":57494,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":57496,"t":"code","b":[165,14],"m":"lda","oa":14,"o":"zpa_0E"},{"a":57498,"l":"b_E09A","t":"code","b":[102,13],"m":"ror","oa":13,"o":"zpa_0D","x":[57509]},{"a":57500,"t":"code","b":[197,13],"m":"cmp","oa":13,"o":"zpa_0D"},{"a":57502,"t":"code","b":[144,2],"m":"bcc","oa":57506,"o":"b_E0A2"},{"a":57504,"t":"code","b":[229,13],"m":"sbc","oa":13,"o":"zpa_0D"},{"a":57506,"l":"b_E0A2","t":"code","b":[38,12],"m":"rol","oa":12,"o":"math_tmp","x":[57502]},{"a":57508,"t":"code","b":[202],"m":"dex"},{"a":57509,"t":"code","b":[208,243],"m":"bne","oa":57498,"o":"b_E09A"},{"a":57511,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":57513,"t":"code","b":[170],"m":"tax"},{"a":57514,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"math_tmp"},{"a":57516,"t":"code","b":[96],"m":"rts"},{"a":57517,"l":"div_by_zero","c":"The runtime's division-by-zero error: selects output device $08 = A (0 here, so device 0) and prints \"ERR DIV0\" through the inline-string printer, then jumps to $7000. Nothing in the game divides by zero, and the cartridge has nothing at $7000, so this is a leftover of the language's runtime, never run.","t":"code","b":[133,8],"m":"sta","oa":8,"o":"out_device","x":[57484,57821]},{"a":57519,"t":"code","b":[32,245,224],"m":"jsr","oa":57589,"o":"print_inline"},{"a":57522,"l":"str_err_div0","c":"Inline argument of print_inline: carriage return, \"ERR DIV0\", zero terminator.","t":"byte","b":[13,69,82,82,32,68,73,86]},{"a":57530,"t":"byte","b":[48,0]},{"a":57532,"l":"div0_halt","c":"The division error's exit: JMP $7000, an address where the cartridge has no code and the game keeps nothing. Never reached.","t":"code","b":[76,0,112],"m":"jmp","oa":28672,"o":"j_7000"},{"a":57535,"l":"print_byte","c":"Runtime routine nothing in the game calls: prints A in decimal, right-aligned in a field of the width in $0B, by repeated div8 by 10 and print_spaces for the padding. Part of the language's standard library, linked in and unused.","t":"code","b":[170],"m":"tax"},{"a":57536,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":57538,"t":"code","b":[133,15],"m":"sta","oa":15,"o":"zpa_0F"},{"a":57540,"t":"code","b":[138],"m":"txa"},{"a":57541,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":57543,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"zpa_0E"},{"a":57545,"t":"code","b":[165,11],"m":"lda","oa":11,"o":"zpa_0B"},{"a":57547,"t":"code","b":[72],"m":"pha"},{"a":57548,"l":"b_E0CC","t":"code","b":[162,10],"m":"ldx","o":"#$0A","x":[57560]},{"a":57550,"t":"code","b":[32,134,224],"m":"jsr","oa":57478,"o":"div8_nonzero"},{"a":57553,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"zpa_0E"},{"a":57555,"t":"code","b":[138],"m":"txa"},{"a":57556,"t":"code","b":[72],"m":"pha"},{"a":57557,"t":"code","b":[200],"m":"iny"},{"a":57558,"t":"code","b":[165,14],"m":"lda","oa":14,"o":"zpa_0E"},{"a":57560,"t":"code","b":[208,242],"m":"bne","oa":57548,"o":"b_E0CC"},{"a":57562,"t":"code","b":[165,15],"m":"lda","oa":15,"o":"zpa_0F"},{"a":57564,"t":"code","b":[240,10],"m":"beq","oa":57576,"o":"b_E0E8"},{"a":57566,"t":"code","b":[132,15],"m":"sty","oa":15,"o":"zpa_0F"},{"a":57568,"t":"code","b":[56],"m":"sec"},{"a":57569,"t":"code","b":[229,15],"m":"sbc","oa":15,"o":"zpa_0F"},{"a":57571,"t":"code","b":[144,3],"m":"bcc","oa":57576,"o":"b_E0E8"},{"a":57573,"t":"code","b":[32,39,225],"m":"jsr","oa":57639,"o":"print_spaces"},{"a":57576,"l":"b_E0E8","t":"code","b":[104],"m":"pla","x":[57564,57571,57583]},{"a":57577,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":57579,"t":"code","b":[32,51,225],"m":"jsr","oa":57651,"o":"print_char"},{"a":57582,"t":"code","b":[136],"m":"dey"},{"a":57583,"t":"code","b":[208,247],"m":"bne","oa":57576,"o":"b_E0E8"},{"a":57585,"t":"code","b":[104],"m":"pla"},{"a":57586,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":57588,"t":"code","b":[96],"m":"rts"},{"a":57589,"l":"print_inline","c":"Prints the zero-terminated string that follows the JSR to it, then resumes after the terminator. Pulls the return address into $04/$05, prints the bytes from there through print_ptr_string, adds the length to $04/$05 and jumps through it. Six calls in the game: \"GAME OVER\", \"GAME OVER PLAYER 1\", \"PUSH 'F1' TO BEGIN\", the copyright line, \"  PUSH   \" and the player-count menu.","t":"code","b":[104],"m":"pla","x":[57519,58284,60432,60636,60704,61150,61166]},{"a":57590,"t":"code","b":[133,4],"m":"sta","oa":4,"o":"ptr04"},{"a":57592,"t":"code","b":[104],"m":"pla"},{"a":57593,"t":"code","b":[133,5],"m":"sta","oa":5,"o":"zpa_05"},{"a":57595,"t":"code","b":[32,11,225],"m":"jsr","oa":57611,"o":"print_ptr_string"},{"a":57598,"t":"code","b":[56],"m":"sec"},{"a":57599,"t":"code","b":[152],"m":"tya"},{"a":57600,"t":"code","b":[101,4],"m":"adc","oa":4,"o":"ptr04"},{"a":57602,"t":"code","b":[133,4],"m":"sta","oa":4,"o":"ptr04"},{"a":57604,"t":"code","b":[144,2],"m":"bcc","oa":57608,"o":"jump_ptr04"},{"a":57606,"t":"code","b":[230,5],"m":"inc","oa":5,"o":"zpa_05"},{"a":57608,"l":"jump_ptr04","c":"JMP ($0004): the resume point of print_inline, and the call that call_machine_code ($E15E) makes into a machine-code routine.","t":"code","b":[108,4,0],"m":"jmp","oa":4,"o":"(ptr04)","x":[57604,57724]},{"a":57611,"l":"print_ptr_string","c":"Prints the zero-terminated string at ($04)+1 onward through print_char; leaves Y at the terminator, so the caller can step past it.","t":"code","b":[160,1],"m":"ldy","o":"#$01","x":[57595]},{"a":57613,"l":"b_E10D","t":"code","b":[177,4],"m":"lda","oa":4,"o":"(ptr04),y","x":[57621]},{"a":57615,"t":"code","b":[240,6],"m":"beq","oa":57623,"o":"r_E117"},{"a":57617,"t":"code","b":[32,51,225],"m":"jsr","oa":57651,"o":"print_char"},{"a":57620,"t":"code","b":[200],"m":"iny"},{"a":57621,"t":"code","b":[208,246],"m":"bne","oa":57613,"o":"b_E10D"},{"a":57623,"l":"r_E117","t":"code","b":[96],"m":"rts","x":[57615,57630,57640]},{"a":57624,"l":"print_newline","c":"Prints a carriage return (13) through print_char. Called before the copyright line and the player-count line.","t":"code","b":[169,13],"m":"lda","o":"#$0D","x":[57632,60701,61163]},{"a":57626,"t":"code","b":[76,51,225],"m":"jmp","oa":57651,"o":"print_char"},{"a":57629,"l":"print_newlines","c":"Runtime routine nothing in the game calls: prints A carriage returns.","t":"code","b":[170],"m":"tax"},{"a":57630,"t":"code","b":[240,247],"m":"beq","oa":57623,"o":"r_E117"},{"a":57632,"l":"b_E120","t":"code","b":[32,24,225],"m":"jsr","oa":57624,"o":"print_newline","x":[57636]},{"a":57635,"t":"code","b":[202],"m":"dex"},{"a":57636,"t":"code","b":[208,250],"m":"bne","oa":57632,"o":"b_E120"},{"a":57638,"t":"code","b":[96],"m":"rts"},{"a":57639,"l":"print_spaces","c":"Prints A spaces through print_char. Only print_byte calls it, and nothing calls print_byte.","t":"code","b":[170],"m":"tax","x":[57573]},{"a":57640,"t":"code","b":[240,237],"m":"beq","oa":57623,"o":"r_E117"},{"a":57642,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":57644,"l":"b_E12C","t":"code","b":[32,51,225],"m":"jsr","oa":57651,"o":"print_char","x":[57648]},{"a":57647,"t":"code","b":[202],"m":"dex"},{"a":57648,"t":"code","b":[208,250],"m":"bne","oa":57644,"o":"b_E12C"},{"a":57650,"t":"code","b":[96],"m":"rts"},{"a":57651,"l":"print_char","c":"Sends the character in A to the current output device, the number in $08, saving A, X and Y. Looks the device up in device_table ($E186) and jumps to its handler with the character in A. The game always selects device 1, the screen (put_char, $E22E).","t":"code","b":[133,15],"m":"sta","oa":15,"o":"zpa_0F","x":[57579,57617,57626,57644]},{"a":57653,"t":"code","b":[72],"m":"pha"},{"a":57654,"t":"code","b":[138],"m":"txa"},{"a":57655,"t":"code","b":[72],"m":"pha"},{"a":57656,"t":"code","b":[152],"m":"tya"},{"a":57657,"t":"code","b":[72],"m":"pha"},{"a":57658,"t":"code","b":[166,8],"m":"ldx","oa":8,"o":"out_device"},{"a":57660,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":57662,"t":"code","b":[32,71,225],"m":"jsr","oa":57671,"o":"device_lookup"},{"a":57665,"t":"code","b":[104],"m":"pla"},{"a":57666,"t":"code","b":[168],"m":"tay"},{"a":57667,"t":"code","b":[104],"m":"pla"},{"a":57668,"t":"code","b":[170],"m":"tax"},{"a":57669,"t":"code","b":[104],"m":"pla"},{"a":57670,"t":"code","b":[96],"m":"rts"},{"a":57671,"l":"device_lookup","c":"print_char's inner part: finds the handler of device X in device_table (two bytes a device) and jumps to it through $06/$07 with the character from $0F in A.","t":"code","b":[232],"m":"inx","x":[57662]},{"a":57672,"l":"b_E148","t":"code","b":[202],"m":"dex","x":[57677]},{"a":57673,"t":"code","b":[240,4],"m":"beq","oa":57679,"o":"b_E14F"},{"a":57675,"t":"code","b":[200],"m":"iny"},{"a":57676,"t":"code","b":[200],"m":"iny"},{"a":57677,"t":"code","b":[208,249],"m":"bne","oa":57672,"o":"b_E148"},{"a":57679,"l":"b_E14F","t":"code","b":[185,134,225],"m":"lda","oa":57734,"o":"device_table,y","x":[57673]},{"a":57682,"t":"code","b":[190,135,225],"m":"ldx","oa":57735,"o":"f_E187,y"},{"a":57685,"t":"code","b":[133,6],"m":"sta","oa":6,"o":"device_ptr"},{"a":57687,"t":"code","b":[134,7],"m":"stx","oa":7,"o":"zpa_07"},{"a":57689,"t":"code","b":[165,15],"m":"lda","oa":15,"o":"zpa_0F"},{"a":57691,"t":"code","b":[108,6,0],"m":"jmp","oa":6,"o":"(device_ptr)"},{"a":57694,"l":"call_machine_code","c":"Calls a machine-code routine for the compiled program. Reads five bytes from the frame: the routine's address high and low, then the values for A, X and Y; sets $04/$05 to the address and calls it through jump_ptr04 with those registers, then closes the frame. Its one caller is call_ml ($EB01).","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[60231]},{"a":57697,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":57699,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57701,"t":"code","b":[133,5],"m":"sta","oa":5,"o":"zpa_05"},{"a":57703,"t":"code","b":[200],"m":"iny"},{"a":57704,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57706,"t":"code","b":[133,4],"m":"sta","oa":4,"o":"ptr04"},{"a":57708,"t":"code","b":[200],"m":"iny"},{"a":57709,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57711,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":57713,"t":"code","b":[200],"m":"iny"},{"a":57714,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57716,"t":"code","b":[170],"m":"tax"},{"a":57717,"t":"code","b":[200],"m":"iny"},{"a":57718,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57720,"t":"code","b":[168],"m":"tay"},{"a":57721,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"math_tmp"},{"a":57723,"t":"code","b":[8],"m":"php"},{"a":57724,"t":"code","b":[32,8,225],"m":"jsr","oa":57608,"o":"jump_ptr04"},{"a":57727,"t":"code","b":[40],"m":"plp"},{"a":57728,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":57731,"l":"device0_chrout","c":"Output device 0: JMP $FFD2, the KERNAL's CHROUT on a machine with a KERNAL. On this cartridge $FFD2 holds a table byte (pow10_ten), not code, so device 0 cannot work here; the game never selects it.","t":"code","b":[76,210,255],"m":"jmp","oa":65490,"o":"pow10_ten","x":[57734,57738,57740,57742,57744,57746,57748,57750,57752]},{"a":57734,"l":"device_table","c":"Output device handlers, ten addresses for device numbers 0-9: device 0 is device0_chrout ($E183), device 1 the screen writer put_char ($E22E), devices 2-9 all device0_chrout again. print_char indexes it by $08.","t":"addr","b":[131,225],"oa":57731,"o":"device0_chrout","x":[57679]},{"a":57735,"t":"note","l":"f_E187","c":"The high bytes of device_table's addresses, read by print_char at $E187,Y.","note":"inside the item at $E186","x":[57682]},{"a":57736,"t":"addr","b":[46,226],"oa":57902,"o":"put_char"},{"a":57738,"t":"addr","b":[131,225],"oa":57731,"o":"device0_chrout"},{"a":57740,"t":"addr","b":[131,225],"oa":57731,"o":"device0_chrout"},{"a":57742,"t":"addr","b":[131,225],"oa":57731,"o":"device0_chrout"},{"a":57744,"t":"addr","b":[131,225],"oa":57731,"o":"device0_chrout"},{"a":57746,"t":"addr","b":[131,225],"oa":57731,"o":"device0_chrout"},{"a":57748,"t":"addr","b":[131,225],"oa":57731,"o":"device0_chrout"},{"a":57750,"t":"addr","b":[131,225],"oa":57731,"o":"device0_chrout"},{"a":57752,"t":"addr","b":[131,225],"oa":57731,"o":"device0_chrout"},{"a":57754,"l":"args16","c":"Runtime routine for 16-bit arithmetic that nothing in the game reaches: opens a frame and loads two 16-bit arguments from it into $0C/$0D and $04/$05, clearing $0A/$0B for a result. Used only by mul16 and div16, which nothing calls.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[57783,57824]},{"a":57757,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":57759,"t":"code","b":[132,11],"m":"sty","oa":11,"o":"zpa_0B"},{"a":57761,"t":"code","b":[132,10],"m":"sty","oa":10,"o":"math_hi"},{"a":57763,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57765,"t":"code","b":[133,13],"m":"sta","oa":13,"o":"zpa_0D"},{"a":57767,"t":"code","b":[200],"m":"iny"},{"a":57768,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57770,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":57772,"t":"code","b":[200],"m":"iny"},{"a":57773,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57775,"t":"code","b":[133,5],"m":"sta","oa":5,"o":"zpa_05"},{"a":57777,"t":"code","b":[200],"m":"iny"},{"a":57778,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":57780,"t":"code","b":[133,4],"m":"sta","oa":4,"o":"ptr04"},{"a":57782,"t":"code","b":[96],"m":"rts"},{"a":57783,"l":"mul16","c":"Runtime 16 x 16-bit multiply that nothing in the game calls: shift-and-add of the two arguments args16 loads, result in $0E/$0A.","t":"code","b":[32,154,225],"m":"jsr","oa":57754,"o":"args16"},{"a":57786,"t":"code","b":[162,16],"m":"ldx","o":"#$10"},{"a":57788,"t":"code","b":[208,4],"m":"bne","oa":57794,"o":"b_E1C2"},{"a":57790,"l":"b_E1BE","t":"code","b":[6,14],"m":"asl","oa":14,"o":"zpa_0E","x":[57814]},{"a":57792,"t":"code","b":[38,10],"m":"rol","oa":10,"o":"math_hi"},{"a":57794,"l":"b_E1C2","t":"code","b":[6,12],"m":"asl","oa":12,"o":"math_tmp","x":[57788]},{"a":57796,"t":"code","b":[38,13],"m":"rol","oa":13,"o":"zpa_0D"},{"a":57798,"t":"code","b":[144,13],"m":"bcc","oa":57813,"o":"b_E1D5"},{"a":57800,"t":"code","b":[24],"m":"clc"},{"a":57801,"t":"code","b":[165,4],"m":"lda","oa":4,"o":"ptr04"},{"a":57803,"t":"code","b":[101,14],"m":"adc","oa":14,"o":"zpa_0E"},{"a":57805,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"zpa_0E"},{"a":57807,"t":"code","b":[165,5],"m":"lda","oa":5,"o":"zpa_05"},{"a":57809,"t":"code","b":[101,10],"m":"adc","oa":10,"o":"math_hi"},{"a":57811,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"math_hi"},{"a":57813,"l":"b_E1D5","t":"code","b":[202],"m":"dex","x":[57798]},{"a":57814,"t":"code","b":[208,230],"m":"bne","oa":57790,"o":"b_E1BE"},{"a":57816,"t":"code","b":[165,14],"m":"lda","oa":14,"o":"zpa_0E"},{"a":57818,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":57821,"l":"div16","c":"Runtime 16-bit divide that nothing in the game calls. Its first instruction is the call to the division error (JSR div_by_zero), reached when the divisor is zero; the divide starts at $E1E0 and divides the first argument by the second, returning the quotient in A and $0A (low and high, also $0C/$0D) and the remainder in $0E/$0B (low) and $10 (high).","t":"code","b":[32,173,224],"m":"jsr","oa":57517,"o":"div_by_zero","x":[57829]},{"a":57824,"t":"code","b":[32,154,225],"m":"jsr","oa":57754,"o":"args16"},{"a":57827,"t":"code","b":[5,5],"m":"ora","oa":5,"o":"zpa_05"},{"a":57829,"t":"code","b":[240,246],"m":"beq","oa":57821,"o":"div16"},{"a":57831,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"math_tmp"},{"a":57833,"t":"code","b":[5,13],"m":"ora","oa":13,"o":"zpa_0D"},{"a":57835,"t":"code","b":[240,56],"m":"beq","oa":57893,"o":"b_E225"},{"a":57837,"t":"code","b":[162,17],"m":"ldx","o":"#$11"},{"a":57839,"l":"b_E1EF","t":"code","b":[202],"m":"dex","x":[57844]},{"a":57840,"t":"code","b":[6,12],"m":"asl","oa":12,"o":"math_tmp"},{"a":57842,"t":"code","b":[38,13],"m":"rol","oa":13,"o":"zpa_0D"},{"a":57844,"t":"code","b":[144,249],"m":"bcc","oa":57839,"o":"b_E1EF"},{"a":57846,"l":"b_E1F6","t":"code","b":[38,14],"m":"rol","oa":14,"o":"zpa_0E","x":[57874]},{"a":57848,"t":"code","b":[38,10],"m":"rol","oa":10,"o":"math_hi"},{"a":57850,"t":"code","b":[165,14],"m":"lda","oa":14,"o":"zpa_0E"},{"a":57852,"t":"code","b":[197,4],"m":"cmp","oa":4,"o":"ptr04"},{"a":57854,"t":"code","b":[165,10],"m":"lda","oa":10,"o":"math_hi"},{"a":57856,"t":"code","b":[229,5],"m":"sbc","oa":5,"o":"zpa_05"},{"a":57858,"t":"code","b":[144,9],"m":"bcc","oa":57869,"o":"b_E20D"},{"a":57860,"t":"code","b":[133,10],"m":"sta","oa":10,"o":"math_hi"},{"a":57862,"t":"code","b":[165,14],"m":"lda","oa":14,"o":"zpa_0E"},{"a":57864,"t":"code","b":[229,4],"m":"sbc","oa":4,"o":"ptr04"},{"a":57866,"t":"code","b":[133,14],"m":"sta","oa":14,"o":"zpa_0E"},{"a":57868,"t":"code","b":[56],"m":"sec"},{"a":57869,"l":"b_E20D","t":"code","b":[38,12],"m":"rol","oa":12,"o":"math_tmp","x":[57858]},{"a":57871,"t":"code","b":[38,13],"m":"rol","oa":13,"o":"zpa_0D"},{"a":57873,"t":"code","b":[202],"m":"dex"},{"a":57874,"t":"code","b":[208,226],"m":"bne","oa":57846,"o":"b_E1F6"},{"a":57876,"t":"code","b":[165,10],"m":"lda","oa":10,"o":"math_hi"},{"a":57878,"t":"code","b":[133,16],"m":"sta","oa":16,"o":"zpa_10"},{"a":57880,"t":"code","b":[165,14],"m":"lda","oa":14,"o":"zpa_0E"},{"a":57882,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":57884,"t":"code","b":[165,13],"m":"lda","oa":13,"o":"zpa_0D"},{"a":57886,"l":"b_E21E","t":"code","b":[133,10],"m":"sta","oa":10,"o":"math_hi","x":[57897]},{"a":57888,"t":"code","b":[165,12],"m":"lda","oa":12,"o":"math_tmp"},{"a":57890,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":57893,"l":"b_E225","t":"code","b":[133,16],"m":"sta","oa":16,"o":"zpa_10","x":[57835]},{"a":57895,"t":"code","b":[133,11],"m":"sta","oa":11,"o":"zpa_0B"},{"a":57897,"t":"code","b":[240,243],"m":"beq","oa":57886,"o":"b_E21E"},{"a":57899,"l":"div16_remainder","c":"Runtime: returns $10, the high byte of the last div16 remainder. Nothing calls it.","t":"code","b":[165,16],"m":"lda","oa":16,"o":"zpa_10"},{"a":57901,"t":"code","b":[96],"m":"rts"},{"a":57902,"l":"put_char","c":"The screen output device (device 1): writes the character in A at the text cursor, column $17 and row $18, with colour $13, and moves the cursor on. The cursor-control codes in cursor_codes ($E280) go to their handlers through cursor_handlers; any other code is turned into a screen code by petscii_to_screen and stored in screen memory at $0400 and colour memory at $D800 through row_address. The cursor wraps from column 39 to the next row and from row 24 to row 0. Saves A, X and Y.","t":"code","b":[72],"m":"pha","x":[57736,62726,63118,63219]},{"a":57903,"t":"code","b":[133,22],"m":"sta","oa":22,"o":"put_charcode"},{"a":57905,"t":"code","b":[138],"m":"txa"},{"a":57906,"t":"code","b":[72],"m":"pha"},{"a":57907,"t":"code","b":[152],"m":"tya"},{"a":57908,"t":"code","b":[72],"m":"pha"},{"a":57909,"t":"code","b":[162,6],"m":"ldx","o":"#$06"},{"a":57911,"t":"code","b":[165,22],"m":"lda","oa":22,"o":"put_charcode"},{"a":57913,"l":"b_E239","t":"code","b":[221,128,226],"m":"cmp","oa":57984,"o":"cursor_codes,x","x":[57919]},{"a":57916,"t":"code","b":[240,54],"m":"beq","oa":57972,"o":"cursor_dispatch"},{"a":57918,"t":"code","b":[202],"m":"dex"},{"a":57919,"t":"code","b":[16,248],"m":"bpl","oa":57913,"o":"b_E239"},{"a":57921,"t":"code","b":[32,30,227],"m":"jsr","oa":58142,"o":"petscii_to_screen"},{"a":57924,"t":"code","b":[32,219,226],"m":"jsr","oa":58075,"o":"row_address"},{"a":57927,"t":"code","b":[165,22],"m":"lda","oa":22,"o":"put_charcode"},{"a":57929,"t":"code","b":[145,20],"m":"sta","oa":20,"o":"(put_ptr),y"},{"a":57931,"t":"code","b":[165,21],"m":"lda","oa":21,"o":"zpa_15"},{"a":57933,"t":"code","b":[24],"m":"clc"},{"a":57934,"t":"code","b":[105,212],"m":"adc","o":"#$D4"},{"a":57936,"t":"code","b":[133,21],"m":"sta","oa":21,"o":"zpa_15"},{"a":57938,"t":"code","b":[165,19],"m":"lda","oa":19,"o":"text_colour"},{"a":57940,"t":"code","b":[145,20],"m":"sta","oa":20,"o":"(put_ptr),y"},{"a":57942,"l":"cursor_advance","c":"Moves the cursor one column right, wrapping from column 39 to column 0 of the next row and from row 24 to row 0. put_char ends here after storing a character, and the cursor-right code $1D comes here too.","t":"code","b":[230,23],"m":"inc","oa":23,"o":"cursor_col"},{"a":57944,"t":"code","b":[165,23],"m":"lda","oa":23,"o":"cursor_col"},{"a":57946,"t":"code","b":[201,40],"m":"cmp","o":"#$28"},{"a":57948,"t":"code","b":[208,16],"m":"bne","oa":57966,"o":"put_char_done"},{"a":57950,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":57952,"t":"code","b":[133,23],"m":"sta","oa":23,"o":"cursor_col"},{"a":57954,"l":"cursor_down","c":"Moves the cursor one row down, wrapping from row 24 to row 0: the handler for $11, and the second half of cursor_advance and cursor_return.","t":"code","b":[230,24],"m":"inc","oa":24,"o":"cursor_row","x":[58035]},{"a":57956,"t":"code","b":[165,24],"m":"lda","oa":24,"o":"cursor_row"},{"a":57958,"t":"code","b":[201,25],"m":"cmp","o":"#$19"},{"a":57960,"t":"code","b":[208,4],"m":"bne","oa":57966,"o":"put_char_done"},{"a":57962,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":57964,"t":"code","b":[133,24],"m":"sta","oa":24,"o":"cursor_row"},{"a":57966,"l":"put_char_done","c":"put_char's exit: restores Y, X and A and returns.","t":"code","b":[104],"m":"pla","x":[57948,57960,58007,58015,58021,58029]},{"a":57967,"t":"code","b":[168],"m":"tay"},{"a":57968,"t":"code","b":[104],"m":"pla"},{"a":57969,"t":"code","b":[170],"m":"tax"},{"a":57970,"t":"code","b":[104],"m":"pla"},{"a":57971,"t":"code","b":[96],"m":"rts"},{"a":57972,"l":"cursor_dispatch","c":"Runs the handler for cursor code X of cursor_codes: pushes the handler's address minus one from cursor_handlers and returns into it.","t":"code","b":[138],"m":"txa","x":[57916]},{"a":57973,"t":"code","b":[10],"m":"asl","o":"a"},{"a":57974,"t":"code","b":[170],"m":"tax"},{"a":57975,"t":"code","b":[189,136,226],"m":"lda","oa":57992,"o":"f_E288,x"},{"a":57978,"t":"code","b":[72],"m":"pha"},{"a":57979,"t":"code","b":[189,135,226],"m":"lda","oa":57991,"o":"cursor_handlers,x"},{"a":57982,"t":"code","b":[72],"m":"pha"},{"a":57983,"t":"code","b":[96],"m":"rts"},{"a":57984,"l":"cursor_codes","c":"The seven PETSCII control codes put_char acts on: $9D cursor left, $1D cursor right, $91 cursor up, $11 cursor down, $13 home, $0D return, $93 clear screen.","t":"byte","b":[157,29,145,17,19,13,147],"x":[57913]},{"a":57991,"l":"cursor_handlers","c":"Addresses minus one of the handlers for cursor_codes, in the same order, for the RTS dispatch at cursor_dispatch: left $E295, right $E256 (the same advance put_char makes after a character), up $E29D, down $E262, home $E2A7, return $E2AF, clear $E2B5.","t":"word","b":[148,226,85,226,156,226,97,226],"d":[58004,57941,58012,57953],"x":[57979]},{"a":57992,"t":"note","l":"f_E288","c":"The high bytes of cursor_handlers' words, read by cursor_dispatch at $E288,X and pushed first, so the RTS returns into the handler.","note":"inside the item at $E287","x":[57975]},{"a":57999,"t":"word","b":[166,226,174,226,180,226],"d":[58022,58030,58036]},{"a":58005,"l":"cursor_left","c":"Handler for $9D: moves the cursor one column left, wrapping from column 0 to column 39 of the row above.","t":"code","b":[198,23],"m":"dec","oa":23,"o":"cursor_col"},{"a":58007,"t":"code","b":[16,213],"m":"bpl","oa":57966,"o":"put_char_done"},{"a":58009,"t":"code","b":[169,39],"m":"lda","o":"#$27"},{"a":58011,"t":"code","b":[133,23],"m":"sta","oa":23,"o":"cursor_col"},{"a":58013,"l":"cursor_up","c":"Handler for $91: moves the cursor one row up, wrapping from row 0 to row 24.","t":"code","b":[198,24],"m":"dec","oa":24,"o":"cursor_row"},{"a":58015,"t":"code","b":[16,205],"m":"bpl","oa":57966,"o":"put_char_done"},{"a":58017,"t":"code","b":[169,24],"m":"lda","o":"#$18"},{"a":58019,"t":"code","b":[133,24],"m":"sta","oa":24,"o":"cursor_row"},{"a":58021,"t":"code","b":[208,199],"m":"bne","oa":57966,"o":"put_char_done"},{"a":58023,"l":"cursor_home","c":"Handler for $13 home: column 0, row 0. clear_screen ends here too.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[58073]},{"a":58025,"t":"code","b":[133,23],"m":"sta","oa":23,"o":"cursor_col"},{"a":58027,"t":"code","b":[133,24],"m":"sta","oa":24,"o":"cursor_row"},{"a":58029,"t":"code","b":[240,191],"m":"beq","oa":57966,"o":"put_char_done"},{"a":58031,"l":"cursor_return","c":"Handler for $0D return: column 0 of the next row (through cursor_down).","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58033,"t":"code","b":[133,23],"m":"sta","oa":23,"o":"cursor_col"},{"a":58035,"t":"code","b":[240,173],"m":"beq","oa":57954,"o":"cursor_down"},{"a":58037,"l":"clear_screen","c":"Handler for $93: fills the screen at $0400-$07E7 with spaces and colour memory with white (1), then homes the cursor.","t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":58039,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":58041,"l":"b_E2B9","t":"code","b":[157,0,4],"m":"sta","oa":1024,"o":"f_0400,x","x":[58054]},{"a":58044,"t":"code","b":[157,0,5],"m":"sta","oa":1280,"o":"f_0500,x"},{"a":58047,"t":"code","b":[157,0,6],"m":"sta","oa":1536,"o":"f_0600,x"},{"a":58050,"t":"code","b":[157,232,6],"m":"sta","oa":1768,"o":"f_06E8,x"},{"a":58053,"t":"code","b":[232],"m":"inx"},{"a":58054,"t":"code","b":[208,241],"m":"bne","oa":58041,"o":"b_E2B9"},{"a":58056,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":58058,"l":"b_E2CA","t":"code","b":[157,0,216],"m":"sta","o":"colour_ram,x","x":[58071]},{"a":58061,"t":"code","b":[157,0,217],"m":"sta","o":"$D900,x"},{"a":58064,"t":"code","b":[157,0,218],"m":"sta","o":"$DA00,x"},{"a":58067,"t":"code","b":[157,0,219],"m":"sta","o":"$DB00,x"},{"a":58070,"t":"code","b":[232],"m":"inx"},{"a":58071,"t":"code","b":[208,241],"m":"bne","oa":58058,"o":"b_E2CA"},{"a":58073,"t":"code","b":[240,204],"m":"beq","oa":58023,"o":"cursor_home"},{"a":58075,"l":"row_address","c":"Sets $14/$15 to the screen address of the cursor's row ($18) from row_table and Y to the cursor's column ($17).","t":"code","b":[165,24],"m":"lda","oa":24,"o":"cursor_row","x":[57924]},{"a":58077,"t":"code","b":[10],"m":"asl","o":"a"},{"a":58078,"t":"code","b":[170],"m":"tax"},{"a":58079,"t":"code","b":[189,236,226],"m":"lda","oa":58092,"o":"row_table,x"},{"a":58082,"t":"code","b":[133,20],"m":"sta","oa":20,"o":"put_ptr"},{"a":58084,"t":"code","b":[189,237,226],"m":"lda","oa":58093,"o":"f_E2ED,x"},{"a":58087,"t":"code","b":[133,21],"m":"sta","oa":21,"o":"zpa_15"},{"a":58089,"t":"code","b":[164,23],"m":"ldy","oa":23,"o":"cursor_col"},{"a":58091,"t":"code","b":[96],"m":"rts"},{"a":58092,"l":"row_table","c":"The screen address of each of the 25 text rows, $0400 to $07C0 in steps of 40.","t":"addr","b":[0,4],"oa":1024,"o":"f_0400","x":[58079]},{"a":58093,"t":"note","l":"f_E2ED","c":"The high bytes of row_table's addresses: the second byte of each word, read by row_address at $E2ED,X.","note":"inside the item at $E2EC","x":[58084]},{"a":58094,"t":"addr","b":[40,4],"oa":1064,"o":"a_0428"},{"a":58096,"t":"addr","b":[80,4],"oa":1104,"o":"a_0450"},{"a":58098,"t":"addr","b":[120,4],"oa":1144,"o":"a_0478"},{"a":58100,"t":"addr","b":[160,4],"oa":1184,"o":"a_04A0"},{"a":58102,"t":"addr","b":[200,4],"oa":1224,"o":"a_04C8"},{"a":58104,"t":"addr","b":[240,4],"oa":1264,"o":"a_04F0"},{"a":58106,"t":"addr","b":[24,5],"oa":1304,"o":"a_0518"},{"a":58108,"t":"addr","b":[64,5],"oa":1344,"o":"a_0540"},{"a":58110,"t":"addr","b":[104,5],"oa":1384,"o":"a_0568"},{"a":58112,"t":"addr","b":[144,5],"oa":1424,"o":"a_0590"},{"a":58114,"t":"addr","b":[184,5],"oa":1464,"o":"a_05B8"},{"a":58116,"t":"addr","b":[224,5],"oa":1504,"o":"a_05E0"},{"a":58118,"t":"addr","b":[8,6],"oa":1544,"o":"a_0608"},{"a":58120,"t":"addr","b":[48,6],"oa":1584,"o":"a_0630"},{"a":58122,"t":"addr","b":[88,6],"oa":1624,"o":"a_0658"},{"a":58124,"t":"addr","b":[128,6],"oa":1664,"o":"a_0680"},{"a":58126,"t":"addr","b":[168,6],"oa":1704,"o":"a_06A8"},{"a":58128,"t":"addr","b":[208,6],"oa":1744,"o":"a_06D0"},{"a":58130,"t":"addr","b":[248,6],"oa":1784,"o":"a_06F8"},{"a":58132,"t":"addr","b":[32,7],"oa":1824,"o":"a_0720"},{"a":58134,"t":"addr","b":[72,7],"oa":1864,"o":"a_0748"},{"a":58136,"t":"addr","b":[112,7],"oa":1904,"o":"a_0770"},{"a":58138,"t":"addr","b":[152,7],"oa":1944,"o":"a_0798"},{"a":58140,"t":"addr","b":[192,7],"oa":1984,"o":"a_07C0"},{"a":58142,"l":"petscii_to_screen","c":"Turns the PETSCII character in $16 into a screen code in place: codes below $80 keep their low six bits ($41 'A' becomes 1), codes from $80 keep the low six with $40 added.","t":"code","b":[165,22],"m":"lda","oa":22,"o":"put_charcode","x":[57921]},{"a":58144,"t":"code","b":[48,5],"m":"bmi","oa":58151,"o":"b_E327"},{"a":58146,"t":"code","b":[41,63],"m":"and","o":"#$3F"},{"a":58148,"l":"b_E324","t":"code","b":[133,22],"m":"sta","oa":22,"o":"put_charcode","x":[58155]},{"a":58150,"t":"code","b":[96],"m":"rts"},{"a":58151,"l":"b_E327","t":"code","b":[41,63],"m":"and","o":"#$3F","x":[58144]},{"a":58153,"t":"code","b":[9,64],"m":"ora","o":"#$40"},{"a":58155,"t":"code","b":[208,247],"m":"bne","oa":58148,"o":"b_E324"},{"a":58157,"l":"set_cursor","c":"Compiled procedure set_cursor(column, row): stores its two arguments in $17 and $18, the cursor put_char writes at.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58277,60301,60425,60629,60671,61143]},{"a":58160,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":58162,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":58164,"t":"code","b":[133,23],"m":"sta","oa":23,"o":"cursor_col"},{"a":58166,"t":"code","b":[200],"m":"iny"},{"a":58167,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":58169,"t":"code","b":[133,24],"m":"sta","oa":24,"o":"cursor_row"},{"a":58171,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":58174,"l":"set_colour","c":"Compiled procedure set_colour(colour): stores its argument in $13, the colour put_char writes.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58658,61127]},{"a":58177,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":58179,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":58181,"t":"code","b":[133,19],"m":"sta","oa":19,"o":"text_colour"},{"a":58183,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":58186,"l":"main","c":"The main program. Sets the game's constant tables (init_tables), then loops for ever: the title and attract mode until F1 or a paddle button (title_screen), the player-count menu (player_menu), then a game: playing flag $0213 on, sound on (machine-code routine 20), both scores zeroed, the playfield and five jumps each (new_game); then one jump after another (new_jump, then fly until the clown is down) until both players' jumps ($0221 or $0222) are zero; then \"GAME OVER\" at column 15, row 15, a pause of 255 ticks, and the high score taken from either player's score that beats it.","t":"code","b":[160,68],"m":"ldy","o":"#$44","x":[57353]},{"a":58188,"t":"code","b":[32,68,228],"m":"jsr","oa":58436,"o":"init_tables"},{"a":58191,"l":"j_E34F","t":"code","b":[160,68],"m":"ldy","o":"#$44","x":[58430]},{"a":58193,"t":"code","b":[32,173,236],"m":"jsr","oa":60589,"o":"title_screen"},{"a":58196,"t":"code","b":[160,68],"m":"ldy","o":"#$44"},{"a":58198,"t":"code","b":[32,188,238],"m":"jsr","oa":61116,"o":"player_menu"},{"a":58201,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":58203,"t":"code","b":[141,19,2],"m":"sta","oa":531,"o":"playing"},{"a":58206,"t":"code","b":[169,20],"m":"lda","o":"#$14"},{"a":58208,"t":"code","b":[160,70],"m":"ldy","o":"#$46"},{"a":58210,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58212,"t":"code","b":[160,68],"m":"ldy","o":"#$44"},{"a":58214,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":58217,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58219,"t":"code","b":[141,30,2],"m":"sta","oa":542,"o":"a_021E"},{"a":58222,"t":"code","b":[141,32,2],"m":"sta","oa":544,"o":"a_0220"},{"a":58225,"t":"code","b":[141,29,2],"m":"sta","oa":541,"o":"score_hi"},{"a":58228,"t":"code","b":[141,31,2],"m":"sta","oa":543,"o":"a_021F"},{"a":58231,"t":"code","b":[160,68],"m":"ldy","o":"#$44"},{"a":58233,"t":"code","b":[32,202,228],"m":"jsr","oa":58570,"o":"new_game"},{"a":58236,"l":"main_jump_loop","c":"One jump of a game: new_jump puts a clown on a platform, fly runs it until it is down; the loop repeats while either player has jumps left.","t":"code","b":[160,68],"m":"ldy","o":"#$44","x":[58262]},{"a":58238,"t":"code","b":[32,90,229],"m":"jsr","oa":58714,"o":"new_jump"},{"a":58241,"t":"code","b":[160,68],"m":"ldy","o":"#$44"},{"a":58243,"t":"code","b":[32,77,235],"m":"jsr","oa":60237,"o":"fly"},{"a":58246,"t":"code","b":[173,33,2],"m":"lda","oa":545,"o":"jumps"},{"a":58249,"t":"code","b":[13,34,2],"m":"ora","oa":546,"o":"a_0222"},{"a":58252,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":58254,"t":"code","b":[240,4],"m":"beq","oa":58260,"o":"b_E394"},{"a":58256,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58258,"t":"code","b":[240,2],"m":"beq","oa":58262,"o":"b_E396"},{"a":58260,"l":"b_E394","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[58254]},{"a":58262,"l":"b_E396","t":"code","b":[240,228],"m":"beq","oa":58236,"o":"main_jump_loop","x":[58258]},{"a":58264,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":58266,"t":"code","b":[160,70],"m":"ldy","o":"#$46"},{"a":58268,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58270,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":58272,"t":"code","b":[200],"m":"iny"},{"a":58273,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58275,"t":"code","b":[160,68],"m":"ldy","o":"#$44"},{"a":58277,"t":"code","b":[32,45,227],"m":"jsr","oa":58157,"o":"set_cursor"},{"a":58280,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":58282,"t":"code","b":[133,8],"m":"sta","oa":8,"o":"out_device"},{"a":58284,"t":"code","b":[32,245,224],"m":"jsr","oa":57589,"o":"print_inline"},{"a":58287,"l":"str_game_over","c":"Inline argument of print_inline: \"GAME OVER\", zero terminator; printed at column 15, row 15 when both players' jumps are gone.","t":"byte","b":[71,65,77,69,32,79,86,69]},{"a":58295,"t":"byte","b":[82,0]},{"a":58297,"l":"after_game_over","c":"main resumes here after printing \"GAME OVER\": the pause of 255 ticks (delay), then the high score.","t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":58299,"t":"code","b":[160,70],"m":"ldy","o":"#$46"},{"a":58301,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58303,"t":"code","b":[160,68],"m":"ldy","o":"#$44"},{"a":58305,"t":"code","b":[32,144,238],"m":"jsr","oa":61072,"o":"delay"},{"a":58308,"l":"main_high_score","c":"After a game: player 1's 16-bit score, then player 2's, replaces the high score ($0211/$0212) when it is greater (an equal score does not). Then back to the title (main at $E34F, skipping init_tables).","t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58310,"t":"code","b":[141,20,2],"m":"sta","oa":532,"o":"temp_a"},{"a":58313,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":58315,"t":"code","b":[72],"m":"pha"},{"a":58316,"l":"j_E3CC","t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a","x":[58422]},{"a":58319,"t":"code","b":[168],"m":"tay"},{"a":58320,"t":"code","b":[185,29,2],"m":"lda","oa":541,"o":"score_hi,y"},{"a":58323,"t":"code","b":[205,17,2],"m":"cmp","oa":529,"o":"high_score"},{"a":58326,"t":"code","b":[240,4],"m":"beq","oa":58332,"o":"b_E3DC"},{"a":58328,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58330,"t":"code","b":[240,2],"m":"beq","oa":58334,"o":"b_E3DE"},{"a":58332,"l":"b_E3DC","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[58326]},{"a":58334,"l":"b_E3DE","t":"code","b":[72],"m":"pha","x":[58330]},{"a":58335,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":58338,"t":"code","b":[168],"m":"tay"},{"a":58339,"t":"code","b":[185,31,2],"m":"lda","oa":543,"o":"a_021F,y"},{"a":58342,"t":"code","b":[24],"m":"clc"},{"a":58343,"t":"code","b":[237,18,2],"m":"sbc","oa":530,"o":"a_0212"},{"a":58346,"t":"code","b":[176,4],"m":"bcs","oa":58352,"o":"b_E3F0"},{"a":58348,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58350,"t":"code","b":[240,2],"m":"beq","oa":58354,"o":"b_E3F2"},{"a":58352,"l":"b_E3F0","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[58346]},{"a":58354,"l":"b_E3F2","t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp","x":[58350]},{"a":58356,"t":"code","b":[104],"m":"pla"},{"a":58357,"t":"code","b":[37,12],"m":"and","oa":12,"o":"math_tmp"},{"a":58359,"t":"code","b":[72],"m":"pha"},{"a":58360,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":58363,"t":"code","b":[168],"m":"tay"},{"a":58364,"t":"code","b":[185,29,2],"m":"lda","oa":541,"o":"score_hi,y"},{"a":58367,"t":"code","b":[24],"m":"clc"},{"a":58368,"t":"code","b":[237,17,2],"m":"sbc","oa":529,"o":"high_score"},{"a":58371,"t":"code","b":[176,4],"m":"bcs","oa":58377,"o":"b_E409"},{"a":58373,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58375,"t":"code","b":[240,2],"m":"beq","oa":58379,"o":"b_E40B"},{"a":58377,"l":"b_E409","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[58371]},{"a":58379,"l":"b_E40B","t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp","x":[58375]},{"a":58381,"t":"code","b":[104],"m":"pla"},{"a":58382,"t":"code","b":[5,12],"m":"ora","oa":12,"o":"math_tmp"},{"a":58384,"t":"code","b":[208,3],"m":"bne","oa":58389,"o":"b_E415"},{"a":58386,"t":"code","b":[76,41,228],"m":"jmp","oa":58409,"o":"j_E429"},{"a":58389,"l":"b_E415","t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a","x":[58384]},{"a":58392,"t":"code","b":[168],"m":"tay"},{"a":58393,"t":"code","b":[185,29,2],"m":"lda","oa":541,"o":"score_hi,y"},{"a":58396,"t":"code","b":[141,17,2],"m":"sta","oa":529,"o":"high_score"},{"a":58399,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":58402,"t":"code","b":[168],"m":"tay"},{"a":58403,"t":"code","b":[185,31,2],"m":"lda","oa":543,"o":"a_021F,y"},{"a":58406,"t":"code","b":[141,18,2],"m":"sta","oa":530,"o":"a_0212"},{"a":58409,"l":"j_E429","t":"code","b":[186],"m":"tsx","x":[58386]},{"a":58410,"t":"code","b":[232],"m":"inx"},{"a":58411,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":58414,"t":"code","b":[221,0,1],"m":"cmp","oa":256,"o":"f_0100,x"},{"a":58417,"t":"code","b":[176,6],"m":"bcs","oa":58425,"o":"b_E439"},{"a":58419,"t":"code","b":[238,20,2],"m":"inc","oa":532,"o":"temp_a"},{"a":58422,"t":"code","b":[76,204,227],"m":"jmp","oa":58316,"o":"j_E3CC"},{"a":58425,"l":"b_E439","t":"code","b":[154],"m":"txs","x":[58417]},{"a":58426,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58428,"t":"code","b":[208,3],"m":"bne","oa":58433,"o":"b_E441"},{"a":58430,"c":"The end of the main program: a branch that is never taken (LDA #0 / BNE) skips the JMP $7000 that would end it, and the loop goes back to the title screen.","t":"code","b":[76,79,227],"m":"jmp","oa":58191,"o":"j_E34F"},{"a":58433,"l":"b_E441","t":"code","b":[76,0,112],"m":"jmp","oa":28672,"o":"j_7000","x":[58428]},{"a":58436,"l":"init_tables","c":"Fills the game's constant tables in the global frame, once at power-on. Per landing zone 0-3: the launch speed across, $0229-$022C high and $022D-$0230 low (2.5, 1.5, 1.75 and -2 pixels a tick; $0230 is left 0), and the base launch speed upward, $0231-$0234 high and $0235-$0238 low (6, 6.375, 6.16, 5.5). Per speed level 0-2: gravity low bytes $0226-$0228 = 3, 11, 27 (256ths of a pixel a tick, per tick; the high bytes $0223-$0225 are left 0), the level after each, $0239-$023B = 1, 2, 1, and the balloons to pop before leaving it, $023C-$023E = 3, 10, 50. The bonus for clearing each row, $0241-$0243 = 100, 50, 20 (in tens of points: 1000, 500, 200).","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58188]},{"a":58439,"t":"code","b":[169,128],"m":"lda","o":"#$80"},{"a":58441,"t":"code","b":[141,45,2],"m":"sta","oa":557,"o":"a_022D"},{"a":58444,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":58446,"t":"code","b":[141,41,2],"m":"sta","oa":553,"o":"zone_dx"},{"a":58449,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":58451,"t":"code","b":[141,49,2],"m":"sta","oa":561,"o":"zone_dy"},{"a":58454,"t":"code","b":[169,128],"m":"lda","o":"#$80"},{"a":58456,"t":"code","b":[141,46,2],"m":"sta","oa":558,"o":"a_022E"},{"a":58459,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":58461,"t":"code","b":[141,42,2],"m":"sta","oa":554,"o":"a_022A"},{"a":58464,"t":"code","b":[169,96],"m":"lda","o":"#$60"},{"a":58466,"t":"code","b":[141,54,2],"m":"sta","oa":566,"o":"a_0236"},{"a":58469,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":58471,"t":"code","b":[141,50,2],"m":"sta","oa":562,"o":"a_0232"},{"a":58474,"t":"code","b":[169,192],"m":"lda","o":"#$C0"},{"a":58476,"t":"code","b":[141,47,2],"m":"sta","oa":559,"o":"a_022F"},{"a":58479,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":58481,"t":"code","b":[141,43,2],"m":"sta","oa":555,"o":"a_022B"},{"a":58484,"t":"code","b":[169,40],"m":"lda","o":"#$28"},{"a":58486,"t":"code","b":[141,55,2],"m":"sta","oa":567,"o":"a_0237"},{"a":58489,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":58491,"t":"code","b":[141,51,2],"m":"sta","oa":563,"o":"a_0233"},{"a":58494,"t":"code","b":[169,254],"m":"lda","o":"#$FE"},{"a":58496,"t":"code","b":[141,44,2],"m":"sta","oa":556,"o":"a_022C"},{"a":58499,"t":"code","b":[169,128],"m":"lda","o":"#$80"},{"a":58501,"t":"code","b":[141,56,2],"m":"sta","oa":568,"o":"a_0238"},{"a":58504,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":58506,"t":"code","b":[141,52,2],"m":"sta","oa":564,"o":"a_0234"},{"a":58509,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":58511,"t":"code","b":[141,38,2],"m":"sta","oa":550,"o":"a_0226"},{"a":58514,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":58516,"t":"code","b":[141,39,2],"m":"sta","oa":551,"o":"a_0227"},{"a":58519,"t":"code","b":[169,27],"m":"lda","o":"#$1B"},{"a":58521,"t":"code","b":[141,40,2],"m":"sta","oa":552,"o":"a_0228"},{"a":58524,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":58526,"t":"code","b":[141,60,2],"m":"sta","oa":572,"o":"a_023C"},{"a":58529,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":58531,"t":"code","b":[141,61,2],"m":"sta","oa":573,"o":"a_023D"},{"a":58534,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":58536,"t":"code","b":[141,62,2],"m":"sta","oa":574,"o":"a_023E"},{"a":58539,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":58541,"t":"code","b":[141,59,2],"m":"sta","oa":571,"o":"a_023B"},{"a":58544,"t":"code","b":[141,57,2],"m":"sta","oa":569,"o":"next_level"},{"a":58547,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":58549,"t":"code","b":[141,58,2],"m":"sta","oa":570,"o":"a_023A"},{"a":58552,"t":"code","b":[169,100],"m":"lda","o":"#$64"},{"a":58554,"t":"code","b":[141,65,2],"m":"sta","oa":577,"o":"row_bonus"},{"a":58557,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":58559,"t":"code","b":[141,66,2],"m":"sta","oa":578,"o":"a_0242"},{"a":58562,"t":"code","b":[169,20],"m":"lda","o":"#$14"},{"a":58564,"t":"code","b":[141,67,2],"m":"sta","oa":579,"o":"a_0243"},{"a":58567,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":58570,"l":"new_game","c":"Sets up the playfield and both players for a game (or the attract mode when $0213 is 0). Draws the walls, platforms, status line and balloons (machine-code routine 7, with A = $0213); gives player 2 (only when $0210 says two players) and then player 1 five jumps each and sets their bonus flags ($023F/$0240 = $FF), showing each score in a game (show_score prints nothing in the attract mode); leaves player 1 ($020D = 0) to start, the see-saw tilted to the left ($020E = 0) and white text. In a game, also shows the clown in its landing pose in the middle (routine 14, frame 4 at 155, 150) and plays tune 0, the start tune (routine 15).","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58233,60613]},{"a":58573,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":58575,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":58577,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58579,"t":"code","b":[173,19,2],"m":"lda","oa":531,"o":"playing"},{"a":58582,"t":"code","b":[200],"m":"iny"},{"a":58583,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58585,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":58587,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":58590,"t":"code","b":[173,16,2],"m":"lda","oa":528,"o":"two_players"},{"a":58593,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":58595,"t":"code","b":[141,13,2],"m":"sta","oa":525,"o":"player"},{"a":58598,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58600,"t":"code","b":[72],"m":"pha"},{"a":58601,"l":"j_E4E9","t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player","x":[58642]},{"a":58604,"t":"code","b":[72],"m":"pha"},{"a":58605,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":58607,"t":"code","b":[170],"m":"tax"},{"a":58608,"t":"code","b":[104],"m":"pla"},{"a":58609,"t":"code","b":[168],"m":"tay"},{"a":58610,"t":"code","b":[138],"m":"txa"},{"a":58611,"t":"code","b":[153,33,2],"m":"sta","oa":545,"o":"jumps,y"},{"a":58614,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":58617,"t":"code","b":[72],"m":"pha"},{"a":58618,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":58620,"t":"code","b":[170],"m":"tax"},{"a":58621,"t":"code","b":[104],"m":"pla"},{"a":58622,"t":"code","b":[168],"m":"tay"},{"a":58623,"t":"code","b":[138],"m":"txa"},{"a":58624,"t":"code","b":[153,63,2],"m":"sta","oa":575,"o":"bonus_flag,y"},{"a":58627,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":58629,"t":"code","b":[32,103,236],"m":"jsr","oa":60519,"o":"show_score"},{"a":58632,"t":"code","b":[104],"m":"pla"},{"a":58633,"t":"code","b":[205,13,2],"m":"cmp","oa":525,"o":"player"},{"a":58636,"t":"code","b":[176,7],"m":"bcs","oa":58645,"o":"b_E515"},{"a":58638,"t":"code","b":[72],"m":"pha"},{"a":58639,"t":"code","b":[206,13,2],"m":"dec","oa":525,"o":"player"},{"a":58642,"t":"code","b":[76,233,228],"m":"jmp","oa":58601,"o":"j_E4E9"},{"a":58645,"l":"b_E515","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[58636]},{"a":58647,"t":"code","b":[141,14,2],"m":"sta","oa":526,"o":"tilt"},{"a":58650,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":58652,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":58654,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58656,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":58658,"t":"code","b":[32,62,227],"m":"jsr","oa":58174,"o":"set_colour"},{"a":58661,"t":"code","b":[173,19,2],"m":"lda","oa":531,"o":"playing"},{"a":58664,"t":"code","b":[208,3],"m":"bne","oa":58669,"o":"b_E52D"},{"a":58666,"t":"code","b":[76,87,229],"m":"jmp","oa":58711,"o":"j_E557"},{"a":58669,"l":"b_E52D","t":"code","b":[169,14],"m":"lda","o":"#$0E","x":[58664]},{"a":58671,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":58673,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58675,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":58677,"t":"code","b":[200],"m":"iny"},{"a":58678,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58680,"t":"code","b":[169,155],"m":"lda","o":"#$9B"},{"a":58682,"t":"code","b":[200],"m":"iny"},{"a":58683,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58685,"t":"code","b":[169,150],"m":"lda","o":"#$96"},{"a":58687,"t":"code","b":[200],"m":"iny"},{"a":58688,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58690,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":58692,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":58695,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":58697,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":58699,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58701,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58703,"t":"code","b":[200],"m":"iny"},{"a":58704,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58706,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":58708,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":58711,"l":"j_E557","t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave","x":[58666]},{"a":58714,"l":"new_jump","c":"Puts the current player's clown on a platform and plays its run and leap. Clears the jump's state (speed level $0209, bounce count $021B, fall flag $0216, speeds); picks a platform at random: x = 16 + 7 x random(2), so 23 (with the ninth bit set, 279: the right-hand platforms) or 30 (the left), and y = 81 + 32 x random(2), 113 or 145 (upper or lower); starts with 60/256 of a pixel a tick down and across, turned towards the middle on the right. Shows the score, reads the see-saw, sets the pops needed for the first speed-up ($020A = 3 - random(3)) and the first level's gravity. In a two-player game, when the player's bonus flag is set (no bonus play pending), it swaps in this player's balloons (routine 6). Then the clown runs and leaps from the platform (routine 8); in a game it shows \"PLAYER n\" and, when the bonus flag is clear, \"BONUS PLAY\" (in the attract mode, no text). The bonus flag is then set again.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58238,60747]},{"a":58717,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58719,"t":"code","b":[141,27,2],"m":"sta","oa":539,"o":"bounces"},{"a":58722,"t":"code","b":[141,7,2],"m":"sta","oa":519,"o":"clown_dy"},{"a":58725,"t":"code","b":[141,5,2],"m":"sta","oa":517,"o":"clown_dx"},{"a":58728,"t":"code","b":[141,4,2],"m":"sta","oa":516,"o":"a_0204"},{"a":58731,"t":"code","b":[141,2,2],"m":"sta","oa":514,"o":"a_0202"},{"a":58734,"t":"code","b":[141,22,2],"m":"sta","oa":534,"o":"clown_down"},{"a":58737,"t":"code","b":[141,9,2],"m":"sta","oa":521,"o":"speed_level"},{"a":58740,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":58742,"t":"code","b":[32,58,224],"m":"jsr","oa":57402,"o":"random"},{"a":58745,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":58747,"t":"code","b":[32,99,224],"m":"jsr","oa":57443,"o":"mul8"},{"a":58750,"t":"code","b":[24],"m":"clc"},{"a":58751,"t":"code","b":[105,16],"m":"adc","o":"#$10"},{"a":58753,"t":"code","b":[141,1,2],"m":"sta","oa":513,"o":"a_0201"},{"a":58756,"t":"code","b":[173,1,2],"m":"lda","oa":513,"o":"a_0201"},{"a":58759,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":58761,"t":"code","b":[141,0,2],"m":"sta","oa":512,"o":"clown_x_hi"},{"a":58764,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":58766,"t":"code","b":[32,58,224],"m":"jsr","oa":57402,"o":"random"},{"a":58769,"t":"code","b":[162,32],"m":"ldx","o":"#$20"},{"a":58771,"t":"code","b":[32,99,224],"m":"jsr","oa":57443,"o":"mul8"},{"a":58774,"t":"code","b":[24],"m":"clc"},{"a":58775,"t":"code","b":[105,81],"m":"adc","o":"#$51"},{"a":58777,"t":"code","b":[141,3,2],"m":"sta","oa":515,"o":"clown_y"},{"a":58780,"t":"code","b":[169,60],"m":"lda","o":"#$3C"},{"a":58782,"t":"code","b":[141,8,2],"m":"sta","oa":520,"o":"a_0208"},{"a":58785,"t":"code","b":[141,6,2],"m":"sta","oa":518,"o":"a_0206"},{"a":58788,"t":"code","b":[173,0,2],"m":"lda","oa":512,"o":"clown_x_hi"},{"a":58791,"t":"code","b":[208,3],"m":"bne","oa":58796,"o":"b_E5AC"},{"a":58793,"t":"code","b":[76,177,229],"m":"jmp","oa":58801,"o":"j_E5B1"},{"a":58796,"l":"b_E5AC","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[58791]},{"a":58798,"t":"code","b":[32,160,239],"m":"jsr","oa":61344,"o":"turn_left"},{"a":58801,"l":"j_E5B1","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[58793]},{"a":58803,"t":"code","b":[32,103,236],"m":"jsr","oa":60519,"o":"show_score"},{"a":58806,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":58808,"t":"code","b":[32,60,236],"m":"jsr","oa":60476,"o":"update_seesaw"},{"a":58811,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":58813,"t":"code","b":[32,58,224],"m":"jsr","oa":57402,"o":"random"},{"a":58816,"t":"code","b":[141,28,2],"m":"sta","oa":540,"o":"pops_random"},{"a":58819,"t":"code","b":[173,60,2],"m":"lda","oa":572,"o":"a_023C"},{"a":58822,"t":"code","b":[56],"m":"sec"},{"a":58823,"t":"code","b":[237,28,2],"m":"sbc","oa":540,"o":"pops_random"},{"a":58826,"t":"code","b":[141,10,2],"m":"sta","oa":522,"o":"pops_to_speedup"},{"a":58829,"t":"code","b":[173,38,2],"m":"lda","oa":550,"o":"a_0226"},{"a":58832,"t":"code","b":[141,26,2],"m":"sta","oa":538,"o":"a_021A"},{"a":58835,"t":"code","b":[173,35,2],"m":"lda","oa":547,"o":"level_gravity"},{"a":58838,"t":"code","b":[141,25,2],"m":"sta","oa":537,"o":"gravity"},{"a":58841,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":58844,"t":"code","b":[168],"m":"tay"},{"a":58845,"t":"code","b":[185,63,2],"m":"lda","oa":575,"o":"bonus_flag,y"},{"a":58848,"t":"code","b":[45,16,2],"m":"and","oa":528,"o":"two_players"},{"a":58851,"t":"code","b":[45,19,2],"m":"and","oa":531,"o":"playing"},{"a":58854,"t":"code","b":[208,3],"m":"bne","oa":58859,"o":"b_E5EB"},{"a":58856,"t":"code","b":[76,246,229],"m":"jmp","oa":58870,"o":"j_E5F6"},{"a":58859,"l":"b_E5EB","t":"code","b":[169,6],"m":"lda","o":"#$06","x":[58854]},{"a":58861,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":58863,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58865,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":58867,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":58870,"l":"j_E5F6","t":"code","b":[169,8],"m":"lda","o":"#$08","x":[58856]},{"a":58872,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":58874,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58876,"t":"code","b":[173,19,2],"m":"lda","oa":531,"o":"playing"},{"a":58879,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":58881,"t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":58883,"t":"code","b":[72],"m":"pha"},{"a":58884,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":58887,"t":"code","b":[168],"m":"tay"},{"a":58888,"t":"code","b":[185,63,2],"m":"lda","oa":575,"o":"bonus_flag,y"},{"a":58891,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":58893,"t":"code","b":[41,64],"m":"and","o":"#$40"},{"a":58895,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":58897,"t":"code","b":[104],"m":"pla"},{"a":58898,"t":"code","b":[5,12],"m":"ora","oa":12,"o":"math_tmp"},{"a":58900,"t":"code","b":[13,13,2],"m":"ora","oa":525,"o":"player"},{"a":58903,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":58905,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58907,"t":"code","b":[173,0,2],"m":"lda","oa":512,"o":"clown_x_hi"},{"a":58910,"t":"code","b":[200],"m":"iny"},{"a":58911,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58913,"t":"code","b":[173,3,2],"m":"lda","oa":515,"o":"clown_y"},{"a":58916,"t":"code","b":[200],"m":"iny"},{"a":58917,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":58919,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":58921,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":58924,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":58927,"t":"code","b":[72],"m":"pha"},{"a":58928,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":58930,"t":"code","b":[170],"m":"tax"},{"a":58931,"t":"code","b":[104],"m":"pla"},{"a":58932,"t":"code","b":[168],"m":"tay"},{"a":58933,"t":"code","b":[138],"m":"txa"},{"a":58934,"t":"code","b":[153,63,2],"m":"sta","oa":575,"o":"bonus_flag,y"},{"a":58937,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":58940,"l":"move_clown","c":"One tick of the flying clown's physics. Adds the speed across (signed, $0205/$0206) to the 24-bit x ($0200-$0202) and the speed down ($0207/$0208) to y ($0203/$0204), records the direction in $020B (moving right) and $020C (falling), and adds gravity ($0219/$021A) to the speed down. A clown falling at y 176 or below has reached the see-saw's height: if its x lies in the 24 pixels at the raised end (from 21 pixels left of the see-saw's x, or 6 to its right when tilted), it lands, and the see-saw throws the other clown (launch); otherwise once y passes 184 it is down ($0216 = $FF). While it is up, routine 0 moves and draws it and reports what it touched, and the collision handling follows (collide).","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[60269,60939]},{"a":58943,"t":"code","b":[173,2,2],"m":"lda","oa":514,"o":"a_0202"},{"a":58946,"t":"code","b":[24],"m":"clc"},{"a":58947,"t":"code","b":[109,6,2],"m":"adc","oa":518,"o":"a_0206"},{"a":58950,"t":"code","b":[141,2,2],"m":"sta","oa":514,"o":"a_0202"},{"a":58953,"t":"code","b":[173,1,2],"m":"lda","oa":513,"o":"a_0201"},{"a":58956,"t":"code","b":[109,5,2],"m":"adc","oa":517,"o":"clown_dx"},{"a":58959,"t":"code","b":[141,1,2],"m":"sta","oa":513,"o":"a_0201"},{"a":58962,"t":"code","b":[173,0,2],"m":"lda","oa":512,"o":"clown_x_hi"},{"a":58965,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":58967,"t":"code","b":[141,0,2],"m":"sta","oa":512,"o":"clown_x_hi"},{"a":58970,"t":"code","b":[173,5,2],"m":"lda","oa":517,"o":"clown_dx"},{"a":58973,"t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":58975,"t":"code","b":[144,4],"m":"bcc","oa":58981,"o":"b_E665"},{"a":58977,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":58979,"t":"code","b":[240,2],"m":"beq","oa":58983,"o":"b_E667"},{"a":58981,"l":"b_E665","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[58975]},{"a":58983,"l":"b_E667","t":"code","b":[141,11,2],"m":"sta","oa":523,"o":"moving_right","x":[58979]},{"a":58986,"t":"code","b":[173,11,2],"m":"lda","oa":523,"o":"moving_right"},{"a":58989,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":58991,"t":"code","b":[24],"m":"clc"},{"a":58992,"t":"code","b":[109,0,2],"m":"adc","oa":512,"o":"clown_x_hi"},{"a":58995,"t":"code","b":[141,0,2],"m":"sta","oa":512,"o":"clown_x_hi"},{"a":58998,"t":"code","b":[173,4,2],"m":"lda","oa":516,"o":"a_0204"},{"a":59001,"t":"code","b":[24],"m":"clc"},{"a":59002,"t":"code","b":[109,8,2],"m":"adc","oa":520,"o":"a_0208"},{"a":59005,"t":"code","b":[141,4,2],"m":"sta","oa":516,"o":"a_0204"},{"a":59008,"t":"code","b":[173,3,2],"m":"lda","oa":515,"o":"clown_y"},{"a":59011,"t":"code","b":[109,7,2],"m":"adc","oa":519,"o":"clown_dy"},{"a":59014,"t":"code","b":[141,3,2],"m":"sta","oa":515,"o":"clown_y"},{"a":59017,"t":"code","b":[173,7,2],"m":"lda","oa":519,"o":"clown_dy"},{"a":59020,"t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":59022,"t":"code","b":[144,4],"m":"bcc","oa":59028,"o":"b_E694"},{"a":59024,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59026,"t":"code","b":[240,2],"m":"beq","oa":59030,"o":"b_E696"},{"a":59028,"l":"b_E694","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59022]},{"a":59030,"l":"b_E696","t":"code","b":[141,12,2],"m":"sta","oa":524,"o":"falling","x":[59026]},{"a":59033,"t":"code","b":[173,8,2],"m":"lda","oa":520,"o":"a_0208"},{"a":59036,"t":"code","b":[24],"m":"clc"},{"a":59037,"t":"code","b":[109,26,2],"m":"adc","oa":538,"o":"a_021A"},{"a":59040,"t":"code","b":[141,8,2],"m":"sta","oa":520,"o":"a_0208"},{"a":59043,"t":"code","b":[173,7,2],"m":"lda","oa":519,"o":"clown_dy"},{"a":59046,"t":"code","b":[109,25,2],"m":"adc","oa":537,"o":"gravity"},{"a":59049,"t":"code","b":[141,7,2],"m":"sta","oa":519,"o":"clown_dy"},{"a":59052,"t":"code","b":[173,3,2],"m":"lda","oa":515,"o":"clown_y"},{"a":59055,"t":"code","b":[24],"m":"clc"},{"a":59056,"t":"code","b":[233,175],"m":"sbc","o":"#$AF"},{"a":59058,"t":"code","b":[176,4],"m":"bcs","oa":59064,"o":"b_E6B8"},{"a":59060,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59062,"t":"code","b":[240,2],"m":"beq","oa":59066,"o":"b_E6BA"},{"a":59064,"l":"b_E6B8","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59058]},{"a":59066,"l":"b_E6BA","t":"code","b":[45,12,2],"m":"and","oa":524,"o":"falling","x":[59062]},{"a":59069,"t":"code","b":[208,3],"m":"bne","oa":59074,"o":"launch"},{"a":59071,"t":"code","b":[76,169,232],"m":"jmp","oa":59561,"o":"draw_and_collide"},{"a":59074,"l":"launch","c":"The clown has landed on the see-saw's raised end. The landing zone, 0 to 3, is the offset along the 24 pixels divided by 6 (counted from the other end when the see-saw tilts the other way). The other clown is thrown: speed across = zone's table entry plus random(45)/256; speed up = the zone's base ($0231-$0238) plus k x (15 + random(11)) 256ths, where k = the pops made towards the next speed-up plus the bounces at this level, plus 3 at level 0 (only bit 0 of the product's high byte is kept), then negated so it points up; both halved twice at speed level 0 and once at level 1; the upward speed is capped at 6 pixels a tick. It starts from the see-saw's other end (37 pixels along when tilted) at y 176, moving away from the end it came from; the see-saw tilts the other way, the bounce scores 10 points (1 in the score's tens), the bounce count $021B goes up, gravity is reset to the level's, and the bounce sound plays (routine 10).","t":"code","b":[173,1,2],"m":"lda","oa":513,"o":"a_0201","x":[59069]},{"a":59077,"t":"code","b":[56],"m":"sec"},{"a":59078,"t":"code","b":[237,15,2],"m":"sbc","oa":527,"o":"seesaw_x"},{"a":59081,"t":"code","b":[141,20,2],"m":"sta","oa":532,"o":"temp_a"},{"a":59084,"t":"code","b":[173,0,2],"m":"lda","oa":512,"o":"clown_x_hi"},{"a":59087,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":59089,"t":"code","b":[141,23,2],"m":"sta","oa":535,"o":"temp_b"},{"a":59092,"t":"code","b":[173,14,2],"m":"lda","oa":526,"o":"tilt"},{"a":59095,"t":"code","b":[208,3],"m":"bne","oa":59100,"o":"b_E6DC"},{"a":59097,"t":"code","b":[76,240,230],"m":"jmp","oa":59120,"o":"j_E6F0"},{"a":59100,"l":"b_E6DC","t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a","x":[59095]},{"a":59103,"t":"code","b":[24],"m":"clc"},{"a":59104,"t":"code","b":[105,6],"m":"adc","o":"#$06"},{"a":59106,"t":"code","b":[141,20,2],"m":"sta","oa":532,"o":"temp_a"},{"a":59109,"t":"code","b":[173,23,2],"m":"lda","oa":535,"o":"temp_b"},{"a":59112,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":59114,"t":"code","b":[141,23,2],"m":"sta","oa":535,"o":"temp_b"},{"a":59117,"t":"code","b":[76,1,231],"m":"jmp","oa":59137,"o":"j_E701"},{"a":59120,"l":"j_E6F0","t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a","x":[59097]},{"a":59123,"t":"code","b":[56],"m":"sec"},{"a":59124,"t":"code","b":[233,21],"m":"sbc","o":"#$15"},{"a":59126,"t":"code","b":[141,20,2],"m":"sta","oa":532,"o":"temp_a"},{"a":59129,"t":"code","b":[173,23,2],"m":"lda","oa":535,"o":"temp_b"},{"a":59132,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":59134,"t":"code","b":[141,23,2],"m":"sta","oa":535,"o":"temp_b"},{"a":59137,"l":"j_E701","t":"code","b":[173,23,2],"m":"lda","oa":535,"o":"temp_b","x":[59117]},{"a":59140,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":59142,"t":"code","b":[240,4],"m":"beq","oa":59148,"o":"b_E70C"},{"a":59144,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59146,"t":"code","b":[240,2],"m":"beq","oa":59150,"o":"b_E70E"},{"a":59148,"l":"b_E70C","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59142]},{"a":59150,"l":"b_E70E","t":"code","b":[72],"m":"pha","x":[59146]},{"a":59151,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":59154,"t":"code","b":[201,24],"m":"cmp","o":"#$18"},{"a":59156,"t":"code","b":[144,4],"m":"bcc","oa":59162,"o":"b_E71A"},{"a":59158,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59160,"t":"code","b":[240,2],"m":"beq","oa":59164,"o":"b_E71C"},{"a":59162,"l":"b_E71A","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59156]},{"a":59164,"l":"b_E71C","t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp","x":[59160]},{"a":59166,"t":"code","b":[104],"m":"pla"},{"a":59167,"t":"code","b":[37,12],"m":"and","oa":12,"o":"math_tmp"},{"a":59169,"t":"code","b":[208,3],"m":"bne","oa":59174,"o":"b_E726"},{"a":59171,"t":"code","b":[76,152,232],"m":"jmp","oa":59544,"o":"check_fallen"},{"a":59174,"l":"b_E726","t":"code","b":[173,14,2],"m":"lda","oa":526,"o":"tilt","x":[59169]},{"a":59177,"t":"code","b":[208,3],"m":"bne","oa":59182,"o":"b_E72E"},{"a":59179,"t":"code","b":[76,60,231],"m":"jmp","oa":59196,"o":"j_E73C"},{"a":59182,"l":"b_E72E","t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a","x":[59177]},{"a":59185,"t":"code","b":[162,6],"m":"ldx","o":"#$06"},{"a":59187,"t":"code","b":[32,132,224],"m":"jsr","oa":57476,"o":"div8"},{"a":59190,"t":"code","b":[141,20,2],"m":"sta","oa":532,"o":"temp_a"},{"a":59193,"t":"code","b":[76,80,231],"m":"jmp","oa":59216,"o":"j_E750"},{"a":59196,"l":"j_E73C","t":"code","b":[169,3],"m":"lda","o":"#$03","x":[59179]},{"a":59198,"t":"code","b":[72],"m":"pha"},{"a":59199,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":59202,"t":"code","b":[162,6],"m":"ldx","o":"#$06"},{"a":59204,"t":"code","b":[32,132,224],"m":"jsr","oa":57476,"o":"div8"},{"a":59207,"t":"code","b":[56],"m":"sec"},{"a":59208,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59210,"t":"code","b":[104],"m":"pla"},{"a":59211,"t":"code","b":[229,12],"m":"sbc","oa":12,"o":"math_tmp"},{"a":59213,"t":"code","b":[141,20,2],"m":"sta","oa":532,"o":"temp_a"},{"a":59216,"l":"j_E750","t":"code","b":[169,45],"m":"lda","o":"#$2D","x":[59193]},{"a":59218,"t":"code","b":[32,58,224],"m":"jsr","oa":57402,"o":"random"},{"a":59221,"t":"code","b":[72],"m":"pha"},{"a":59222,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":59225,"t":"code","b":[168],"m":"tay"},{"a":59226,"t":"code","b":[185,45,2],"m":"lda","oa":557,"o":"a_022D,y"},{"a":59229,"t":"code","b":[24],"m":"clc"},{"a":59230,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59232,"t":"code","b":[104],"m":"pla"},{"a":59233,"t":"code","b":[101,12],"m":"adc","oa":12,"o":"math_tmp"},{"a":59235,"t":"code","b":[141,6,2],"m":"sta","oa":518,"o":"a_0206"},{"a":59238,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":59241,"t":"code","b":[168],"m":"tay"},{"a":59242,"t":"code","b":[185,41,2],"m":"lda","oa":553,"o":"zone_dx,y"},{"a":59245,"t":"code","b":[141,5,2],"m":"sta","oa":517,"o":"clown_dx"},{"a":59248,"t":"code","b":[173,9,2],"m":"lda","oa":521,"o":"speed_level"},{"a":59251,"t":"code","b":[168],"m":"tay"},{"a":59252,"t":"code","b":[185,60,2],"m":"lda","oa":572,"o":"a_023C,y"},{"a":59255,"t":"code","b":[72],"m":"pha"},{"a":59256,"t":"code","b":[173,9,2],"m":"lda","oa":521,"o":"speed_level"},{"a":59259,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":59261,"t":"code","b":[240,4],"m":"beq","oa":59267,"o":"b_E783"},{"a":59263,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59265,"t":"code","b":[240,2],"m":"beq","oa":59269,"o":"b_E785"},{"a":59267,"l":"b_E783","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59261]},{"a":59269,"l":"b_E785","t":"code","b":[41,3],"m":"and","o":"#$03","x":[59265]},{"a":59271,"t":"code","b":[24],"m":"clc"},{"a":59272,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59274,"t":"code","b":[104],"m":"pla"},{"a":59275,"t":"code","b":[101,12],"m":"adc","oa":12,"o":"math_tmp"},{"a":59277,"t":"code","b":[56],"m":"sec"},{"a":59278,"t":"code","b":[237,10,2],"m":"sbc","oa":522,"o":"pops_to_speedup"},{"a":59281,"t":"code","b":[24],"m":"clc"},{"a":59282,"t":"code","b":[109,27,2],"m":"adc","oa":539,"o":"bounces"},{"a":59285,"t":"code","b":[56],"m":"sec"},{"a":59286,"t":"code","b":[237,28,2],"m":"sbc","oa":540,"o":"pops_random"},{"a":59289,"t":"code","b":[72],"m":"pha"},{"a":59290,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":59292,"t":"code","b":[32,58,224],"m":"jsr","oa":57402,"o":"random"},{"a":59295,"t":"code","b":[24],"m":"clc"},{"a":59296,"t":"code","b":[105,15],"m":"adc","o":"#$0F"},{"a":59298,"t":"code","b":[170],"m":"tax"},{"a":59299,"t":"code","b":[104],"m":"pla"},{"a":59300,"t":"code","b":[32,99,224],"m":"jsr","oa":57443,"o":"mul8"},{"a":59303,"t":"code","b":[72],"m":"pha"},{"a":59304,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":59307,"t":"code","b":[168],"m":"tay"},{"a":59308,"t":"code","b":[185,53,2],"m":"lda","oa":565,"o":"f_0235,y"},{"a":59311,"t":"code","b":[24],"m":"clc"},{"a":59312,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59314,"t":"code","b":[104],"m":"pla"},{"a":59315,"t":"code","b":[101,12],"m":"adc","oa":12,"o":"math_tmp"},{"a":59317,"t":"code","b":[141,8,2],"m":"sta","oa":520,"o":"a_0208"},{"a":59320,"t":"code","b":[165,10],"m":"lda","oa":10,"o":"math_hi"},{"a":59322,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":59324,"t":"code","b":[72],"m":"pha"},{"a":59325,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":59328,"t":"code","b":[168],"m":"tay"},{"a":59329,"t":"code","b":[185,49,2],"m":"lda","oa":561,"o":"zone_dy,y"},{"a":59332,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59334,"t":"code","b":[104],"m":"pla"},{"a":59335,"t":"code","b":[101,12],"m":"adc","oa":12,"o":"math_tmp"},{"a":59337,"t":"code","b":[141,7,2],"m":"sta","oa":519,"o":"clown_dy"},{"a":59340,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":59342,"t":"code","b":[32,233,239],"m":"jsr","oa":61417,"o":"negate_dy"},{"a":59345,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":59347,"t":"code","b":[56],"m":"sec"},{"a":59348,"t":"code","b":[237,9,2],"m":"sbc","oa":521,"o":"speed_level"},{"a":59351,"t":"code","b":[208,3],"m":"bne","oa":59356,"o":"b_E7DC"},{"a":59353,"t":"code","b":[76,26,232],"m":"jmp","oa":59418,"o":"j_E81A"},{"a":59356,"l":"b_E7DC","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[59351]},{"a":59358,"t":"code","b":[141,23,2],"m":"sta","oa":535,"o":"temp_b"},{"a":59361,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":59363,"t":"code","b":[56],"m":"sec"},{"a":59364,"t":"code","b":[237,9,2],"m":"sbc","oa":521,"o":"speed_level"},{"a":59367,"t":"code","b":[72],"m":"pha"},{"a":59368,"l":"j_E7E8","t":"code","b":[173,5,2],"m":"lda","oa":517,"o":"clown_dx","x":[59414]},{"a":59371,"t":"code","b":[170],"m":"tax"},{"a":59372,"t":"code","b":[10],"m":"asl","o":"a"},{"a":59373,"t":"code","b":[138],"m":"txa"},{"a":59374,"t":"code","b":[106],"m":"ror","o":"a"},{"a":59375,"t":"code","b":[141,5,2],"m":"sta","oa":517,"o":"clown_dx"},{"a":59378,"t":"code","b":[173,6,2],"m":"lda","oa":518,"o":"a_0206"},{"a":59381,"t":"code","b":[106],"m":"ror","o":"a"},{"a":59382,"t":"code","b":[141,6,2],"m":"sta","oa":518,"o":"a_0206"},{"a":59385,"t":"code","b":[173,7,2],"m":"lda","oa":519,"o":"clown_dy"},{"a":59388,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":59389,"t":"code","b":[9,128],"m":"ora","o":"#$80"},{"a":59391,"t":"code","b":[141,7,2],"m":"sta","oa":519,"o":"clown_dy"},{"a":59394,"t":"code","b":[173,8,2],"m":"lda","oa":520,"o":"a_0208"},{"a":59397,"t":"code","b":[106],"m":"ror","o":"a"},{"a":59398,"t":"code","b":[141,8,2],"m":"sta","oa":520,"o":"a_0208"},{"a":59401,"t":"code","b":[186],"m":"tsx"},{"a":59402,"t":"code","b":[232],"m":"inx"},{"a":59403,"t":"code","b":[173,23,2],"m":"lda","oa":535,"o":"temp_b"},{"a":59406,"t":"code","b":[221,0,1],"m":"cmp","oa":256,"o":"f_0100,x"},{"a":59409,"t":"code","b":[176,6],"m":"bcs","oa":59417,"o":"b_E819"},{"a":59411,"t":"code","b":[238,23,2],"m":"inc","oa":535,"o":"temp_b"},{"a":59414,"t":"code","b":[76,232,231],"m":"jmp","oa":59368,"o":"j_E7E8"},{"a":59417,"l":"b_E819","t":"code","b":[154],"m":"txs","x":[59409]},{"a":59418,"l":"j_E81A","t":"code","b":[173,7,2],"m":"lda","oa":519,"o":"clown_dy","x":[59353]},{"a":59421,"t":"code","b":[201,250],"m":"cmp","o":"#$FA"},{"a":59423,"t":"code","b":[144,4],"m":"bcc","oa":59429,"o":"b_E825"},{"a":59425,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59427,"t":"code","b":[240,2],"m":"beq","oa":59431,"o":"b_E827"},{"a":59429,"l":"b_E825","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59423]},{"a":59431,"l":"b_E827","t":"code","b":[208,3],"m":"bne","oa":59436,"o":"b_E82C","x":[59427]},{"a":59433,"t":"code","b":[76,49,232],"m":"jmp","oa":59441,"o":"j_E831"},{"a":59436,"l":"b_E82C","t":"code","b":[169,250],"m":"lda","o":"#$FA","x":[59431]},{"a":59438,"t":"code","b":[141,7,2],"m":"sta","oa":519,"o":"clown_dy"},{"a":59441,"l":"j_E831","t":"code","b":[173,14,2],"m":"lda","oa":526,"o":"tilt","x":[59433]},{"a":59444,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":59446,"t":"code","b":[162,37],"m":"ldx","o":"#$25"},{"a":59448,"t":"code","b":[32,99,224],"m":"jsr","oa":57443,"o":"mul8"},{"a":59451,"t":"code","b":[24],"m":"clc"},{"a":59452,"t":"code","b":[109,15,2],"m":"adc","oa":527,"o":"seesaw_x"},{"a":59455,"t":"code","b":[141,1,2],"m":"sta","oa":513,"o":"a_0201"},{"a":59458,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59460,"t":"code","b":[42],"m":"rol","o":"a"},{"a":59461,"t":"code","b":[141,0,2],"m":"sta","oa":512,"o":"clown_x_hi"},{"a":59464,"t":"code","b":[173,14,2],"m":"lda","oa":526,"o":"tilt"},{"a":59467,"t":"code","b":[208,3],"m":"bne","oa":59472,"o":"b_E850"},{"a":59469,"t":"code","b":[76,85,232],"m":"jmp","oa":59477,"o":"j_E855"},{"a":59472,"l":"b_E850","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[59467]},{"a":59474,"t":"code","b":[32,189,239],"m":"jsr","oa":61373,"o":"negate_dx"},{"a":59477,"l":"j_E855","t":"code","b":[169,176],"m":"lda","o":"#$B0","x":[59469]},{"a":59479,"t":"code","b":[141,3,2],"m":"sta","oa":515,"o":"clown_y"},{"a":59482,"t":"code","b":[173,14,2],"m":"lda","oa":526,"o":"tilt"},{"a":59485,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":59487,"t":"code","b":[141,14,2],"m":"sta","oa":526,"o":"tilt"},{"a":59490,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":59492,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":59494,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":59496,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":59498,"t":"code","b":[32,85,239],"m":"jsr","oa":61269,"o":"add_score"},{"a":59501,"t":"code","b":[173,27,2],"m":"lda","oa":539,"o":"bounces"},{"a":59504,"t":"code","b":[24],"m":"clc"},{"a":59505,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":59507,"t":"code","b":[141,27,2],"m":"sta","oa":539,"o":"bounces"},{"a":59510,"t":"code","b":[173,9,2],"m":"lda","oa":521,"o":"speed_level"},{"a":59513,"t":"code","b":[168],"m":"tay"},{"a":59514,"t":"code","b":[185,38,2],"m":"lda","oa":550,"o":"a_0226,y"},{"a":59517,"t":"code","b":[141,26,2],"m":"sta","oa":538,"o":"a_021A"},{"a":59520,"t":"code","b":[173,9,2],"m":"lda","oa":521,"o":"speed_level"},{"a":59523,"t":"code","b":[168],"m":"tay"},{"a":59524,"t":"code","b":[185,35,2],"m":"lda","oa":547,"o":"level_gravity,y"},{"a":59527,"t":"code","b":[141,25,2],"m":"sta","oa":537,"o":"gravity"},{"a":59530,"t":"code","b":[169,10],"m":"lda","o":"#$0A"},{"a":59532,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":59534,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":59536,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":59538,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":59541,"t":"code","b":[76,169,232],"m":"jmp","oa":59561,"o":"draw_and_collide"},{"a":59544,"l":"check_fallen","c":"The clown missed the raised end: once y is past 184, the fall flag $0216 is set and fly stops.","t":"code","b":[173,3,2],"m":"lda","oa":515,"o":"clown_y","x":[59171]},{"a":59547,"t":"code","b":[24],"m":"clc"},{"a":59548,"t":"code","b":[233,184],"m":"sbc","o":"#$B8"},{"a":59550,"t":"code","b":[176,4],"m":"bcs","oa":59556,"o":"b_E8A4"},{"a":59552,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59554,"t":"code","b":[240,2],"m":"beq","oa":59558,"o":"b_E8A6"},{"a":59556,"l":"b_E8A4","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59550]},{"a":59558,"l":"b_E8A6","t":"code","b":[141,22,2],"m":"sta","oa":534,"o":"clown_down","x":[59554]},{"a":59561,"l":"draw_and_collide","c":"While the clown is up, calls routine 0 with the frame flag (falling and below y 150: the landing pose), x and y; it draws the clown and returns in $20 the highest code below $5A among the cells the clown's pixels touch, or $60 when any of them is a balloon (codes $5A-$5F are ignored), the points of the balloons it popped in $21, how many in $22, and which rows are now empty in $23-$25.","t":"code","b":[173,22,2],"m":"lda","oa":534,"o":"clown_down","x":[59071,59541]},{"a":59564,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":59566,"t":"code","b":[208,3],"m":"bne","oa":59571,"o":"b_E8B3"},{"a":59568,"t":"code","b":[76,233,232],"m":"jmp","oa":59625,"o":"collide"},{"a":59571,"l":"b_E8B3","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[59566]},{"a":59573,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":59575,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":59577,"t":"code","b":[173,12,2],"m":"lda","oa":524,"o":"falling"},{"a":59580,"t":"code","b":[72],"m":"pha"},{"a":59581,"t":"code","b":[173,3,2],"m":"lda","oa":515,"o":"clown_y"},{"a":59584,"t":"code","b":[24],"m":"clc"},{"a":59585,"t":"code","b":[233,150],"m":"sbc","o":"#$96"},{"a":59587,"t":"code","b":[176,4],"m":"bcs","oa":59593,"o":"b_E8C9"},{"a":59589,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59591,"t":"code","b":[240,2],"m":"beq","oa":59595,"o":"b_E8CB"},{"a":59593,"l":"b_E8C9","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59587]},{"a":59595,"l":"b_E8CB","t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp","x":[59591]},{"a":59597,"t":"code","b":[104],"m":"pla"},{"a":59598,"t":"code","b":[37,12],"m":"and","oa":12,"o":"math_tmp"},{"a":59600,"t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":59602,"t":"code","b":[13,0,2],"m":"ora","oa":512,"o":"clown_x_hi"},{"a":59605,"t":"code","b":[200],"m":"iny"},{"a":59606,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":59608,"t":"code","b":[173,1,2],"m":"lda","oa":513,"o":"a_0201"},{"a":59611,"t":"code","b":[200],"m":"iny"},{"a":59612,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":59614,"t":"code","b":[173,3,2],"m":"lda","oa":515,"o":"clown_y"},{"a":59617,"t":"code","b":[200],"m":"iny"},{"a":59618,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":59620,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":59622,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":59625,"l":"collide","c":"Acts on what the clown touched (peek(0), the code in $20). The left wall ($55) while moving left: the speed across is reversed. The right wall ($56) while moving right: reversed. The ceiling ($57) while rising: the speed up is reversed. A platform's top ($59) while falling: a small bounce up, speed -1 + (100 + random(50))/256. A balloon ($60): see pop_balloons.","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[59568]},{"a":59627,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":59629,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":59631,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":59633,"t":"code","b":[32,62,239],"m":"jsr","oa":61246,"o":"peek"},{"a":59636,"t":"code","b":[141,21,2],"m":"sta","oa":533,"o":"hit_code"},{"a":59639,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":59641,"t":"code","b":[72],"m":"pha"},{"a":59642,"t":"code","b":[173,21,2],"m":"lda","oa":533,"o":"hit_code"},{"a":59645,"t":"code","b":[201,85],"m":"cmp","o":"#$55"},{"a":59647,"t":"code","b":[240,4],"m":"beq","oa":59653,"o":"b_E905"},{"a":59649,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59651,"t":"code","b":[240,2],"m":"beq","oa":59655,"o":"b_E907"},{"a":59653,"l":"b_E905","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59647]},{"a":59655,"l":"b_E907","t":"code","b":[72],"m":"pha","x":[59651]},{"a":59656,"t":"code","b":[173,11,2],"m":"lda","oa":523,"o":"moving_right"},{"a":59659,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":59661,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59663,"t":"code","b":[104],"m":"pla"},{"a":59664,"t":"code","b":[37,12],"m":"and","oa":12,"o":"math_tmp"},{"a":59666,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59668,"t":"code","b":[104],"m":"pla"},{"a":59669,"t":"code","b":[197,12],"m":"cmp","oa":12,"o":"math_tmp"},{"a":59671,"t":"code","b":[240,3],"m":"beq","oa":59676,"o":"b_E91C"},{"a":59673,"t":"code","b":[76,36,233],"m":"jmp","oa":59684,"o":"j_E924"},{"a":59676,"l":"b_E91C","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[59671]},{"a":59678,"t":"code","b":[32,139,239],"m":"jsr","oa":61323,"o":"bounce_left_wall"},{"a":59681,"t":"code","b":[76,254,234],"m":"jmp","oa":60158,"o":"j_EAFE"},{"a":59684,"l":"j_E924","t":"code","b":[72],"m":"pha","x":[59673]},{"a":59685,"t":"code","b":[173,21,2],"m":"lda","oa":533,"o":"hit_code"},{"a":59688,"t":"code","b":[201,86],"m":"cmp","o":"#$56"},{"a":59690,"t":"code","b":[240,4],"m":"beq","oa":59696,"o":"b_E930"},{"a":59692,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59694,"t":"code","b":[240,2],"m":"beq","oa":59698,"o":"b_E932"},{"a":59696,"l":"b_E930","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59690]},{"a":59698,"l":"b_E932","t":"code","b":[45,11,2],"m":"and","oa":523,"o":"moving_right","x":[59694]},{"a":59701,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59703,"t":"code","b":[104],"m":"pla"},{"a":59704,"t":"code","b":[197,12],"m":"cmp","oa":12,"o":"math_tmp"},{"a":59706,"t":"code","b":[240,3],"m":"beq","oa":59711,"o":"b_E93F"},{"a":59708,"t":"code","b":[76,71,233],"m":"jmp","oa":59719,"o":"j_E947"},{"a":59711,"l":"b_E93F","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[59706]},{"a":59713,"t":"code","b":[32,160,239],"m":"jsr","oa":61344,"o":"turn_left"},{"a":59716,"t":"code","b":[76,254,234],"m":"jmp","oa":60158,"o":"j_EAFE"},{"a":59719,"l":"j_E947","t":"code","b":[72],"m":"pha","x":[59708]},{"a":59720,"t":"code","b":[173,21,2],"m":"lda","oa":533,"o":"hit_code"},{"a":59723,"t":"code","b":[201,87],"m":"cmp","o":"#$57"},{"a":59725,"t":"code","b":[240,4],"m":"beq","oa":59731,"o":"b_E953"},{"a":59727,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59729,"t":"code","b":[240,2],"m":"beq","oa":59733,"o":"b_E955"},{"a":59731,"l":"b_E953","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59725]},{"a":59733,"l":"b_E955","t":"code","b":[72],"m":"pha","x":[59729]},{"a":59734,"t":"code","b":[173,12,2],"m":"lda","oa":524,"o":"falling"},{"a":59737,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":59739,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59741,"t":"code","b":[104],"m":"pla"},{"a":59742,"t":"code","b":[37,12],"m":"and","oa":12,"o":"math_tmp"},{"a":59744,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59746,"t":"code","b":[104],"m":"pla"},{"a":59747,"t":"code","b":[197,12],"m":"cmp","oa":12,"o":"math_tmp"},{"a":59749,"t":"code","b":[240,3],"m":"beq","oa":59754,"o":"b_E96A"},{"a":59751,"t":"code","b":[76,114,233],"m":"jmp","oa":59762,"o":"j_E972"},{"a":59754,"l":"b_E96A","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[59749]},{"a":59756,"t":"code","b":[32,212,239],"m":"jsr","oa":61396,"o":"bounce_ceiling"},{"a":59759,"t":"code","b":[76,254,234],"m":"jmp","oa":60158,"o":"j_EAFE"},{"a":59762,"l":"j_E972","t":"code","b":[72],"m":"pha","x":[59751]},{"a":59763,"t":"code","b":[173,21,2],"m":"lda","oa":533,"o":"hit_code"},{"a":59766,"t":"code","b":[201,89],"m":"cmp","o":"#$59"},{"a":59768,"t":"code","b":[240,4],"m":"beq","oa":59774,"o":"b_E97E"},{"a":59770,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59772,"t":"code","b":[240,2],"m":"beq","oa":59776,"o":"b_E980"},{"a":59774,"l":"b_E97E","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59768]},{"a":59776,"l":"b_E980","t":"code","b":[45,12,2],"m":"and","oa":524,"o":"falling","x":[59772]},{"a":59779,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":59781,"t":"code","b":[104],"m":"pla"},{"a":59782,"t":"code","b":[197,12],"m":"cmp","oa":12,"o":"math_tmp"},{"a":59784,"t":"code","b":[240,3],"m":"beq","oa":59789,"o":"b_E98D"},{"a":59786,"t":"code","b":[76,160,233],"m":"jmp","oa":59808,"o":"j_E9A0"},{"a":59789,"l":"b_E98D","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59784]},{"a":59791,"t":"code","b":[141,7,2],"m":"sta","oa":519,"o":"clown_dy"},{"a":59794,"t":"code","b":[169,50],"m":"lda","o":"#$32"},{"a":59796,"t":"code","b":[32,58,224],"m":"jsr","oa":57402,"o":"random"},{"a":59799,"t":"code","b":[24],"m":"clc"},{"a":59800,"t":"code","b":[105,100],"m":"adc","o":"#$64"},{"a":59802,"t":"code","b":[141,8,2],"m":"sta","oa":520,"o":"a_0208"},{"a":59805,"t":"code","b":[76,254,234],"m":"jmp","oa":60158,"o":"j_EAFE"},{"a":59808,"l":"j_E9A0","t":"code","b":[72],"m":"pha","x":[59786]},{"a":59809,"t":"code","b":[173,21,2],"m":"lda","oa":533,"o":"hit_code"},{"a":59812,"t":"code","b":[201,96],"m":"cmp","o":"#$60"},{"a":59814,"t":"code","b":[240,4],"m":"beq","oa":59820,"o":"b_E9AC"},{"a":59816,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59818,"t":"code","b":[240,2],"m":"beq","oa":59822,"o":"b_E9AE"},{"a":59820,"l":"b_E9AC","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59814]},{"a":59822,"l":"b_E9AE","t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp","x":[59818]},{"a":59824,"t":"code","b":[104],"m":"pla"},{"a":59825,"t":"code","b":[197,12],"m":"cmp","oa":12,"o":"math_tmp"},{"a":59827,"t":"code","b":[240,3],"m":"beq","oa":59832,"o":"pop_balloons"},{"a":59829,"t":"code","b":[76,254,234],"m":"jmp","oa":60158,"o":"j_EAFE"},{"a":59832,"l":"pop_balloons","c":"The clown popped peek(2) balloons this tick. If it has bounced on the see-saw since the last speed-up, they count towards the next: when the count ($020A) goes below zero, the speed level moves to the next in $0239-$023B (0 to 1, 1 to 2, 2 back to 1) and the count restarts from that level's $023C-$023E less random(2), and the bounce count resets. An odd number of balloons popped in one tick reverses both speeds (the clown is knocked back); an even number lets it pass through. The speed across then changes by random(90) - 45 256ths. Then, for each row the pops emptied (peek(3+row)) in a game: the top row also gives the bonus jumper if the player has none (\"BONUS JUMP\", tune 0; the bonus flag $023F/$0240 cleared, so the next fall costs no jump); every row shows its bonus (routine 16, \"BONUS 1000\", \"0500\" or \"0200\" with tune 1), stops a rising clown climbing (its upward speed's high byte zeroed) and scores the row's bonus from $0241-$0243. Last, the popped balloons' points (peek(1)) are added to the score.","t":"code","b":[169,2],"m":"lda","o":"#$02","x":[59827]},{"a":59834,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":59836,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":59838,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":59840,"t":"code","b":[32,62,239],"m":"jsr","oa":61246,"o":"peek"},{"a":59843,"t":"code","b":[141,20,2],"m":"sta","oa":532,"o":"temp_a"},{"a":59846,"t":"code","b":[173,27,2],"m":"lda","oa":539,"o":"bounces"},{"a":59849,"t":"code","b":[208,3],"m":"bne","oa":59854,"o":"b_E9CE"},{"a":59851,"t":"code","b":[76,23,234],"m":"jmp","oa":59927,"o":"j_EA17"},{"a":59854,"l":"b_E9CE","t":"code","b":[173,10,2],"m":"lda","oa":522,"o":"pops_to_speedup","x":[59849]},{"a":59857,"t":"code","b":[141,23,2],"m":"sta","oa":535,"o":"temp_b"},{"a":59860,"t":"code","b":[173,10,2],"m":"lda","oa":522,"o":"pops_to_speedup"},{"a":59863,"t":"code","b":[56],"m":"sec"},{"a":59864,"t":"code","b":[237,20,2],"m":"sbc","oa":532,"o":"temp_a"},{"a":59867,"t":"code","b":[141,10,2],"m":"sta","oa":522,"o":"pops_to_speedup"},{"a":59870,"t":"code","b":[173,10,2],"m":"lda","oa":522,"o":"pops_to_speedup"},{"a":59873,"t":"code","b":[24],"m":"clc"},{"a":59874,"t":"code","b":[237,23,2],"m":"sbc","oa":535,"o":"temp_b"},{"a":59877,"t":"code","b":[176,4],"m":"bcs","oa":59883,"o":"b_E9EB"},{"a":59879,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59881,"t":"code","b":[240,2],"m":"beq","oa":59885,"o":"b_E9ED"},{"a":59883,"l":"b_E9EB","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[59877]},{"a":59885,"l":"b_E9ED","t":"code","b":[208,3],"m":"bne","oa":59890,"o":"b_E9F2","x":[59881]},{"a":59887,"t":"code","b":[76,23,234],"m":"jmp","oa":59927,"o":"j_EA17"},{"a":59890,"l":"b_E9F2","t":"code","b":[173,9,2],"m":"lda","oa":521,"o":"speed_level","x":[59885]},{"a":59893,"t":"code","b":[168],"m":"tay"},{"a":59894,"t":"code","b":[185,57,2],"m":"lda","oa":569,"o":"next_level,y"},{"a":59897,"t":"code","b":[141,9,2],"m":"sta","oa":521,"o":"speed_level"},{"a":59900,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":59902,"t":"code","b":[32,58,224],"m":"jsr","oa":57402,"o":"random"},{"a":59905,"t":"code","b":[141,28,2],"m":"sta","oa":540,"o":"pops_random"},{"a":59908,"t":"code","b":[173,9,2],"m":"lda","oa":521,"o":"speed_level"},{"a":59911,"t":"code","b":[168],"m":"tay"},{"a":59912,"t":"code","b":[185,60,2],"m":"lda","oa":572,"o":"a_023C,y"},{"a":59915,"t":"code","b":[56],"m":"sec"},{"a":59916,"t":"code","b":[237,28,2],"m":"sbc","oa":540,"o":"pops_random"},{"a":59919,"t":"code","b":[141,10,2],"m":"sta","oa":522,"o":"pops_to_speedup"},{"a":59922,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59924,"t":"code","b":[141,27,2],"m":"sta","oa":539,"o":"bounces"},{"a":59927,"l":"j_EA17","t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a","x":[59851,59887]},{"a":59930,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":59932,"t":"code","b":[208,3],"m":"bne","oa":59937,"o":"b_EA21"},{"a":59934,"t":"code","b":[76,43,234],"m":"jmp","oa":59947,"o":"j_EA2B"},{"a":59937,"l":"b_EA21","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[59932]},{"a":59939,"t":"code","b":[32,189,239],"m":"jsr","oa":61373,"o":"negate_dx"},{"a":59942,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":59944,"t":"code","b":[32,233,239],"m":"jsr","oa":61417,"o":"negate_dy"},{"a":59947,"l":"j_EA2B","t":"code","b":[169,90],"m":"lda","o":"#$5A","x":[59934]},{"a":59949,"t":"code","b":[32,58,224],"m":"jsr","oa":57402,"o":"random"},{"a":59952,"t":"code","b":[24],"m":"clc"},{"a":59953,"t":"code","b":[109,6,2],"m":"adc","oa":518,"o":"a_0206"},{"a":59956,"t":"code","b":[141,6,2],"m":"sta","oa":518,"o":"a_0206"},{"a":59959,"t":"code","b":[173,5,2],"m":"lda","oa":517,"o":"clown_dx"},{"a":59962,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":59964,"t":"code","b":[141,5,2],"m":"sta","oa":517,"o":"clown_dx"},{"a":59967,"t":"code","b":[173,6,2],"m":"lda","oa":518,"o":"a_0206"},{"a":59970,"t":"code","b":[56],"m":"sec"},{"a":59971,"t":"code","b":[233,45],"m":"sbc","o":"#$2D"},{"a":59973,"t":"code","b":[141,6,2],"m":"sta","oa":518,"o":"a_0206"},{"a":59976,"t":"code","b":[173,5,2],"m":"lda","oa":517,"o":"clown_dx"},{"a":59979,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":59981,"t":"code","b":[141,5,2],"m":"sta","oa":517,"o":"clown_dx"},{"a":59984,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":59986,"t":"code","b":[141,20,2],"m":"sta","oa":532,"o":"temp_a"},{"a":59989,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":59991,"t":"code","b":[72],"m":"pha"},{"a":59992,"l":"j_EA58","t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a","x":[60131]},{"a":59995,"t":"code","b":[24],"m":"clc"},{"a":59996,"t":"code","b":[105,3],"m":"adc","o":"#$03"},{"a":59998,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60000,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60002,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60004,"t":"code","b":[32,62,239],"m":"jsr","oa":61246,"o":"peek"},{"a":60007,"t":"code","b":[45,19,2],"m":"and","oa":531,"o":"playing"},{"a":60010,"t":"code","b":[208,3],"m":"bne","oa":60015,"o":"b_EA6F"},{"a":60012,"t":"code","b":[76,214,234],"m":"jmp","oa":60118,"o":"j_EAD6"},{"a":60015,"l":"b_EA6F","t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a","x":[60010]},{"a":60018,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":60020,"t":"code","b":[240,4],"m":"beq","oa":60026,"o":"b_EA7A"},{"a":60022,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60024,"t":"code","b":[240,2],"m":"beq","oa":60028,"o":"b_EA7C"},{"a":60026,"l":"b_EA7A","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[60020]},{"a":60028,"l":"b_EA7C","t":"code","b":[72],"m":"pha","x":[60024]},{"a":60029,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":60032,"t":"code","b":[168],"m":"tay"},{"a":60033,"t":"code","b":[185,63,2],"m":"lda","oa":575,"o":"bonus_flag,y"},{"a":60036,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":60038,"t":"code","b":[104],"m":"pla"},{"a":60039,"t":"code","b":[37,12],"m":"and","oa":12,"o":"math_tmp"},{"a":60041,"t":"code","b":[208,3],"m":"bne","oa":60046,"o":"b_EA8E"},{"a":60043,"t":"code","b":[76,166,234],"m":"jmp","oa":60070,"o":"j_EAA6"},{"a":60046,"l":"b_EA8E","t":"code","b":[169,17],"m":"lda","o":"#$11","x":[60041]},{"a":60048,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60050,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60052,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60054,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60057,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":60060,"t":"code","b":[72],"m":"pha"},{"a":60061,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60063,"t":"code","b":[170],"m":"tax"},{"a":60064,"t":"code","b":[104],"m":"pla"},{"a":60065,"t":"code","b":[168],"m":"tay"},{"a":60066,"t":"code","b":[138],"m":"txa"},{"a":60067,"t":"code","b":[153,63,2],"m":"sta","oa":575,"o":"bonus_flag,y"},{"a":60070,"l":"j_EAA6","t":"code","b":[169,16],"m":"lda","o":"#$10","x":[60043]},{"a":60072,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60074,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60076,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":60079,"t":"code","b":[200],"m":"iny"},{"a":60080,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60082,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60084,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60087,"t":"code","b":[173,12,2],"m":"lda","oa":524,"o":"falling"},{"a":60090,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":60092,"t":"code","b":[208,3],"m":"bne","oa":60097,"o":"b_EAC1"},{"a":60094,"t":"code","b":[76,198,234],"m":"jmp","oa":60102,"o":"j_EAC6"},{"a":60097,"l":"b_EAC1","t":"code","b":[169,0],"m":"lda","o":"#$00","x":[60092]},{"a":60099,"t":"code","b":[141,7,2],"m":"sta","oa":519,"o":"clown_dy"},{"a":60102,"l":"j_EAC6","t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a","x":[60094]},{"a":60105,"t":"code","b":[168],"m":"tay"},{"a":60106,"t":"code","b":[185,65,2],"m":"lda","oa":577,"o":"row_bonus,y"},{"a":60109,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60111,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60113,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60115,"t":"code","b":[32,85,239],"m":"jsr","oa":61269,"o":"add_score"},{"a":60118,"l":"j_EAD6","t":"code","b":[186],"m":"tsx","x":[60012]},{"a":60119,"t":"code","b":[232],"m":"inx"},{"a":60120,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":60123,"t":"code","b":[221,0,1],"m":"cmp","oa":256,"o":"f_0100,x"},{"a":60126,"t":"code","b":[176,6],"m":"bcs","oa":60134,"o":"b_EAE6"},{"a":60128,"t":"code","b":[238,20,2],"m":"inc","oa":532,"o":"temp_a"},{"a":60131,"t":"code","b":[76,88,234],"m":"jmp","oa":59992,"o":"j_EA58"},{"a":60134,"l":"b_EAE6","t":"code","b":[154],"m":"txs","x":[60126]},{"a":60135,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":60137,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":60139,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60141,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60143,"t":"code","b":[32,62,239],"m":"jsr","oa":61246,"o":"peek"},{"a":60146,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60148,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60150,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60152,"t":"code","b":[32,85,239],"m":"jsr","oa":61269,"o":"add_score"},{"a":60155,"t":"code","b":[76,254,234],"m":"jmp","oa":60158,"o":"j_EAFE"},{"a":60158,"l":"j_EAFE","t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave","x":[59681,59716,59759,59805,59829,60155]},{"a":60161,"l":"call_ml","c":"Compiled procedure call_ml(n, a, x, y): calls machine-code routine n with those values in A, X and Y. Looks up n's address in ml_table ($F000), writes it high byte first with the three values into the next frame and calls call_machine_code ($E15E). The compiled program reaches every machine-code routine through here: 26 calls.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58214,58587,58692,58708,58867,58921,59538,59622,60054,60084,60253,60264,60280,60342,60499,60583,60608,60694,60934,60950,60961,60972,61012,61059,61093,61216]},{"a":60164,"t":"code","b":[169,240],"m":"lda","o":"#$F0"},{"a":60166,"t":"code","b":[72],"m":"pha"},{"a":60167,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60169,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":60171,"t":"code","b":[10],"m":"asl","o":"a"},{"a":60172,"t":"code","b":[24],"m":"clc"},{"a":60173,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":60175,"t":"code","b":[133,4],"m":"sta","oa":4,"o":"ptr04"},{"a":60177,"t":"code","b":[104],"m":"pla"},{"a":60178,"t":"code","b":[133,5],"m":"sta","oa":5,"o":"zpa_05"},{"a":60180,"t":"code","b":[177,4],"m":"lda","oa":4,"o":"(ptr04),y"},{"a":60182,"t":"code","b":[160,6],"m":"ldy","o":"#$06"},{"a":60184,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60186,"t":"code","b":[169,240],"m":"lda","o":"#$F0"},{"a":60188,"t":"code","b":[72],"m":"pha"},{"a":60189,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60191,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":60193,"t":"code","b":[10],"m":"asl","o":"a"},{"a":60194,"t":"code","b":[133,4],"m":"sta","oa":4,"o":"ptr04"},{"a":60196,"t":"code","b":[104],"m":"pla"},{"a":60197,"t":"code","b":[133,5],"m":"sta","oa":5,"o":"zpa_05"},{"a":60199,"t":"code","b":[177,4],"m":"lda","oa":4,"o":"(ptr04),y"},{"a":60201,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":60203,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60205,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":60207,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":60209,"t":"code","b":[160,8],"m":"ldy","o":"#$08"},{"a":60211,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60213,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60215,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":60217,"t":"code","b":[160,9],"m":"ldy","o":"#$09"},{"a":60219,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60221,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":60223,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":60225,"t":"code","b":[160,10],"m":"ldy","o":"#$0A"},{"a":60227,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60229,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":60231,"t":"code","b":[32,94,225],"m":"jsr","oa":57694,"o":"call_machine_code"},{"a":60234,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":60237,"l":"fly","c":"The flight of one jump, each pass one tick: read the see-saw (update_seesaw), scroll the balloons (routine 9), advance the sound (routine 13), move the clown (move_clown) and wait for the tick (routine 2), until the clown is down ($0216). Then, at column 12, row 14, the falling clown's animation (routine 18), which in a game also shows \"HIGH SCORE\" and the high score and plays tune 2. A free fall (the bonus flag clear) ends there: no jump lost, and the same player goes again. Otherwise the player loses a jump, and in a two-player game where player 2 still has jumps: if player 1 has none, \"GAME OVER PLAYER 1\" at column 11, row 15 and a pause of 255 ticks; and the turn passes to the other player, whether or not that player has jumps left.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58243]},{"a":60240,"l":"b_EB50","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[60286]},{"a":60242,"t":"code","b":[32,60,236],"m":"jsr","oa":60476,"o":"update_seesaw"},{"a":60245,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":60247,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60249,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60251,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60253,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60256,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":60258,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60260,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60262,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60264,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60267,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60269,"t":"code","b":[32,60,230],"m":"jsr","oa":58940,"o":"move_clown"},{"a":60272,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":60274,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60276,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60278,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60280,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60283,"t":"code","b":[173,22,2],"m":"lda","oa":534,"o":"clown_down"},{"a":60286,"t":"code","b":[240,208],"m":"beq","oa":60240,"o":"b_EB50"},{"a":60288,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":60290,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60292,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60294,"t":"code","b":[169,14],"m":"lda","o":"#$0E"},{"a":60296,"t":"code","b":[200],"m":"iny"},{"a":60297,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60299,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60301,"t":"code","b":[32,45,227],"m":"jsr","oa":58157,"o":"set_cursor"},{"a":60304,"t":"code","b":[169,18],"m":"lda","o":"#$12"},{"a":60306,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60308,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60310,"t":"code","b":[173,18,2],"m":"lda","oa":530,"o":"a_0212"},{"a":60313,"t":"code","b":[200],"m":"iny"},{"a":60314,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60316,"t":"code","b":[173,17,2],"m":"lda","oa":529,"o":"high_score"},{"a":60319,"t":"code","b":[200],"m":"iny"},{"a":60320,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60322,"t":"code","b":[173,0,2],"m":"lda","oa":512,"o":"clown_x_hi"},{"a":60325,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":60326,"t":"code","b":[106],"m":"ror","o":"a"},{"a":60327,"t":"code","b":[72],"m":"pha"},{"a":60328,"t":"code","b":[173,1,2],"m":"lda","oa":513,"o":"a_0201"},{"a":60331,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":60332,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":60334,"t":"code","b":[104],"m":"pla"},{"a":60335,"t":"code","b":[5,12],"m":"ora","oa":12,"o":"math_tmp"},{"a":60337,"t":"code","b":[200],"m":"iny"},{"a":60338,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60340,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60342,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60345,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":60348,"t":"code","b":[168],"m":"tay"},{"a":60349,"t":"code","b":[185,63,2],"m":"lda","oa":575,"o":"bonus_flag,y"},{"a":60352,"t":"code","b":[208,3],"m":"bne","oa":60357,"o":"b_EBC5"},{"a":60354,"t":"code","b":[76,57,236],"m":"jmp","oa":60473,"o":"j_EC39"},{"a":60357,"l":"b_EBC5","t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player","x":[60352]},{"a":60360,"t":"code","b":[72],"m":"pha"},{"a":60361,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":60364,"t":"code","b":[168],"m":"tay"},{"a":60365,"t":"code","b":[185,33,2],"m":"lda","oa":545,"o":"jumps,y"},{"a":60368,"t":"code","b":[56],"m":"sec"},{"a":60369,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":60371,"t":"code","b":[170],"m":"tax"},{"a":60372,"t":"code","b":[104],"m":"pla"},{"a":60373,"t":"code","b":[168],"m":"tay"},{"a":60374,"t":"code","b":[138],"m":"txa"},{"a":60375,"t":"code","b":[153,33,2],"m":"sta","oa":545,"o":"jumps,y"},{"a":60378,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60380,"t":"code","b":[32,103,236],"m":"jsr","oa":60519,"o":"show_score"},{"a":60383,"t":"code","b":[173,34,2],"m":"lda","oa":546,"o":"a_0222"},{"a":60386,"t":"code","b":[45,16,2],"m":"and","oa":528,"o":"two_players"},{"a":60389,"t":"code","b":[208,3],"m":"bne","oa":60394,"o":"b_EBEA"},{"a":60391,"t":"code","b":[76,57,236],"m":"jmp","oa":60473,"o":"j_EC39"},{"a":60394,"l":"b_EBEA","t":"code","b":[173,33,2],"m":"lda","oa":545,"o":"jumps","x":[60389]},{"a":60397,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":60399,"t":"code","b":[240,4],"m":"beq","oa":60405,"o":"b_EBF5"},{"a":60401,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60403,"t":"code","b":[240,2],"m":"beq","oa":60407,"o":"b_EBF7"},{"a":60405,"l":"b_EBF5","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[60399]},{"a":60407,"l":"b_EBF7","t":"code","b":[208,3],"m":"bne","oa":60412,"o":"b_EBFC","x":[60403]},{"a":60409,"t":"code","b":[76,49,236],"m":"jmp","oa":60465,"o":"j_EC31"},{"a":60412,"l":"b_EBFC","t":"code","b":[169,11],"m":"lda","o":"#$0B","x":[60407]},{"a":60414,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60416,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60418,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":60420,"t":"code","b":[200],"m":"iny"},{"a":60421,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60423,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60425,"t":"code","b":[32,45,227],"m":"jsr","oa":58157,"o":"set_cursor"},{"a":60428,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":60430,"t":"code","b":[133,8],"m":"sta","oa":8,"o":"out_device"},{"a":60432,"t":"code","b":[32,245,224],"m":"jsr","oa":57589,"o":"print_inline"},{"a":60435,"l":"str_game_over_p1","c":"Inline argument of print_inline: \"GAME OVER PLAYER 1\", zero terminator; printed at column 11, row 15 in a two-player game when player 1 has no jumps left.","t":"byte","b":[71,65,77,69,32,79,86,69]},{"a":60443,"t":"byte","b":[82,32,80,76,65,89,69,82]},{"a":60451,"t":"byte","b":[32,49,0]},{"a":60454,"l":"after_game_over_p1","c":"fly resumes here after \"GAME OVER PLAYER 1\": the pause of 255 ticks, then the turn passes.","t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":60456,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60458,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60460,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60462,"t":"code","b":[32,144,238],"m":"jsr","oa":61072,"o":"delay"},{"a":60465,"l":"j_EC31","t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player","x":[60409]},{"a":60468,"t":"code","b":[73,1],"m":"eor","o":"#$01"},{"a":60470,"t":"code","b":[141,13,2],"m":"sta","oa":525,"o":"player"},{"a":60473,"l":"j_EC39","t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave","x":[60354,60391]},{"a":60476,"l":"update_seesaw","c":"Reads the current player's paddle and draws the see-saw (routine 1, with the player as the paddle and $020E as the tilt), and keeps the see-saw's x it returns (peek(0)) in $020F.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58808,60242]},{"a":60479,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":60481,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60483,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60485,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":60488,"t":"code","b":[200],"m":"iny"},{"a":60489,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60491,"t":"code","b":[173,14,2],"m":"lda","oa":526,"o":"tilt"},{"a":60494,"t":"code","b":[200],"m":"iny"},{"a":60495,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60497,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60499,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60502,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60504,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60506,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60508,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60510,"t":"code","b":[32,62,239],"m":"jsr","oa":61246,"o":"peek"},{"a":60513,"t":"code","b":[141,15,2],"m":"sta","oa":527,"o":"seesaw_x"},{"a":60516,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":60519,"l":"show_score","c":"In a game, shows the current player's score and jumps on the status line (routine 4): the score from $021D/$021F for that player, high byte and low, and the jumps from $0221/$0222, with the player in bit 7.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58629,58803,60380,61317]},{"a":60522,"t":"code","b":[173,19,2],"m":"lda","oa":531,"o":"playing"},{"a":60525,"t":"code","b":[208,3],"m":"bne","oa":60530,"o":"b_EC72"},{"a":60527,"t":"code","b":[76,170,236],"m":"jmp","oa":60586,"o":"j_ECAA"},{"a":60530,"l":"b_EC72","t":"code","b":[169,4],"m":"lda","o":"#$04","x":[60525]},{"a":60532,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60534,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60536,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":60539,"t":"code","b":[168],"m":"tay"},{"a":60540,"t":"code","b":[185,31,2],"m":"lda","oa":543,"o":"a_021F,y"},{"a":60543,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":60545,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60547,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":60550,"t":"code","b":[168],"m":"tay"},{"a":60551,"t":"code","b":[185,29,2],"m":"lda","oa":541,"o":"score_hi,y"},{"a":60554,"t":"code","b":[160,4],"m":"ldy","o":"#$04"},{"a":60556,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60558,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":60561,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":60562,"t":"code","b":[106],"m":"ror","o":"a"},{"a":60563,"t":"code","b":[72],"m":"pha"},{"a":60564,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":60567,"t":"code","b":[168],"m":"tay"},{"a":60568,"t":"code","b":[185,33,2],"m":"lda","oa":545,"o":"jumps,y"},{"a":60571,"t":"code","b":[24],"m":"clc"},{"a":60572,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":60574,"t":"code","b":[104],"m":"pla"},{"a":60575,"t":"code","b":[101,12],"m":"adc","oa":12,"o":"math_tmp"},{"a":60577,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":60579,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60581,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60583,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60586,"l":"j_ECAA","t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave","x":[60527]},{"a":60589,"l":"title_screen","c":"The title screen and attract mode. Clears the two-player and playing flags, turns the sound off (routine 21), sets up the playfield as new_game does, prints \"PUSH 'F1' TO BEGIN\" at column 11, row 14, the high score at column 12, row 16 (routine 19), and the copyright line below it. Then plays itself until F1 or the first paddle's button: the see-saw chases the clown, \"GAME OVER\" blinks (routine 24), the balloons scroll and the clowns jump as in a game.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58193]},{"a":60592,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60594,"t":"code","b":[141,16,2],"m":"sta","oa":528,"o":"two_players"},{"a":60597,"t":"code","b":[141,19,2],"m":"sta","oa":531,"o":"playing"},{"a":60600,"t":"code","b":[169,21],"m":"lda","o":"#$15"},{"a":60602,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60604,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60606,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60608,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60611,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60613,"t":"code","b":[32,202,228],"m":"jsr","oa":58570,"o":"new_game"},{"a":60616,"t":"code","b":[169,11],"m":"lda","o":"#$0B"},{"a":60618,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60620,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60622,"t":"code","b":[169,14],"m":"lda","o":"#$0E"},{"a":60624,"t":"code","b":[200],"m":"iny"},{"a":60625,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60627,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60629,"t":"code","b":[32,45,227],"m":"jsr","oa":58157,"o":"set_cursor"},{"a":60632,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":60634,"t":"code","b":[133,8],"m":"sta","oa":8,"o":"out_device"},{"a":60636,"t":"code","b":[32,245,224],"m":"jsr","oa":57589,"o":"print_inline"},{"a":60639,"l":"str_push_f1","c":"Inline argument of print_inline: \"PUSH 'F1' TO BEGIN\", zero terminator; the title screen's prompt at column 11, row 14.","t":"byte","b":[80,85,83,72,32,39,70,49]},{"a":60647,"t":"byte","b":[39,32,84,79,32,66,69,71]},{"a":60655,"t":"byte","b":[73,78,0]},{"a":60658,"l":"after_push_f1","c":"title_screen resumes here after \"PUSH 'F1' TO BEGIN\": the cursor to column 12, row 16, the high score (routine 19), a new line and the copyright line.","t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":60660,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60662,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60664,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":60666,"t":"code","b":[200],"m":"iny"},{"a":60667,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60669,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60671,"t":"code","b":[32,45,227],"m":"jsr","oa":58157,"o":"set_cursor"},{"a":60674,"t":"code","b":[169,19],"m":"lda","o":"#$13"},{"a":60676,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60678,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60680,"t":"code","b":[173,18,2],"m":"lda","oa":530,"o":"a_0212"},{"a":60683,"t":"code","b":[200],"m":"iny"},{"a":60684,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60686,"t":"code","b":[173,17,2],"m":"lda","oa":529,"o":"high_score"},{"a":60689,"t":"code","b":[200],"m":"iny"},{"a":60690,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60692,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60694,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60697,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":60699,"t":"code","b":[133,8],"m":"sta","oa":8,"o":"out_device"},{"a":60701,"t":"code","b":[32,24,225],"m":"jsr","oa":57624,"o":"print_newline"},{"a":60704,"t":"code","b":[32,245,224],"m":"jsr","oa":57589,"o":"print_inline"},{"a":60707,"l":"str_copyright","c":"Inline argument of print_inline: cursor down and three cursor rights, then \"(1982 BALLY/MIDWAY (1982 COMMODORE\" (each '(' drawn as a copyright sign by the font), zero terminator.","t":"byte","b":[17,29,29,29,40,49,57,56]},{"a":60715,"t":"byte","b":[50,32,66,65,76,76,89,47]},{"a":60723,"t":"byte","b":[77,73,68,87,65,89,32,40]},{"a":60731,"t":"byte","b":[49,57,56,50,32,67,79,77]},{"a":60739,"t":"byte","b":[77,79,68,79,82,69,0]},{"a":60746,"l":"j_ED4A","c":"TAY: Y becomes $4A, the low byte of this address, which print_inline leaves in A when it resumes here; every other call in the program loads Y with LDY. new_jump's frame is then opened $4A bytes higher than usual, which nothing notices.","t":"code","b":[168],"m":"tay","x":[61066]},{"a":60747,"t":"code","b":[32,90,229],"m":"jsr","oa":58714,"o":"new_jump"},{"a":60750,"l":"attract_loop","c":"One tick of the attract mode. The see-saw's x (kept at 16 or more) moves 2 pixels a tick towards the point that puts its raised end under the clown (the clown's x, less 37 when the see-saw tilts left), and is drawn there without reading a paddle (routine 22). Then the clown moves, the balloons scroll and \"GAME OVER\" blinks; a key or button read of 1 (F1, or the first paddle's button) ends the title screen. When the clown is down, its falling animation plays and a new jump starts.","t":"code","b":[173,15,2],"m":"lda","oa":527,"o":"seesaw_x","x":[61020]},{"a":60753,"t":"code","b":[201,16],"m":"cmp","o":"#$10"},{"a":60755,"t":"code","b":[144,4],"m":"bcc","oa":60761,"o":"b_ED59"},{"a":60757,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60759,"t":"code","b":[240,2],"m":"beq","oa":60763,"o":"b_ED5B"},{"a":60761,"l":"b_ED59","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[60755]},{"a":60763,"l":"b_ED5B","t":"code","b":[208,3],"m":"bne","oa":60768,"o":"b_ED60","x":[60759]},{"a":60765,"t":"code","b":[76,101,237],"m":"jmp","oa":60773,"o":"j_ED65"},{"a":60768,"l":"b_ED60","t":"code","b":[169,16],"m":"lda","o":"#$10","x":[60763]},{"a":60770,"t":"code","b":[141,15,2],"m":"sta","oa":527,"o":"seesaw_x"},{"a":60773,"l":"j_ED65","t":"code","b":[173,1,2],"m":"lda","oa":513,"o":"a_0201","x":[60765]},{"a":60776,"t":"code","b":[72],"m":"pha"},{"a":60777,"t":"code","b":[173,14,2],"m":"lda","oa":526,"o":"tilt"},{"a":60780,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":60782,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":60784,"t":"code","b":[162,37],"m":"ldx","o":"#$25"},{"a":60786,"t":"code","b":[32,99,224],"m":"jsr","oa":57443,"o":"mul8"},{"a":60789,"t":"code","b":[56],"m":"sec"},{"a":60790,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":60792,"t":"code","b":[104],"m":"pla"},{"a":60793,"t":"code","b":[229,12],"m":"sbc","oa":12,"o":"math_tmp"},{"a":60795,"t":"code","b":[141,23,2],"m":"sta","oa":535,"o":"temp_b"},{"a":60798,"t":"code","b":[173,0,2],"m":"lda","oa":512,"o":"clown_x_hi"},{"a":60801,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":60803,"t":"code","b":[141,20,2],"m":"sta","oa":532,"o":"temp_a"},{"a":60806,"t":"code","b":[173,23,2],"m":"lda","oa":535,"o":"temp_b"},{"a":60809,"t":"code","b":[56],"m":"sec"},{"a":60810,"t":"code","b":[237,15,2],"m":"sbc","oa":527,"o":"seesaw_x"},{"a":60813,"t":"code","b":[141,23,2],"m":"sta","oa":535,"o":"temp_b"},{"a":60816,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":60819,"t":"code","b":[233,0],"m":"sbc","o":"#$00"},{"a":60821,"t":"code","b":[141,20,2],"m":"sta","oa":532,"o":"temp_a"},{"a":60824,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":60826,"t":"code","b":[72],"m":"pha"},{"a":60827,"t":"code","b":[173,23,2],"m":"lda","oa":535,"o":"temp_b"},{"a":60830,"t":"code","b":[13,20,2],"m":"ora","oa":532,"o":"temp_a"},{"a":60833,"t":"code","b":[201,0],"m":"cmp","o":"#$00"},{"a":60835,"t":"code","b":[240,4],"m":"beq","oa":60841,"o":"b_EDA9"},{"a":60837,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60839,"t":"code","b":[240,2],"m":"beq","oa":60843,"o":"b_EDAB"},{"a":60841,"l":"b_EDA9","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[60835]},{"a":60843,"l":"b_EDAB","t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp","x":[60839]},{"a":60845,"t":"code","b":[104],"m":"pla"},{"a":60846,"t":"code","b":[197,12],"m":"cmp","oa":12,"o":"math_tmp"},{"a":60848,"t":"code","b":[240,3],"m":"beq","oa":60853,"o":"b_EDB5"},{"a":60850,"t":"code","b":[76,184,237],"m":"jmp","oa":60856,"o":"j_EDB8"},{"a":60853,"l":"b_EDB5","t":"code","b":[76,242,237],"m":"jmp","oa":60914,"o":"j_EDF2","x":[60848]},{"a":60856,"l":"j_EDB8","t":"code","b":[72],"m":"pha","x":[60850]},{"a":60857,"t":"code","b":[173,20,2],"m":"lda","oa":532,"o":"temp_a"},{"a":60860,"t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":60862,"t":"code","b":[144,4],"m":"bcc","oa":60868,"o":"b_EDC4"},{"a":60864,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60866,"t":"code","b":[240,2],"m":"beq","oa":60870,"o":"b_EDC6"},{"a":60868,"l":"b_EDC4","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[60862]},{"a":60870,"l":"b_EDC6","t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp","x":[60866]},{"a":60872,"t":"code","b":[104],"m":"pla"},{"a":60873,"t":"code","b":[197,12],"m":"cmp","oa":12,"o":"math_tmp"},{"a":60875,"t":"code","b":[240,3],"m":"beq","oa":60880,"o":"b_EDD0"},{"a":60877,"t":"code","b":[76,233,237],"m":"jmp","oa":60905,"o":"j_EDE9"},{"a":60880,"l":"b_EDD0","t":"code","b":[173,15,2],"m":"lda","oa":527,"o":"seesaw_x","x":[60875]},{"a":60883,"t":"code","b":[24],"m":"clc"},{"a":60884,"t":"code","b":[105,2],"m":"adc","o":"#$02"},{"a":60886,"t":"code","b":[141,15,2],"m":"sta","oa":527,"o":"seesaw_x"},{"a":60889,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60891,"t":"code","b":[42],"m":"rol","o":"a"},{"a":60892,"t":"code","b":[208,3],"m":"bne","oa":60897,"o":"b_EDE1"},{"a":60894,"t":"code","b":[76,230,237],"m":"jmp","oa":60902,"o":"j_EDE6"},{"a":60897,"l":"b_EDE1","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[60892]},{"a":60899,"t":"code","b":[141,15,2],"m":"sta","oa":527,"o":"seesaw_x"},{"a":60902,"l":"j_EDE6","t":"code","b":[76,242,237],"m":"jmp","oa":60914,"o":"j_EDF2","x":[60894]},{"a":60905,"l":"j_EDE9","t":"code","b":[173,15,2],"m":"lda","oa":527,"o":"seesaw_x","x":[60877]},{"a":60908,"t":"code","b":[56],"m":"sec"},{"a":60909,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":60911,"t":"code","b":[141,15,2],"m":"sta","oa":527,"o":"seesaw_x"},{"a":60914,"l":"j_EDF2","t":"code","b":[169,22],"m":"lda","o":"#$16","x":[60853,60902]},{"a":60916,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60918,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60920,"t":"code","b":[173,15,2],"m":"lda","oa":527,"o":"seesaw_x"},{"a":60923,"t":"code","b":[200],"m":"iny"},{"a":60924,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60926,"t":"code","b":[173,14,2],"m":"lda","oa":526,"o":"tilt"},{"a":60929,"t":"code","b":[200],"m":"iny"},{"a":60930,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60932,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60934,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60937,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60939,"t":"code","b":[32,60,230],"m":"jsr","oa":58940,"o":"move_clown"},{"a":60942,"t":"code","b":[169,9],"m":"lda","o":"#$09"},{"a":60944,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60946,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60948,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60950,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60953,"t":"code","b":[169,24],"m":"lda","o":"#$18"},{"a":60955,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60957,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60959,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60961,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60964,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":60966,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60968,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60970,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60972,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":60975,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60977,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":60979,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":60981,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":60983,"t":"code","b":[32,62,239],"m":"jsr","oa":61246,"o":"peek"},{"a":60986,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":60988,"t":"code","b":[240,4],"m":"beq","oa":60994,"o":"b_EE42"},{"a":60990,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":60992,"t":"code","b":[240,2],"m":"beq","oa":60996,"o":"b_EE44"},{"a":60994,"l":"b_EE42","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[60988]},{"a":60996,"l":"b_EE44","t":"code","b":[208,3],"m":"bne","oa":61001,"o":"b_EE49","x":[60992]},{"a":60998,"t":"code","b":[76,76,238],"m":"jmp","oa":61004,"o":"j_EE4C"},{"a":61001,"l":"b_EE49","t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave","x":[60996]},{"a":61004,"l":"j_EE4C","t":"code","b":[169,2],"m":"lda","o":"#$02","x":[60998]},{"a":61006,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":61008,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61010,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":61012,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":61015,"t":"code","b":[173,22,2],"m":"lda","oa":534,"o":"clown_down"},{"a":61018,"t":"code","b":[208,3],"m":"bne","oa":61023,"o":"b_EE5F"},{"a":61020,"t":"code","b":[76,78,237],"m":"jmp","oa":60750,"o":"attract_loop"},{"a":61023,"l":"b_EE5F","t":"code","b":[169,18],"m":"lda","o":"#$12","x":[61018]},{"a":61025,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":61027,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61029,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61031,"t":"code","b":[200],"m":"iny"},{"a":61032,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61034,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61036,"t":"code","b":[200],"m":"iny"},{"a":61037,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61039,"t":"code","b":[173,0,2],"m":"lda","oa":512,"o":"clown_x_hi"},{"a":61042,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":61043,"t":"code","b":[106],"m":"ror","o":"a"},{"a":61044,"t":"code","b":[72],"m":"pha"},{"a":61045,"t":"code","b":[173,1,2],"m":"lda","oa":513,"o":"a_0201"},{"a":61048,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":61049,"t":"code","b":[133,12],"m":"sta","oa":12,"o":"math_tmp"},{"a":61051,"t":"code","b":[104],"m":"pla"},{"a":61052,"t":"code","b":[5,12],"m":"ora","oa":12,"o":"math_tmp"},{"a":61054,"t":"code","b":[200],"m":"iny"},{"a":61055,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61057,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":61059,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":61062,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61064,"t":"code","b":[208,3],"m":"bne","oa":61069,"o":"b_EE8D"},{"a":61066,"t":"code","b":[76,74,237],"m":"jmp","oa":60746,"o":"j_ED4A"},{"a":61069,"l":"b_EE8D","t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave","x":[61064]},{"a":61072,"l":"delay","c":"Compiled procedure delay(n): waits n ticks, calling the tick routine (routine 2) n times. Called with 255 (about 2.7 seconds at the measured 95 ticks a second) after \"GAME OVER\" and after \"GAME OVER PLAYER 1\".","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58305,60462]},{"a":61075,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":61077,"t":"code","b":[141,23,2],"m":"sta","oa":535,"o":"temp_b"},{"a":61080,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":61082,"t":"code","b":[177,2],"m":"lda","oa":2,"o":"(frame_ptr),y"},{"a":61084,"t":"code","b":[72],"m":"pha"},{"a":61085,"l":"j_EE9D","t":"code","b":[169,2],"m":"lda","o":"#$02","x":[61109]},{"a":61087,"t":"code","b":[160,3],"m":"ldy","o":"#$03"},{"a":61089,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61091,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":61093,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":61096,"t":"code","b":[186],"m":"tsx"},{"a":61097,"t":"code","b":[232],"m":"inx"},{"a":61098,"t":"code","b":[173,23,2],"m":"lda","oa":535,"o":"temp_b"},{"a":61101,"t":"code","b":[221,0,1],"m":"cmp","oa":256,"o":"f_0100,x"},{"a":61104,"t":"code","b":[176,6],"m":"bcs","oa":61112,"o":"b_EEB8"},{"a":61106,"t":"code","b":[238,23,2],"m":"inc","oa":535,"o":"temp_b"},{"a":61109,"t":"code","b":[76,157,238],"m":"jmp","oa":61085,"o":"j_EE9D"},{"a":61112,"l":"b_EEB8","t":"code","b":[154],"m":"txs","x":[61104]},{"a":61113,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":61116,"l":"player_menu","c":"The player-count menu: yellow text, \"  PUSH   \" at column 15, row 12, then on the next line \"F1 FOR 1 PLAYER, F3 FOR 2 PLAYERS.\"; waits for every key and button to be let go and then for one (routine 23), and sets the two-player flag $0210 when it is F3 or the second paddle's button (code 3).","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58198]},{"a":61119,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":61121,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":61123,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61125,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":61127,"t":"code","b":[32,62,227],"m":"jsr","oa":58174,"o":"set_colour"},{"a":61130,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":61132,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":61134,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61136,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":61138,"t":"code","b":[200],"m":"iny"},{"a":61139,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61141,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":61143,"t":"code","b":[32,45,227],"m":"jsr","oa":58157,"o":"set_cursor"},{"a":61146,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":61148,"t":"code","b":[133,8],"m":"sta","oa":8,"o":"out_device"},{"a":61150,"t":"code","b":[32,245,224],"m":"jsr","oa":57589,"o":"print_inline"},{"a":61153,"l":"str_push","c":"Inline argument of print_inline: \"  PUSH   \", zero terminator; the player menu's first line at column 15, row 12.","t":"byte","b":[32,32,80,85,83,72,32,32]},{"a":61161,"t":"byte","b":[32,0]},{"a":61163,"l":"after_push","c":"player_menu resumes here after \"  PUSH   \": a new line, then the player-count line.","t":"code","b":[32,24,225],"m":"jsr","oa":57624,"o":"print_newline"},{"a":61166,"t":"code","b":[32,245,224],"m":"jsr","oa":57589,"o":"print_inline"},{"a":61169,"l":"str_player_menu","c":"Inline argument of print_inline: cursor down and three cursor rights, then \"F1 FOR 1 PLAYER, F3 FOR 2 PLAYERS.\", zero terminator.","t":"byte","b":[17,29,29,29,70,49,32,70]},{"a":61177,"t":"byte","b":[79,82,32,49,32,80,76,65]},{"a":61185,"t":"byte","b":[89,69,82,44,32,70,51,32]},{"a":61193,"t":"byte","b":[70,79,82,32,50,32,80,76]},{"a":61201,"t":"byte","b":[65,89,69,82,83,46,0]},{"a":61208,"l":"after_menu_text","c":"player_menu resumes here after the player-count line: waits for a key or button (routine 23) and sets the two-player flag when the code is 3.","t":"code","b":[169,23],"m":"lda","o":"#$17"},{"a":61210,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":61212,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61214,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":61216,"t":"code","b":[32,1,235],"m":"jsr","oa":60161,"o":"call_ml"},{"a":61219,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61221,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":61223,"t":"code","b":[145,2],"m":"sta","oa":2,"o":"(frame_ptr),y"},{"a":61225,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":61227,"t":"code","b":[32,62,239],"m":"jsr","oa":61246,"o":"peek"},{"a":61230,"t":"code","b":[201,3],"m":"cmp","o":"#$03"},{"a":61232,"t":"code","b":[240,4],"m":"beq","oa":61238,"o":"b_EF36"},{"a":61234,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61236,"t":"code","b":[240,2],"m":"beq","oa":61240,"o":"b_EF38"},{"a":61238,"l":"b_EF36","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[61232]},{"a":61240,"l":"b_EF38","t":"code","b":[141,16,2],"m":"sta","oa":528,"o":"two_players","x":[61236]},{"a":61243,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":61246,"l":"peek","c":"Compiled function peek(n): returns the byte at $20+n, where the machine-code routines leave their results ($20 the see-saw's x, the key read or the collision code; $21 points; $22 balloons popped; $23-$25 rows emptied).","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[59633,59840,60004,60143,60510,60983,61227]},{"a":61249,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61251,"t":"code","b":[72],"m":"pha"},{"a":61252,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":61254,"t":"code","b":[24],"m":"clc"},{"a":61255,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":61257,"t":"code","b":[113,2],"m":"adc","oa":2,"o":"(frame_ptr),y"},{"a":61259,"t":"code","b":[133,4],"m":"sta","oa":4,"o":"ptr04"},{"a":61261,"t":"code","b":[104],"m":"pla"},{"a":61262,"t":"code","b":[133,5],"m":"sta","oa":5,"o":"zpa_05"},{"a":61264,"t":"code","b":[177,4],"m":"lda","oa":4,"o":"(ptr04),y"},{"a":61266,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":61269,"l":"add_score","c":"Compiled procedure add_score(points): adds the 8-bit argument to the current player's 16-bit score ($021F/$0220 low, $021D/$021E high) and shows it. The score is held in tens: the status line prints it with a 0 after it.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[59498,60115,60152]},{"a":61272,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":61275,"t":"code","b":[72],"m":"pha"},{"a":61276,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":61279,"t":"code","b":[168],"m":"tay"},{"a":61280,"t":"code","b":[185,31,2],"m":"lda","oa":543,"o":"a_021F,y"},{"a":61283,"t":"code","b":[24],"m":"clc"},{"a":61284,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":61286,"t":"code","b":[113,2],"m":"adc","oa":2,"o":"(frame_ptr),y"},{"a":61288,"t":"code","b":[170],"m":"tax"},{"a":61289,"t":"code","b":[104],"m":"pla"},{"a":61290,"t":"code","b":[168],"m":"tay"},{"a":61291,"t":"code","b":[138],"m":"txa"},{"a":61292,"t":"code","b":[153,31,2],"m":"sta","oa":543,"o":"a_021F,y"},{"a":61295,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":61298,"t":"code","b":[72],"m":"pha"},{"a":61299,"t":"code","b":[173,13,2],"m":"lda","oa":525,"o":"player"},{"a":61302,"t":"code","b":[168],"m":"tay"},{"a":61303,"t":"code","b":[185,29,2],"m":"lda","oa":541,"o":"score_hi,y"},{"a":61306,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":61308,"t":"code","b":[170],"m":"tax"},{"a":61309,"t":"code","b":[104],"m":"pla"},{"a":61310,"t":"code","b":[168],"m":"tay"},{"a":61311,"t":"code","b":[138],"m":"txa"},{"a":61312,"t":"code","b":[153,29,2],"m":"sta","oa":541,"o":"score_hi,y"},{"a":61315,"t":"code","b":[160,1],"m":"ldy","o":"#$01"},{"a":61317,"t":"code","b":[32,103,236],"m":"jsr","oa":60519,"o":"show_score"},{"a":61320,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":61323,"l":"bounce_left_wall","c":"Reverses the speed across if the clown is moving left.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[59678]},{"a":61326,"t":"code","b":[173,5,2],"m":"lda","oa":517,"o":"clown_dx"},{"a":61329,"t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":61331,"t":"code","b":[208,3],"m":"bne","oa":61336,"o":"b_EF98"},{"a":61333,"t":"code","b":[76,157,239],"m":"jmp","oa":61341,"o":"j_EF9D"},{"a":61336,"l":"b_EF98","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[61331]},{"a":61338,"t":"code","b":[32,189,239],"m":"jsr","oa":61373,"o":"negate_dx"},{"a":61341,"l":"j_EF9D","t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave","x":[61333]},{"a":61344,"l":"turn_left","c":"Reverses the speed across if the clown is moving right: the right wall, and a clown starting from the right-hand platforms.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[58798,59713]},{"a":61347,"t":"code","b":[173,5,2],"m":"lda","oa":517,"o":"clown_dx"},{"a":61350,"t":"code","b":[201,128],"m":"cmp","o":"#$80"},{"a":61352,"t":"code","b":[144,4],"m":"bcc","oa":61358,"o":"b_EFAE"},{"a":61354,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61356,"t":"code","b":[240,2],"m":"beq","oa":61360,"o":"b_EFB0"},{"a":61358,"l":"b_EFAE","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[61352]},{"a":61360,"l":"b_EFB0","t":"code","b":[208,3],"m":"bne","oa":61365,"o":"b_EFB5","x":[61356]},{"a":61362,"t":"code","b":[76,186,239],"m":"jmp","oa":61370,"o":"j_EFBA"},{"a":61365,"l":"b_EFB5","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[61360]},{"a":61367,"t":"code","b":[32,189,239],"m":"jsr","oa":61373,"o":"negate_dx"},{"a":61370,"l":"j_EFBA","t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave","x":[61362]},{"a":61373,"l":"negate_dx","c":"Negates the clown's 16-bit speed across, $0205/$0206.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[59474,59939,61338,61367]},{"a":61376,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61378,"t":"code","b":[56],"m":"sec"},{"a":61379,"t":"code","b":[237,6,2],"m":"sbc","oa":518,"o":"a_0206"},{"a":61382,"t":"code","b":[141,6,2],"m":"sta","oa":518,"o":"a_0206"},{"a":61385,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61387,"t":"code","b":[237,5,2],"m":"sbc","oa":517,"o":"clown_dx"},{"a":61390,"t":"code","b":[141,5,2],"m":"sta","oa":517,"o":"clown_dx"},{"a":61393,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":61396,"l":"bounce_ceiling","c":"Reverses the speed up or down if the clown is rising.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[59756]},{"a":61399,"t":"code","b":[173,7,2],"m":"lda","oa":519,"o":"clown_dy"},{"a":61402,"t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":61404,"t":"code","b":[208,3],"m":"bne","oa":61409,"o":"b_EFE1"},{"a":61406,"t":"code","b":[76,230,239],"m":"jmp","oa":61414,"o":"j_EFE6"},{"a":61409,"l":"b_EFE1","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[61404]},{"a":61411,"t":"code","b":[32,233,239],"m":"jsr","oa":61417,"o":"negate_dy"},{"a":61414,"l":"j_EFE6","t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave","x":[61406]},{"a":61417,"l":"negate_dy","c":"Negates the clown's 16-bit speed down, $0207/$0208.","t":"code","b":[32,12,224],"m":"jsr","oa":57356,"o":"proc_enter","x":[59342,59944,61411]},{"a":61420,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61422,"t":"code","b":[56],"m":"sec"},{"a":61423,"t":"code","b":[237,8,2],"m":"sbc","oa":520,"o":"a_0208"},{"a":61426,"t":"code","b":[141,8,2],"m":"sta","oa":520,"o":"a_0208"},{"a":61429,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61431,"t":"code","b":[237,7,2],"m":"sbc","oa":519,"o":"clown_dy"},{"a":61434,"t":"code","b":[141,7,2],"m":"sta","oa":519,"o":"clown_dy"},{"a":61437,"t":"code","b":[76,32,224],"m":"jmp","oa":57376,"o":"proc_leave"},{"a":61440,"l":"ml_table","c":"The machine-code routines the compiled program calls by number through call_ml ($EB01), 25 addresses: 0 move_clown_sprite $F27D, 1 read_paddle_seesaw $F189, 2 wait_tick $F711, 3 print_number $F697, 4 show_status_number $F668, 5 read_keys $F4A6, 6 swap_balloons $F71B, 7 draw_playfield_twice $F4EE, 8 platform_run $F58E, 9 scroll_balloons $F1E7, 10 sound_bounce $F33B, 11 sound_pop $F34E, 12 sound_fall $F358, 13 sound_tick $F36B, 14 draw_clown_frame $F032, 15 play_tune $F3AA, 16 show_bonus $F3DE, 17 show_bonus_jump $F413, 18 fall_animation $F423, 19 show_high_score $F688, 20 sound_on $F46F, 21 sound_off $F475, 22 draw_seesaw $F1A7, 23 wait_key $F4DB, 24 blink_game_over $F47F. The compiled program never asks for numbers 3, 11 or 12: the pop and the fall whistle (11, 12) are called directly by move_clown_sprite and fall_animation, and nothing prints a number at the cursor through 3.","t":"addr","b":[125,242],"oa":62077,"o":"move_clown_sprite"},{"a":61442,"t":"addr","b":[137,241],"oa":61833,"o":"read_paddle_seesaw"},{"a":61444,"t":"addr","b":[17,247],"oa":63249,"o":"wait_tick"},{"a":61446,"t":"addr","b":[151,246],"oa":63127,"o":"print_number"},{"a":61448,"t":"addr","b":[104,246],"oa":63080,"o":"show_status_number"},{"a":61450,"t":"addr","b":[166,244],"oa":62630,"o":"read_keys"},{"a":61452,"t":"addr","b":[27,247],"oa":63259,"o":"swap_balloons"},{"a":61454,"t":"addr","b":[238,244],"oa":62702,"o":"draw_playfield_twice"},{"a":61456,"t":"addr","b":[142,245],"oa":62862,"o":"platform_run"},{"a":61458,"t":"addr","b":[231,241],"oa":61927,"o":"scroll_balloons"},{"a":61460,"t":"addr","b":[59,243],"oa":62267,"o":"sound_bounce"},{"a":61462,"t":"addr","b":[78,243],"oa":62286,"o":"sound_pop"},{"a":61464,"t":"addr","b":[88,243],"oa":62296,"o":"sound_fall"},{"a":61466,"t":"addr","b":[107,243],"oa":62315,"o":"sound_tick"},{"a":61468,"t":"addr","b":[50,240],"oa":61490,"o":"draw_clown_frame"},{"a":61470,"t":"addr","b":[170,243],"oa":62378,"o":"play_tune"},{"a":61472,"t":"addr","b":[222,243],"oa":62430,"o":"show_bonus"},{"a":61474,"t":"addr","b":[19,244],"oa":62483,"o":"show_bonus_jump"},{"a":61476,"t":"addr","b":[35,244],"oa":62499,"o":"fall_animation"},{"a":61478,"t":"addr","b":[136,246],"oa":63112,"o":"show_high_score"},{"a":61480,"t":"addr","b":[111,244],"oa":62575,"o":"sound_on"},{"a":61482,"t":"addr","b":[117,244],"oa":62581,"o":"sound_off"},{"a":61484,"t":"addr","b":[167,241],"oa":61863,"o":"draw_seesaw"},{"a":61486,"t":"addr","b":[219,244],"oa":62683,"o":"wait_key"},{"a":61488,"t":"addr","b":[127,244],"oa":62591,"o":"blink_game_over"},{"a":61490,"l":"draw_clown_frame","c":"Routine 14: stores A as the clown's frame ($3A) and draws it (falls into draw_clown). Called once, by new_game, for the clown shown in the middle while the start tune plays.","t":"code","b":[133,58],"m":"sta","oa":58,"o":"clown_frame","x":[61468]},{"a":61492,"l":"draw_clown","c":"Draws the flying clown, sprite 0, and works out which character cells its pixels overlap. A = frame number (0-10) with the x position's ninth bit in bit 7, X = x, Y = y, in the playfield's pixels. Copies the frame's 16 x 16 shape (32 bytes from clown_shapes, $FCBF + 32 x frame) into the sprite at $03C0 and into a mask of three columns by 24 rows ($7A-$C1); shifts the mask right by x mod 8 and down by y mod 8, so it lines up with the character grid; places sprite 0 at x+24, y+50 and turns it on. Then, for each of the nine cells of the 3 x 3 block under it (probe_offsets), ANDs the eight rows of that cell's character, read from the character set at $F800, with the mask: where any pixel is shared, the character code goes in $44-$4C. Pixel-exact collision with walls, platforms and balloons, which are all characters.","t":"code","b":[72],"m":"pha","x":[62116,62525,62993]},{"a":61493,"t":"code","b":[42],"m":"rol","o":"a"},{"a":61494,"t":"code","b":[42],"m":"rol","o":"a"},{"a":61495,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":61497,"t":"code","b":[133,48],"m":"sta","oa":48,"o":"zpa_30"},{"a":61499,"t":"code","b":[104],"m":"pla"},{"a":61500,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":61502,"t":"code","b":[133,59],"m":"sta","oa":59,"o":"zpa_3B"},{"a":61504,"t":"code","b":[134,46],"m":"stx","oa":46,"o":"spr_x"},{"a":61506,"t":"code","b":[132,47],"m":"sty","oa":47,"o":"zpa_2F"},{"a":61508,"t":"code","b":[162,71],"m":"ldx","o":"#$47"},{"a":61510,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61512,"l":"b_F048","t":"code","b":[149,122],"m":"sta","oa":122,"o":"clown_mask,x","x":[61515]},{"a":61514,"t":"code","b":[202],"m":"dex"},{"a":61515,"t":"code","b":[16,251],"m":"bpl","oa":61512,"o":"b_F048"},{"a":61517,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61519,"t":"code","b":[133,43],"m":"sta","oa":43,"o":"zpa_2B"},{"a":61521,"t":"code","b":[165,59],"m":"lda","oa":59,"o":"zpa_3B"},{"a":61523,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61524,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61525,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61526,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61527,"t":"code","b":[38,43],"m":"rol","oa":43,"o":"zpa_2B"},{"a":61529,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61530,"t":"code","b":[38,43],"m":"rol","oa":43,"o":"zpa_2B"},{"a":61532,"t":"code","b":[105,191],"m":"adc","o":"#$BF"},{"a":61534,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"src_ptr"},{"a":61536,"t":"code","b":[165,43],"m":"lda","oa":43,"o":"zpa_2B"},{"a":61538,"t":"code","b":[105,252],"m":"adc","o":"#$FC"},{"a":61540,"t":"code","b":[133,43],"m":"sta","oa":43,"o":"zpa_2B"},{"a":61542,"t":"code","b":[162,46],"m":"ldx","o":"#$2E"},{"a":61544,"t":"code","b":[160,31],"m":"ldy","o":"#$1F"},{"a":61546,"l":"b_F06A","t":"code","b":[177,42],"m":"lda","oa":42,"o":"(src_ptr),y","x":[61571]},{"a":61548,"t":"code","b":[192,16],"m":"cpy","o":"#$10"},{"a":61550,"t":"code","b":[176,5],"m":"bcs","oa":61557,"o":"b_F075"},{"a":61552,"t":"code","b":[153,122,0],"m":"sta","oa":122,"o":"clown_mask,y"},{"a":61555,"t":"code","b":[144,3],"m":"bcc","oa":61560,"o":"b_F078"},{"a":61557,"l":"b_F075","t":"code","b":[153,130,0],"m":"sta","oa":130,"o":"f_0082,y","x":[61550]},{"a":61560,"l":"b_F078","t":"code","b":[157,192,3],"m":"sta","oa":960,"o":"sprite0_shape,x","x":[61555]},{"a":61563,"t":"code","b":[202],"m":"dex"},{"a":61564,"t":"code","b":[202],"m":"dex"},{"a":61565,"t":"code","b":[202],"m":"dex"},{"a":61566,"t":"code","b":[16,2],"m":"bpl","oa":61570,"o":"b_F082"},{"a":61568,"t":"code","b":[162,45],"m":"ldx","o":"#$2D"},{"a":61570,"l":"b_F082","t":"code","b":[136],"m":"dey","x":[61566]},{"a":61571,"t":"code","b":[16,229],"m":"bpl","oa":61546,"o":"b_F06A"},{"a":61573,"t":"code","b":[165,46],"m":"lda","oa":46,"o":"spr_x"},{"a":61575,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":61577,"t":"code","b":[240,100],"m":"beq","oa":61679,"o":"b_F0EF"},{"a":61579,"t":"code","b":[170],"m":"tax"},{"a":61580,"l":"b_F08C","t":"code","b":[70,122],"m":"lsr","oa":122,"o":"clown_mask","x":[61677]},{"a":61582,"t":"code","b":[102,146],"m":"ror","oa":146,"o":"zpa_92"},{"a":61584,"t":"code","b":[102,170],"m":"ror","oa":170,"o":"zpa_AA"},{"a":61586,"t":"code","b":[70,123],"m":"lsr","oa":123,"o":"zpa_7B"},{"a":61588,"t":"code","b":[102,147],"m":"ror","oa":147,"o":"zpa_93"},{"a":61590,"t":"code","b":[102,171],"m":"ror","oa":171,"o":"zpa_AB"},{"a":61592,"t":"code","b":[70,124],"m":"lsr","oa":124,"o":"zpa_7C"},{"a":61594,"t":"code","b":[102,148],"m":"ror","oa":148,"o":"zpa_94"},{"a":61596,"t":"code","b":[102,172],"m":"ror","oa":172,"o":"zpa_AC"},{"a":61598,"t":"code","b":[70,125],"m":"lsr","oa":125,"o":"zpa_7D"},{"a":61600,"t":"code","b":[102,149],"m":"ror","oa":149,"o":"zpa_95"},{"a":61602,"t":"code","b":[102,173],"m":"ror","oa":173,"o":"zpa_AD"},{"a":61604,"t":"code","b":[70,126],"m":"lsr","oa":126,"o":"zpa_7E"},{"a":61606,"t":"code","b":[102,150],"m":"ror","oa":150,"o":"zpa_96"},{"a":61608,"t":"code","b":[102,174],"m":"ror","oa":174,"o":"zpa_AE"},{"a":61610,"t":"code","b":[70,127],"m":"lsr","oa":127,"o":"zpa_7F"},{"a":61612,"t":"code","b":[102,151],"m":"ror","oa":151,"o":"zpa_97"},{"a":61614,"t":"code","b":[102,175],"m":"ror","oa":175,"o":"zpa_AF"},{"a":61616,"t":"code","b":[70,128],"m":"lsr","oa":128,"o":"zpa_80"},{"a":61618,"t":"code","b":[102,152],"m":"ror","oa":152,"o":"zpa_98"},{"a":61620,"t":"code","b":[102,176],"m":"ror","oa":176,"o":"zpa_B0"},{"a":61622,"t":"code","b":[70,129],"m":"lsr","oa":129,"o":"zpa_81"},{"a":61624,"t":"code","b":[102,153],"m":"ror","oa":153,"o":"zpa_99"},{"a":61626,"t":"code","b":[102,177],"m":"ror","oa":177,"o":"zpa_B1"},{"a":61628,"t":"code","b":[70,130],"m":"lsr","oa":130,"o":"f_0082"},{"a":61630,"t":"code","b":[102,154],"m":"ror","oa":154,"o":"zpa_9A"},{"a":61632,"t":"code","b":[102,178],"m":"ror","oa":178,"o":"zpa_B2"},{"a":61634,"t":"code","b":[70,131],"m":"lsr","oa":131,"o":"zpa_83"},{"a":61636,"t":"code","b":[102,155],"m":"ror","oa":155,"o":"zpa_9B"},{"a":61638,"t":"code","b":[102,179],"m":"ror","oa":179,"o":"zpa_B3"},{"a":61640,"t":"code","b":[70,132],"m":"lsr","oa":132,"o":"zpa_84"},{"a":61642,"t":"code","b":[102,156],"m":"ror","oa":156,"o":"zpa_9C"},{"a":61644,"t":"code","b":[102,180],"m":"ror","oa":180,"o":"zpa_B4"},{"a":61646,"t":"code","b":[70,133],"m":"lsr","oa":133,"o":"zpa_85"},{"a":61648,"t":"code","b":[102,157],"m":"ror","oa":157,"o":"zpa_9D"},{"a":61650,"t":"code","b":[102,181],"m":"ror","oa":181,"o":"zpa_B5"},{"a":61652,"t":"code","b":[70,134],"m":"lsr","oa":134,"o":"zpa_86"},{"a":61654,"t":"code","b":[102,158],"m":"ror","oa":158,"o":"zpa_9E"},{"a":61656,"t":"code","b":[102,182],"m":"ror","oa":182,"o":"zpa_B6"},{"a":61658,"t":"code","b":[70,135],"m":"lsr","oa":135,"o":"zpa_87"},{"a":61660,"t":"code","b":[102,159],"m":"ror","oa":159,"o":"zpa_9F"},{"a":61662,"t":"code","b":[102,183],"m":"ror","oa":183,"o":"zpa_B7"},{"a":61664,"t":"code","b":[70,136],"m":"lsr","oa":136,"o":"zpa_88"},{"a":61666,"t":"code","b":[102,160],"m":"ror","oa":160,"o":"zpa_A0"},{"a":61668,"t":"code","b":[102,184],"m":"ror","oa":184,"o":"zpa_B8"},{"a":61670,"t":"code","b":[70,137],"m":"lsr","oa":137,"o":"zpa_89"},{"a":61672,"t":"code","b":[102,161],"m":"ror","oa":161,"o":"zpa_A1"},{"a":61674,"t":"code","b":[102,185],"m":"ror","oa":185,"o":"zpa_B9"},{"a":61676,"t":"code","b":[202],"m":"dex"},{"a":61677,"t":"code","b":[208,157],"m":"bne","oa":61580,"o":"b_F08C"},{"a":61679,"l":"b_F0EF","t":"code","b":[165,47],"m":"lda","oa":47,"o":"zpa_2F","x":[61577]},{"a":61681,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":61683,"t":"code","b":[240,36],"m":"beq","oa":61721,"o":"b_F119"},{"a":61685,"t":"code","b":[24],"m":"clc"},{"a":61686,"t":"code","b":[105,15],"m":"adc","o":"#$0F"},{"a":61688,"t":"code","b":[170],"m":"tax"},{"a":61689,"t":"code","b":[160,15],"m":"ldy","o":"#$0F"},{"a":61691,"l":"b_F0FB","t":"code","b":[185,122,0],"m":"lda","oa":122,"o":"clown_mask,y","x":[61708]},{"a":61694,"t":"code","b":[149,122],"m":"sta","oa":122,"o":"clown_mask,x"},{"a":61696,"t":"code","b":[185,146,0],"m":"lda","oa":146,"o":"zpa_92,y"},{"a":61699,"t":"code","b":[149,146],"m":"sta","oa":146,"o":"zpa_92,x"},{"a":61701,"t":"code","b":[185,170,0],"m":"lda","oa":170,"o":"zpa_AA,y"},{"a":61704,"t":"code","b":[149,170],"m":"sta","oa":170,"o":"zpa_AA,x"},{"a":61706,"t":"code","b":[202],"m":"dex"},{"a":61707,"t":"code","b":[136],"m":"dey"},{"a":61708,"t":"code","b":[16,237],"m":"bpl","oa":61691,"o":"b_F0FB"},{"a":61710,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61712,"l":"b_F110","t":"code","b":[149,122],"m":"sta","oa":122,"o":"clown_mask,x","x":[61719]},{"a":61714,"t":"code","b":[149,146],"m":"sta","oa":146,"o":"zpa_92,x"},{"a":61716,"t":"code","b":[149,170],"m":"sta","oa":170,"o":"zpa_AA,x"},{"a":61718,"t":"code","b":[202],"m":"dex"},{"a":61719,"t":"code","b":[16,247],"m":"bpl","oa":61712,"o":"b_F110"},{"a":61721,"l":"b_F119","t":"code","b":[165,46],"m":"lda","oa":46,"o":"spr_x","x":[61683]},{"a":61723,"t":"code","b":[24],"m":"clc"},{"a":61724,"t":"code","b":[105,24],"m":"adc","o":"#$18"},{"a":61726,"t":"code","b":[141,0,208],"m":"sta","o":"vic_sprite0_x"},{"a":61729,"t":"code","b":[165,48],"m":"lda","oa":48,"o":"zpa_30"},{"a":61731,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":61733,"t":"code","b":[133,44],"m":"sta","oa":44,"o":"ml_tmp"},{"a":61735,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":61738,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":61740,"t":"code","b":[5,44],"m":"ora","oa":44,"o":"ml_tmp"},{"a":61742,"t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb"},{"a":61745,"t":"code","b":[165,47],"m":"lda","oa":47,"o":"zpa_2F"},{"a":61747,"t":"code","b":[105,50],"m":"adc","o":"#$32"},{"a":61749,"t":"code","b":[141,1,208],"m":"sta","o":"vic_sprite0_y"},{"a":61752,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":61754,"t":"code","b":[13,21,208],"m":"ora","o":"vic_sprite_enable"},{"a":61757,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":61760,"t":"code","b":[32,52,246],"m":"jsr","oa":63028,"o":"cell_of_sprite"},{"a":61763,"l":"probe_cells","c":"The collision test of draw_clown: for each of the nine probe cells, the screen code under it, its glyph from $F800 + 8 x code, and an AND with the clown's shifted mask, row by row; a hit stores the code in $44+cell.","t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":61765,"t":"code","b":[133,51],"m":"sta","oa":51,"o":"ml_count"},{"a":61767,"l":"b_F147","t":"code","b":[166,51],"m":"ldx","oa":51,"o":"ml_count","x":[61830]},{"a":61769,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61771,"t":"code","b":[149,68],"m":"sta","oa":68,"o":"probe_hits,x"},{"a":61773,"t":"code","b":[133,43],"m":"sta","oa":43,"o":"zpa_2B"},{"a":61775,"t":"code","b":[188,81,254],"m":"ldy","oa":65105,"o":"probe_offsets,x"},{"a":61778,"t":"code","b":[177,38],"m":"lda","oa":38,"o":"(scr_ptr),y"},{"a":61780,"t":"code","b":[133,44],"m":"sta","oa":44,"o":"ml_tmp"},{"a":61782,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61783,"t":"code","b":[38,43],"m":"rol","oa":43,"o":"zpa_2B"},{"a":61785,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61786,"t":"code","b":[38,43],"m":"rol","oa":43,"o":"zpa_2B"},{"a":61788,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61789,"t":"code","b":[38,43],"m":"rol","oa":43,"o":"zpa_2B"},{"a":61791,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":61793,"t":"code","b":[133,42],"m":"sta","oa":42,"o":"src_ptr"},{"a":61795,"t":"code","b":[165,43],"m":"lda","oa":43,"o":"zpa_2B"},{"a":61797,"t":"code","b":[105,248],"m":"adc","o":"#$F8"},{"a":61799,"t":"code","b":[133,43],"m":"sta","oa":43,"o":"zpa_2B"},{"a":61801,"t":"code","b":[138],"m":"txa"},{"a":61802,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61803,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61804,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61805,"t":"code","b":[170],"m":"tax"},{"a":61806,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":61808,"l":"b_F170","t":"code","b":[177,42],"m":"lda","oa":42,"o":"(src_ptr),y","x":[61818]},{"a":61810,"t":"code","b":[53,122],"m":"and","oa":122,"o":"clown_mask,x"},{"a":61812,"t":"code","b":[208,8],"m":"bne","oa":61822,"o":"b_F17E"},{"a":61814,"t":"code","b":[232],"m":"inx"},{"a":61815,"t":"code","b":[200],"m":"iny"},{"a":61816,"t":"code","b":[192,8],"m":"cpy","o":"#$08"},{"a":61818,"t":"code","b":[208,244],"m":"bne","oa":61808,"o":"b_F170"},{"a":61820,"t":"code","b":[240,6],"m":"beq","oa":61828,"o":"b_F184"},{"a":61822,"l":"b_F17E","t":"code","b":[166,51],"m":"ldx","oa":51,"o":"ml_count","x":[61812]},{"a":61824,"t":"code","b":[165,44],"m":"lda","oa":44,"o":"ml_tmp"},{"a":61826,"t":"code","b":[149,68],"m":"sta","oa":68,"o":"probe_hits,x"},{"a":61828,"l":"b_F184","t":"code","b":[198,51],"m":"dec","oa":51,"o":"ml_count","x":[61820]},{"a":61830,"t":"code","b":[16,191],"m":"bpl","oa":61767,"o":"b_F147"},{"a":61832,"t":"code","b":[96],"m":"rts"},{"a":61833,"l":"read_paddle_seesaw","c":"Routine 1: reads paddle Y (0 = the first paddle, $D419; 1 = the second, $D41A) and draws the see-saw with tilt X. The value is 200 less the reading, 0 at least, then times 1.25, smoothed with the last value (smooth_paddle); returned in $20 as the see-saw's x. The see-saw is drawn from that x, at least 17: sprite 1 at x+24 and sprite 2 at x+48, both at y 234 (set at power-on), with the sprite shapes $EF and $F0 for tilt 0 or $F1 and $F2 for tilt 1, and both turned on.","t":"code","b":[168],"m":"tay","x":[61442,62968]},{"a":61834,"t":"code","b":[134,77],"m":"stx","oa":77,"o":"seesaw_tilt"},{"a":61836,"t":"code","b":[56],"m":"sec"},{"a":61837,"t":"code","b":[169,200],"m":"lda","o":"#$C8"},{"a":61839,"t":"code","b":[249,25,212],"m":"sbc","o":"sid_paddle_x,y"},{"a":61842,"t":"code","b":[176,2],"m":"bcs","oa":61846,"o":"b_F196"},{"a":61844,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61846,"l":"b_F196","t":"code","b":[133,44],"m":"sta","oa":44,"o":"ml_tmp","x":[61842]},{"a":61848,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":61849,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":61850,"t":"code","b":[24],"m":"clc"},{"a":61851,"t":"code","b":[101,44],"m":"adc","oa":44,"o":"ml_tmp"},{"a":61853,"t":"code","b":[32,231,247],"m":"jsr","oa":63463,"o":"smooth_paddle"},{"a":61856,"t":"code","b":[234],"m":"nop"},{"a":61857,"t":"code","b":[234],"m":"nop"},{"a":61858,"t":"code","b":[234],"m":"nop"},{"a":61859,"t":"code","b":[234],"m":"nop"},{"a":61860,"t":"code","b":[133,32],"m":"sta","oa":32,"o":"ml_result"},{"a":61862,"c":"BIT $4D86 here hides STX $4D, the first instruction of draw_seesaw ($F1A7), from read_paddle_seesaw, which has already stored X.","t":"code","b":[44,134,77],"m":"bit","oa":19846,"o":"a_4D86"},{"a":61863,"t":"note","l":"draw_seesaw","c":"Routine 22: draws the see-saw at x = A (at least 17) with tilt X, without reading a paddle; the attract mode's see-saw. Its entry is the operand of the BIT at $F1A6.","note":"inside the item at $F1A6","x":[61484]},{"a":61865,"t":"code","b":[201,17],"m":"cmp","o":"#$11"},{"a":61867,"t":"code","b":[176,2],"m":"bcs","oa":61871,"o":"b_F1AF"},{"a":61869,"t":"code","b":[169,17],"m":"lda","o":"#$11"},{"a":61871,"l":"b_F1AF","t":"code","b":[72],"m":"pha","x":[61867]},{"a":61872,"t":"code","b":[24],"m":"clc"},{"a":61873,"t":"code","b":[105,24],"m":"adc","o":"#$18"},{"a":61875,"t":"code","b":[141,2,208],"m":"sta","o":"vic_sprite1_x"},{"a":61878,"t":"code","b":[173,16,208],"m":"lda","o":"vic_sprite_x_msb"},{"a":61881,"t":"code","b":[41,249],"m":"and","o":"#$F9"},{"a":61883,"t":"code","b":[144,2],"m":"bcc","oa":61887,"o":"b_F1BF"},{"a":61885,"t":"code","b":[9,2],"m":"ora","o":"#$02"},{"a":61887,"l":"b_F1BF","t":"code","b":[170],"m":"tax","x":[61883]},{"a":61888,"t":"code","b":[104],"m":"pla"},{"a":61889,"t":"code","b":[24],"m":"clc"},{"a":61890,"t":"code","b":[105,48],"m":"adc","o":"#$30"},{"a":61892,"t":"code","b":[141,4,208],"m":"sta","o":"vic_sprite2_x"},{"a":61895,"t":"code","b":[138],"m":"txa"},{"a":61896,"t":"code","b":[144,2],"m":"bcc","oa":61900,"o":"b_F1CC"},{"a":61898,"t":"code","b":[9,4],"m":"ora","o":"#$04"},{"a":61900,"l":"b_F1CC","t":"code","b":[141,16,208],"m":"sta","o":"vic_sprite_x_msb","x":[61896]},{"a":61903,"t":"code","b":[165,77],"m":"lda","oa":77,"o":"seesaw_tilt"},{"a":61905,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":61907,"t":"code","b":[10],"m":"asl","o":"a"},{"a":61908,"t":"code","b":[105,239],"m":"adc","o":"#$EF"},{"a":61910,"t":"code","b":[141,249,7],"m":"sta","oa":2041,"o":"a_07F9"},{"a":61913,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":61915,"t":"code","b":[141,250,7],"m":"sta","oa":2042,"o":"a_07FA"},{"a":61918,"t":"code","b":[169,6],"m":"lda","o":"#$06"},{"a":61920,"t":"code","b":[13,21,208],"m":"ora","o":"vic_sprite_enable"},{"a":61923,"t":"code","b":[141,21,208],"m":"sta","o":"vic_sprite_enable"},{"a":61926,"t":"code","b":[96],"m":"rts"},{"a":61927,"l":"scroll_balloons","c":"Routine 9: scrolls the three rows of balloons one pixel, every third call ($41 counts down from 3). The top and bottom rows move right and the middle row left: each row's fine position ($50-$52, 0-7) picks one of eight pre-shifted sets of three characters ($60 + 3 x position), and when it wraps the row's start column ($53-$55, 2-37) moves one cell. Each of the row's twelve balloons is redrawn as its three characters, or three spaces if popped ($56-$79), across columns 2-37 of screen rows 3, 5 and 7, wrapping at the walls.","t":"code","b":[169,7],"m":"lda","o":"#$07","x":[61458,62511,62959]},{"a":61929,"t":"code","b":[133,50],"m":"sta","oa":50,"o":"zpa_32"},{"a":61931,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":61933,"t":"code","b":[133,49],"m":"sta","oa":49,"o":"cell_col"},{"a":61935,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":61937,"t":"code","b":[133,56],"m":"sta","oa":56,"o":"row_index"},{"a":61939,"t":"code","b":[165,65],"m":"lda","oa":65,"o":"scroll_div"},{"a":61941,"t":"code","b":[240,5],"m":"beq","oa":61948,"o":"b_F1FC"},{"a":61943,"t":"code","b":[198,65],"m":"dec","oa":65,"o":"scroll_div"},{"a":61945,"t":"code","b":[240,1],"m":"beq","oa":61948,"o":"b_F1FC"},{"a":61947,"t":"code","b":[96],"m":"rts"},{"a":61948,"l":"b_F1FC","t":"code","b":[169,3],"m":"lda","o":"#$03","x":[61941,61945]},{"a":61950,"t":"code","b":[133,65],"m":"sta","oa":65,"o":"scroll_div"},{"a":61952,"l":"b_F200","t":"code","b":[32,74,246],"m":"jsr","oa":63050,"o":"screen_address","x":[62074]},{"a":61955,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":61957,"t":"code","b":[133,44],"m":"sta","oa":44,"o":"ml_tmp"},{"a":61959,"t":"code","b":[166,56],"m":"ldx","oa":56,"o":"row_index"},{"a":61961,"t":"code","b":[181,80],"m":"lda","oa":80,"o":"balloon_fine,x"},{"a":61963,"t":"code","b":[224,1],"m":"cpx","o":"#$01"},{"a":61965,"t":"code","b":[240,22],"m":"beq","oa":61989,"o":"b_F225"},{"a":61967,"t":"code","b":[24],"m":"clc"},{"a":61968,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":61970,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":61972,"t":"code","b":[149,80],"m":"sta","oa":80,"o":"balloon_fine,x"},{"a":61974,"t":"code","b":[208,37],"m":"bne","oa":62013,"o":"b_F23D"},{"a":61976,"t":"code","b":[181,83],"m":"lda","oa":83,"o":"zpf_53,x"},{"a":61978,"t":"code","b":[24],"m":"clc"},{"a":61979,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":61981,"t":"code","b":[201,38],"m":"cmp","o":"#$26"},{"a":61983,"t":"code","b":[208,26],"m":"bne","oa":62011,"o":"b_F23B"},{"a":61985,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":61987,"t":"code","b":[208,22],"m":"bne","oa":62011,"o":"b_F23B"},{"a":61989,"l":"b_F225","t":"code","b":[56],"m":"sec","x":[61965]},{"a":61990,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":61992,"t":"code","b":[41,7],"m":"and","o":"#$07"},{"a":61994,"t":"code","b":[149,80],"m":"sta","oa":80,"o":"balloon_fine,x"},{"a":61996,"t":"code","b":[201,7],"m":"cmp","o":"#$07"},{"a":61998,"t":"code","b":[208,13],"m":"bne","oa":62013,"o":"b_F23D"},{"a":62000,"t":"code","b":[181,83],"m":"lda","oa":83,"o":"zpf_53,x"},{"a":62002,"t":"code","b":[56],"m":"sec"},{"a":62003,"t":"code","b":[233,1],"m":"sbc","o":"#$01"},{"a":62005,"t":"code","b":[201,1],"m":"cmp","o":"#$01"},{"a":62007,"t":"code","b":[208,2],"m":"bne","oa":62011,"o":"b_F23B"},{"a":62009,"t":"code","b":[169,37],"m":"lda","o":"#$25"},{"a":62011,"l":"b_F23B","t":"code","b":[149,83],"m":"sta","oa":83,"o":"zpf_53,x","x":[61983,61987,62007]},{"a":62013,"l":"b_F23D","t":"code","b":[181,80],"m":"lda","oa":80,"o":"balloon_fine,x","x":[61974,61998]},{"a":62015,"t":"code","b":[10],"m":"asl","o":"a"},{"a":62016,"t":"code","b":[117,80],"m":"adc","oa":80,"o":"balloon_fine,x"},{"a":62018,"t":"code","b":[105,96],"m":"adc","o":"#$60"},{"a":62020,"t":"code","b":[133,57],"m":"sta","oa":57,"o":"glyph_base"},{"a":62022,"t":"code","b":[180,83],"m":"ldy","oa":83,"o":"zpf_53,x"},{"a":62024,"t":"code","b":[165,56],"m":"lda","oa":56,"o":"row_index"},{"a":62026,"t":"code","b":[189,90,254],"m":"lda","oa":65114,"o":"balloon_row_base,x"},{"a":62029,"t":"code","b":[170],"m":"tax"},{"a":62030,"l":"b_F24E","t":"code","b":[169,3],"m":"lda","o":"#$03","x":[62066]},{"a":62032,"t":"code","b":[133,51],"m":"sta","oa":51,"o":"ml_count"},{"a":62034,"t":"code","b":[181,86],"m":"lda","oa":86,"o":"balloon_flags,x"},{"a":62036,"t":"code","b":[208,3],"m":"bne","oa":62041,"o":"b_F259"},{"a":62038,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":62040,"t":"code","b":[44,165,57],"m":"bit","oa":14757,"o":"a_39A5"},{"a":62043,"l":"b_F25B","t":"code","b":[145,38],"m":"sta","oa":38,"o":"(scr_ptr),y","x":[62061]},{"a":62045,"t":"code","b":[200],"m":"iny"},{"a":62046,"t":"code","b":[192,38],"m":"cpy","o":"#$26"},{"a":62048,"t":"code","b":[208,2],"m":"bne","oa":62052,"o":"b_F264"},{"a":62050,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":62052,"l":"b_F264","t":"code","b":[201,32],"m":"cmp","o":"#$20","x":[62048]},{"a":62054,"t":"code","b":[240,3],"m":"beq","oa":62059,"o":"b_F26B"},{"a":62056,"t":"code","b":[24],"m":"clc"},{"a":62057,"t":"code","b":[105,1],"m":"adc","o":"#$01"},{"a":62059,"l":"b_F26B","t":"code","b":[198,51],"m":"dec","oa":51,"o":"ml_count","x":[62054]},{"a":62061,"t":"code","b":[208,236],"m":"bne","oa":62043,"o":"b_F25B"},{"a":62063,"t":"code","b":[232],"m":"inx"},{"a":62064,"t":"code","b":[198,44],"m":"dec","oa":44,"o":"ml_tmp"},{"a":62066,"t":"code","b":[208,218],"m":"bne","oa":62030,"o":"b_F24E"},{"a":62068,"t":"code","b":[198,50],"m":"dec","oa":50,"o":"zpa_32"},{"a":62070,"t":"code","b":[198,50],"m":"dec","oa":50,"o":"zpa_32"},{"a":62072,"t":"code","b":[198,56],"m":"dec","oa":56,"o":"row_index"},{"a":62074,"t":"code","b":[16,132],"m":"bpl","oa":61952,"o":"b_F200"},{"a":62076,"t":"code","b":[96],"m":"rts"},{"a":62077,"l":"move_clown_sprite","c":"Routine 0: draws the clown and reports what it hit. A bit 7 set (falling low) shows frame 4, the landing pose; otherwise the frame cycles through 0-3, one step every 11 calls. A bit 0 is x's ninth bit, X = x, Y = y. After draw_clown, $20 = the highest code below $5A among the cells hit (a wall, the ceiling or a platform), or $60 when a balloon was hit. Each balloon hit is found from the cell's row and column, after the row's scroll, and if still there is popped: its points (balloon_row_points) added to $21, the count in $22, the pop sound played. Then for each row, $23-$25 = $FF if every balloon in it is gone, and the row is refilled at once (refill_row).","t":"code","b":[72],"m":"pha","x":[61440]},{"a":62078,"t":"code","b":[106],"m":"ror","o":"a"},{"a":62079,"t":"code","b":[106],"m":"ror","o":"a"},{"a":62080,"t":"code","b":[41,128],"m":"and","o":"#$80"},{"a":62082,"t":"code","b":[133,44],"m":"sta","oa":44,"o":"ml_tmp"},{"a":62084,"t":"code","b":[104],"m":"pla"},{"a":62085,"t":"code","b":[16,4],"m":"bpl","oa":62091,"o":"b_F28B"},{"a":62087,"t":"code","b":[169,4],"m":"lda","o":"#$04"},{"a":62089,"t":"code","b":[208,21],"m":"bne","oa":62112,"o":"b_F2A0"},{"a":62091,"l":"b_F28B","t":"code","b":[165,60],"m":"lda","oa":60,"o":"anim_count","x":[62085]},{"a":62093,"t":"code","b":[240,5],"m":"beq","oa":62100,"o":"b_F294"},{"a":62095,"t":"code","b":[198,60],"m":"dec","oa":60,"o":"anim_count"},{"a":62097,"t":"code","b":[76,154,242],"m":"jmp","oa":62106,"o":"j_F29A"},{"a":62100,"l":"b_F294","t":"code","b":[169,10],"m":"lda","o":"#$0A","x":[62093]},{"a":62102,"t":"code","b":[133,60],"m":"sta","oa":60,"o":"anim_count"},{"a":62104,"t":"code","b":[230,61],"m":"inc","oa":61,"o":"zpa_3D"},{"a":62106,"l":"j_F29A","t":"code","b":[165,61],"m":"lda","oa":61,"o":"zpa_3D","x":[62097]},{"a":62108,"t":"code","b":[41,3],"m":"and","o":"#$03"},{"a":62110,"t":"code","b":[133,61],"m":"sta","oa":61,"o":"zpa_3D"},{"a":62112,"l":"b_F2A0","t":"code","b":[133,58],"m":"sta","oa":58,"o":"clown_frame","x":[62089]},{"a":62114,"t":"code","b":[5,44],"m":"ora","oa":44,"o":"ml_tmp"},{"a":62116,"t":"code","b":[32,52,240],"m":"jsr","oa":61492,"o":"draw_clown"},{"a":62119,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":62121,"t":"code","b":[133,32],"m":"sta","oa":32,"o":"ml_result"},{"a":62123,"t":"code","b":[133,33],"m":"sta","oa":33,"o":"zpa_21"},{"a":62125,"t":"code","b":[133,34],"m":"sta","oa":34,"o":"zpa_22"},{"a":62127,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":62129,"t":"code","b":[133,51],"m":"sta","oa":51,"o":"ml_count"},{"a":62131,"l":"b_F2B3","t":"code","b":[166,51],"m":"ldx","oa":51,"o":"ml_count","x":[62211]},{"a":62133,"t":"code","b":[181,68],"m":"lda","oa":68,"o":"probe_hits,x"},{"a":62135,"t":"code","b":[201,90],"m":"cmp","o":"#$5A"},{"a":62137,"t":"code","b":[176,8],"m":"bcs","oa":62147,"o":"b_F2C3"},{"a":62139,"t":"code","b":[197,32],"m":"cmp","oa":32,"o":"ml_result"},{"a":62141,"t":"code","b":[144,66],"m":"bcc","oa":62209,"o":"b_F301"},{"a":62143,"t":"code","b":[133,32],"m":"sta","oa":32,"o":"ml_result"},{"a":62145,"t":"code","b":[176,62],"m":"bcs","oa":62209,"o":"b_F301"},{"a":62147,"l":"b_F2C3","t":"code","b":[201,96],"m":"cmp","o":"#$60","x":[62137]},{"a":62149,"t":"code","b":[144,58],"m":"bcc","oa":62209,"o":"b_F301"},{"a":62151,"t":"code","b":[169,96],"m":"lda","o":"#$60"},{"a":62153,"t":"code","b":[133,32],"m":"sta","oa":32,"o":"ml_result"},{"a":62155,"t":"code","b":[165,50],"m":"lda","oa":50,"o":"zpa_32"},{"a":62157,"t":"code","b":[24],"m":"clc"},{"a":62158,"t":"code","b":[125,96,254],"m":"adc","oa":65120,"o":"probe_rows,x"},{"a":62161,"t":"code","b":[233,2],"m":"sbc","o":"#$02"},{"a":62163,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":62164,"t":"code","b":[168],"m":"tay"},{"a":62165,"t":"code","b":[165,49],"m":"lda","oa":49,"o":"cell_col"},{"a":62167,"t":"code","b":[24],"m":"clc"},{"a":62168,"t":"code","b":[125,105,254],"m":"adc","oa":65129,"o":"column_balloon,x"},{"a":62171,"t":"code","b":[56],"m":"sec"},{"a":62172,"t":"code","b":[249,83,0],"m":"sbc","oa":83,"o":"zpf_53,y"},{"a":62175,"t":"code","b":[176,2],"m":"bcs","oa":62179,"o":"b_F2E3"},{"a":62177,"t":"code","b":[105,36],"m":"adc","o":"#$24"},{"a":62179,"l":"b_F2E3","t":"code","b":[170],"m":"tax","x":[62175]},{"a":62180,"t":"code","b":[189,105,254],"m":"lda","oa":65129,"o":"column_balloon,x"},{"a":62183,"t":"code","b":[24],"m":"clc"},{"a":62184,"t":"code","b":[121,90,254],"m":"adc","oa":65114,"o":"balloon_row_base,y"},{"a":62187,"t":"code","b":[170],"m":"tax"},{"a":62188,"t":"code","b":[181,86],"m":"lda","oa":86,"o":"balloon_flags,x"},{"a":62190,"t":"code","b":[240,17],"m":"beq","oa":62209,"o":"b_F301"},{"a":62192,"t":"code","b":[185,93,254],"m":"lda","oa":65117,"o":"balloon_row_points,y"},{"a":62195,"t":"code","b":[24],"m":"clc"},{"a":62196,"t":"code","b":[101,33],"m":"adc","oa":33,"o":"zpa_21"},{"a":62198,"t":"code","b":[133,33],"m":"sta","oa":33,"o":"zpa_21"},{"a":62200,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":62202,"t":"code","b":[149,86],"m":"sta","oa":86,"o":"balloon_flags,x"},{"a":62204,"t":"code","b":[230,34],"m":"inc","oa":34,"o":"zpa_22"},{"a":62206,"t":"code","b":[32,78,243],"m":"jsr","oa":62286,"o":"sound_pop"},{"a":62209,"l":"b_F301","t":"code","b":[198,51],"m":"dec","oa":51,"o":"ml_count","x":[62141,62145,62149,62190]},{"a":62211,"t":"code","b":[16,174],"m":"bpl","oa":62131,"o":"b_F2B3"},{"a":62213,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":62215,"l":"b_F307","t":"code","b":[190,90,254],"m":"ldx","oa":65114,"o":"balloon_row_base,y","x":[62242]},{"a":62218,"t":"code","b":[169,12],"m":"lda","o":"#$0C"},{"a":62220,"t":"code","b":[133,51],"m":"sta","oa":51,"o":"ml_count"},{"a":62222,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":62224,"l":"b_F310","t":"code","b":[21,86],"m":"ora","oa":86,"o":"balloon_flags,x","x":[62229]},{"a":62226,"t":"code","b":[232],"m":"inx"},{"a":62227,"t":"code","b":[198,51],"m":"dec","oa":51,"o":"ml_count"},{"a":62229,"t":"code","b":[208,249],"m":"bne","oa":62224,"o":"b_F310"},{"a":62231,"t":"code","b":[73,255],"m":"eor","o":"#$FF"},{"a":62233,"t":"code","b":[153,35,0],"m":"sta","oa":35,"o":"f_0023,y"},{"a":62236,"t":"code","b":[240,3],"m":"beq","oa":62241,"o":"b_F321"},{"a":62238,"t":"code","b":[32,37,243],"m":"jsr","oa":62245,"o":"refill_row"},{"a":62241,"l":"b_F321","t":"code","b":[136],"m":"dey","x":[62236]},{"a":62242,"t":"code","b":[16,227],"m":"bpl","oa":62215,"o":"b_F307"},{"a":62244,"t":"code","b":[96],"m":"rts"},{"a":62245,"l":"refill_row","c":"Marks all twelve balloons of row Y present ($FF in $56 + 12 x Y onward). X and Y are kept.","t":"code","b":[138],"m":"txa","x":[62238,62848]},{"a":62246,"t":"code","b":[72],"m":"pha"},{"a":62247,"t":"code","b":[152],"m":"tya"},{"a":62248,"t":"code","b":[72],"m":"pha"},{"a":62249,"t":"code","b":[190,90,254],"m":"ldx","oa":65114,"o":"balloon_row_base,y"},{"a":62252,"t":"code","b":[160,12],"m":"ldy","o":"#$0C"},{"a":62254,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":62256,"l":"b_F330","t":"code","b":[149,86],"m":"sta","oa":86,"o":"balloon_flags,x","x":[62260]},{"a":62258,"t":"code","b":[232],"m":"inx"},{"a":62259,"t":"code","b":[136],"m":"dey"},{"a":62260,"t":"code","b":[208,250],"m":"bne","oa":62256,"o":"b_F330"},{"a":62262,"t":"code","b":[104],"m":"pla"},{"a":62263,"t":"code","b":[168],"m":"tay"},{"a":62264,"t":"code","b":[104],"m":"pla"},{"a":62265,"t":"code","b":[170],"m":"tax"},{"a":62266,"t":"code","b":[96],"m":"rts"},{"a":62267,"l":"sound_bounce","c":"Routine 10: the see-saw's bounce, when sound is on ($4F): starts voice 2 as a pulse with no attack or decay and sets its timer $3E to 32 ticks, during which sound_tick slides its pitch down.","t":"code","b":[165,79],"m":"lda","oa":79,"o":"sound_enabled","x":[61460]},{"a":62269,"t":"code","b":[240,14],"m":"beq","oa":62285,"o":"r_F34D"},{"a":62271,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":62273,"t":"code","b":[133,62],"m":"sta","oa":62,"o":"bounce_timer"},{"a":62275,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":62277,"t":"code","b":[141,12,212],"m":"sta","o":"sid_v2_attack_decay"},{"a":62280,"t":"code","b":[169,65],"m":"lda","o":"#$41"},{"a":62282,"t":"code","b":[141,11,212],"m":"sta","o":"sid_v2_control"},{"a":62285,"l":"r_F34D","t":"code","b":[96],"m":"rts","x":[62269]},{"a":62286,"l":"sound_pop","c":"Routine 11 (not called by number; move_clown_sprite calls it): the balloon pop, when sound is on: gates voice 3's noise; sound_tick lets it go on the next tick.","t":"code","b":[165,79],"m":"lda","oa":79,"o":"sound_enabled","x":[61462,62206]},{"a":62288,"t":"code","b":[240,5],"m":"beq","oa":62295,"o":"r_F357"},{"a":62290,"t":"code","b":[169,129],"m":"lda","o":"#$81"},{"a":62292,"t":"code","b":[141,18,212],"m":"sta","o":"sid_v3_control"},{"a":62295,"l":"r_F357","t":"code","b":[96],"m":"rts","x":[62288]},{"a":62296,"l":"sound_fall","c":"Routine 12 (not called by number; fall_animation calls it): the falling clown's whistle, when sound is on: voice 2 as a pulse with a slow attack, its timer $3F set to 48 ticks for sound_tick to play the pitches of fall_pitches.","t":"code","b":[165,79],"m":"lda","oa":79,"o":"sound_enabled","x":[61464,62504]},{"a":62298,"t":"code","b":[240,14],"m":"beq","oa":62314,"o":"r_F36A"},{"a":62300,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":62302,"t":"code","b":[133,63],"m":"sta","oa":63,"o":"zpa_3F"},{"a":62304,"t":"code","b":[169,160],"m":"lda","o":"#$A0"},{"a":62306,"t":"code","b":[141,12,212],"m":"sta","o":"sid_v2_attack_decay"},{"a":62309,"t":"code","b":[169,65],"m":"lda","o":"#$41"},{"a":62311,"t":"code","b":[141,11,212],"m":"sta","o":"sid_v2_control"},{"a":62314,"l":"r_F36A","t":"code","b":[96],"m":"rts","x":[62298]},{"a":62315,"l":"sound_tick","c":"Routine 13: advances the sound effects, once a tick. Releases voice 3 (the pop). While the bounce timer $3E runs, voice 2's pitch is $0200 + 2 x the timer, falling each tick, and the gate is released; otherwise while the fall timer $3F runs, voice 2 takes the pitch at fall_pitches + the timer (even), and its gate is released when the high byte is 0.","t":"code","b":[169,128],"m":"lda","o":"#$80","x":[61466,62418,62528]},{"a":62317,"t":"code","b":[141,18,212],"m":"sta","o":"sid_v3_control"},{"a":62320,"t":"code","b":[165,62],"m":"lda","oa":62,"o":"bounce_timer"},{"a":62322,"t":"code","b":[240,19],"m":"beq","oa":62343,"o":"b_F387"},{"a":62324,"t":"code","b":[198,62],"m":"dec","oa":62,"o":"bounce_timer"},{"a":62326,"t":"code","b":[165,62],"m":"lda","oa":62,"o":"bounce_timer"},{"a":62328,"t":"code","b":[10],"m":"asl","o":"a"},{"a":62329,"t":"code","b":[141,7,212],"m":"sta","o":"sid_v2_freq_lo"},{"a":62332,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":62334,"t":"code","b":[141,8,212],"m":"sta","o":"sid_v2_freq_hi"},{"a":62337,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":62339,"t":"code","b":[141,11,212],"m":"sta","o":"sid_v2_control"},{"a":62342,"t":"code","b":[96],"m":"rts"},{"a":62343,"l":"b_F387","t":"code","b":[165,63],"m":"lda","oa":63,"o":"zpa_3F","x":[62322]},{"a":62345,"t":"code","b":[240,30],"m":"beq","oa":62377,"o":"r_F3A9"},{"a":62347,"t":"code","b":[198,63],"m":"dec","oa":63,"o":"zpa_3F"},{"a":62349,"t":"code","b":[138],"m":"txa"},{"a":62350,"t":"code","b":[72],"m":"pha"},{"a":62351,"t":"code","b":[165,63],"m":"lda","oa":63,"o":"zpa_3F"},{"a":62353,"t":"code","b":[41,254],"m":"and","o":"#$FE"},{"a":62355,"t":"code","b":[170],"m":"tax"},{"a":62356,"t":"code","b":[189,163,255],"m":"lda","oa":65443,"o":"fall_pitches,x"},{"a":62359,"t":"code","b":[141,7,212],"m":"sta","o":"sid_v2_freq_lo"},{"a":62362,"t":"code","b":[189,164,255],"m":"lda","oa":65444,"o":"f_FFA4,x"},{"a":62365,"t":"code","b":[141,8,212],"m":"sta","o":"sid_v2_freq_hi"},{"a":62368,"t":"code","b":[208,5],"m":"bne","oa":62375,"o":"b_F3A7"},{"a":62370,"t":"code","b":[169,64],"m":"lda","o":"#$40"},{"a":62372,"t":"code","b":[141,11,212],"m":"sta","o":"sid_v2_control"},{"a":62375,"l":"b_F3A7","t":"code","b":[104],"m":"pla","x":[62368]},{"a":62376,"t":"code","b":[170],"m":"tax"},{"a":62377,"l":"r_F3A9","t":"code","b":[96],"m":"rts","x":[62345]},{"a":62378,"l":"play_tune","c":"Routine 15: plays tune A (0 the start tune, 1 a row bonus, 2 the fall) on voice 1 and waits until it ends, ticking the sound effects meanwhile. tune_start gives each tune's first note; notes are pitch words from tune_notes, a zero low byte ends the tune, and each lasts the ticks in tune_lengths, the last of them silent so repeated notes are heard apart. The game stands still while it plays.","t":"code","b":[170],"m":"tax","x":[61470,62466,62496,62561]},{"a":62379,"t":"code","b":[189,160,255],"m":"lda","oa":65440,"o":"tune_start,x"},{"a":62382,"t":"code","b":[170],"m":"tax"},{"a":62383,"l":"b_F3AF","t":"code","b":[189,23,255],"m":"lda","oa":65303,"o":"tune_notes,x","x":[62427]},{"a":62386,"t":"code","b":[240,41],"m":"beq","oa":62429,"o":"r_F3DD"},{"a":62388,"t":"code","b":[141,0,212],"m":"sta","o":"sid_v1_freq_lo"},{"a":62391,"t":"code","b":[189,24,255],"m":"lda","oa":65304,"o":"tune_notes_hi,x"},{"a":62394,"t":"code","b":[141,1,212],"m":"sta","o":"sid_v1_freq_hi"},{"a":62397,"t":"code","b":[138],"m":"txa"},{"a":62398,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":62399,"t":"code","b":[168],"m":"tay"},{"a":62400,"t":"code","b":[185,115,255],"m":"lda","oa":65395,"o":"tune_lengths,y"},{"a":62403,"t":"code","b":[232],"m":"inx"},{"a":62404,"t":"code","b":[232],"m":"inx"},{"a":62405,"t":"code","b":[168],"m":"tay"},{"a":62406,"l":"b_F3C6","t":"code","b":[192,1],"m":"cpy","o":"#$01","x":[62425]},{"a":62408,"t":"code","b":[208,8],"m":"bne","oa":62418,"o":"b_F3D2"},{"a":62410,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":62412,"t":"code","b":[141,0,212],"m":"sta","o":"sid_v1_freq_lo"},{"a":62415,"t":"code","b":[141,1,212],"m":"sta","o":"sid_v1_freq_hi"},{"a":62418,"l":"b_F3D2","t":"code","b":[32,107,243],"m":"jsr","oa":62315,"o":"sound_tick","x":[62408]},{"a":62421,"t":"code","b":[32,17,247],"m":"jsr","oa":63249,"o":"wait_tick"},{"a":62424,"t":"code","b":[136],"m":"dey"},{"a":62425,"t":"code","b":[208,235],"m":"bne","oa":62406,"o":"b_F3C6"},{"a":62427,"t":"code","b":[240,210],"m":"beq","oa":62383,"o":"b_F3AF"},{"a":62429,"l":"r_F3DD","t":"code","b":[96],"m":"rts","x":[62386]},{"a":62430,"l":"show_bonus","c":"Routine 16: shows \"BONUS\" and the row's bonus at row 14, column 15, for row A (0 top): the number's first two digits come from bonus_digits (\"10\", \"05\", \"02\"), then \"00\", so the middle row shows \"BONUS 0500\". Plays tune 1, then clears the line and the \"BONUS JUMP\" line above it.","t":"code","b":[10],"m":"asl","o":"a","x":[61472]},{"a":62431,"t":"code","b":[170],"m":"tax"},{"a":62432,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":62434,"l":"b_F3E2","t":"code","b":[192,2],"m":"cpy","o":"#$02","x":[62451]},{"a":62436,"t":"code","b":[176,4],"m":"bcs","oa":62442,"o":"b_F3EA"},{"a":62438,"t":"code","b":[189,254,254],"m":"lda","oa":65278,"o":"bonus_digits,x"},{"a":62441,"t":"code","b":[44,169,48],"m":"bit","oa":12457,"o":"a_30A9"},{"a":62444,"t":"code","b":[153,69,6],"m":"sta","oa":1605,"o":"f_0645,y"},{"a":62447,"t":"code","b":[232],"m":"inx"},{"a":62448,"t":"code","b":[200],"m":"iny"},{"a":62449,"t":"code","b":[192,4],"m":"cpy","o":"#$04"},{"a":62451,"t":"code","b":[208,237],"m":"bne","oa":62434,"o":"b_F3E2"},{"a":62453,"t":"code","b":[162,4],"m":"ldx","o":"#$04"},{"a":62455,"l":"b_F3F7","t":"code","b":[189,244,254],"m":"lda","oa":65268,"o":"bonus_jump_text,x","x":[62462]},{"a":62458,"t":"code","b":[157,63,6],"m":"sta","oa":1599,"o":"f_063F,x"},{"a":62461,"t":"code","b":[202],"m":"dex"},{"a":62462,"t":"code","b":[16,247],"m":"bpl","oa":62455,"o":"b_F3F7"},{"a":62464,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":62466,"t":"code","b":[32,170,243],"m":"jsr","oa":62378,"o":"play_tune"},{"a":62469,"t":"code","b":[162,9],"m":"ldx","o":"#$09"},{"a":62471,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":62473,"l":"b_F409","t":"code","b":[157,239,5],"m":"sta","oa":1519,"o":"f_05EF,x","x":[62480]},{"a":62476,"t":"code","b":[157,63,6],"m":"sta","oa":1599,"o":"f_063F,x"},{"a":62479,"t":"code","b":[202],"m":"dex"},{"a":62480,"t":"code","b":[16,247],"m":"bpl","oa":62473,"o":"b_F409"},{"a":62482,"t":"code","b":[96],"m":"rts"},{"a":62483,"l":"show_bonus_jump","c":"Routine 17: shows \"BONUS JUMP\" at row 12, column 15, and plays tune 0.","t":"code","b":[162,9],"m":"ldx","o":"#$09","x":[61474]},{"a":62485,"l":"b_F415","t":"code","b":[189,244,254],"m":"lda","oa":65268,"o":"bonus_jump_text,x","x":[62492]},{"a":62488,"t":"code","b":[157,239,5],"m":"sta","oa":1519,"o":"f_05EF,x"},{"a":62491,"t":"code","b":[202],"m":"dex"},{"a":62492,"t":"code","b":[16,247],"m":"bpl","oa":62485,"o":"b_F415"},{"a":62494,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":62496,"t":"code","b":[76,170,243],"m":"jmp","oa":62378,"o":"play_tune"},{"a":62499,"l":"fall_animation","c":"Routine 18: the clown that missed the see-saw, for 48 ticks: the fall whistle, the balloons scrolling, and the clown drawn at y 184 at x = Y x 2, its frame stepping every 16 ticks. Then, in a game (sound on), prints \"HIGH SCORE\" and the high score (A low, X high) at the cursor (routine 19) and plays tune 2, and clears the line.","t":"code","b":[72],"m":"pha","x":[61476]},{"a":62500,"t":"code","b":[138],"m":"txa"},{"a":62501,"t":"code","b":[72],"m":"pha"},{"a":62502,"t":"code","b":[152],"m":"tya"},{"a":62503,"t":"code","b":[72],"m":"pha"},{"a":62504,"t":"code","b":[32,88,243],"m":"jsr","oa":62296,"o":"sound_fall"},{"a":62507,"t":"code","b":[169,48],"m":"lda","o":"#$30"},{"a":62509,"t":"code","b":[133,64],"m":"sta","oa":64,"o":"fall_timer"},{"a":62511,"l":"b_F42F","t":"code","b":[32,231,241],"m":"jsr","oa":61927,"o":"scroll_balloons","x":[62542,62546]},{"a":62514,"t":"code","b":[104],"m":"pla"},{"a":62515,"t":"code","b":[72],"m":"pha"},{"a":62516,"t":"code","b":[10],"m":"asl","o":"a"},{"a":62517,"t":"code","b":[170],"m":"tax"},{"a":62518,"t":"code","b":[160,184],"m":"ldy","o":"#$B8"},{"a":62520,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":62522,"t":"code","b":[106],"m":"ror","o":"a"},{"a":62523,"t":"code","b":[5,58],"m":"ora","oa":58,"o":"clown_frame"},{"a":62525,"t":"code","b":[32,52,240],"m":"jsr","oa":61492,"o":"draw_clown"},{"a":62528,"t":"code","b":[32,107,243],"m":"jsr","oa":62315,"o":"sound_tick"},{"a":62531,"t":"code","b":[32,17,247],"m":"jsr","oa":63249,"o":"wait_tick"},{"a":62534,"t":"code","b":[198,64],"m":"dec","oa":64,"o":"fall_timer"},{"a":62536,"t":"code","b":[240,10],"m":"beq","oa":62548,"o":"b_F454"},{"a":62538,"t":"code","b":[165,64],"m":"lda","oa":64,"o":"fall_timer"},{"a":62540,"t":"code","b":[41,15],"m":"and","o":"#$0F"},{"a":62542,"t":"code","b":[208,223],"m":"bne","oa":62511,"o":"b_F42F"},{"a":62544,"t":"code","b":[230,58],"m":"inc","oa":58,"o":"clown_frame"},{"a":62546,"t":"code","b":[208,219],"m":"bne","oa":62511,"o":"b_F42F"},{"a":62548,"l":"b_F454","t":"code","b":[104],"m":"pla","x":[62536]},{"a":62549,"t":"code","b":[104],"m":"pla"},{"a":62550,"t":"code","b":[170],"m":"tax"},{"a":62551,"t":"code","b":[104],"m":"pla"},{"a":62552,"t":"code","b":[164,79],"m":"ldy","oa":79,"o":"sound_enabled"},{"a":62554,"t":"code","b":[240,18],"m":"beq","oa":62574,"o":"r_F46E"},{"a":62556,"t":"code","b":[32,136,246],"m":"jsr","oa":63112,"o":"show_high_score"},{"a":62559,"t":"code","b":[169,2],"m":"lda","o":"#$02"},{"a":62561,"t":"code","b":[32,170,243],"m":"jsr","oa":62378,"o":"play_tune"},{"a":62564,"t":"code","b":[162,15],"m":"ldx","o":"#$0F"},{"a":62566,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":62568,"l":"b_F468","t":"code","b":[157,60,6],"m":"sta","oa":1596,"o":"f_063C,x","x":[62572]},{"a":62571,"t":"code","b":[202],"m":"dex"},{"a":62572,"t":"code","b":[16,250],"m":"bpl","oa":62568,"o":"b_F468"},{"a":62574,"l":"r_F46E","t":"code","b":[96],"m":"rts","x":[62554]},{"a":62575,"l":"sound_on","c":"Routine 20: turns the sound on: volume 15 ($1F, with the low-pass bit) in $D418, and $4F = $FF so the effects play.","t":"code","b":[169,31],"m":"lda","o":"#$1F","x":[61480]},{"a":62577,"t":"code","b":[162,255],"m":"ldx","o":"#$FF"},{"a":62579,"t":"code","b":[208,4],"m":"bne","oa":62585,"o":"b_F479"},{"a":62581,"l":"sound_off","c":"Routine 21: volume 0 ($10 in $D418) and $4F = 0, so no effect starts: the attract mode is silent.","t":"code","b":[169,16],"m":"lda","o":"#$10","x":[61482]},{"a":62583,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":62585,"l":"b_F479","t":"code","b":[141,24,212],"m":"sta","o":"sid_filter_mode_volume","x":[62579]},{"a":62588,"t":"code","b":[134,79],"m":"stx","oa":79,"o":"sound_enabled"},{"a":62590,"t":"code","b":[96],"m":"rts"},{"a":62591,"l":"blink_game_over","c":"Routine 24: every 50 calls, shows or clears \"GAME OVER\" (game_over_text) at row 12, column 15: the attract mode's blinking.","t":"code","b":[165,67],"m":"lda","oa":67,"o":"blink_timer","x":[61488,62974]},{"a":62593,"t":"code","b":[240,3],"m":"beq","oa":62598,"o":"b_F486"},{"a":62595,"t":"code","b":[198,67],"m":"dec","oa":67,"o":"blink_timer"},{"a":62597,"t":"code","b":[96],"m":"rts"},{"a":62598,"l":"b_F486","t":"code","b":[169,50],"m":"lda","o":"#$32","x":[62593]},{"a":62600,"t":"code","b":[133,67],"m":"sta","oa":67,"o":"blink_timer"},{"a":62602,"t":"code","b":[162,8],"m":"ldx","o":"#$08"},{"a":62604,"t":"code","b":[173,239,5],"m":"lda","oa":1519,"o":"f_05EF"},{"a":62607,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":62609,"t":"code","b":[240,9],"m":"beq","oa":62620,"o":"b_F49C"},{"a":62611,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":62613,"l":"b_F495","t":"code","b":[157,239,5],"m":"sta","oa":1519,"o":"f_05EF,x","x":[62617]},{"a":62616,"t":"code","b":[202],"m":"dex"},{"a":62617,"t":"code","b":[16,250],"m":"bpl","oa":62613,"o":"b_F495"},{"a":62619,"t":"code","b":[96],"m":"rts"},{"a":62620,"l":"b_F49C","t":"code","b":[189,14,255],"m":"lda","oa":65294,"o":"game_over_text,x","x":[62609,62627]},{"a":62623,"t":"code","b":[157,239,5],"m":"sta","oa":1519,"o":"f_05EF,x"},{"a":62626,"t":"code","b":[202],"m":"dex"},{"a":62627,"t":"code","b":[16,247],"m":"bpl","oa":62620,"o":"b_F49C"},{"a":62629,"t":"code","b":[96],"m":"rts"},{"a":62630,"l":"read_keys","c":"Routine 5: reads the first control port's two paddle buttons (bits 2 and 3 of $DC01 with no keyboard column selected) and the F1 and F3 keys (column 0, rows 4 and 5). Returns in $20 and A: 1 for F1 or the first button, 3 for F3 or the second, 0 for none. Leaves $7F in $DC00.","t":"code","b":[169,255],"m":"lda","o":"#$FF","x":[61450,62686,62695]},{"a":62632,"t":"code","b":[141,0,220],"m":"sta","o":"cia1_port_a"},{"a":62635,"t":"code","b":[173,1,220],"m":"lda","o":"cia1_port_b"},{"a":62638,"t":"code","b":[170],"m":"tax"},{"a":62639,"t":"code","b":[41,4],"m":"and","o":"#$04"},{"a":62641,"t":"code","b":[240,18],"m":"beq","oa":62661,"o":"b_F4C5"},{"a":62643,"t":"code","b":[138],"m":"txa"},{"a":62644,"t":"code","b":[41,8],"m":"and","o":"#$08"},{"a":62646,"t":"code","b":[240,22],"m":"beq","oa":62670,"o":"b_F4CE"},{"a":62648,"t":"code","b":[169,254],"m":"lda","o":"#$FE"},{"a":62650,"t":"code","b":[141,0,220],"m":"sta","o":"cia1_port_a"},{"a":62653,"t":"code","b":[173,1,220],"m":"lda","o":"cia1_port_b"},{"a":62656,"t":"code","b":[170],"m":"tax"},{"a":62657,"t":"code","b":[41,16],"m":"and","o":"#$10"},{"a":62659,"t":"code","b":[208,4],"m":"bne","oa":62665,"o":"b_F4C9"},{"a":62661,"l":"b_F4C5","t":"code","b":[169,1],"m":"lda","o":"#$01","x":[62641]},{"a":62663,"t":"code","b":[208,10],"m":"bne","oa":62675,"o":"b_F4D3"},{"a":62665,"l":"b_F4C9","t":"code","b":[138],"m":"txa","x":[62659]},{"a":62666,"t":"code","b":[41,32],"m":"and","o":"#$20"},{"a":62668,"t":"code","b":[208,3],"m":"bne","oa":62673,"o":"b_F4D1"},{"a":62670,"l":"b_F4CE","t":"code","b":[169,3],"m":"lda","o":"#$03","x":[62646]},{"a":62672,"t":"code","b":[44,169,0],"m":"bit","oa":169,"o":"a_00A9"},{"a":62675,"l":"b_F4D3","t":"code","b":[133,32],"m":"sta","oa":32,"o":"ml_result","x":[62663]},{"a":62677,"t":"code","b":[162,127],"m":"ldx","o":"#$7F"},{"a":62679,"t":"code","b":[142,0,220],"m":"stx","o":"cia1_port_a"},{"a":62682,"t":"code","b":[96],"m":"rts"},{"a":62683,"l":"wait_key","c":"Routine 23: waits, a tick at a time, until no key or button is read, then until one is; returns its code in A (and $20).","t":"code","b":[32,17,247],"m":"jsr","oa":63249,"o":"wait_tick","x":[61486,62690]},{"a":62686,"t":"code","b":[32,166,244],"m":"jsr","oa":62630,"o":"read_keys"},{"a":62689,"t":"code","b":[170],"m":"tax"},{"a":62690,"t":"code","b":[208,247],"m":"bne","oa":62683,"o":"wait_key"},{"a":62692,"l":"b_F4E4","t":"code","b":[32,17,247],"m":"jsr","oa":63249,"o":"wait_tick","x":[62699]},{"a":62695,"t":"code","b":[32,166,244],"m":"jsr","oa":62630,"o":"read_keys"},{"a":62698,"t":"code","b":[170],"m":"tax"},{"a":62699,"t":"code","b":[240,247],"m":"beq","oa":62692,"o":"b_F4E4"},{"a":62701,"t":"code","b":[96],"m":"rts"},{"a":62702,"l":"draw_playfield_twice","c":"Routine 7: draws the playfield (draw_playfield), swaps the balloon state with the other player's store (swap_balloons), and draws it again, so both players start with full rows. A = 0 keeps the status line as it was (the attract mode).","t":"code","b":[72],"m":"pha","x":[61454,63442]},{"a":62703,"t":"code","b":[32,246,244],"m":"jsr","oa":62710,"o":"draw_playfield"},{"a":62706,"t":"code","b":[32,27,247],"m":"jsr","oa":63259,"o":"swap_balloons"},{"a":62709,"t":"code","b":[104],"m":"pla"},{"a":62710,"l":"draw_playfield","c":"Clears the screen through put_char ($93), writes the status line from status_line in cyan (keeping the old one when A = 0), and builds the walls, ceiling and platforms from the records in playfield_layout: each puts a character a number of times from a column and row, stepping along a row or down a column, in cyan. Colours rows 3, 5 and 7 blue, green and yellow for the balloons, fills all three rows (refill_row) and puts each row's scroll at fine position 1, column 2.","t":"code","b":[170],"m":"tax","x":[62703]},{"a":62711,"t":"code","b":[208,11],"m":"bne","oa":62724,"o":"b_F504"},{"a":62713,"t":"code","b":[160,39],"m":"ldy","o":"#$27"},{"a":62715,"l":"b_F4FB","t":"code","b":[185,0,4],"m":"lda","oa":1024,"o":"f_0400,y","x":[62722]},{"a":62718,"t":"code","b":[153,122,0],"m":"sta","oa":122,"o":"clown_mask,y"},{"a":62721,"t":"code","b":[136],"m":"dey"},{"a":62722,"t":"code","b":[16,247],"m":"bpl","oa":62715,"o":"b_F4FB"},{"a":62724,"l":"b_F504","t":"code","b":[169,147],"m":"lda","o":"#$93","x":[62711]},{"a":62726,"t":"code","b":[32,46,226],"m":"jsr","oa":57902,"o":"put_char"},{"a":62729,"t":"code","b":[160,39],"m":"ldy","o":"#$27"},{"a":62731,"l":"b_F50B","t":"code","b":[185,192,254],"m":"lda","oa":65216,"o":"status_line,y","x":[62743]},{"a":62734,"t":"code","b":[153,0,4],"m":"sta","oa":1024,"o":"f_0400,y"},{"a":62737,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":62739,"t":"code","b":[153,0,216],"m":"sta","o":"colour_ram,y"},{"a":62742,"t":"code","b":[136],"m":"dey"},{"a":62743,"t":"code","b":[16,242],"m":"bpl","oa":62731,"o":"b_F50B"},{"a":62745,"t":"code","b":[138],"m":"txa"},{"a":62746,"t":"code","b":[208,10],"m":"bne","oa":62758,"o":"b_F526"},{"a":62748,"t":"code","b":[162,39],"m":"ldx","o":"#$27"},{"a":62750,"l":"b_F51E","t":"code","b":[181,122],"m":"lda","oa":122,"o":"clown_mask,x","x":[62756]},{"a":62752,"t":"code","b":[157,0,4],"m":"sta","oa":1024,"o":"f_0400,x"},{"a":62755,"t":"code","b":[202],"m":"dex"},{"a":62756,"t":"code","b":[16,248],"m":"bpl","oa":62750,"o":"b_F51E"},{"a":62758,"l":"b_F526","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[62746]},{"a":62760,"l":"b_F528","t":"code","b":[189,141,254],"m":"lda","oa":65165,"o":"playfield_layout,x","x":[62824]},{"a":62763,"t":"code","b":[48,61],"m":"bmi","oa":62826,"o":"b_F56A"},{"a":62765,"t":"code","b":[133,49],"m":"sta","oa":49,"o":"cell_col"},{"a":62767,"t":"code","b":[189,142,254],"m":"lda","oa":65166,"o":"f_FE8E,x"},{"a":62770,"t":"code","b":[133,50],"m":"sta","oa":50,"o":"zpa_32"},{"a":62772,"t":"code","b":[189,143,254],"m":"lda","oa":65167,"o":"f_FE8F,x"},{"a":62775,"t":"code","b":[133,44],"m":"sta","oa":44,"o":"ml_tmp"},{"a":62777,"t":"code","b":[32,74,246],"m":"jsr","oa":63050,"o":"screen_address"},{"a":62780,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":62782,"l":"b_F53E","t":"code","b":[189,144,254],"m":"lda","oa":65168,"o":"f_FE90,x","x":[62817]},{"a":62785,"t":"code","b":[145,38],"m":"sta","oa":38,"o":"(scr_ptr),y"},{"a":62787,"t":"code","b":[169,3],"m":"lda","o":"#$03"},{"a":62789,"t":"code","b":[145,40],"m":"sta","oa":40,"o":"(zpp_28),y"},{"a":62791,"t":"code","b":[165,38],"m":"lda","oa":38,"o":"scr_ptr"},{"a":62793,"t":"code","b":[24],"m":"clc"},{"a":62794,"t":"code","b":[125,145,254],"m":"adc","oa":65169,"o":"f_FE91,x"},{"a":62797,"t":"code","b":[133,38],"m":"sta","oa":38,"o":"scr_ptr"},{"a":62799,"t":"code","b":[144,2],"m":"bcc","oa":62803,"o":"b_F553"},{"a":62801,"t":"code","b":[230,39],"m":"inc","oa":39,"o":"zpa_27"},{"a":62803,"l":"b_F553","t":"code","b":[165,40],"m":"lda","oa":40,"o":"zpp_28","x":[62799]},{"a":62805,"t":"code","b":[24],"m":"clc"},{"a":62806,"t":"code","b":[125,145,254],"m":"adc","oa":65169,"o":"f_FE91,x"},{"a":62809,"t":"code","b":[133,40],"m":"sta","oa":40,"o":"zpp_28"},{"a":62811,"t":"code","b":[144,2],"m":"bcc","oa":62815,"o":"b_F55F"},{"a":62813,"t":"code","b":[230,41],"m":"inc","oa":41,"o":"zpa_29"},{"a":62815,"l":"b_F55F","t":"code","b":[198,44],"m":"dec","oa":44,"o":"ml_tmp","x":[62811]},{"a":62817,"t":"code","b":[208,219],"m":"bne","oa":62782,"o":"b_F53E"},{"a":62819,"t":"code","b":[138],"m":"txa"},{"a":62820,"t":"code","b":[24],"m":"clc"},{"a":62821,"t":"code","b":[105,5],"m":"adc","o":"#$05"},{"a":62823,"t":"code","b":[170],"m":"tax"},{"a":62824,"t":"code","b":[208,190],"m":"bne","oa":62760,"o":"b_F528"},{"a":62826,"l":"b_F56A","t":"code","b":[162,35],"m":"ldx","o":"#$23","x":[62763]},{"a":62828,"l":"b_F56C","t":"code","b":[169,6],"m":"lda","o":"#$06","x":[62844]},{"a":62830,"t":"code","b":[157,122,216],"m":"sta","o":"$D87A,x"},{"a":62833,"t":"code","b":[169,5],"m":"lda","o":"#$05"},{"a":62835,"t":"code","b":[157,202,216],"m":"sta","o":"$D8CA,x"},{"a":62838,"t":"code","b":[169,7],"m":"lda","o":"#$07"},{"a":62840,"t":"code","b":[157,26,217],"m":"sta","o":"$D91A,x"},{"a":62843,"t":"code","b":[202],"m":"dex"},{"a":62844,"t":"code","b":[16,238],"m":"bpl","oa":62828,"o":"b_F56C"},{"a":62846,"t":"code","b":[160,2],"m":"ldy","o":"#$02"},{"a":62848,"l":"b_F580","t":"code","b":[32,37,243],"m":"jsr","oa":62245,"o":"refill_row","x":[62859]},{"a":62851,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":62853,"t":"code","b":[150,80],"m":"stx","oa":80,"o":"balloon_fine,y"},{"a":62855,"t":"code","b":[232],"m":"inx"},{"a":62856,"t":"code","b":[150,83],"m":"stx","oa":83,"o":"zpf_53,y"},{"a":62858,"t":"code","b":[136],"m":"dey"},{"a":62859,"t":"code","b":[16,243],"m":"bpl","oa":62848,"o":"b_F580"},{"a":62861,"t":"code","b":[96],"m":"rts"},{"a":62862,"l":"platform_run","c":"Routine 8: the clown's run along its platform and leap, before the physics takes over. A = flags (bit 7: attract mode; bit 6: this player has a bonus jumper; bit 0: player 2), X = 0 for the left platforms or 1 for the right, Y = the platform's y. In a game, shows \"BONUS PLAY\" (the first ten letters of bonus_play_text) at row 17, column 15, when bit 6 is set, and \"PLAYER 1\" or \"PLAYER 2\" at row 15, column 16. Clears $2E-$4C. The clown runs 13 pixels towards the middle in 13 steps of 10 ticks, from x 17 on the left or 293 on the right, alternating two running frames (7 and 8, or 9 and 10 facing left), while the balloons scroll and the see-saw follows the paddle (in the attract mode, \"GAME OVER\" blinks instead). Then clears the \"PLAYER\" text.","t":"code","b":[133,78],"m":"sta","oa":78,"o":"run_flags","x":[61456]},{"a":62864,"t":"code","b":[152],"m":"tya"},{"a":62865,"t":"code","b":[72],"m":"pha"},{"a":62866,"t":"code","b":[138],"m":"txa"},{"a":62867,"t":"code","b":[72],"m":"pha"},{"a":62868,"t":"code","b":[165,78],"m":"lda","oa":78,"o":"run_flags"},{"a":62870,"t":"code","b":[48,48],"m":"bmi","oa":62920,"o":"b_F5C8"},{"a":62872,"t":"code","b":[162,9],"m":"ldx","o":"#$09"},{"a":62874,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":62876,"l":"b_F59C","t":"code","b":[157,183,6],"m":"sta","oa":1719,"o":"f_06B7,x","x":[62880]},{"a":62879,"t":"code","b":[202],"m":"dex"},{"a":62880,"t":"code","b":[16,250],"m":"bpl","oa":62876,"o":"b_F59C"},{"a":62882,"t":"code","b":[165,78],"m":"lda","oa":78,"o":"run_flags"},{"a":62884,"t":"code","b":[41,64],"m":"and","o":"#$40"},{"a":62886,"t":"code","b":[240,11],"m":"beq","oa":62899,"o":"b_F5B3"},{"a":62888,"t":"code","b":[162,9],"m":"ldx","o":"#$09"},{"a":62890,"l":"b_F5AA","t":"code","b":[189,232,254],"m":"lda","oa":65256,"o":"bonus_play_text,x","x":[62897]},{"a":62893,"t":"code","b":[157,183,6],"m":"sta","oa":1719,"o":"f_06B7,x"},{"a":62896,"t":"code","b":[202],"m":"dex"},{"a":62897,"t":"code","b":[16,247],"m":"bpl","oa":62890,"o":"b_F5AA"},{"a":62899,"l":"b_F5B3","t":"code","b":[165,78],"m":"lda","oa":78,"o":"run_flags","x":[62886]},{"a":62901,"t":"code","b":[41,1],"m":"and","o":"#$01"},{"a":62903,"t":"code","b":[24],"m":"clc"},{"a":62904,"t":"code","b":[105,49],"m":"adc","o":"#$31"},{"a":62906,"t":"code","b":[141,111,6],"m":"sta","oa":1647,"o":"a_066F"},{"a":62909,"t":"code","b":[162,5],"m":"ldx","o":"#$05"},{"a":62911,"l":"b_F5BF","t":"code","b":[189,238,254],"m":"lda","oa":65262,"o":"player_text,x","x":[62918]},{"a":62914,"t":"code","b":[157,104,6],"m":"sta","oa":1640,"o":"f_0668,x"},{"a":62917,"t":"code","b":[202],"m":"dex"},{"a":62918,"t":"code","b":[16,247],"m":"bpl","oa":62911,"o":"b_F5BF"},{"a":62920,"l":"b_F5C8","t":"code","b":[162,30],"m":"ldx","o":"#$1E","x":[62870]},{"a":62922,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":62924,"l":"b_F5CC","t":"code","b":[149,46],"m":"sta","oa":46,"o":"spr_x,x","x":[62927]},{"a":62926,"t":"code","b":[202],"m":"dex"},{"a":62927,"t":"code","b":[16,251],"m":"bpl","oa":62924,"o":"b_F5CC"},{"a":62929,"t":"code","b":[104],"m":"pla"},{"a":62930,"t":"code","b":[208,8],"m":"bne","oa":62940,"o":"b_F5DC"},{"a":62932,"t":"code","b":[169,17],"m":"lda","o":"#$11"},{"a":62934,"t":"code","b":[162,1],"m":"ldx","o":"#$01"},{"a":62936,"t":"code","b":[160,7],"m":"ldy","o":"#$07"},{"a":62938,"t":"code","b":[208,6],"m":"bne","oa":62946,"o":"b_F5E2"},{"a":62940,"l":"b_F5DC","t":"code","b":[169,37],"m":"lda","o":"#$25","x":[62930]},{"a":62942,"t":"code","b":[162,255],"m":"ldx","o":"#$FF"},{"a":62944,"t":"code","b":[160,137],"m":"ldy","o":"#$89"},{"a":62946,"l":"b_F5E2","t":"code","b":[72],"m":"pha","x":[62938]},{"a":62947,"t":"code","b":[134,66],"m":"stx","oa":66,"o":"run_step"},{"a":62949,"t":"code","b":[132,58],"m":"sty","oa":58,"o":"clown_frame"},{"a":62951,"t":"code","b":[169,13],"m":"lda","o":"#$0D"},{"a":62953,"t":"code","b":[133,60],"m":"sta","oa":60,"o":"anim_count"},{"a":62955,"l":"b_F5EB","t":"code","b":[169,10],"m":"lda","o":"#$0A","x":[63013]},{"a":62957,"t":"code","b":[133,61],"m":"sta","oa":61,"o":"zpa_3D"},{"a":62959,"l":"b_F5EF","t":"code","b":[32,231,241],"m":"jsr","oa":61927,"o":"scroll_balloons","x":[62982]},{"a":62962,"t":"code","b":[165,78],"m":"lda","oa":78,"o":"run_flags"},{"a":62964,"t":"code","b":[48,8],"m":"bmi","oa":62974,"o":"b_F5FE"},{"a":62966,"t":"code","b":[166,77],"m":"ldx","oa":77,"o":"seesaw_tilt"},{"a":62968,"t":"code","b":[32,137,241],"m":"jsr","oa":61833,"o":"read_paddle_seesaw"},{"a":62971,"t":"code","b":[76,1,246],"m":"jmp","oa":62977,"o":"j_F601"},{"a":62974,"l":"b_F5FE","t":"code","b":[32,127,244],"m":"jsr","oa":62591,"o":"blink_game_over","x":[62964]},{"a":62977,"l":"j_F601","t":"code","b":[32,17,247],"m":"jsr","oa":63249,"o":"wait_tick","x":[62971]},{"a":62980,"t":"code","b":[198,61],"m":"dec","oa":61,"o":"zpa_3D"},{"a":62982,"t":"code","b":[208,231],"m":"bne","oa":62959,"o":"b_F5EF"},{"a":62984,"t":"code","b":[104],"m":"pla"},{"a":62985,"t":"code","b":[170],"m":"tax"},{"a":62986,"t":"code","b":[104],"m":"pla"},{"a":62987,"t":"code","b":[72],"m":"pha"},{"a":62988,"t":"code","b":[168],"m":"tay"},{"a":62989,"t":"code","b":[138],"m":"txa"},{"a":62990,"t":"code","b":[72],"m":"pha"},{"a":62991,"t":"code","b":[165,58],"m":"lda","oa":58,"o":"clown_frame"},{"a":62993,"t":"code","b":[32,52,240],"m":"jsr","oa":61492,"o":"draw_clown"},{"a":62996,"t":"code","b":[165,58],"m":"lda","oa":58,"o":"clown_frame"},{"a":62998,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":62999,"t":"code","b":[144,3],"m":"bcc","oa":63004,"o":"b_F61C"},{"a":63001,"t":"code","b":[230,58],"m":"inc","oa":58,"o":"clown_frame"},{"a":63003,"t":"code","b":[44,198,58],"m":"bit","oa":15046,"o":"a_3AC6"},{"a":63006,"t":"code","b":[104],"m":"pla"},{"a":63007,"t":"code","b":[24],"m":"clc"},{"a":63008,"t":"code","b":[101,66],"m":"adc","oa":66,"o":"run_step"},{"a":63010,"t":"code","b":[72],"m":"pha"},{"a":63011,"t":"code","b":[198,60],"m":"dec","oa":60,"o":"anim_count"},{"a":63013,"t":"code","b":[208,196],"m":"bne","oa":62955,"o":"b_F5EB"},{"a":63015,"t":"code","b":[162,7],"m":"ldx","o":"#$07"},{"a":63017,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":63019,"l":"b_F62B","t":"code","b":[157,104,6],"m":"sta","oa":1640,"o":"f_0668,x","x":[63023]},{"a":63022,"t":"code","b":[202],"m":"dex"},{"a":63023,"t":"code","b":[16,250],"m":"bpl","oa":63019,"o":"b_F62B"},{"a":63025,"t":"code","b":[104],"m":"pla"},{"a":63026,"t":"code","b":[104],"m":"pla"},{"a":63027,"t":"code","b":[96],"m":"rts"},{"a":63028,"l":"cell_of_sprite","c":"Turns the clown's position ($2E, $30 for x; $2F for y) into its character cell, column $31 = x / 8 and row $32 = y / 8, then into the screen address $26/$27 and colour address $28/$29 (screen_address).","t":"code","b":[72],"m":"pha","x":[61760]},{"a":63029,"t":"code","b":[24],"m":"clc"},{"a":63030,"t":"code","b":[165,48],"m":"lda","oa":48,"o":"zpa_30"},{"a":63032,"t":"code","b":[240,1],"m":"beq","oa":63035,"o":"b_F63B"},{"a":63034,"t":"code","b":[56],"m":"sec"},{"a":63035,"l":"b_F63B","t":"code","b":[165,46],"m":"lda","oa":46,"o":"spr_x","x":[63032]},{"a":63037,"t":"code","b":[106],"m":"ror","o":"a"},{"a":63038,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":63039,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":63040,"t":"code","b":[133,49],"m":"sta","oa":49,"o":"cell_col"},{"a":63042,"t":"code","b":[165,47],"m":"lda","oa":47,"o":"zpa_2F"},{"a":63044,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":63045,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":63046,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":63047,"t":"code","b":[133,50],"m":"sta","oa":50,"o":"zpa_32"},{"a":63049,"c":"BIT $48 here hides the PHA at $F64A from cell_of_sprite, which has pushed A itself.","t":"code","b":[36,72],"m":"bit","oa":72,"o":"zpa_48"},{"a":63050,"t":"note","l":"screen_address","c":"Sets $26/$27 to the screen address of column $31, row $32, from the row tables screen_row_lo and screen_row_hi, and $28/$29 to the same cell in colour memory; A and X are kept. Its first instruction, PHA, is the operand of the BIT at $F649; scroll_balloons and draw_playfield call it here, cell_of_sprite runs into it.","note":"inside the item at $F649","x":[61952,62777]},{"a":63051,"t":"code","b":[138],"m":"txa"},{"a":63052,"t":"code","b":[72],"m":"pha"},{"a":63053,"t":"code","b":[166,50],"m":"ldx","oa":50,"o":"zpa_32"},{"a":63055,"t":"code","b":[189,31,254],"m":"lda","oa":65055,"o":"screen_row_lo,x"},{"a":63058,"t":"code","b":[24],"m":"clc"},{"a":63059,"t":"code","b":[101,49],"m":"adc","oa":49,"o":"cell_col"},{"a":63061,"t":"code","b":[133,38],"m":"sta","oa":38,"o":"scr_ptr"},{"a":63063,"t":"code","b":[133,40],"m":"sta","oa":40,"o":"zpp_28"},{"a":63065,"t":"code","b":[189,56,254],"m":"lda","oa":65080,"o":"screen_row_hi,x"},{"a":63068,"t":"code","b":[105,0],"m":"adc","o":"#$00"},{"a":63070,"t":"code","b":[133,39],"m":"sta","oa":39,"o":"zpa_27"},{"a":63072,"t":"code","b":[105,212],"m":"adc","o":"#$D4"},{"a":63074,"t":"code","b":[133,41],"m":"sta","oa":41,"o":"zpa_29"},{"a":63076,"t":"code","b":[104],"m":"pla"},{"a":63077,"t":"code","b":[170],"m":"tax"},{"a":63078,"t":"code","b":[104],"m":"pla"},{"a":63079,"t":"code","b":[96],"m":"rts"},{"a":63080,"l":"show_status_number","c":"Routine 4: shows a player's score and the jumps on the status line. A/X = the 16-bit score (low, high); Y bit 7 = player 2. Prints the score's digits at column 8 (player 1) or 34 (player 2) of row 0, then puts Y's low seven bits, the jumps, as one digit at column 23, $40 + the number: the reversed digits the status line uses.","t":"code","b":[133,44],"m":"sta","oa":44,"o":"ml_tmp","x":[61448,63449,63457]},{"a":63082,"t":"code","b":[169,1],"m":"lda","o":"#$01"},{"a":63084,"t":"code","b":[133,55],"m":"sta","oa":55,"o":"zpa_37"},{"a":63086,"t":"code","b":[152],"m":"tya"},{"a":63087,"t":"code","b":[72],"m":"pha"},{"a":63088,"t":"code","b":[48,3],"m":"bmi","oa":63093,"o":"b_F675"},{"a":63090,"t":"code","b":[169,8],"m":"lda","o":"#$08"},{"a":63092,"t":"code","b":[44,169,34],"m":"bit","oa":8873,"o":"a_22A9"},{"a":63095,"t":"code","b":[133,54],"m":"sta","oa":54,"o":"status_col"},{"a":63097,"t":"code","b":[165,44],"m":"lda","oa":44,"o":"ml_tmp"},{"a":63099,"t":"code","b":[32,155,246],"m":"jsr","oa":63131,"o":"print_digits"},{"a":63102,"t":"code","b":[104],"m":"pla"},{"a":63103,"t":"code","b":[41,127],"m":"and","o":"#$7F"},{"a":63105,"t":"code","b":[24],"m":"clc"},{"a":63106,"t":"code","b":[105,64],"m":"adc","o":"#$40"},{"a":63108,"t":"code","b":[141,23,4],"m":"sta","oa":1047,"o":"a_0417"},{"a":63111,"t":"code","b":[96],"m":"rts"},{"a":63112,"l":"show_high_score","c":"Routine 19: prints \"HIGH SCORE\" (high_score_text) through put_char at the cursor, then the number in A/X (low, high).","t":"code","b":[72],"m":"pha","x":[61478,62556]},{"a":63113,"t":"code","b":[160,0],"m":"ldy","o":"#$00"},{"a":63115,"l":"b_F68B","t":"code","b":[185,4,255],"m":"lda","oa":65284,"o":"high_score_text,y","x":[63124]},{"a":63118,"t":"code","b":[32,46,226],"m":"jsr","oa":57902,"o":"put_char"},{"a":63121,"t":"code","b":[200],"m":"iny"},{"a":63122,"t":"code","b":[192,10],"m":"cpy","o":"#$0A"},{"a":63124,"t":"code","b":[208,245],"m":"bne","oa":63115,"o":"b_F68B"},{"a":63126,"t":"code","b":[104],"m":"pla"},{"a":63127,"l":"print_number","c":"Routine 3: prints the 16-bit number in A/X (low, high) through put_char at the cursor (falls into print_digits with $37 = 0).","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[61446]},{"a":63129,"t":"code","b":[132,55],"m":"sty","oa":55,"o":"zpa_37"},{"a":63131,"l":"print_digits","c":"Prints the 16-bit number A/X as six digits by repeated subtraction of pow10 entries 5 to 0: 10,000, 1,000, 100, 10, 1, and last a divisor of 4,115 that nothing left can reach, so the sixth digit is always 0. That last digit is how a score held in tens shows its points. Leading zeros become spaces; the sixth digit always prints, so a score of 0 shows as a single 0. With $37 = 0 each digit goes through put_char; otherwise status_put writes it straight to the status line from column $36.","t":"code","b":[160,0],"m":"ldy","o":"#$00","x":[63099]},{"a":63133,"t":"code","b":[132,53],"m":"sty","oa":53,"o":"zpa_35"},{"a":63135,"t":"code","b":[160,5],"m":"ldy","o":"#$05"},{"a":63137,"l":"j_F6A1","t":"code","b":[72],"m":"pha","x":[63205]},{"a":63138,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":63140,"t":"code","b":[133,44],"m":"sta","oa":44,"o":"ml_tmp"},{"a":63142,"t":"code","b":[104],"m":"pla"},{"a":63143,"l":"b_F6A7","t":"code","b":[56],"m":"sec","x":[63158]},{"a":63144,"t":"code","b":[249,208,255],"m":"sbc","oa":65488,"o":"pow10,y"},{"a":63147,"t":"code","b":[72],"m":"pha"},{"a":63148,"t":"code","b":[138],"m":"txa"},{"a":63149,"t":"code","b":[249,213,255],"m":"sbc","oa":65493,"o":"pow10_hi,y"},{"a":63152,"t":"code","b":[170],"m":"tax"},{"a":63153,"t":"code","b":[104],"m":"pla"},{"a":63154,"t":"code","b":[144,4],"m":"bcc","oa":63160,"o":"b_F6B8"},{"a":63156,"t":"code","b":[230,44],"m":"inc","oa":44,"o":"ml_tmp"},{"a":63158,"t":"code","b":[208,239],"m":"bne","oa":63143,"o":"b_F6A7"},{"a":63160,"l":"b_F6B8","t":"code","b":[121,208,255],"m":"adc","oa":65488,"o":"pow10,y","x":[63154]},{"a":63163,"t":"code","b":[72],"m":"pha"},{"a":63164,"t":"code","b":[138],"m":"txa"},{"a":63165,"t":"code","b":[121,213,255],"m":"adc","oa":65493,"o":"pow10_hi,y"},{"a":63168,"t":"code","b":[170],"m":"tax"},{"a":63169,"t":"code","b":[104],"m":"pla"},{"a":63170,"t":"code","b":[230,44],"m":"inc","oa":44,"o":"ml_tmp"},{"a":63172,"t":"code","b":[198,44],"m":"dec","oa":44,"o":"ml_tmp"},{"a":63174,"t":"code","b":[208,15],"m":"bne","oa":63191,"o":"b_F6D7"},{"a":63176,"t":"code","b":[230,53],"m":"inc","oa":53,"o":"zpa_35"},{"a":63178,"t":"code","b":[198,53],"m":"dec","oa":53,"o":"zpa_35"},{"a":63180,"t":"code","b":[208,9],"m":"bne","oa":63191,"o":"b_F6D7"},{"a":63182,"t":"code","b":[192,0],"m":"cpy","o":"#$00"},{"a":63184,"t":"code","b":[240,5],"m":"beq","oa":63191,"o":"b_F6D7"},{"a":63186,"t":"code","b":[72],"m":"pha"},{"a":63187,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":63189,"t":"code","b":[208,7],"m":"bne","oa":63198,"o":"b_F6DE"},{"a":63191,"l":"b_F6D7","t":"code","b":[72],"m":"pha","x":[63174,63180,63184]},{"a":63192,"t":"code","b":[165,44],"m":"lda","oa":44,"o":"ml_tmp"},{"a":63194,"t":"code","b":[9,48],"m":"ora","o":"#$30"},{"a":63196,"t":"code","b":[230,53],"m":"inc","oa":53,"o":"zpa_35"},{"a":63198,"l":"b_F6DE","t":"code","b":[32,233,246],"m":"jsr","oa":63209,"o":"status_put","x":[63189]},{"a":63201,"t":"code","b":[104],"m":"pla"},{"a":63202,"t":"code","b":[136],"m":"dey"},{"a":63203,"t":"code","b":[48,3],"m":"bmi","oa":63208,"o":"r_F6E8"},{"a":63205,"t":"code","b":[76,161,246],"m":"jmp","oa":63137,"o":"j_F6A1"},{"a":63208,"l":"r_F6E8","t":"code","b":[96],"m":"rts","x":[63203]},{"a":63209,"l":"status_put","c":"Writes the character in A to the status line at column $36 and moves on, or through put_char when $37 = 0. On the status line a digit is stored as its reversed form, code + $10 ($40-$49), and a space as the reversed space $50.","t":"code","b":[133,52],"m":"sta","oa":52,"o":"zpa_34","x":[63198]},{"a":63211,"t":"code","b":[138],"m":"txa"},{"a":63212,"t":"code","b":[72],"m":"pha"},{"a":63213,"t":"code","b":[165,52],"m":"lda","oa":52,"o":"zpa_34"},{"a":63215,"t":"code","b":[166,55],"m":"ldx","oa":55,"o":"zpa_37"},{"a":63217,"t":"code","b":[208,6],"m":"bne","oa":63225,"o":"b_F6F9"},{"a":63219,"t":"code","b":[32,46,226],"m":"jsr","oa":57902,"o":"put_char"},{"a":63222,"t":"code","b":[76,12,247],"m":"jmp","oa":63244,"o":"j_F70C"},{"a":63225,"l":"b_F6F9","t":"code","b":[166,54],"m":"ldx","oa":54,"o":"status_col","x":[63217]},{"a":63227,"t":"code","b":[230,54],"m":"inc","oa":54,"o":"status_col"},{"a":63229,"t":"code","b":[201,32],"m":"cmp","o":"#$20"},{"a":63231,"t":"code","b":[208,5],"m":"bne","oa":63238,"o":"b_F706"},{"a":63233,"t":"code","b":[169,80],"m":"lda","o":"#$50"},{"a":63235,"t":"code","b":[76,9,247],"m":"jmp","oa":63241,"o":"j_F709"},{"a":63238,"l":"b_F706","t":"code","b":[24],"m":"clc","x":[63231]},{"a":63239,"t":"code","b":[105,16],"m":"adc","o":"#$10"},{"a":63241,"l":"j_F709","t":"code","b":[157,0,4],"m":"sta","oa":1024,"o":"f_0400,x","x":[63235]},{"a":63244,"l":"j_F70C","t":"code","b":[104],"m":"pla","x":[63222]},{"a":63245,"t":"code","b":[170],"m":"tax"},{"a":63246,"t":"code","b":[165,52],"m":"lda","oa":52,"o":"zpa_34"},{"a":63248,"t":"code","b":[96],"m":"rts"},{"a":63249,"l":"wait_tick","c":"Routine 2: the game's clock. Waits until CIA 1's timer A, a one-shot of 10,000 cycles, has run out, then starts it again (INC $DC0E sets the start bit): one tick, about a hundredth of a second (10.15 ms on a PAL machine, 9.78 ms on NTSC: the timer counts the processor's clock, not frames). Every pass of the game's loops waits here.","t":"code","b":[173,14,220],"m":"lda","o":"cia1_control_a","x":[61444,62421,62531,62683,62692,62977,63253]},{"a":63252,"t":"code","b":[74],"m":"lsr","o":"a"},{"a":63253,"t":"code","b":[176,250],"m":"bcs","oa":63249,"o":"wait_tick"},{"a":63255,"t":"code","b":[238,14,220],"m":"inc","o":"cia1_control_a"},{"a":63258,"t":"code","b":[96],"m":"rts"},{"a":63259,"l":"swap_balloons","c":"Routine 6: exchanges the balloon state ($50-$79: three rows' fine positions, start columns and the 36 balloons) with the other player's store at $C2-$EB, and clears the middle of screen row 15 (columns 2-37), where \"PLAYER n\" is shown.","t":"code","b":[162,41],"m":"ldx","o":"#$29","x":[61452,62706]},{"a":63261,"l":"b_F71D","t":"code","b":[180,80],"m":"ldy","oa":80,"o":"balloon_fine,x","x":[63270]},{"a":63263,"t":"code","b":[181,194],"m":"lda","oa":194,"o":"other_balloons,x"},{"a":63265,"t":"code","b":[148,194],"m":"sty","oa":194,"o":"other_balloons,x"},{"a":63267,"t":"code","b":[149,80],"m":"sta","oa":80,"o":"balloon_fine,x"},{"a":63269,"t":"code","b":[202],"m":"dex"},{"a":63270,"t":"code","b":[16,245],"m":"bpl","oa":63261,"o":"b_F71D"},{"a":63272,"t":"code","b":[162,35],"m":"ldx","o":"#$23"},{"a":63274,"t":"code","b":[169,32],"m":"lda","o":"#$20"},{"a":63276,"l":"b_F72C","t":"code","b":[157,90,6],"m":"sta","oa":1626,"o":"f_065A,x","x":[63280]},{"a":63279,"t":"code","b":[202],"m":"dex"},{"a":63280,"t":"code","b":[16,250],"m":"bpl","oa":63276,"o":"b_F72C"},{"a":63282,"t":"code","b":[96],"m":"rts"},{"a":63283,"l":"vic_init","c":"The 30 values the cold start writes to the video chip's $D011-$D02E: $D011 = $1B (text, 25 rows, screen on), $D016 = $08, $D018 = $1E (screen at $0400, characters at $3800), $D01A = $0F, $D01B = $FF (sprites behind the characters), border $D020 = 3 (cyan), background $D021 = 0 (black), sprites 0-2 white. The last five, for sprites 3-7's colours, are the first five of sid_init.","t":"byte","b":[27,0,0,0,0,8,0,30],"x":[63341]},{"a":63291,"t":"byte","b":[0,15,255,0,0,0,0,3]},{"a":63299,"t":"byte","b":[0,0,0,0,0,0,1,1]},{"a":63307,"t":"byte","b":[1]},{"a":63308,"l":"sid_init","c":"The 22 values the cold start writes to the SID's $D400-$D415. Voice 1: pulse width $800, a pulse waveform gated on ($41), attack and decay 0, sustain 8, release 0; play_tune sets its pitch. Voice 2: pulse width $800, pulse with the gate off ($40), sustain 8, release 9: the bounce and the fall. Voice 3: pitch $12A3, pulse width $800, pulse with the gate off, sustain 15, release 6: the pop writes noise ($81) to it. $D415, the filter cutoff's low bits, 0. Its first five bytes are also the last five of vic_init.","t":"byte","b":[0,0,0,8,65,0,128,0],"x":[63366]},{"a":63316,"t":"byte","b":[0,0,8,64,0,137,163,18]},{"a":63324,"t":"byte","b":[0,8,64,0,246,0]},{"a":63330,"c":"Three bytes nothing reads ($A0, $F4, $10), just after sid_init: the cold start's loop stops at $D415, so they reach no register.","t":"byte","b":[160,244,16]},{"a":63333,"l":"irq_nmi","c":"RTI: the IRQ and NMI vectors point here. Interrupts are never enabled (no CLI), so only an NMI (the RESTORE key) can come here, and it returns at once.","t":"code","b":[64],"m":"rti","x":[65530,65534]},{"a":63334,"l":"cold_start","c":"The reset vector's target: the program's first instruction. Masks interrupts, sets the stack, writes vic_init to the video chip and reads its collision registers to clear them, puts sprites 1 and 2 at y 234 (the see-saw), writes sid_init to the SID, turns off CIA 1's interrupts, makes CIA 1 port A outputs and port B inputs, writes $E5 to the processor port and $2F to its direction register, loads timer A with 10,000 and sets it to run once when started (wait_tick starts it), points sprite 0 at $03C0 (pointer $0F), clears zero page from $02 and $0200-$03FF, draws the playfield with the status line, shows both scores as 0 (show_status_number twice), and jumps to the compiled program at start ($E000).","t":"code","b":[120],"m":"sei","x":[65532]},{"a":63335,"t":"code","b":[216],"m":"cld"},{"a":63336,"t":"code","b":[162,255],"m":"ldx","o":"#$FF"},{"a":63338,"t":"code","b":[154],"m":"txs"},{"a":63339,"t":"code","b":[162,29],"m":"ldx","o":"#$1D"},{"a":63341,"l":"b_F76D","t":"code","b":[189,51,247],"m":"lda","oa":63283,"o":"vic_init,x","x":[63348]},{"a":63344,"t":"code","b":[157,17,208],"m":"sta","o":"vic_control1,x"},{"a":63347,"t":"code","b":[202],"m":"dex"},{"a":63348,"t":"code","b":[16,247],"m":"bpl","oa":63341,"o":"b_F76D"},{"a":63350,"t":"code","b":[173,30,208],"m":"lda","o":"vic_sprite_collision"},{"a":63353,"t":"code","b":[173,31,208],"m":"lda","o":"vic_sprite_bg_collision"},{"a":63356,"t":"code","b":[169,234],"m":"lda","o":"#$EA"},{"a":63358,"t":"code","b":[141,3,208],"m":"sta","o":"vic_sprite1_y"},{"a":63361,"t":"code","b":[141,5,208],"m":"sta","o":"vic_sprite2_y"},{"a":63364,"t":"code","b":[162,21],"m":"ldx","o":"#$15"},{"a":63366,"l":"b_F786","t":"code","b":[189,76,247],"m":"lda","oa":63308,"o":"sid_init,x","x":[63373]},{"a":63369,"t":"code","b":[157,0,212],"m":"sta","o":"sid_v1_freq_lo,x"},{"a":63372,"t":"code","b":[202],"m":"dex"},{"a":63373,"t":"code","b":[16,247],"m":"bpl","oa":63366,"o":"b_F786"},{"a":63375,"t":"code","b":[169,127],"m":"lda","o":"#$7F"},{"a":63377,"t":"code","b":[141,13,220],"m":"sta","o":"cia1_interrupt"},{"a":63380,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":63382,"t":"code","b":[141,15,220],"m":"sta","o":"cia1_control_b"},{"a":63385,"t":"code","b":[162,0],"m":"ldx","o":"#$00"},{"a":63387,"t":"code","b":[142,3,220],"m":"stx","o":"cia1_ddr_b"},{"a":63390,"t":"code","b":[202],"m":"dex"},{"a":63391,"t":"code","b":[142,2,220],"m":"stx","o":"cia1_ddr_a"},{"a":63394,"t":"code","b":[169,229],"m":"lda","o":"#$E5"},{"a":63396,"t":"code","b":[133,1],"m":"sta","oa":1,"o":"zpa_01"},{"a":63398,"t":"code","b":[169,47],"m":"lda","o":"#$2F"},{"a":63400,"t":"code","b":[133,0],"m":"sta","oa":0,"o":"zpa_00"},{"a":63402,"t":"code","b":[169,16],"m":"lda","o":"#$10"},{"a":63404,"t":"code","b":[141,4,220],"m":"sta","o":"cia1_timer_a_lo"},{"a":63407,"t":"code","b":[169,39],"m":"lda","o":"#$27"},{"a":63409,"t":"code","b":[141,5,220],"m":"sta","o":"cia1_timer_a_hi"},{"a":63412,"t":"code","b":[169,24],"m":"lda","o":"#$18"},{"a":63414,"t":"code","b":[141,14,220],"m":"sta","o":"cia1_control_a"},{"a":63417,"t":"code","b":[169,15],"m":"lda","o":"#$0F"},{"a":63419,"t":"code","b":[141,248,7],"m":"sta","oa":2040,"o":"a_07F8"},{"a":63422,"t":"code","b":[162,2],"m":"ldx","o":"#$02"},{"a":63424,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":63426,"l":"b_F7C2","t":"code","b":[149,0],"m":"sta","oa":0,"o":"zpa_00,x","x":[63429]},{"a":63428,"t":"code","b":[232],"m":"inx"},{"a":63429,"t":"code","b":[208,251],"m":"bne","oa":63426,"o":"b_F7C2"},{"a":63431,"l":"b_F7C7","t":"code","b":[157,0,2],"m":"sta","oa":512,"o":"clown_x_hi,x","x":[63438]},{"a":63434,"t":"code","b":[157,0,3],"m":"sta","oa":768,"o":"f_0300,x"},{"a":63437,"t":"code","b":[232],"m":"inx"},{"a":63438,"t":"code","b":[208,247],"m":"bne","oa":63431,"o":"b_F7C7"},{"a":63440,"t":"code","b":[169,255],"m":"lda","o":"#$FF"},{"a":63442,"t":"code","b":[32,238,244],"m":"jsr","oa":62702,"o":"draw_playfield_twice"},{"a":63445,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":63447,"t":"code","b":[170],"m":"tax"},{"a":63448,"t":"code","b":[168],"m":"tay"},{"a":63449,"t":"code","b":[32,104,246],"m":"jsr","oa":63080,"o":"show_status_number"},{"a":63452,"t":"code","b":[169,0],"m":"lda","o":"#$00"},{"a":63454,"t":"code","b":[170],"m":"tax"},{"a":63455,"t":"code","b":[160,128],"m":"ldy","o":"#$80"},{"a":63457,"t":"code","b":[32,104,246],"m":"jsr","oa":63080,"o":"show_status_number"},{"a":63460,"t":"code","b":[76,0,224],"m":"jmp","oa":57344,"o":"start"},{"a":63463,"l":"smooth_paddle","c":"Returns (A + 3 x $FF) / 4 in A and $FF: the new paddle position mixed with three parts of the last, so the see-saw follows the paddle smoothly.","t":"code","b":[162,0],"m":"ldx","o":"#$00","x":[61853]},{"a":63465,"t":"code","b":[134,44],"m":"stx","oa":44,"o":"ml_tmp"},{"a":63467,"t":"code","b":[162,3],"m":"ldx","o":"#$03"},{"a":63469,"l":"b_F7ED","t":"code","b":[24],"m":"clc","x":[63477]},{"a":63470,"t":"code","b":[101,255],"m":"adc","oa":255,"o":"paddle_smooth"},{"a":63472,"t":"code","b":[144,2],"m":"bcc","oa":63476,"o":"b_F7F4"},{"a":63474,"t":"code","b":[230,44],"m":"inc","oa":44,"o":"ml_tmp"},{"a":63476,"l":"b_F7F4","t":"code","b":[202],"m":"dex","x":[63472]},{"a":63477,"t":"code","b":[208,246],"m":"bne","oa":63469,"o":"b_F7ED"},{"a":63479,"t":"code","b":[102,44],"m":"ror","oa":44,"o":"ml_tmp"},{"a":63481,"t":"code","b":[106],"m":"ror","o":"a"},{"a":63482,"t":"code","b":[102,44],"m":"ror","oa":44,"o":"ml_tmp"},{"a":63484,"t":"code","b":[106],"m":"ror","o":"a"},{"a":63485,"t":"code","b":[133,255],"m":"sta","oa":255,"o":"paddle_smooth"},{"a":63487,"t":"code","b":[96],"m":"rts"},{"a":63488,"l":"font","c":"The character set, 2 KB at $F800-$FFFF: the video chip reads it as $3800 ($D018 = $1E), and in the Ultimax configuration that address shows the cartridge's top 4 KB. Characters 0-31 here are the letters in screen-code order ('@' blank, then A-Z and [ \\ ] and two arrows), 8 bytes each. draw_clown also reads glyphs here for its collision test. Characters from 128 up would fall on the tables that follow and are never put on the screen.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63496,"t":"byte","b":[56,108,198,198,254,198,198,0]},{"a":63504,"t":"byte","b":[252,102,102,124,102,102,252,0]},{"a":63512,"t":"byte","b":[60,102,192,192,192,102,60,0]},{"a":63520,"t":"byte","b":[248,100,102,102,102,100,248,0]},{"a":63528,"t":"byte","b":[254,96,96,124,96,96,254,0]},{"a":63536,"t":"byte","b":[254,96,96,124,96,96,240,0]},{"a":63544,"t":"byte","b":[60,102,192,222,198,102,60,0]},{"a":63552,"t":"byte","b":[198,198,198,254,198,198,198,0]},{"a":63560,"t":"byte","b":[60,24,24,24,24,24,60,0]},{"a":63568,"t":"byte","b":[30,12,12,12,204,204,120,0]},{"a":63576,"t":"byte","b":[198,204,216,240,216,204,198,0]},{"a":63584,"t":"byte","b":[240,96,96,96,96,96,254,0]},{"a":63592,"t":"byte","b":[198,238,254,214,198,198,198,0]},{"a":63600,"t":"byte","b":[198,230,246,222,206,198,198,0]},{"a":63608,"t":"byte","b":[124,238,198,198,198,238,124,0]},{"a":63616,"t":"byte","b":[252,102,102,124,96,96,240,0]},{"a":63624,"t":"byte","b":[56,100,194,194,202,100,58,0]},{"a":63632,"t":"byte","b":[252,198,198,252,216,204,198,0]},{"a":63640,"t":"byte","b":[124,198,192,124,6,198,124,0]},{"a":63648,"t":"byte","b":[126,24,24,24,24,24,60,0]},{"a":63656,"t":"byte","b":[198,198,198,198,198,198,124,0]},{"a":63664,"t":"byte","b":[198,198,198,108,108,56,56,0]},{"a":63672,"t":"byte","b":[198,198,198,214,214,254,108,0]},{"a":63680,"t":"byte","b":[198,198,108,56,108,198,198,0]},{"a":63688,"t":"byte","b":[198,198,108,124,56,56,56,0]},{"a":63696,"t":"byte","b":[254,198,12,56,96,198,254,0]},{"a":63704,"t":"byte","b":[124,96,96,96,96,96,124,0]},{"a":63712,"t":"byte","b":[0,192,96,48,24,12,6,0]},{"a":63720,"t":"byte","b":[62,6,6,6,6,6,62,0]},{"a":63728,"t":"byte","b":[24,60,90,24,24,24,24,0]},{"a":63736,"t":"byte","b":[0,32,64,254,254,64,32,0]},{"a":63744,"l":"font_symbols","c":"Characters 32-63 of the font: space, punctuation, the digits 0-9 and : ; < = > ?. Character 40, '(' in PETSCII, is drawn as a copyright sign (a C in a ring), which is how \"(1982 BALLY/MIDWAY\" shows as \"\u00a91982\"; character 41, ')', is a narrower ringed C that nothing prints.","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":63752,"t":"byte","b":[24,24,24,24,0,24,24,0]},{"a":63760,"t":"byte","b":[102,102,102,0,0,0,0,0]},{"a":63768,"t":"byte","b":[108,108,254,108,254,108,108,0]},{"a":63776,"t":"byte","b":[24,62,88,60,26,124,24,0]},{"a":63784,"t":"byte","b":[0,198,204,24,48,102,198,0]},{"a":63792,"t":"byte","b":[112,216,216,112,218,204,122,0]},{"a":63800,"t":"byte","b":[12,24,48,0,0,0,0,0]},{"a":63808,"t":"byte","b":[126,129,189,177,177,189,129,126]},{"a":63816,"t":"byte","b":[126,129,169,161,161,169,129,126]},{"a":63824,"t":"byte","b":[16,84,56,254,56,84,16,0]},{"a":63832,"t":"byte","b":[0,24,24,126,126,24,24,0]},{"a":63840,"t":"byte","b":[0,0,0,0,24,24,48,96]},{"a":63848,"t":"byte","b":[0,0,0,126,126,0,0,0]},{"a":63856,"t":"byte","b":[0,0,0,0,0,24,24,0]},{"a":63864,"t":"byte","b":[0,6,12,24,48,96,192,0]},{"a":63872,"t":"byte","b":[124,198,206,214,230,198,124,0]},{"a":63880,"t":"byte","b":[24,56,24,24,24,24,60,0]},{"a":63888,"t":"byte","b":[124,198,198,12,56,224,254,0]},{"a":63896,"t":"byte","b":[124,198,6,28,6,198,124,0]},{"a":63904,"t":"byte","b":[12,28,44,76,254,12,12,0]},{"a":63912,"t":"byte","b":[254,192,192,252,6,198,124,0]},{"a":63920,"t":"byte","b":[28,48,96,252,198,198,124,0]},{"a":63928,"t":"byte","b":[126,198,12,24,24,24,24,0]},{"a":63936,"t":"byte","b":[124,198,198,124,198,198,124,0]},{"a":63944,"t":"byte","b":[124,198,198,126,6,12,56,0]},{"a":63952,"t":"byte","b":[0,24,24,0,24,24,0,0]},{"a":63960,"t":"byte","b":[0,24,24,0,24,24,32,0]},{"a":63968,"t":"byte","b":[6,12,24,48,24,12,6,0]},{"a":63976,"t":"byte","b":[0,0,126,0,126,0,0,0]},{"a":63984,"t":"byte","b":[192,96,48,24,48,96,192,0]},{"a":63992,"t":"byte","b":[124,198,12,24,0,24,24,0]},{"a":64000,"l":"font_status","c":"Characters 64-84, the status line's reversed glyphs (dark letters on a solid cell): 64-73 the digits 0-9 (the score and the jumps), 74-79 \"PLAYER\", 80 a solid cell (the reversed space), 81-84 \"JUMS\" for \"JUMPS\".","t":"byte","b":[131,57,49,41,25,57,131,255]},{"a":64008,"t":"byte","b":[231,199,231,231,231,231,195,255]},{"a":64016,"t":"byte","b":[131,57,57,243,199,31,1,255]},{"a":64024,"t":"byte","b":[131,57,249,227,249,57,131,255]},{"a":64032,"t":"byte","b":[243,227,211,179,1,243,243,255]},{"a":64040,"t":"byte","b":[1,63,63,3,249,57,131,255]},{"a":64048,"t":"byte","b":[227,207,159,3,57,57,131,255]},{"a":64056,"t":"byte","b":[129,57,243,231,231,231,231,255]},{"a":64064,"t":"byte","b":[131,57,57,131,57,57,131,255]},{"a":64072,"t":"byte","b":[131,57,57,129,249,243,199,255]},{"a":64080,"t":"byte","b":[3,153,153,131,159,159,15,255]},{"a":64088,"t":"byte","b":[15,159,159,159,159,159,1,255]},{"a":64096,"t":"byte","b":[199,147,57,57,1,57,57,255]},{"a":64104,"t":"byte","b":[57,57,147,131,199,199,199,255]},{"a":64112,"t":"byte","b":[1,159,159,131,159,159,1,255]},{"a":64120,"t":"byte","b":[3,57,57,3,39,51,57,255]},{"a":64128,"t":"byte","b":[255,255,255,255,255,255,255,255]},{"a":64136,"t":"byte","b":[225,243,243,243,51,51,135,255]},{"a":64144,"t":"byte","b":[57,57,57,57,57,57,131,255]},{"a":64152,"t":"byte","b":[57,17,1,41,57,57,57,255]},{"a":64160,"t":"byte","b":[131,57,63,131,249,57,131,255]},{"a":64168,"l":"font_walls","c":"Characters 85-89, the playfield's solid parts, which the clown bounces off by their codes: 85 the left wall (each row $FE), 86 the right wall ($7F), 87 the ceiling (seven solid rows), 88 seven solid rows from the second, unused, and 89 a platform's top (rows 1 and 2). Characters 90-95 ($FAD0-$FAFF) are blank and unused.","t":"byte","b":[254,254,254,254,254,254,254,254]},{"a":64176,"t":"byte","b":[127,127,127,127,127,127,127,127]},{"a":64184,"t":"byte","b":[255,255,255,255,255,255,255,0]},{"a":64192,"t":"byte","b":[0,255,255,255,255,255,255,255]},{"a":64200,"t":"byte","b":[0,255,255,0,0,0,0,0]},{"a":64208,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64216,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64224,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64232,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64240,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64248,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64256,"l":"balloon_glyphs","c":"Characters 96-119: a balloon drawn across three characters, in eight copies each shifted one pixel further right (24 bytes a copy). scroll_balloons shows copy n of each balloon as characters 96 + 3n to 98 + 3n, so the rows move a pixel at a time without redrawing pixels.","t":"byte","b":[31,127,255,255,103,56,31,6]},{"a":64264,"t":"byte","b":[128,224,240,240,224,192,128,0]},{"a":64272,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64280,"t":"byte","b":[15,63,127,127,51,28,15,3]},{"a":64288,"t":"byte","b":[192,240,248,248,240,96,192,0]},{"a":64296,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64304,"t":"byte","b":[7,31,63,63,25,14,7,1]},{"a":64312,"t":"byte","b":[224,248,252,252,248,48,224,128]},{"a":64320,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64328,"t":"byte","b":[3,15,31,31,12,7,3,0]},{"a":64336,"t":"byte","b":[240,252,254,254,252,24,240,192]},{"a":64344,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64352,"t":"byte","b":[1,7,15,15,6,3,1,0]},{"a":64360,"t":"byte","b":[248,254,255,255,126,140,248,96]},{"a":64368,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64376,"t":"byte","b":[0,3,7,7,3,1,0,0]},{"a":64384,"t":"byte","b":[252,255,255,255,63,198,252,48]},{"a":64392,"t":"byte","b":[0,0,128,128,0,0,0,0]},{"a":64400,"t":"byte","b":[0,1,3,3,1,0,0,0]},{"a":64408,"t":"byte","b":[126,255,255,255,159,227,126,24]},{"a":64416,"t":"byte","b":[0,128,192,192,128,0,0,0]},{"a":64424,"t":"byte","b":[0,0,1,1,0,0,0,0]},{"a":64432,"t":"byte","b":[63,255,255,255,207,113,63,12]},{"a":64440,"t":"byte","b":[0,192,224,224,192,128,0,0]},{"a":64448,"l":"seesaw_sprites","c":"Four sprite shapes for the see-saw, read by the video chip at sprite pointers $EF-$F2 ($3BC0-$3CBF, which the Ultimax configuration shows from here): $EF and $F0, the left and right halves of the see-saw with its left end down and a clown standing on it, the fulcrum's triangle under the middle; $F1 and $F2, the same mirrored, right end down. The raised end is where the flying clown must land. Each is 63 bytes and a spare byte ($AA at $FBFF, $FC3F, $FC7F; the last shape's spare, $FCBF, is the first byte of the clown shapes).","t":"byte","b":[4,0,0,14,0,0,31,0]},{"a":64456,"t":"byte","b":[0,14,0,0,4,0,0,63]},{"a":64464,"t":"byte","b":[128,0,127,192,0,223,96,0]},{"a":64472,"t":"byte","b":[127,192,0,31,0,0,27,0]},{"a":64480,"t":"byte","b":[0,27,0,0,27,0,63,27]},{"a":64488,"t":"byte","b":[15,193,27,240,3,252,0,7]},{"a":64496,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64504,"t":"byte","b":[0,0,0,0,0,0,0,170]},{"a":64512,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64520,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64528,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64536,"t":"byte","b":[0,0,63,0,15,192,3,240]},{"a":64544,"t":"byte","b":[0,252,0,0,128,0,0,192]},{"a":64552,"t":"byte","b":[0,0,224,0,0,240,0,0]},{"a":64560,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64568,"t":"byte","b":[0,0,0,0,0,0,0,170]},{"a":64576,"l":"seesaw_sprites_2","c":"The see-saw's second pair of sprite shapes, pointers $F1 and $F2 ($FC40 and $FC80): the see-saw with its right end down and the clown standing on it (the four are described at seesaw_sprites).","t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64584,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64592,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64600,"t":"byte","b":[252,0,0,3,240,0,0,15]},{"a":64608,"t":"byte","b":[192,0,0,63,0,0,1,0]},{"a":64616,"t":"byte","b":[0,3,0,0,7,0,0,15]},{"a":64624,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64632,"t":"byte","b":[0,0,0,0,0,0,0,170]},{"a":64640,"t":"byte","b":[0,0,32,0,0,112,0,0]},{"a":64648,"t":"byte","b":[248,0,0,112,0,0,32,0]},{"a":64656,"t":"byte","b":[1,252,0,3,254,0,6,251]},{"a":64664,"t":"byte","b":[0,3,254,0,0,248,0,0]},{"a":64672,"t":"byte","b":[216,0,0,216,252,0,216,131]},{"a":64680,"t":"byte","b":[240,216,192,15,216,224,0,63]},{"a":64688,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64696,"t":"byte","b":[0,0,0,0,0,0,0]},{"a":64703,"l":"clown_shapes","c":"The flying clown's eleven frames, 32 bytes each (16 rows of 16 pixels, left byte then right), copied into sprite 0 at $03C0 by draw_clown: 0-3 four flailing poses of arms and legs while it flies, 4 the landing pose (arms up, legs together, shown falling low), 5 crumpling and 6 lying flat (the fall animation steps on from 4 to these), 7 and 8 running right along a platform, 9 and 10 running left.","t":"byte","b":[4,206,223,206,100,63,31,31]},{"a":64711,"t":"byte","b":[31,31,31,49,96,192,192,192]},{"a":64719,"t":"byte","b":[0,96,96,96,192,128,0,0]},{"a":64727,"t":"byte","b":[0,0,0,128,192,96,96,96]},{"a":64735,"t":"byte","b":[4,14,31,14,4,63,127,223]},{"a":64743,"t":"byte","b":[223,223,31,25,24,48,48,48]},{"a":64751,"t":"byte","b":[0,96,96,96,192,128,0,0]},{"a":64759,"t":"byte","b":[0,0,0,128,192,96,96,96]},{"a":64767,"t":"byte","b":[4,14,31,14,4,63,127,223]},{"a":64775,"t":"byte","b":[223,223,31,27,27,49,49,49]},{"a":64783,"t":"byte","b":[0,0,0,0,0,128,192,96]},{"a":64791,"t":"byte","b":[96,96,0,0,0,128,128,128]},{"a":64799,"t":"byte","b":[4,206,223,206,100,63,31,31]},{"a":64807,"t":"byte","b":[31,31,31,51,99,193,193,193]},{"a":64815,"t":"byte","b":[0,0,0,0,0,128,192,96]},{"a":64823,"t":"byte","b":[96,96,0,0,0,128,128,128]},{"a":64831,"t":"byte","b":[196,206,223,206,100,63,31,31]},{"a":64839,"t":"byte","b":[31,31,31,27,27,27,27,27]},{"a":64847,"t":"byte","b":[96,96,96,96,192,128,0,0]},{"a":64855,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64863,"t":"byte","b":[0,0,16,56,60,28,8,62]},{"a":64871,"t":"byte","b":[127,127,223,223,219,27,13,13]},{"a":64879,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64887,"t":"byte","b":[0,0,0,0,0,0,128,128]},{"a":64895,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64903,"t":"byte","b":[0,0,0,0,119,255,119,35]},{"a":64911,"t":"byte","b":[0,0,0,0,0,0,0,0]},{"a":64919,"t":"byte","b":[0,0,0,0,224,252,255,227]},{"a":64927,"t":"byte","b":[12,30,31,14,4,126,255,223]},{"a":64935,"t":"byte","b":[223,127,31,25,24,24,48,224]},{"a":64943,"t":"byte","b":[0,0,0,192,96,96,224,224]},{"a":64951,"t":"byte","b":[192,0,0,128,192,96,96,96]},{"a":64959,"t":"byte","b":[12,30,31,14,4,63,127,255]},{"a":64967,"t":"byte","b":[223,223,223,25,24,24,24,48]},{"a":64975,"t":"byte","b":[0,96,96,96,224,192,128,0]},{"a":64983,"t":"byte","b":[0,0,0,128,192,192,192,192]},{"a":64991,"t":"byte","b":[6,15,31,110,196,207,255,255]},{"a":64999,"t":"byte","b":[127,31,31,51,99,195,193,192]},{"a":65007,"t":"byte","b":[0,0,0,0,0,192,224,96]},{"a":65015,"t":"byte","b":[96,192,0,0,0,0,128,224]},{"a":65023,"t":"byte","b":[6,207,223,206,228,127,63,31]},{"a":65031,"t":"byte","b":[31,31,31,51,99,99,99,97]},{"a":65039,"t":"byte","b":[0,0,0,0,0,128,192,224]},{"a":65047,"t":"byte","b":[96,96,96,0,0,0,0,128]},{"a":65055,"l":"screen_row_lo","c":"The low byte of the screen address of each of the 25 text rows ($0400 + 40 x row), for screen_address.","t":"byte","b":[0,40,80,120,160,200,240,24],"x":[63055]},{"a":65063,"t":"byte","b":[64,104,144,184,224,8,48,88]},{"a":65071,"t":"byte","b":[128,168,208,248,32,72,112,152]},{"a":65079,"t":"byte","b":[192]},{"a":65080,"l":"screen_row_hi","c":"The high byte of the screen address of each of the 25 text rows.","t":"byte","b":[4,4,4,4,4,4,4,5],"x":[63065]},{"a":65088,"t":"byte","b":[5,5,5,5,5,6,6,6]},{"a":65096,"t":"byte","b":[6,6,6,6,7,7,7,7]},{"a":65104,"t":"byte","b":[7]},{"a":65105,"l":"probe_offsets","c":"The nine cells draw_clown tests, as offsets from the top-left cell under the clown: column 0 rows 0-2 (0, 40, 80), then column 1 and column 2.","t":"byte","b":[0,40,80,1,41,81,2,42],"x":[61775]},{"a":65113,"t":"byte","b":[82]},{"a":65114,"l":"balloon_row_base","c":"The first of each row's twelve balloons in the balloon flags $56-$79: 0, 12, 24 for the top (blue), middle (green) and bottom (yellow) rows.","t":"byte","b":[0,12,24],"x":[62026,62184,62215,62249]},{"a":65117,"l":"balloon_row_points","c":"Points for a balloon in each row, in tens: 10, 5 and 2, so 100 for blue, 50 for green, 20 for yellow.","t":"byte","b":[10,5,2],"x":[62192]},{"a":65120,"l":"probe_rows","c":"The row offset of each of the nine probe cells (0, 1, 2 for each column), which move_clown_sprite adds to the clown's row to find which balloon row a hit is in.","t":"byte","b":[0,1,2,0,1,2,0,1],"x":[62158]},{"a":65128,"t":"byte","b":[2]},{"a":65129,"l":"column_balloon","c":"Which balloon of a row covers each of the 36 balloon columns: 0, 0, 0, 1, 1, 1 ... 11, 11, 11. Its first nine entries (0, 0, 0, 1, 1, 1, 2, 2, 2) double as the column offsets of the nine probe cells.","t":"byte","b":[0,0,0,1,1,1,2,2],"x":[62168,62180]},{"a":65137,"t":"byte","b":[2,3,3,3,4,4,4,5]},{"a":65145,"t":"byte","b":[5,5,6,6,6,7,7,7]},{"a":65153,"t":"byte","b":[8,8,8,9,9,9,10,10]},{"a":65161,"t":"byte","b":[10,11,11,11]},{"a":65165,"l":"playfield_layout","c":"The playfield as records of five bytes, column, row, count, character and step (1 along a row, 40 down a column), ending with $FF: row 1 solid, then the ceiling (87) from column 2 to 37; columns 0 and 39 solid from row 2 down, with the left wall (85) at column 1 and the right wall (86) at column 38; the four platforms (89), four characters each, at columns 2 and 34 of rows 16 and 20.","t":"byte","b":[0],"x":[62760]},{"a":65166,"l":"f_FE8E","c":"playfield_layout read one byte further on: playfield_layout's records are read at $FE8D,X (column), $FE8E,X (row), $FE8F,X (count), $FE90,X (character) and $FE91,X (step), X stepping by five.","t":"byte","b":[1],"x":[62767]},{"a":65167,"l":"f_FE8F","c":"The count byte of each playfield_layout record (read at $FE8F,X).","t":"byte","b":[40],"x":[62772]},{"a":65168,"l":"f_FE90","c":"The character byte of each playfield_layout record (read at $FE90,X).","t":"byte","b":[80],"x":[62782]},{"a":65169,"l":"f_FE91","c":"The step byte of each playfield_layout record (read at $FE91,X): 1 along a row, 40 down a column.","t":"byte","b":[1,2,1,36,87,1,0,2],"x":[62794,62806]},{"a":65177,"t":"byte","b":[23,80,40,1,2,23,85,40]},{"a":65185,"t":"byte","b":[38,2,23,86,40,39,2,23]},{"a":65193,"t":"byte","b":[80,40,2,16,4,89,1,2]},{"a":65201,"t":"byte","b":[20,4,89,1,34,16,4,89]},{"a":65209,"t":"byte","b":[1,34,20,4,89,1,255]},{"a":65216,"l":"status_line","c":"The status line, row 0, in the reversed glyphs: \"PLAYER1\" at column 0, \"JUMPS\" at column 17 with a 0 at column 23, \"PLAYER2\" at column 26, and reversed spaces between, where the scores are printed.","t":"byte","b":[74,75,76,77,78,79,65,80],"x":[62731]},{"a":65224,"t":"byte","b":[80,80,80,80,80,80,80,80]},{"a":65232,"t":"byte","b":[80,81,82,83,74,84,80,64]},{"a":65240,"t":"byte","b":[80,80,74,75,76,77,78,79]},{"a":65248,"t":"byte","b":[66,80,80,80,80,80,80,80]},{"a":65256,"l":"bonus_play_text","c":"\"BONUS PLAY\" and \"PLAYER\" stored as one text, \"BONUS PLAYER\", in screen codes: platform_run shows its first ten letters as \"BONUS PLAY\" and its last six as \"PLAYER\" (player_text), so the two share four letters and the ROM saves six bytes.","t":"byte","b":[2,15,14,21,19,32],"x":[62890]},{"a":65262,"l":"player_text","c":"\"PLAYER\" in screen codes: the last six letters of bonus_play_text, shown by platform_run before the player's number.","t":"byte","b":[16,12,1,25,5,18],"x":[62911]},{"a":65268,"l":"bonus_jump_text","c":"\"BONUS JUMP\" in screen codes, for show_bonus_jump; show_bonus uses its first five letters, \"BONUS\".","t":"byte","b":[2,15,14,21,19,32,10,21],"x":[62455,62485]},{"a":65276,"t":"byte","b":[13,16]},{"a":65278,"l":"bonus_digits","c":"The first two digits of each row's bonus, \"10\", \"05\", \"02\", written straight to the screen by show_bonus (the digits' codes are the same in PETSCII and screen codes) before \"00\".","t":"byte","b":[49,48,48,53,48,50],"x":[62438]},{"a":65284,"l":"high_score_text","c":"\"HIGH SCORE\" in PETSCII, printed through put_char by show_high_score.","t":"byte","b":[72,73,71,72,32,83,67,79],"x":[63115]},{"a":65292,"t":"byte","b":[82,69]},{"a":65294,"l":"game_over_text","c":"\"GAME OVER\" in screen codes, blinked by blink_game_over.","t":"byte","b":[7,1,13,5,32,15,22,5],"x":[62620]},{"a":65302,"t":"byte","b":[18]},{"a":65303,"l":"tune_notes","c":"The three tunes' notes as SID pitch words for voice 1, each tune ending with a zero word: tune 0 (the start, and the bonus jump) from $FF17, eight notes; tune 1 (a row bonus) from $FF29, twenty-four notes; tune 2 (the fall) from $FF5B, eleven notes.","t":"byte","b":[126],"x":[62383]},{"a":65304,"l":"tune_notes_hi","c":"The high bytes of the tune_notes pitch words: play_tune reads the word's low byte at $FF17,X and its high byte here at $FF18,X.","t":"byte","b":[38,126,38,126,38,126,38,52],"x":[62391]},{"a":65312,"t":"byte","b":[43,126,38,52,43,127,48,0]},{"a":65320,"t":"byte","b":[0]},{"a":65321,"l":"tune1_notes","c":"Tune 1, the row bonus, from offset $12 of tune_notes: twenty-four pitch words, then the zero word at $FF59.","t":"byte","b":[75,34,94,32,75,34,198,45]},{"a":65329,"t":"byte","b":[75,34,214,28,214,28,56,27]},{"a":65337,"t":"byte","b":[214,28,75,34,214,28,227,22]},{"a":65345,"t":"byte","b":[214,28,177,25,227,22,177,25]},{"a":65353,"t":"byte","b":[177,25,177,25,141,30,214,28]},{"a":65361,"t":"byte","b":[177,25,75,34,214,28,227,22]},{"a":65369,"t":"byte","b":[0,0]},{"a":65371,"l":"tune2_notes","c":"Tune 2, the fall, from offset $44 of tune_notes: eleven pitch words, then the zero word at $FF71.","t":"byte","b":[47,16,47,16,47,16,47,16]},{"a":65379,"t":"byte","b":[63,19,42,18,42,18,47,16]},{"a":65387,"t":"byte","b":[47,16,70,15,47,16,0,0]},{"a":65395,"l":"tune_lengths","c":"Each note's length in ticks, one byte per note at half the note's offset in tune_notes; the byte at each tune's end word is never read.","t":"byte","b":[54,18,126,18,18,18,18,162],"x":[62400]},{"a":65403,"t":"byte","b":[0,18,18,18,36,18,36,18]},{"a":65411,"t":"byte","b":[18,18,36,18,36,18,18,18]},{"a":65419,"t":"byte","b":[36,18,36,18,18,18,36,18]},{"a":65427,"t":"byte","b":[36,0,36,24,12,36,32,12]},{"a":65435,"t":"byte","b":[24,12,24,12,48]},{"a":65440,"l":"tune_start","c":"Each tune's offset in tune_notes: 0, $12, $44.","t":"byte","b":[0,18,68],"x":[62379]},{"a":65443,"l":"fall_pitches","c":"The fall whistle's pitch words, read by sound_tick two ticks per word from the end backwards as the timer $3F runs down from 48. Its last three bytes are also the first three of pow10.","t":"byte","b":[0],"x":[62356]},{"a":65444,"l":"f_FFA4","c":"The high bytes of the fall_pitches words: sound_tick reads the low byte at $FFA3,X and the high byte here at $FFA4,X; a 0 here releases voice 2's gate.","t":"byte","b":[0,16,15,124,15,178,15,232],"x":[62362]},{"a":65452,"t":"byte","b":[15,30,16,84,16,138,16,192]},{"a":65460,"t":"byte","b":[16,246,16,44,17,96,17,150]},{"a":65468,"t":"byte","b":[17,204,17,2,18,56,18,110]},{"a":65476,"t":"byte","b":[18,164,18,218,18,16,19,70]},{"a":65484,"t":"byte","b":[19,124,19,178]},{"a":65488,"l":"pow10","c":"The divisors print_digits subtracts, as two overlapping tables: low bytes at $FFD0-$FFD5 and high bytes at $FFD5-$FFDA, giving 4,115 (from the end of fall_pitches), 1, 10, 100, 1,000 and 10,000. $FFD2, part of this table, is where device 0 of the print runtime would jump on a machine with a KERNAL.","t":"byte","b":[19,1],"x":[63144,63160]},{"a":65490,"l":"pow10_ten","c":"The low byte of the divisor 10 in pow10. On a machine with a KERNAL this is CHROUT, which device0_chrout jumps to; on this cartridge it is this table byte, so device 0 would run data.","t":"byte","b":[10,100,232],"x":[57731]},{"a":65493,"l":"pow10_hi","c":"The high bytes of pow10's divisors, $FFD5-$FFDA (0 for 1, 10 and 100; 3 for 1,000; $27 for 10,000; read as $FFD5,Y), starting with the byte that is also the low byte of 10,000 ($10) and the high byte of the sixth divisor, 4,115.","t":"byte","b":[16,0,0,0,3,39],"x":[63149,63165]},{"a":65499,"c":"31 bytes of $AA nothing reads, the filler between the tables and the vectors.","t":"byte","b":[170,170,170,170,170,170,170,170]},{"a":65507,"t":"byte","b":[170,170,170,170,170,170,170,170]},{"a":65515,"t":"byte","b":[170,170,170,170,170,170,170,170]},{"a":65523,"t":"byte","b":[170,170,170,170,170,170,170]},{"a":65530,"l":"cpu_vectors","c":"The 6510's vectors, which on this cartridge are the cartridge's own: NMI $F765 (RTI), reset $F766 (cold_start), IRQ $F765 (RTI).","t":"addr","b":[101,247],"oa":63333,"o":"irq_nmi"},{"a":65532,"t":"addr","b":[102,247],"oa":63334,"o":"cold_start"},{"a":65534,"t":"addr","b":[101,247],"oa":63333,"o":"irq_nmi"}]}