.file "arkanoid.c" #NO_APP .text tigcc_compiled.: .text #APP .xdef _ti89 .text .xdef _ti89ti .text .xdef _ti92plus .text .xdef _v200 .text .xdef __ref_all___startup_code .text .xdef __ref_all___detect_calc .text .xdef __ref_all___test_for_specific_calc .text .xdef __ref_all___test_for_any_calc .text .set _A_LINE,0xA000 .text .xdef __ref_all___kernel_format_data_var .text .xdef _tigcc_native .text .xdef __ref_all___nostub .text .xdef __ref_all___kernel_format_relocs .text .xdef __ref_all___kernel_format_bss .text .xdef __ref_all___kernel_format_rom_calls .text .set MT_TEXT,0x8000 .text .set MT_XREF,0x9000 .text .set MT_ICON,0xA000 .text .set MT_CASCADE,0x4000 .text .xdef __ref_all___custom_int_handlers; .text .xdef __ref_all___custom_int_handlers; .text .xdef __ref_all___custom_int_handlers; #NO_APP .globl Table_Capy .section .rodata.Table_Capy,"dm" Table_Capy: .byte 23 .byte 26 .byte 29 .byte 33 .byte 37 .byte 41 .byte 45 .byte 50 .byte 55 .byte 59 .byte 62 .byte 65 .byte 68 .byte 71 .byte 74 .byte 77 .byte 80 .byte 83 .byte 86 .byte 88 .byte 89 .byte 89 .byte 88 .byte 86 .byte 83 .byte 79 .byte 76 .byte 73 .byte 71 .byte 68 .byte 66 .byte 63 .byte 59 .byte 55 .byte 51 .byte 47 .byte 44 .byte 40 .byte 34 .byte 28 .byte 22 .byte 19 .byte 21 .byte 25 .byte 30 .byte 36 .byte 42 .byte 48 .byte 54 .byte 60 .byte 66 .byte 72 .byte 76 .byte 79 .byte 82 .byte 85 .byte 87 .byte 88 .byte 89 .byte 90 .byte 91 .byte 92 .byte 93 .globl Table_Capx .section .rodata.Table_Capx,"dm" Table_Capx: .byte 22 .byte 19 .byte 16 .byte 13 .byte 10 .byte 8 .byte 5 .byte 5 .byte 6 .byte 8 .byte 9 .byte 11 .byte 14 .byte 17 .byte 21 .byte 24 .byte 27 .byte 30 .byte 33 .byte 33 .byte 42 .byte 48 .byte 54 .byte 56 .byte 62 .byte 66 .byte 70 .byte 74 .byte 79 .byte 84 .byte 89 .byte 94 .byte 98 .byte 101 .byte 105 .byte 110 .byte 114 .byte 118 .byte 114 .byte 110 .byte 105 .byte 101 .byte 96 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .byte 92 .globl Table_Intro1_Ship_x .section .rodata.Table_Intro1_Ship_x,"dm" Table_Intro1_Ship_x: .byte 0 .byte 0 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 2 .byte 2 .byte 1 .byte 1 .byte 2 .globl Table_Intro1_Ship_size .section .rodata.Table_Intro1_Ship_size,"dm" Table_Intro1_Ship_size: .byte 7 .byte 7 .byte 5 .byte 4 .byte 4 .byte 4 .byte 4 .byte 4 .byte 2 .byte 2 .byte 4 .byte 4 .byte 2 .globl SaveScreen .text .even SaveScreen: .skip 4 .globl OldInt2 .even OldInt2: .skip 4 .globl OldInt1 .even OldInt1: .skip 4 .globl StartIntGhost .even StartIntGhost: .skip 2 .globl StartIntDoubleRacket .even StartIntDoubleRacket: .skip 2 .globl nbrMissile_anim nbrMissile_anim: .skip 1 .globl STAT_MISSILES_KEY .even STAT_MISSILES_KEY: .skip 2 .globl __MAP_COUNTER_MOVE .even __MAP_COUNTER_MOVE: .skip 2 .globl __MAP_COUNTER_TIME .even __MAP_COUNTER_TIME: .skip 2 .globl BufferMap .even BufferMap: .skip 4 .globl MAP_LEVEL1 MAP_LEVEL1: .skip 234 .globl reserved reserved: .skip 1 .globl monster_decors monster_decors: .byte 3 .globl MONSTER00_Move_y .section .rodata.MONSTER00_Move_y,"dm" MONSTER00_Move_y: .byte 0 .byte 0 .byte 0 .byte 2 .byte 0 .byte 0 .byte 1 .byte 1 .byte 1 .byte 2 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 2 .byte 0 .byte 0 .byte 1 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte -1 .byte 0 .byte 0 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte 0 .byte 0 .byte -1 .byte 0 .byte 0 .globl MONSTER00_Move_x .section .rodata.MONSTER00_Move_x,"dm" MONSTER00_Move_x: .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 0 .byte 1 .byte 0 .byte 0 .byte 0 .byte -1 .byte 0 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte -1 .byte 0 .byte -1 .byte 0 .byte 0 .byte 0 .byte 1 .byte 0 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .byte 1 .globl MONSTER_SPRITES .text MONSTER_SPRITES: .byte 8 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 6 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .globl MONSTER_DEAD MONSTER_DEAD: .byte 13 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .globl StartIntMissiles .even StartIntMissiles: .skip 2 .globl __RACKET_VARSPEED_COUNTER .even __RACKET_VARSPEED_COUNTER: .skip 2 .globl __RACKET_ANIM_COUNTER .even __RACKET_ANIM_COUNTER: .skip 2 .globl RACKETS_GAME_size .section .rodata.RACKETS_GAME_size,"dm" RACKETS_GAME_size: .byte 24 .byte 29 .byte 37 .byte 29 .globl RACKETS_ANIMS_size .section .rodata.RACKETS_ANIMS_size,"dm" RACKETS_ANIMS_size: .byte 29 .byte 29 .byte 27 .byte 25 .byte 0 .byte 0 .byte 31 .byte 32 .byte 35 .byte 37 .byte 0 .byte 0 .byte 28 .byte 28 .byte 28 .byte 28 .byte 28 .byte 28 .byte 28 .byte 28 .byte 28 .byte 28 .byte 28 .byte 0 .globl Tbl_cos .section .rodata.Tbl_cos,"dm" Tbl_cos: .byte 127 .byte 126 .byte 126 .byte 126 .byte 126 .byte 126 .byte 125 .byte 125 .byte 124 .byte 123 .byte 123 .byte 122 .byte 121 .byte 120 .byte 119 .byte 118 .byte 117 .byte 116 .byte 114 .byte 113 .byte 111 .byte 110 .byte 108 .byte 107 .byte 105 .byte 103 .byte 101 .byte 99 .byte 97 .byte 95 .byte 93 .byte 91 .byte 89 .byte 87 .byte 85 .byte 82 .byte 80 .byte 77 .byte 75 .byte 72 .byte 70 .byte 67 .byte 64 .byte 62 .byte 59 .byte 56 .byte 53 .byte 51 .byte 48 .byte 45 .byte 42 .byte 39 .byte 36 .byte 33 .byte 30 .byte 27 .byte 24 .byte 21 .byte 18 .byte 14 .byte 11 .byte 8 .byte 5 .byte 2 .byte 0 .byte -3 .byte -6 .byte -10 .byte -13 .byte -16 .byte -19 .byte -22 .byte -25 .byte -28 .byte -31 .byte -34 .byte -37 .byte -40 .byte -43 .byte -46 .byte -49 .byte -52 .byte -55 .byte -57 .byte -60 .byte -63 .byte -66 .byte -68 .byte -71 .byte -73 .byte -76 .byte -78 .byte -81 .byte -83 .byte -86 .byte -88 .byte -90 .byte -92 .byte -94 .byte -96 .byte -98 .byte -100 .byte -102 .byte -104 .byte -106 .byte -107 .byte -109 .byte -111 .byte -112 .byte -113 .byte -115 .byte -116 .byte -117 .byte -118 .byte -119 .byte -120 .byte -121 .byte -122 .byte -123 .byte -124 .byte -124 .byte -125 .byte -125 .byte -126 .byte -126 .byte -126 .byte -126 .byte -126 .byte -126 .byte -126 .byte -126 .byte -126 .byte -126 .byte -125 .byte -125 .byte -124 .byte -124 .byte -123 .byte -122 .byte -121 .byte -121 .byte -120 .byte -119 .byte -117 .byte -116 .byte -115 .byte -114 .byte -112 .byte -111 .byte -109 .byte -108 .byte -106 .byte -104 .byte -102 .byte -101 .byte -99 .byte -97 .byte -95 .byte -92 .byte -90 .byte -88 .byte -86 .byte -84 .byte -81 .byte -79 .byte -76 .byte -74 .byte -71 .byte -69 .byte -66 .byte -63 .byte -61 .byte -58 .byte -55 .byte -52 .byte -49 .byte -46 .byte -43 .byte -40 .byte -38 .byte -35 .byte -32 .byte -28 .byte -25 .byte -22 .byte -19 .byte -16 .byte -13 .byte -10 .byte -7 .byte -4 .byte -1 .byte 2 .byte 5 .byte 8 .byte 11 .byte 14 .byte 17 .byte 20 .byte 23 .byte 26 .byte 29 .byte 32 .byte 35 .byte 38 .byte 41 .byte 44 .byte 47 .byte 50 .byte 53 .byte 56 .byte 59 .byte 61 .byte 64 .byte 67 .byte 69 .byte 72 .byte 75 .byte 77 .byte 79 .byte 82 .byte 84 .byte 87 .byte 89 .byte 91 .byte 93 .byte 95 .byte 97 .byte 99 .byte 101 .byte 103 .byte 105 .byte 106 .byte 108 .byte 110 .byte 111 .byte 113 .byte 114 .byte 115 .byte 117 .byte 118 .byte 119 .byte 120 .byte 121 .byte 122 .byte 123 .byte 123 .byte 124 .byte 125 .byte 125 .byte 125 .byte 126 .byte 126 .byte 126 .byte 126 .byte 127 .byte 127 .byte 126 .byte 126 .byte 126 .byte 126 .byte 125 .byte 125 .byte 124 .byte 124 .byte 123 .byte 122 .byte 121 .byte 120 .byte 119 .byte 118 .byte 117 .byte 116 .byte 115 .byte 113 .byte 112 .byte 110 .byte 109 .byte 107 .byte 106 .byte 104 .byte 102 .byte 100 .byte 98 .byte 96 .byte 94 .byte 92 .byte 90 .byte 88 .byte 85 .byte 83 .byte 81 .byte 78 .byte 76 .byte 73 .byte 71 .byte 68 .byte 65 .byte 63 .byte 60 .byte 57 .byte 54 .byte 52 .byte 49 .byte 46 .byte 43 .byte 40 .byte 37 .byte 34 .byte 31 .byte 28 .byte 25 .byte 22 .byte 19 .byte 16 .byte 12 .byte 9 .byte 6 .byte 3 .byte 0 .globl IMG_Introduction1 .text .even IMG_Introduction1: .skip 4 .globl IMG_Introduction0_Picture1 .even IMG_Introduction0_Picture1: .skip 4 .globl IMG_Introduction0_Picture0 .even IMG_Introduction0_Picture0: .skip 4 .globl IMG_IntroTitle1 .even IMG_IntroTitle1: .skip 4 .globl IMG_IntroTitle0 .even IMG_IntroTitle0: .skip 4 .globl SPRITE_LIFE .even SPRITE_LIFE: .skip 4 .globl SPRITE_SQUARE_doors0 .even SPRITE_SQUARE_doors0: .skip 4 .globl SPRITE_SQUARE_up .even SPRITE_SQUARE_up: .skip 4 .globl SPRITE_SQUARE_left_and_right .even SPRITE_SQUARE_left_and_right: .skip 4 .globl SPRITE_SQUARE_corner_right .even SPRITE_SQUARE_corner_right: .skip 4 .globl SPRITE_SQUARE_corner_left .even SPRITE_SQUARE_corner_left: .skip 4 .globl SPRITE_BILLE .even SPRITE_BILLE: .skip 4 .globl MAP_PTR .even MAP_PTR: .skip 4 .globl Orage_Text1 Orage_Text1: .byte 1 .byte -32 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 48 .byte 0 .byte 3 .byte -16 .byte 0 .byte 0 .byte 0 .byte 0 .byte 1 .byte -16 .byte 0 .byte 0 .byte 51 .byte 0 .byte 18 .byte 120 .byte 0 .byte 0 .byte 0 .byte 0 .byte 1 .byte -15 .byte -128 .byte 0 .byte 50 .byte 0 .byte 28 .byte 56 .byte 0 .byte 0 .byte 0 .byte 0 .byte 3 .byte 32 .byte -128 .byte 0 .byte 112 .byte 0 .byte 56 .byte 56 .byte -31 .byte -31 .byte -31 .byte -32 .byte 28 .byte 12 .byte -32 .byte -60 .byte -26 .byte 60 .byte 112 .byte 57 .byte -15 .byte -29 .byte -31 .byte -32 .byte 31 .byte -116 .byte -16 .byte -51 .byte -24 .byte -100 .byte 96 .byte 117 .byte -8 .byte -22 .byte 107 .byte -32 .byte 15 .byte -29 .byte 24 .byte -35 .byte -51 .byte -116 .byte 0 .byte 70 .byte 124 .byte -4 .byte -1 .byte -64 .byte 15 .byte 99 .byte 57 .byte -24 .byte 77 .byte -52 .byte -32 .byte -82 .byte 25 .byte -40 .byte -1 .byte -128 .byte 0 .byte -89 .byte 59 .byte -15 .byte 95 .byte -116 .byte -31 .byte -18 .byte 17 .byte 89 .byte -26 .byte 0 .byte 96 .byte -89 .byte 35 .byte -79 .byte -34 .byte -100 .byte 127 .byte -100 .byte 31 .byte 6 .byte 31 .byte -64 .byte -1 .byte -50 .byte 63 .byte -65 .byte -69 .byte -8 .byte 127 .byte -100 .byte 31 .byte -34 .byte 31 .byte -64 .byte -1 .byte -50 .byte 63 .byte 63 .byte -69 .byte -16 .byte 62 .byte 24 .byte 15 .byte -113 .byte -113 .byte 0 .byte 62 .byte 12 .byte 63 .byte 31 .byte 48 .byte -32 .byte 0 .byte 0 .byte 0 .byte 3 .byte -128 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 127 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 126 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 120 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .globl Orage_Text0 Orage_Text0: .byte 2 .byte 80 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 64 .byte 0 .byte 0 .byte 3 .byte 0 .byte 4 .byte 56 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte -128 .byte 0 .byte 17 .byte 0 .byte 9 .byte 56 .byte 0 .byte 0 .byte 0 .byte 0 .byte 14 .byte -80 .byte 64 .byte 0 .byte 113 .byte 0 .byte 2 .byte 24 .byte 0 .byte 0 .byte 0 .byte 0 .byte 12 .byte -45 .byte 64 .byte 0 .byte 96 .byte 0 .byte 64 .byte 29 .byte 86 .byte 70 .byte 70 .byte 64 .byte 0 .byte 2 .byte 124 .byte 109 .byte 104 .byte 68 .byte 56 .byte 52 .byte 38 .byte 100 .byte 54 .byte 96 .byte 16 .byte -54 .byte 44 .byte -40 .byte -58 .byte 108 .byte 112 .byte 18 .byte 103 .byte 116 .byte 116 .byte 96 .byte 28 .byte 0 .byte -75 .byte -6 .byte 8 .byte 124 .byte -32 .byte 57 .byte 106 .byte -64 .byte 108 .byte -32 .byte 6 .byte -89 .byte 4 .byte -43 .byte 22 .byte 12 .byte 0 .byte -116 .byte 28 .byte -55 .byte -34 .byte 0 .byte 96 .byte 34 .byte 48 .byte 8 .byte -81 .byte -44 .byte 33 .byte 16 .byte 8 .byte -71 .byte 24 .byte 0 .byte -127 .byte -54 .byte 24 .byte -53 .byte 57 .byte 0 .byte -97 .byte 18 .byte 34 .byte -5 .byte -61 .byte 0 .byte -97 .byte 15 .byte 14 .byte 31 .byte -72 .byte -96 .byte 79 .byte -124 .byte 14 .byte 4 .byte 78 .byte 0 .byte 110 .byte 14 .byte 38 .byte -82 .byte 50 .byte 96 .byte 92 .byte 24 .byte 28 .byte -100 .byte -98 .byte -128 .byte 124 .byte 4 .byte 62 .byte 47 .byte 1 .byte -64 .byte 0 .byte 0 .byte 0 .byte 6 .byte 0 .byte 0 .byte 16 .byte 0 .byte 0 .byte 9 .byte 0 .byte -128 .byte 0 .byte 0 .byte 0 .byte 63 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte -33 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 4 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .globl Orage_plane1 Orage_plane1: .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 1 .byte -1 .byte -16 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 3 .byte -1 .byte -4 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 63 .byte -1 .byte -1 .byte -64 .byte 0 .byte 0 .byte 0 .byte 0 .byte -1 .byte -1 .byte -1 .byte -16 .byte 0 .byte 0 .byte 0 .byte 3 .byte -1 .byte -1 .byte -1 .byte -2 .byte 0 .byte 0 .byte 0 .byte 3 .byte -1 .byte -1 .byte -33 .byte -1 .byte -128 .byte 0 .byte 0 .byte 15 .byte -1 .byte -52 .byte 92 .byte -1 .byte -64 .byte 0 .byte 0 .byte 15 .byte -1 .byte 0 .byte 3 .byte 63 .byte -32 .byte 0 .byte 0 .byte 63 .byte -8 .byte 0 .byte 0 .byte 39 .byte -16 .byte 0 .byte 0 .byte 63 .byte -64 .byte 0 .byte 0 .byte 11 .byte -8 .byte 0 .byte 0 .byte 127 .byte 0 .byte 0 .byte 0 .byte 1 .byte -4 .byte 0 .byte 0 .byte -1 .byte 0 .byte 0 .byte 0 .byte 0 .byte 126 .byte 0 .byte 1 .byte -4 .byte 0 .byte 0 .byte 0 .byte 0 .byte 127 .byte 64 .byte 1 .byte -4 .byte 0 .byte 0 .byte 0 .byte 0 .byte 31 .byte -128 .byte 3 .byte -16 .byte 0 .byte 1 .byte -1 .byte 0 .byte 31 .byte -128 .byte 3 .byte -16 .byte 0 .byte 7 .byte -2 .byte 0 .byte 15 .byte -32 .byte 7 .byte -32 .byte 0 .byte 63 .byte -8 .byte 0 .byte 7 .byte -32 .byte 7 .byte -64 .byte 0 .byte 127 .byte -8 .byte 0 .byte 11 .byte -48 .byte 15 .byte -64 .byte 0 .byte -1 .byte -32 .byte 0 .byte 11 .byte -8 .byte 15 .byte -128 .byte 1 .byte -1 .byte -62 .byte 0 .byte 7 .byte -16 .byte 31 .byte -128 .byte 3 .byte -1 .byte -65 .byte 0 .byte 3 .byte -12 .byte 63 .byte -128 .byte 7 .byte -1 .byte -1 .byte -64 .byte 1 .byte -8 .byte 63 .byte 0 .byte 15 .byte -1 .byte -1 .byte -4 .byte 1 .byte -4 .byte 63 .byte 0 .byte 15 .byte -1 .byte -1 .byte -4 .byte 0 .byte -2 .byte 63 .byte 0 .byte 31 .byte -1 .byte -1 .byte -32 .byte 0 .byte -2 .byte 63 .byte 0 .byte 63 .byte -33 .byte -1 .byte -40 .byte 0 .byte -2 .byte 127 .byte 0 .byte 63 .byte -113 .byte -1 .byte -128 .byte 0 .byte -2 .byte 63 .byte 0 .byte 62 .byte 15 .byte -2 .byte 32 .byte 0 .byte -2 .byte 63 .byte 0 .byte 124 .byte 31 .byte -1 .byte -16 .byte 0 .byte -2 .byte 127 .byte 0 .byte 124 .byte 31 .byte -1 .byte -8 .byte 0 .byte -2 .byte 127 .byte 0 .byte 124 .byte 127 .byte -1 .byte -1 .byte 0 .byte -2 .byte 63 .byte 0 .byte -65 .byte -1 .byte -1 .byte -1 .byte 0 .byte -2 .byte 63 .byte 0 .byte 63 .byte -1 .byte -1 .byte -1 .byte 0 .byte -2 .byte 127 .byte 0 .byte 63 .byte -1 .byte -1 .byte -1 .byte 0 .byte -2 .byte 127 .byte 0 .byte 127 .byte -1 .byte -1 .byte -33 .byte 0 .byte -4 .byte 63 .byte -128 .byte -1 .byte -1 .byte -1 .byte -89 .byte 0 .byte -4 .byte 63 .byte -128 .byte -1 .byte -9 .byte -1 .byte 7 .byte 0 .byte -4 .byte 63 .byte -64 .byte 127 .byte -25 .byte -2 .byte 10 .byte 0 .byte -4 .byte 63 .byte -64 .byte 127 .byte -121 .byte -2 .byte 0 .byte 1 .byte -4 .byte 31 .byte -64 .byte 31 .byte 7 .byte -4 .byte 4 .byte 1 .byte -4 .byte 31 .byte -64 .byte 24 .byte 7 .byte -4 .byte 0 .byte 3 .byte -8 .byte 47 .byte -32 .byte 48 .byte 7 .byte -4 .byte 0 .byte 3 .byte -8 .byte 15 .byte -32 .byte 0 .byte 15 .byte -8 .byte 0 .byte 3 .byte -16 .byte 31 .byte -32 .byte 0 .byte 31 .byte -8 .byte 0 .byte 7 .byte -16 .byte 15 .byte -64 .byte 0 .byte 63 .byte -8 .byte 0 .byte 15 .byte -32 .byte 7 .byte -32 .byte 0 .byte 127 .byte -8 .byte 0 .byte 15 .byte -64 .byte 7 .byte -16 .byte 0 .byte 127 .byte -8 .byte 0 .byte 63 .byte -64 .byte 3 .byte -8 .byte 0 .byte 63 .byte -8 .byte 0 .byte 63 .byte -128 .byte 1 .byte -4 .byte 0 .byte 63 .byte -8 .byte 0 .byte -1 .byte 0 .byte 2 .byte -2 .byte 0 .byte 79 .byte -8 .byte 1 .byte -1 .byte 0 .byte 0 .byte 127 .byte -64 .byte 15 .byte -8 .byte 7 .byte -4 .byte 0 .byte 0 .byte -65 .byte -64 .byte 19 .byte -16 .byte 15 .byte -4 .byte 0 .byte 0 .byte 63 .byte -8 .byte 55 .byte 112 .byte 127 .byte -8 .byte 0 .byte 0 .byte 55 .byte -2 .byte -51 .byte -8 .byte -1 .byte -16 .byte 0 .byte 0 .byte 15 .byte -1 .byte -2 .byte -33 .byte -1 .byte -32 .byte 0 .byte 0 .byte 3 .byte -1 .byte -1 .byte 127 .byte -1 .byte -64 .byte 0 .byte 0 .byte 1 .byte -65 .byte -1 .byte -105 .byte -1 .byte 0 .byte 0 .byte 0 .byte 0 .byte 111 .byte -1 .byte -33 .byte -1 .byte 0 .byte 0 .byte 0 .byte 0 .byte 39 .byte -1 .byte -3 .byte -16 .byte 0 .byte 0 .byte 0 .byte 0 .byte 27 .byte -1 .byte -9 .byte -128 .byte 0 .byte 0 .byte 0 .byte 0 .byte 3 .byte 51 .byte 33 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte -64 .byte 0 .byte 0 .byte 0 .globl Orage_plane0 Orage_plane0: .byte 0 .byte 0 .byte 0 .byte 3 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 32 .byte 15 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 4 .byte -52 .byte -61 .byte -64 .byte 0 .byte 0 .byte 0 .byte 0 .byte 117 .byte -1 .byte -2 .byte -72 .byte 0 .byte 0 .byte 0 .byte 0 .byte 127 .byte -1 .byte -1 .byte -82 .byte 0 .byte 0 .byte 0 .byte 1 .byte -1 .byte -1 .byte -65 .byte -3 .byte -32 .byte 0 .byte 0 .byte 7 .byte -1 .byte -32 .byte 47 .byte -1 .byte 80 .byte 0 .byte 0 .byte 7 .byte -2 .byte 51 .byte -93 .byte 31 .byte -8 .byte 0 .byte 0 .byte 31 .byte -12 .byte -16 .byte 28 .byte -49 .byte -4 .byte 0 .byte 0 .byte 31 .byte -58 .byte 0 .byte 0 .byte 90 .byte -2 .byte 0 .byte 0 .byte 63 .byte 32 .byte 0 .byte 0 .byte 52 .byte -10 .byte 0 .byte 0 .byte -2 .byte -128 .byte 0 .byte 0 .byte 2 .byte 59 .byte 0 .byte 0 .byte -4 .byte 0 .byte 0 .byte 0 .byte 0 .byte -67 .byte 0 .byte 0 .byte -3 .byte 0 .byte 0 .byte 0 .byte 0 .byte 14 .byte -128 .byte 3 .byte -8 .byte 0 .byte 0 .byte 88 .byte 0 .byte 111 .byte 64 .byte 3 .byte -16 .byte 0 .byte 6 .byte -50 .byte -128 .byte 47 .byte 96 .byte 3 .byte -16 .byte 0 .byte 15 .byte 126 .byte 0 .byte 55 .byte 0 .byte 11 .byte -64 .byte 0 .byte 19 .byte -10 .byte 0 .byte 11 .byte -48 .byte 15 .byte -32 .byte 0 .byte 15 .byte -28 .byte 0 .byte 7 .byte -32 .byte 15 .byte -64 .byte 1 .byte -49 .byte -64 .byte 0 .byte 5 .byte -64 .byte 31 .byte -64 .byte 1 .byte 51 .byte 61 .byte 0 .byte 1 .byte -20 .byte 31 .byte -128 .byte 7 .byte 51 .byte 64 .byte -32 .byte 0 .byte -24 .byte 31 .byte 0 .byte 12 .byte -51 .byte -116 .byte -68 .byte 2 .byte -12 .byte 63 .byte 0 .byte 4 .byte -52 .byte -1 .byte -4 .byte 2 .byte -6 .byte 31 .byte 0 .byte 27 .byte 51 .byte 127 .byte -2 .byte 3 .byte -12 .byte 63 .byte 0 .byte 59 .byte 51 .byte 127 .byte -102 .byte 1 .byte -2 .byte 63 .byte 0 .byte 4 .byte -92 .byte -1 .byte 32 .byte 1 .byte -4 .byte 63 .byte 0 .byte 36 .byte 116 .byte -4 .byte 80 .byte 1 .byte -2 .byte 127 .byte 0 .byte 123 .byte 19 .byte 121 .byte -36 .byte 1 .byte 126 .byte -1 .byte 0 .byte -6 .byte 19 .byte -1 .byte 46 .byte 0 .byte 126 .byte 63 .byte 0 .byte -16 .byte 109 .byte -1 .byte -10 .byte 1 .byte 126 .byte -66 .byte 0 .byte -77 .byte -116 .byte -1 .byte -8 .byte 0 .byte 126 .byte -3 .byte 0 .byte 88 .byte 19 .byte 127 .byte -4 .byte 0 .byte 126 .byte -3 .byte 0 .byte 63 .byte 51 .byte 63 .byte -2 .byte 0 .byte -2 .byte 62 .byte 0 .byte 62 .byte -52 .byte -1 .byte -1 .byte 0 .byte -4 .byte 62 .byte -128 .byte 124 .byte -52 .byte -33 .byte -25 .byte 1 .byte -2 .byte 126 .byte 0 .byte 123 .byte 51 .byte 63 .byte -37 .byte 0 .byte -4 .byte 95 .byte 64 .byte 59 .byte 43 .byte 54 .byte 10 .byte 0 .byte -4 .byte 94 .byte 0 .byte -82 .byte -64 .byte -50 .byte 6 .byte 1 .byte -4 .byte 15 .byte 0 .byte -114 .byte 68 .byte -52 .byte 4 .byte 0 .byte -8 .byte 47 .byte 0 .byte 46 .byte -125 .byte 50 .byte 0 .byte 1 .byte -8 .byte 47 .byte -96 .byte 38 .byte 3 .byte 48 .byte 0 .byte 3 .byte -16 .byte 31 .byte 64 .byte 8 .byte 12 .byte -56 .byte 0 .byte 3 .byte -16 .byte 55 .byte 64 .byte 0 .byte 4 .byte -52 .byte 0 .byte 7 .byte -16 .byte 15 .byte -112 .byte 0 .byte 11 .byte 48 .byte 0 .byte 7 .byte -16 .byte 19 .byte -80 .byte 0 .byte 127 .byte 48 .byte 0 .byte 15 .byte -32 .byte 11 .byte -36 .byte 0 .byte 126 .byte -56 .byte 0 .byte 31 .byte -32 .byte 11 .byte -28 .byte 0 .byte 127 .byte -56 .byte 0 .byte 31 .byte -64 .byte 13 .byte -15 .byte 0 .byte -1 .byte 48 .byte 0 .byte 63 .byte -64 .byte 6 .byte -5 .byte -128 .byte 95 .byte 48 .byte 0 .byte -1 .byte 0 .byte 1 .byte 125 .byte 96 .byte 60 .byte -64 .byte 0 .byte -1 .byte 0 .byte 1 .byte -65 .byte 32 .byte 16 .byte -64 .byte 11 .byte -2 .byte 0 .byte 0 .byte 95 .byte -66 .byte 13 .byte 40 .byte 63 .byte -4 .byte 0 .byte 0 .byte 7 .byte -9 .byte -56 .byte -5 .byte -81 .byte -12 .byte 0 .byte 0 .byte 11 .byte -11 .byte 50 .byte 77 .byte 95 .byte -8 .byte 0 .byte 0 .byte 0 .byte -1 .byte -3 .byte 44 .byte 95 .byte -64 .byte 0 .byte 0 .byte 12 .byte -1 .byte -2 .byte 3 .byte 47 .byte -32 .byte 0 .byte 0 .byte 2 .byte 95 .byte -1 .byte 107 .byte 46 .byte -128 .byte 0 .byte 0 .byte 0 .byte -97 .byte -1 .byte -96 .byte -40 .byte 0 .byte 0 .byte 0 .byte 0 .byte 25 .byte -1 .byte -5 .byte -56 .byte 0 .byte 0 .byte 0 .byte 0 .byte 4 .byte 3 .byte -8 .byte 112 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte -52 .byte -46 .byte -128 .byte 0 .byte 0 .byte 0 .byte 0 .byte 0 .byte 7 .byte 32 .byte 0 .byte 0 .byte 0 .globl ScreenBuffer .even ScreenBuffer: .skip 4 .even CST_SHADOW: .word 1 .even CST_DECORS: .word 1 GRAPHIC_MODE: .skip 1 .even counter_fps: .skip 2 .even counter_fps2: .skip 2 HUMAIN0: .skip 1 COUNTER_FRAMESKIP: .skip 1 .even delay_80Hz: .skip 2 .even TouchKey: .skip 2 .section .rodata.__unalignedstr,"dmu" .LC0: .ascii "A LONG PERIOD OF\0" .LC1: .ascii "\0" .LC2: .ascii "TIME PASSED.....\0" .LC3: .ascii "AND THE DIMENSION\0" .LC4: .ascii "CONTROLLING FORCE\0" .LC5: .ascii "\"DOH\" HAS AGAIN\0" .LC6: .ascii "COME BACK TO LIFE.\0" .LC7: .ascii "OCCUPYING THE HUGE\0" .LC8: .ascii "SPACESHIP \"XORG\",\0" .LC9: .ascii "IT HAS ENTERED OUR\0" .LC10: .ascii "UNIVERSE FROM\0" .LC11: .ascii "A DIFFERENT\0" .LC12: .ascii "DIMENSION. \"MIXTEC\",\0" .LC13: .ascii "ARKANOID TYPE\0" .LC14: .ascii "SPACESHIP, HAS\0" .LC15: .ascii "LAUNCHED THE CRAFT\0" .LC16: .ascii "\"VAUS2\" TO MAKE\0" .LC17: .ascii "A PREEMPTIVE ATTACK\0" .LC18: .ascii "ON \"XORG\"......\0" .text .even Text_Intro1: .long .LC0 .long .LC1 .long .LC2 .long .LC1 .long .LC3 .long .LC1 .long .LC4 .long .LC1 .long .LC5 .long .LC1 .long .LC6 .long .LC1 .long .LC1 .long .LC1 .long .LC7 .long .LC1 .long .LC8 .long .LC1 .long .LC9 .long .LC1 .long .LC10 .long .LC1 .long .LC11 .long .LC1 .long .LC1 .long .LC12 .long .LC1 .long .LC13 .long .LC1 .long .LC14 .long .LC1 .long .LC15 .long .LC1 .long .LC16 .long .LC1 .long .LC17 .long .LC1 .long .LC18 .long .LC1 .long .LC1 .long .LC1 .section .rodata.__unalignedstr,"dmu" .LC19: .ascii "A LONG PERIOD OF TIME\0" .LC20: .ascii "PASSED..... AND THE\0" .LC21: .ascii "DIMENSION CONTROLLING\0" .LC22: .ascii "FORCE \"DOH\" HAS AGAIN\0" .LC23: .ascii "SPACESHIP \"XORG\", IT HAS\0" .LC24: .ascii "ENTERED OUR UNIVERSE FROM\0" .LC25: .ascii "A DIFFERENT DIMENSION.\0" .LC26: .ascii "\"MIXTEC\", ARKANOID TYPE\0" .LC27: .ascii "SPACESHIP, HAS LAUNCHED THE\0" .LC28: .ascii "CRAFT \"VAUS2\" TO MAKE A\0" .LC29: .ascii "PREEMPTIVE ATTACK ON\0" .LC30: .ascii "\"XORG\"......\0" .text .even Text_Intro0: .long .LC19 .long .LC1 .long .LC20 .long .LC1 .long .LC21 .long .LC1 .long .LC22 .long .LC1 .long .LC6 .long .LC1 .long .LC1 .long .LC1 .long .LC1 .long .LC7 .long .LC1 .long .LC23 .long .LC1 .long .LC24 .long .LC1 .long .LC25 .long .LC1 .long .LC1 .long .LC1 .long .LC1 .long .LC26 .long .LC1 .long .LC27 .long .LC1 .long .LC28 .long .LC1 .long .LC29 .long .LC1 .long .LC30 .long .LC1 .long .LC1 .long .LC1 .long .LC1 .skip 4 .even delay_1Hz: .skip 2 .even BufferLifes: .skip 4 .even GAMETIME: .skip 4 nbrBille: .skip 1 nbrRacket: .skip 1 nbrBonus: .skip 1 nbrMissile: .skip 1 nbrMonster: .skip 1 .even FileSND: .skip 4 .even FileGFX: .skip 4 .even StartInt1: .skip 2 .even MAP_StartInt1: .skip 2 .even Rackets_anim: .skip 2 .even StartIntMonster: .skip 2 LEVEL: .byte 1 .even AnimEndLevel_x: .skip 2 .even LEVEL_DIR: .word 1 .even PlayAnimEndLevel: .skip 2 EndLevel_Sprite: .skip 1 .even EndCounterLogo: .skip 2 .even EndLevel: .skip 2 .even StartGameForHumain0: .skip 2 COUNTER_BRICKS: .skip 1 nbrLifes: .byte 3 .even LanceBille: .skip 2 .even EndAnimForHumain0: .skip 2 .even COUNTER_LOGO: .skip 2 C_DECORS: .byte 1 DecorsBlocks: .skip 1024 .even __COUNTER_MONSTER_DIR: .skip 2 .even __COUNTER_MONSTER_ANIM: .skip 2 .even __COUNTER_DOORS_ENDLEVEL: .skip 2 .even __COUNTER_GHOST: .skip 2 .even __COUNTER_DOUBLE_RACKET_ANIM: .skip 2 .even __COUNTER_MISSILES_ANIM: .skip 2 .even __COUNTER_MISSILES: .skip 2 .even __COUNTER_BONUS: .skip 2 LevelMap: .skip 234 .even __COUNTER_VARSPEED: .skip 2 .even ScrollLevelLogo: .skip 2 .even __COUNTER_SCROLL_LEVEL_UP_DOWN: .skip 2 .even __COUNTER_BLOCKS_ANIM: .skip 2 .even __COUNTER_80Hz: .skip 2 .even __COUNTER_1HZ: .skip 2 .even __COUNTER_HARDWARE: .skip 2 BufferSprite8_1: .skip 9 BufferSprite8_0: .skip 9 .even BufferSprite32_1: .skip 36 .even BufferSprite32_0: .skip 36 .even FileLVL: .skip 4 .section .rodata.__unalignedstr,"dmu" .LC31: .ascii "http://oragestudio.free.fr\0" .text .even .globl INTRO_OrageStudio INTRO_OrageStudio: movm.l #0x1e3c,-(%sp) tst.w __calculator jbeq .L2 moveq #89,%d6 moveq #64,%d4 jbra .L4 .L2: moveq #52,%d6 moveq #60,%d4 .L4: move.l __D_plane,-(%sp) move.l __L_plane,-(%sp) jbsr ClearGrayScreen2B move.w #__ld_calc_const_128_100_128_128,%d0 move.w %d0,%d5 move.w %d0,%d3 add.w #-63,%d3 lsr.w #1,%d3 moveq #7,%d2 and.l #0xFFFF,%d0 divu.w %d2,%d0 sub.w %d0,%d3 move.w #__ld_calc_const_240_160_240_240,%d0 sub.w %d4,%d0 move.w %d0,%d4 sub.l %a3,%a3 addq.l #8,%sp jbra .L5 .L6: move.l ScreenBuffer,%a0 pea 3840(%a0) move.l %a0,-(%sp) jbsr ClearGrayScreen2B move.l ScreenBuffer,-(%sp) move.w #8,-(%sp) pea Orage_plane0 move.w #63,-(%sp) move.w %d3,-(%sp) move.w %a3,-(%sp) lea SpriteX8_OR,%a2 jbsr (%a2) move.l ScreenBuffer,%d0 add.l #3840,%d0 move.l %d0,-(%sp) move.w #8,-(%sp) pea Orage_plane1 move.w #63,-(%sp) move.w %d3,-(%sp) move.w %d4,-(%sp) jbsr (%a2) lea (36,%sp),%sp move.l __L_plane,(%sp) move.l ScreenBuffer,-(%sp) lea FastCopyScreen,%a2 jbsr (%a2) move.l __D_plane,-(%sp) move.l ScreenBuffer,%d2 add.l #3840,%d2 move.l %d2,-(%sp) jbsr (%a2) move.l #6000,%d0 lea (16,%sp),%sp .L7: subq.l #1,%d0 jbne .L7 addq.l #2,%a3 subq.w #2,%d4 .L5: moveq #0,%d0 move.w %d6,%d0 cmp.l %a3,%d0 jbhi .L6 sub.l %a2,%a2 .L10: lea _ROM_CALL_296:l,%a5 jbsr (%a5) moveq #0,%d0 .L11: addq.l #1,%d0 cmp.l #10000,%d0 jbne .L11 addq.l #1,%a2 move.w #6,%d0 cmp.l %a2,%d0 jbne .L10 clr.w %d0 .L14: addq.l #1,%d0 cmp.l #60000,%d0 jbne .L14 move.w #__ld_calc_const_240_160_240_240,%d0 move.w %d0,%d6 move.l __D_plane,-(%sp) move.l __L_plane,-(%sp) move.w #12,-(%sp) pea Orage_Text1 pea Orage_Text0 move.w #17,-(%sp) move.w %d5,%d0 lsr.w #1,%d0 add.w #15,%d0 move.w %d0,-(%sp) move.w %d6,%d0 add.w #-94,%d0 lsr.w #1,%d0 move.w %d0,-(%sp) jbsr GraySpriteX8_OR move.w #6,%a2 lea (24,%sp),%sp .L16: lea _ROM_CALL_297:l,%a4 jbsr (%a4) move.l #10000,%d0 .L17: subq.l #1,%d0 jbne .L17 subq.l #1,%a2 cmp.w #0,%a2 jbne .L16 clr.w -(%sp) jsr _ROM_CALL_18F:l lea _ROM_CALL_1A2:l,%a2 move.l #15663231,-(%sp) move.l __L_plane,-(%sp) jbsr (%a2) lea _ROM_CALL_1A9:l,%a3 move.w %d5,%d4 subq.w #5,%d4 move.w %d6,%d3 add.w #-90,%d3 move.w #1,-(%sp) pea .LC31 move.w %d4,-(%sp) move.w %d3,-(%sp) jbsr (%a3) move.l #15663231,-(%sp) move.l __D_plane,-(%sp) jbsr (%a2) move.w #1,-(%sp) pea .LC31 move.w %d4,-(%sp) move.w %d3,-(%sp) jbsr (%a3) move.l #150000,%d0 lea (38,%sp),%sp .L20: subq.l #1,%d0 jbne .L20 move.w #5,%a2 .L22: jbsr (%a4) move.l #50000,%d0 .L23: subq.l #1,%d0 jbne .L23 subq.l #1,%a2 cmp.w #0,%a2 jbne .L22 move.l __D_plane,-(%sp) move.l __L_plane,-(%sp) jbsr ClearGrayScreen2B move.w #5,%a2 addq.l #8,%sp .L26: jbsr (%a5) subq.l #1,%a2 cmp.w #0,%a2 jbne .L26 movm.l (%sp)+,#0x3c78 rts .even .globl GCL_Rand GCL_Rand: move.l #1103515245,-(%sp) move.l GCL_RandomSeed,-(%sp) jbsr __mulsi3 addq.l #8,%sp add.l #12345,%d0 move.l %d0,GCL_RandomSeed clr.w %d0 swap %d0 and.w #32767,%d0 rts .even .globl GCL_Random GCL_Random: move.l %d3,-(%sp) move.w 8(%sp),%d3 jbsr GCL_Rand move.w %d0,%d1 and.l #0xFFFF,%d1 divu.w %d3,%d1 move.l %d1,%d0 swap %d0 move.l (%sp)+,%d3 rts .even .globl GCL_Randomize GCL_Randomize: move.l %d3,-(%sp) move.b 6291479,%d0 not.b %d0 moveq #0,%d3 move.b %d0,%d3 move.l 200.w,%a0 subq.l #4,%a0 cmp.l #999,(%a0) jbhi .L54 cmp.w #21071,50.w jbne .L56 .L54: move.l _ROM_CALL_4FC:l,%d1 tst.w __gray_hw_type jbeq .L57 moveq #52,%d0 jbra .L59 .L57: moveq #78,%d0 .L59: move.l %d0,-(%sp) move.l %d1,-(%sp) jbsr __mulsi3 addq.l #8,%sp add.l %d0,%d3 .L56: move.l %d3,GCL_RandomSeed move.l (%sp)+,%d3 rts .even .globl DrawSmallShadowBlock DrawSmallShadowBlock: tst.w CST_SHADOW jbeq .L64 move.l 8(%sp),%a0 move.w 6(%sp),%d1 move.w 4(%sp),%d0 jbsr _DrawSmallShadowBlock .L64: rts .even .globl DrawBonusShadow DrawBonusShadow: tst.w CST_SHADOW jbeq .L68 move.l 14(%sp),%a0 move.l 10(%sp),%a1 move.w 8(%sp),%d2 move.w 6(%sp),%d1 move.w 4(%sp),%d0 jbsr _DrawBonusShadow .L68: rts .even .globl DrawSprite8_SHADOW DrawSprite8_SHADOW: tst.w CST_SHADOW jbeq .L72 move.l 14(%sp),%a0 move.l 10(%sp),%a1 move.w 8(%sp),%d2 move.w 6(%sp),%d1 move.w 4(%sp),%d0 jbsr _DrawSprite8_SHADOW .L72: rts .even .globl DrawSprite16_SHADOW DrawSprite16_SHADOW: tst.w CST_SHADOW jbeq .L76 move.l 14(%sp),%a0 move.l 10(%sp),%a1 move.w 8(%sp),%d2 move.w 6(%sp),%d1 move.w 4(%sp),%d0 jbsr _DrawSprite16_SHADOW .L76: rts .even .globl DrawSprite32_SHADOW DrawSprite32_SHADOW: tst.w CST_SHADOW jbeq .L80 move.l 14(%sp),%a0 move.l 10(%sp),%a1 move.w 8(%sp),%d2 move.w 6(%sp),%d1 move.w 4(%sp),%d0 jbsr _DrawSprite32_SHADOW .L80: rts .even .globl Create_SpritesBilles Create_SpritesBilles: move.l FileGFX,SPRITE_BILLE rts .even .globl Create_SpritesSquare Create_SpritesSquare: move.l FileGFX,%d0 moveq #16,%d1 add.l %d0,%d1 move.l %d1,SPRITE_SQUARE_corner_left moveq #32,%d1 add.l %d0,%d1 move.l %d1,SPRITE_SQUARE_corner_right moveq #48,%d1 add.l %d0,%d1 move.l %d1,SPRITE_SQUARE_left_and_right moveq #112,%d1 add.l %d0,%d1 move.l %d1,SPRITE_SQUARE_up add.l #128,%d0 move.l %d0,SPRITE_SQUARE_doors0 rts .even .globl Create_SpritesDecors Create_SpritesDecors: move.l FileGFX,%d0 add.l #192,%d0 lea SPRITE_DECORS,%a0 .L86: move.l %d0,(%a0)+ add.l #256,%d0 cmp.l #SPRITE_DECORS+24,%a0 jbne .L86 rts .even .globl Create_SpritesBlocks Create_SpritesBlocks: move.l FileGFX,%d0 move.l %d0,%a0 lea (1728,%a0),%a0 lea SPRITE_BLOCKS+4,%a1 .L92: move.l %a0,(%a1)+ lea (24,%a0),%a0 cmp.l #SPRITE_BLOCKS+48,%a1 jbne .L92 move.l %d0,%d1 add.l #1848,%d1 move.l %d1,(%a1) add.l #1968,%d0 move.l %d0,SPRITE_BLOCKS+52 rts .even .globl Create_SpritesFont0 Create_SpritesFont0: move.l FileGFX,%d0 add.l #1992,%d0 lea SPRITE_FONT0,%a0 .L98: move.l %d0,(%a0)+ addq.l #8,%d0 cmp.l #SPRITE_FONT0+160,%a0 jbne .L98 rts .even .globl Create_SpriteRackets Create_SpriteRackets: move.l %d3,-(%sp) move.l FileGFX,%d1 move.l %d1,%d2 add.l #2312,%d2 clr.w %d3 .L104: move.w %d3,%d0 muls.w #24,%d0 move.l %d0,%a1 add.l #SPRITE_RACKETS,%a1 move.l %d2,%a0 moveq #4,%d0 .L105: move.l %a0,(%a1)+ subq.w #1,%d0 lea (108,%a0),%a0 jbne .L105 addq.w #1,%d3 add.l #432,%d2 cmp.w #2,%d3 jbne .L104 move.l %d1,%d0 add.l #3176,%d0 lea SPRITE_RACKETS+48,%a0 .L108: move.l %d0,(%a0)+ add.l #136,%d0 cmp.l #SPRITE_RACKETS+64,%a0 jbne .L108 move.l %d1,%a0 lea (3720,%a0),%a0 lea SPRITE_RACKETS+72,%a1 .L110: move.l %a0,(%a1)+ lea (108,%a0),%a0 cmp.l #SPRITE_RACKETS+88,%a1 jbne .L110 move.l %d1,%a0 lea (4152,%a0),%a0 lea SPRITE_RACKETS+96,%a1 .L112: move.l %a0,(%a1)+ lea (108,%a0),%a0 cmp.l #SPRITE_RACKETS+112,%a1 jbne .L112 move.l %d1,%d0 add.l #4584,%d0 lea SPRITE_RACKETS+120,%a0 .L114: move.l %d0,(%a0)+ add.l #136,%d0 cmp.l #SPRITE_RACKETS+136,%a0 jbne .L114 move.l %d1,%a0 lea (5128,%a0),%a0 lea SPRITE_RACKETS+144,%a1 .L116: move.l %a0,(%a1)+ lea (108,%a0),%a0 cmp.l #SPRITE_RACKETS+168,%a1 jbne .L116 move.l %d1,%d0 add.l #5776,%d0 move.l %a1,%a0 .L118: move.l %d0,(%a0)+ add.l #156,%d0 cmp.l #SPRITE_RACKETS+188,%a0 jbne .L118 move.l %d1,%d0 add.l #6556,%d0 lea SPRITE_RACKETS+192,%a0 .L120: move.l %d0,(%a0)+ add.l #156,%d0 cmp.l #SPRITE_RACKETS+212,%a0 jbne .L120 move.l %d1,%d0 add.l #7336,%d0 move.l %d0,SPRITE_RACKETS+216 add.l #7444,%d1 move.l %d1,SPRITE_RACKETS+240 move.l (%sp)+,%d3 rts .even .globl Create_SpriteBonus Create_SpriteBonus: move.l %a2,-(%sp) move.l FileGFX,%a2 move.l %a2,%d1 add.l #7552,%d1 clr.w %d2 .L142: move.w %d2,%d0 ext.l %d0 lsl.l #5,%d0 move.l %d0,%a1 add.l #SPRITE_BONUS,%a1 move.l %d1,%a0 moveq #8,%d0 .L143: move.l %a0,(%a1)+ subq.w #1,%d0 lea (28,%a0),%a0 jbne .L143 addq.w #1,%d2 add.l #224,%d1 cmp.w #13,%d2 jbne .L142 lea (10464,%a2),%a0 lea SPRITE_BONUS_mask,%a1 .L146: move.l %a0,(%a1)+ lea (14,%a0),%a0 cmp.l #SPRITE_BONUS_mask+8,%a1 jbne .L146 move.l (%sp)+,%a2 rts .even .globl Create_SpriteMissiles Create_SpriteMissiles: move.l FileGFX,%d0 move.l %d0,%d1 add.l #10528,%d1 move.l %d1,SPRITE_MISSILE move.l %d0,%d1 add.l #10570,%d1 move.l %d1,SPRITE_MISSILE+4 add.l #10588,%d0 move.l %d0,SPRITE_MISSILE+8 rts .even .globl Create_SpriteFleches Create_SpriteFleches: move.l FileGFX,%d0 add.l #10606,%d0 lea SPRITE_FLECHE,%a0 .L158: move.l %d0,(%a0)+ addq.l #8,%d0 cmp.l #SPRITE_FLECHE+16,%a0 jbne .L158 rts .even .globl Create_SpriteLogos Create_SpriteLogos: move.l FileGFX,%d0 add.l #10638,%d0 lea SPRITE_LOGO,%a0 .L164: move.l %d0,(%a0)+ add.l #576,%d0 cmp.l #SPRITE_LOGO+24,%a0 jbne .L164 rts .even .globl Create_SpriteEndDoors Create_SpriteEndDoors: move.l FileGFX,%a0 lea (14094,%a0),%a0 lea SPRITE_ENDDOORS,%a1 .L170: move.l %a0,(%a1)+ lea (36,%a0),%a0 cmp.l #SPRITE_ENDDOORS+12,%a1 jbne .L170 rts .even .globl Create_ImageIntroTitle Create_ImageIntroTitle: move.l FileGFX,%d0 move.l %d0,%d1 add.l #14202,%d1 move.l %d1,IMG_IntroTitle0 add.l #21882,%d0 move.l %d0,IMG_IntroTitle1 rts .even .globl Create_ImageIntroduction0 Create_ImageIntroduction0: move.l FileGFX,%d0 move.l %d0,%d1 add.l #25882,%d1 move.l %d1,IMG_Introduction0_Picture0 add.l #30662,%d0 move.l %d0,IMG_Introduction0_Picture1 rts .even .globl Create_SpriteIntro1Ship Create_SpriteIntro1Ship: move.l FileGFX,%d0 move.l %d0,%d1 add.l #38022,%d1 move.l %d1,SPRITE_INTRO1_SHIP add.l #252,%d1 move.l %d1,SPRITE_INTRO1_SHIP+4 add.l #252,%d1 move.l %d1,SPRITE_INTRO1_SHIP+8 add.l #180,%d1 move.l %d1,SPRITE_INTRO1_SHIP+12 add.l #144,%d1 move.l %d1,SPRITE_INTRO1_SHIP+16 add.l #144,%d1 move.l %d1,SPRITE_INTRO1_SHIP+20 add.l #144,%d1 move.l %d1,SPRITE_INTRO1_SHIP+24 add.l #144,%d1 move.l %d1,SPRITE_INTRO1_SHIP+28 add.l #144,%d1 move.l %d1,SPRITE_INTRO1_SHIP+32 move.l %d0,%d1 add.l #39498,%d1 move.l %d1,SPRITE_INTRO1_SHIP+36 move.l %d0,%d1 add.l #39570,%d1 move.l %d1,SPRITE_INTRO1_SHIP+40 add.l #144,%d1 move.l %d1,SPRITE_INTRO1_SHIP+44 add.l #144,%d1 move.l %d1,SPRITE_INTRO1_SHIP+48 move.l %d0,%d1 add.l #39930,%d1 move.l %d1,SPRITE_INTRO1_SHIP+52 add.l #39978,%d0 move.l %d0,SPRITE_INTRO1_SHIP+56 rts .even .globl Create_SpriteIntro1_Explose Create_SpriteIntro1_Explose: move.l FileGFX,%d0 add.l #40014,%d0 lea SPRITE_INTRO1_EXPLOSE,%a0 .L182: move.l %d0,(%a0)+ add.l #156,%d0 cmp.l #SPRITE_INTRO1_EXPLOSE+40,%a0 jbne .L182 rts .even .globl CreateSpriteMonsters CreateSpriteMonsters: move.l %a2,-(%sp) move.l FileGFX,%a2 move.l #41574,%a0 add.l %a2,%a0 lea SPRITE_MONSTER,%a1 .L188: move.l %a0,(%a1)+ lea (96,%a0),%a0 cmp.l #SPRITE_MONSTER+32,%a1 jbne .L188 move.l #42342,%a0 add.l %a2,%a0 lea SPRITE_MONSTER+416,%a1 .L190: move.l %a0,(%a1)+ lea (96,%a0),%a0 cmp.l #SPRITE_MONSTER+440,%a1 jbne .L190 move.l (%sp)+,%a2 rts .even .globl Font0_DrawChar Font0_DrawChar: move.l %d3,-(%sp) move.w 8(%sp),%d3 move.w 10(%sp),%d1 move.b 13(%sp),%d2 move.l 14(%sp),%a0 cmp.b #32,%d2 jbne .L198 move.l SPRITE_FONT0,%a1 jbra .L213 .L198: cmp.b #34,%d2 jbne .L201 move.l SPRITE_FONT0+4,%a1 jbra .L213 .L201: cmp.b #44,%d2 jbne .L203 move.l SPRITE_FONT0+8,%a1 jbra .L213 .L203: cmp.b #46,%d2 jbne .L205 move.l SPRITE_FONT0+12,%a1 jbra .L213 .L205: move.b %d2,%d0 add.b #-48,%d0 cmp.b #9,%d0 jbhi .L207 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l %d0,%a1 add.l #SPRITE_FONT0-176,%a1 jbra .L214 .L207: move.b %d2,%d0 add.b #-65,%d0 cmp.b #25,%d0 jbhi .L209 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l %d0,%a1 add.l #SPRITE_FONT0-204,%a1 jbra .L214 .L209: move.b %d2,%d0 add.b #-97,%d0 cmp.b #25,%d0 jbhi .L212 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l %d0,%a1 add.l #SPRITE_FONT0-332,%a1 .L214: move.l (%a1),%a1 .L213: moveq #8,%d2 move.w %d3,%d0 jbsr Font0_DrawSprite .L212: move.l (%sp)+,%d3 rts .even .globl Font0_DrawString Font0_DrawString: movm.l #0x1f20,-(%sp) move.w 28(%sp),%d3 move.w 30(%sp),%d7 move.l 32(%sp),%a2 move.l 36(%sp),%d6 moveq #0,%d5 jbra .L216 .L217: move.l %d6,-(%sp) subq.l #2,%sp move.b (%a2,%d4.l),1(%sp) move.w %d7,-(%sp) move.w %d3,-(%sp) jbsr Font0_DrawChar addq.w #8,%d3 lea (10,%sp),%sp .L216: moveq #0,%d4 move.w %d5,%d4 move.l %a2,-(%sp) jsr _ROM_CALL_27E:l addq.l #1,%d5 addq.l #4,%sp cmp.l %d4,%d0 jbhi .L217 movm.l (%sp)+,#0x4f8 rts .section .rodata.__unalignedstr,"dmu" .LC32: .ascii " \0\0" .text .even .globl Font0_DrawNumber Font0_DrawNumber: link.w %fp,#-12 move.l %d3,-(%sp) move.w 12(%fp),%d3 pea 12.w pea .LC32 pea -12(%fp) jbsr memcpy lea (12,%sp),%sp lea (-2,%fp),%a0 jbra .L221 .L222: move.w %d3,%d1 moveq #10,%d2 ext.l %d1 divs.w %d2,%d1 move.l %d1,%d0 swap %d0 add.b #48,%d0 move.b %d0,(%a0) subq.l #1,%a0 move.w %d1,%d3 .L221: tst.w %d3 jbne .L222 move.l 14(%fp),-(%sp) pea 1(%a0) move.w 10(%fp),-(%sp) move.w 8(%fp),-(%sp) jbsr Font0_DrawString lea (12,%sp),%sp move.l -16(%fp),%d3 unlk %fp rts .even .globl Font0_DrawChar_White Font0_DrawChar_White: move.l %d3,-(%sp) move.w 8(%sp),%d3 move.w 10(%sp),%d1 move.b 13(%sp),%d2 move.l 14(%sp),%a0 cmp.b #32,%d2 jbne .L226 move.l SPRITE_FONT0,%a1 jbra .L241 .L226: cmp.b #34,%d2 jbne .L229 move.l SPRITE_FONT0+4,%a1 jbra .L241 .L229: cmp.b #44,%d2 jbne .L231 move.l SPRITE_FONT0+8,%a1 jbra .L241 .L231: cmp.b #46,%d2 jbne .L233 move.l SPRITE_FONT0+12,%a1 jbra .L241 .L233: move.b %d2,%d0 add.b #-48,%d0 cmp.b #9,%d0 jbhi .L235 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l %d0,%a1 add.l #SPRITE_FONT0-176,%a1 jbra .L242 .L235: move.b %d2,%d0 add.b #-65,%d0 cmp.b #25,%d0 jbhi .L237 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l %d0,%a1 add.l #SPRITE_FONT0-204,%a1 jbra .L242 .L237: move.b %d2,%d0 add.b #-97,%d0 cmp.b #25,%d0 jbhi .L240 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l %d0,%a1 add.l #SPRITE_FONT0-332,%a1 .L242: move.l (%a1),%a1 .L241: moveq #8,%d2 move.w %d3,%d0 jbsr Font0_DrawSprite_White .L240: move.l (%sp)+,%d3 rts .even .globl Font0_DrawString_White Font0_DrawString_White: movm.l #0x1f20,-(%sp) move.w 28(%sp),%d3 move.w 30(%sp),%d7 move.l 32(%sp),%a2 move.l 36(%sp),%d6 moveq #0,%d5 jbra .L244 .L245: move.l %d6,-(%sp) subq.l #2,%sp move.b (%a2,%d4.l),1(%sp) move.w %d7,-(%sp) move.w %d3,-(%sp) jbsr Font0_DrawChar_White addq.w #8,%d3 lea (10,%sp),%sp .L244: moveq #0,%d4 move.w %d5,%d4 move.l %a2,-(%sp) jsr _ROM_CALL_27E:l addq.l #1,%d5 addq.l #4,%sp cmp.l %d4,%d0 jbhi .L245 movm.l (%sp)+,#0x4f8 rts .even .globl Destroy_BilleAllocation Destroy_BilleAllocation: move.l %a2,-(%sp) move.l %d3,-(%sp) clr.w %d3 lea Bille,%a2 jbra .L249 .L250: move.l (%a2)+,-(%sp) jsr _ROM_CALL_A3:l addq.w #1,%d3 addq.l #4,%sp .L249: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L250 move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl ChangeBillePos ChangeBillePos: move.w 6(%sp),%d1 move.w 8(%sp),%d2 moveq #0,%d0 move.b 5(%sp),%d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.w %d1,(%a0) move.w %d2,2(%a0) lsl.w #7,%d1 move.w %d1,6(%a0) lsl.w #7,%d2 move.w %d2,8(%a0) rts .even .globl AngleBille AngleBille: move.l %a2,-(%sp) move.b 11(%sp),%d2 clr.w %d0 move.b %d2,%d0 moveq #0,%d1 move.b 9(%sp),%d1 lea Bille,%a1 lsl.l #2,%d1 move.l (%a1,%d1.l),%a0 lea Tbl_cos,%a2 move.b (%a2,%d0.w),4(%a0) move.l (%a1,%d1.l),%a0 add.w #64,%d0 move.b (%a2,%d0.w),5(%a0) move.l (%a1,%d1.l),%a0 move.b %d2,10(%a0) move.l (%a1,%d1.l),%a0 move.b 4(%a0),%d0 asr.b #7,%d0 or.b #1,%d0 move.b %d0,16(%a0) move.l (%a1,%d1.l),%a0 move.b 5(%a0),%d0 asr.b #7,%d0 or.b #1,%d0 move.b %d0,17(%a0) move.l (%sp)+,%a2 rts .even .globl ChangeBilleSpeed ChangeBilleSpeed: move.l %a2,-(%sp) move.w 10(%sp),%d1 cmp.w #200,%d1 jbls .L264 move.w #200,%d1 .L264: moveq #0,%d0 move.b 9(%sp),%d0 lea Bille,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 move.w %d1,18(%a0) clr.b 20(%a0) move.l (%a1,%d0.l),%a2 move.l %d1,%d0 moveq #15,%d2 lsl.l %d2,%d0 pea 255.w and.l #2147450880,%d0 move.l %d0,-(%sp) jbsr __divsi3 addq.l #8,%sp move.w %d0,22(%a2) clr.w 24(%a2) move.w #1,StartInt1 move.l (%sp)+,%a2 rts .even .globl NewBille NewBille: movm.l #0x1e20,-(%sp) move.b 29(%sp),%d5 move.w 30(%sp),%d6 move.b 33(%sp),%d4 move.b nbrBille,%d3 cmp.b #15,%d3 jbeq .L272 clr.w StartInt1 pea 44.w jsr _ROM_CALL_A2:l moveq #0,%d0 move.b %d3,%d0 lea Bille,%a2 lsl.l #2,%d0 move.l %a0,(%a2,%d0.l) move.b nbrBille,%d2 moveq #0,%d1 move.b %d2,%d1 lsl.l #2,%d1 move.l (%a2,%d1.l),%a0 clr.w %d0 move.b %d4,%d0 move.w %d0,12(%a0) clr.w 14(%a0) move.w #1,26(%a0) clr.l 28(%a0) clr.w 32(%a0) clr.w 42(%a0) move.w %d6,34(%a0) move.b 39(%sp),36(%a0) addq.l #4,%sp tst.b %d4 jbeq .L270 move.l (%a2,%d1.l),%a0 clr.w 26(%a0) .L270: move.w 26(%sp),-(%sp) move.w 26(%sp),-(%sp) move.w %d2,-(%sp) jbsr ChangeBillePos move.b nbrBille,%d0 moveq #0,%d1 move.b %d0,%d1 lsl.l #2,%d1 move.l (%a2,%d1.l),%a0 move.b %d5,10(%a0) move.w %d5,-(%sp) move.w %d0,-(%sp) jbsr AngleBille move.w %d6,-(%sp) subq.l #2,%sp move.b nbrBille,1(%sp) jbsr ChangeBilleSpeed addq.b #1,nbrBille move.w #1,StartInt1 lea (14,%sp),%sp .L272: movm.l (%sp)+,#0x478 rts .even .globl UpdateBillePosCos UpdateBillePosCos: moveq #0,%d0 move.b 5(%sp),%d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.b 4(%a0),%d0 ext.w %d0 clr.w %d1 move.b 20(%a0),%d1 muls.w %d1,%d0 add.w 6(%a0),%d0 move.w %d0,6(%a0) asr.w #7,%d0 move.w %d0,(%a0) rts .even .globl UpdateBillePosSin UpdateBillePosSin: moveq #0,%d0 move.b 5(%sp),%d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.b 5(%a0),%d0 ext.w %d0 clr.w %d1 move.b 20(%a0),%d1 muls.w %d1,%d0 add.w 8(%a0),%d0 move.w %d0,8(%a0) asr.w #7,%d0 move.w %d0,2(%a0) rts .even .globl UpdateBillePos UpdateBillePos: move.l %d3,-(%sp) move.b 9(%sp),%d3 move.w %d3,-(%sp) jbsr UpdateBillePosCos move.w %d3,-(%sp) jbsr UpdateBillePosSin and.l #255,%d3 lsl.l #2,%d3 lea Bille,%a0 move.l (%a0,%d3.l),%a0 clr.b 20(%a0) addq.l #4,%sp move.l (%sp)+,%d3 rts .even .globl UpdateBillesPos UpdateBillesPos: move.l %d3,-(%sp) clr.w %d3 jbra .L280 .L281: move.w %d3,-(%sp) jbsr UpdateBillePos addq.w #1,%d3 addq.l #2,%sp .L280: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L281 move.l (%sp)+,%d3 rts .even .globl DrawBilles DrawBilles: movm.l #0x1030,-(%sp) clr.w %d3 lea Bille,%a3 jbra .L285 .L286: move.l (%a3),%a0 tst.w 14(%a0) jbeq .L287 move.l ScreenBuffer,-(%sp) move.l SPRITE_BILLE,-(%sp) move.w #5,-(%sp) move.w 2(%a0),%d0 addq.w #3,%d0 move.w %d0,-(%sp) move.w (%a0),%a0 addq.w #3,%a0 move.w %a0,-(%sp) jbsr DrawSprite8_SHADOW lea (14,%sp),%sp .L287: move.l (%a3)+,%a2 move.l ScreenBuffer,%a0 move.l SPRITE_BILLE,%a1 moveq #5,%d2 move.w 2(%a2),%d1 move.w (%a2),%d0 jbsr FastGraySprite8_MASK_R addq.w #1,%d3 .L285: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L286 movm.l (%sp)+,#0xc08 rts .even .globl MoveBille MoveBille: move.b 5(%sp),%d1 clr.w StartInt1 moveq #0,%d0 move.b %d1,%d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.b 7(%sp),20(%a0) move.w %d1,-(%sp) jbsr UpdateBillePos move.w #1,StartInt1 addq.l #2,%sp rts .even .globl DeleteBille DeleteBille: move.l %d4,-(%sp) move.l %d3,-(%sp) move.b 13(%sp),%d3 clr.w StartInt1 clr.w %d4 move.b %d3,%d4 move.w %d4,%d0 ext.l %d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),-(%sp) jsr _ROM_CALL_A3:l and.l #255,%d3 lsl.l #2,%d3 clr.w %d0 move.b nbrBille,%d0 sub.w %d4,%d0 subq.w #1,%d0 lsl.w #2,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d3,%d0 add.l #Bille+4,%d0 move.l %d0,-(%sp) add.l #Bille,%d3 move.l %d3,-(%sp) jsr _ROM_CALL_26B:l subq.b #1,nbrBille move.w #1,StartInt1 lea (16,%sp),%sp move.l (%sp)+,%d3 move.l (%sp)+,%d4 rts .even .globl DeleteAllBilles DeleteAllBilles: move.l %d4,-(%sp) move.l %d3,-(%sp) move.b 13(%sp),%d4 clr.w %d3 jbra .L296 .L297: move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 cmp.b 36(%a0),%d4 jbne .L298 move.b %d3,%d0 subq.w #1,%d3 move.w %d0,-(%sp) jbsr DeleteBille addq.l #2,%sp .L298: addq.w #1,%d3 .L296: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L297 move.l (%sp)+,%d3 move.l (%sp)+,%d4 rts .even .globl Destroy_RacketAllocation Destroy_RacketAllocation: move.l %a2,-(%sp) move.l %d3,-(%sp) clr.w %d3 lea Racket,%a2 jbra .L303 .L304: move.l (%a2)+,-(%sp) jsr _ROM_CALL_A3:l addq.w #1,%d3 addq.l #4,%sp .L303: clr.w %d0 move.b nbrRacket,%d0 cmp.w %d3,%d0 jbgt .L304 move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl ChangeRacketSpeed ChangeRacketSpeed: move.l %a2,-(%sp) move.w 10(%sp),%d1 cmp.w #200,%d1 jbls .L308 move.w #255,%d1 .L308: moveq #0,%d0 move.b 9(%sp),%d0 lea Racket,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 move.w %d1,20(%a0) clr.b 22(%a0) move.l (%a1,%d0.l),%a2 move.l %d1,%d0 moveq #15,%d2 lsl.l %d2,%d0 pea 255.w and.l #2147450880,%d0 move.l %d0,-(%sp) jbsr __divsi3 addq.l #8,%sp move.w %d0,24(%a2) clr.w 26(%a2) move.w #1,StartInt1 move.l (%sp)+,%a2 rts .even .globl NewRacket NewRacket: movm.l #0x1820,-(%sp) move.w 16(%sp),%a2 move.b 21(%sp),%d4 move.b nbrRacket,%d3 cmp.b #8,%d3 jbeq .L314 pea 70.w jsr _ROM_CALL_A2:l moveq #0,%d0 move.b %d3,%d0 lea Racket,%a1 lsl.l #2,%d0 move.l %a0,(%a1,%d0.l) clr.w Rackets_anim clr.w __RACKET_ANIM_COUNTER move.b nbrRacket,%d2 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 move.w %a2,68(%a0) move.w %a2,(%a0) move.w 22(%sp),2(%a0) move.b %d4,9(%a0) move.l (%a1,%d0.l),%a0 clr.w 10(%a0) clr.w 28(%a0) move.b %d4,4(%a0) move.l (%a1,%d0.l),%a0 clr.w 30(%a0) clr.w 38(%a0) clr.w 42(%a0) clr.w 44(%a0) clr.w 50(%a0) clr.w 54(%a0) clr.w 64(%a0) clr.w 66(%a0) clr.l 32(%a0) clr.b 36(%a0) move.l (%a1,%d0.l),%a0 move.b #9,6(%a0) move.l (%a1,%d0.l),%a0 move.b #8,8(%a0) move.l (%a1,%d0.l),%a2 moveq #0,%d1 move.b %d4,%d1 lea RACKETS_GAME_size,%a0 move.b (%a0,%d1.l),5(%a2) move.l (%a1,%d0.l),%a0 move.b 5(%a0),%d1 subq.b #1,%d1 move.b %d1,7(%a0) move.l (%a1,%d0.l),%a0 move.w #-1,12(%a0) move.w 26(%sp),-(%sp) move.w %d2,-(%sp) jbsr ChangeRacketSpeed addq.b #1,nbrRacket move.w #1,Rackets_anim move.w #1,StartIntMissiles addq.l #8,%sp .L314: movm.l (%sp)+,#0x418 rts .even .globl DrawRackets DrawRackets: movm.l #0x1e38,-(%sp) clr.w %d6 lea Racket,%a4 jbra .L316 .L317: move.l (%a4),%a1 move.w (%a1),%d3 cmp.w #7,%d3 jble .L318 clr.w %d0 move.b 7(%a1),%d0 add.w %d3,%d0 cmp.w #215,%d0 jbgt .L318 move.w 2(%a1),%d2 cmp.w #7,%d2 jble .L318 clr.w %d0 move.b 8(%a1),%d0 add.w %d2,%d0 cmp.w #199,%d0 jbgt .L318 move.b 6(%a1),%d5 clr.w %d4 move.b %d5,%d4 move.b 4(%a1),%d0 cmp.b #6,%d0 jbls .L323 moveq #13,%d4 .L323: tst.w 28(%a1) jbeq .L325 cmp.b #6,%d0 jbhi .L325 move.l ScreenBuffer,-(%sp) moveq #0,%d1 move.b 9(%a1),%d1 move.w 10(%a1),%a0 move.l %d1,%d0 add.l %d1,%d0 add.l %d1,%d0 add.l %d0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea SPRITE_RACKETS,%a0 move.l (%a0,%d0.l),-(%sp) move.w %d4,-(%sp) clr.w %d0 move.b %d5,%d0 mulu.w #43691,%d0 clr.w %d0 swap %d0 lsr.w #1,%d0 add.w %d0,%d2 move.w %d2,-(%sp) move.b 5(%a1),%d0 lsr.l #2,%d0 moveq #63,%d1 and.l %d1,%d0 add.w %d0,%d3 move.w %d3,-(%sp) jbsr DrawSprite32_SHADOW lea (14,%sp),%sp .L325: move.l (%a4),%a2 moveq #0,%d1 move.b 9(%a2),%d1 move.w 10(%a2),%a0 move.l %d1,%d0 add.l %d1,%d0 add.l %d1,%d0 add.l %d0,%d0 add.l %a0,%d0 lea SPRITE_RACKETS,%a3 lsl.l #2,%d0 move.l ScreenBuffer,%a0 move.l (%a3,%d0.l),%a1 move.w %d4,%d2 move.w 2(%a2),%d1 move.w (%a2),%d0 jbsr FastGraySprite32_MASK_R move.l (%a4),%a1 move.b 4(%a1),%d0 cmp.b #2,%d0 jbeq .L328 cmp.b #5,%d0 jbne .L318 .L328: tst.w 28(%a1) jbeq .L330 move.l ScreenBuffer,-(%sp) moveq #0,%d1 move.b 9(%a1),%d1 move.w 10(%a1),%a0 move.l %d1,%d0 add.l %d1,%d0 add.l %d1,%d0 add.l %d0,%d0 add.l %a0,%d0 lsl.l #2,%d0 moveq #108,%d1 add.l (%a3,%d0.l),%d1 move.l %d1,-(%sp) move.w %d4,-(%sp) clr.w %d0 move.b 6(%a1),%d0 mulu.w #43691,%d0 clr.w %d0 swap %d0 lsr.w #1,%d0 add.w 2(%a1),%d0 move.w %d0,-(%sp) move.b 5(%a1),%d0 lsr.l #2,%d0 moveq #63,%d1 and.l %d1,%d0 add.w (%a1),%d0 add.w #32,%d0 move.w %d0,-(%sp) jbsr DrawSprite8_SHADOW lea (14,%sp),%sp .L330: move.l (%a4),%a2 moveq #0,%d1 move.b 9(%a2),%d1 move.w 10(%a2),%a0 move.l %d1,%d0 add.l %d1,%d0 add.l %d1,%d0 add.l %d0,%d0 add.l %a0,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a0 move.w #108,%a1 add.l (%a3,%d0.l),%a1 move.w %d4,%d2 move.w 2(%a2),%d1 move.w (%a2),%d0 add.w #32,%d0 jbsr FastGraySprite8_MASK_R .L318: addq.w #1,%d6 addq.l #4,%a4 .L316: clr.w %d0 move.b nbrRacket,%d0 cmp.w %d6,%d0 jbgt .L317 movm.l (%sp)+,#0x1c78 rts .even .globl ChangeRacket ChangeRacket: move.l %a2,-(%sp) move.l %d3,-(%sp) move.b 15(%sp),%d2 clr.w %d3 move.b 13(%sp),%d3 clr.w %d0 move.b nbrRacket,%d0 subq.w #1,%d0 cmp.w %d3,%d0 jblt .L364 move.w %d3,%d1 ext.l %d1 lea Racket,%a1 lsl.l #2,%d1 move.l (%a1,%d1.l),%a0 cmp.b 4(%a0),%d2 jbeq .L364 clr.w StartInt1 clr.w Rackets_anim clr.w __RACKET_ANIM_COUNTER clr.w %d0 move.b %d2,%d0 move.w %d0,12(%a0) clr.b 18(%a0) move.l (%a1,%d1.l),%a0 clr.w 10(%a0) clr.w 30(%a0) cmp.b #3,%d2 jbne .L338 move.w #1,30(%a0) clr.l 32(%a0) .L338: move.l (%a1,%d1.l),%a0 clr.w 38(%a0) clr.w 66(%a0) move.b 4(%a0),%d0 jbeq .L341 cmp.b #1,%d0 jbeq .L342 cmp.b #2,%d0 jbeq .L343 cmp.b #3,%d0 jbne .L340 jbra .L344 .L341: move.b #4,14(%a0) move.l (%a1,%d1.l),%a0 move.b %d2,%d0 addq.b #3,%d0 move.b %d0,15(%a0) cmp.b #1,%d2 jbne .L340 jbra .L352 .L342: move.b %d2,%d0 addq.b #3,%d0 move.b %d0,14(%a0) tst.b %d2 jbne .L352 move.l (%a1,%d1.l),%a0 move.b #4,14(%a0) jbra .L352 .L343: move.b #5,14(%a0) tst.b %d2 jbeq .L351 cmp.b #1,%d2 jbeq .L352 cmp.b #3,%d2 jbne .L340 move.l (%a1,%d1.l),%a0 move.b #6,15(%a0) jbra .L340 .L344: move.b #6,14(%a0) tst.b %d2 jbeq .L351 cmp.b #1,%d2 jbeq .L352 cmp.b #2,%d2 jbne .L340 jbra .L353 .L351: move.l (%a1,%d1.l),%a0 move.b #4,15(%a0) jbra .L340 .L352: move.l (%a1,%d1.l),%a0 clr.b 15(%a0) jbra .L340 .L353: move.l (%a1,%d1.l),%a0 move.b #5,15(%a0) .L340: move.w %d3,%d0 ext.l %d0 lea Racket,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 cmp.b #1,4(%a0) jbne .L354 move.b #1,16(%a0) jbra .L356 .L354: tst.b 15(%a0) jbne .L357 st 16(%a0) jbra .L356 .L357: st 16(%a0) move.l (%a1,%d0.l),%a0 move.b #1,17(%a0) .L356: move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 cmp.b #1,16(%a0) jbne .L359 clr.w 10(%a0) jbra .L361 .L359: move.b 14(%a0),%d0 subq.b #4,%d0 cmp.b #1,%d0 jbhi .L362 move.w #3,10(%a0) jbra .L361 .L362: move.w #5,10(%a0) .L361: move.w %d3,%d2 ext.l %d2 lea Racket,%a2 lsl.l #2,%d2 move.l (%a2,%d2.l),%a0 move.b 14(%a0),9(%a0) move.l (%a2,%d2.l),%a0 move.b 14(%a0),4(%a0) move.l (%a2,%d2.l),%a1 move.w 10(%a1),%a0 moveq #0,%d1 move.b 9(%a1),%d1 move.l %d1,%d0 add.l %d1,%d0 add.l %d1,%d0 add.l %d0,%d0 lea (%a0,%d0.l),%a0 add.l #RACKETS_ANIMS_size-24,%a0 move.b (%a0),5(%a1) move.l (%a2,%d2.l),%a0 move.b 5(%a0),%d0 subq.b #1,%d0 move.b %d0,7(%a0) move.w #1,Rackets_anim move.w #1,StartInt1 .L364: move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl DestroyRacket DestroyRacket: move.l %d4,-(%sp) move.l %d3,-(%sp) move.b 13(%sp),%d4 cmp.b HUMAIN0,%d4 jbne .L366 st HUMAIN0 .L366: clr.w StartInt1 move.w %d4,-(%sp) jbsr DeleteAllBilles clr.w %d3 move.b %d4,%d3 move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),-(%sp) jsr _ROM_CALL_A3:l moveq #0,%d1 move.b %d4,%d1 lsl.l #2,%d1 clr.w %d0 move.b nbrRacket,%d0 sub.w %d3,%d0 subq.w #1,%d0 lsl.w #2,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d1,%d0 add.l #Racket+4,%d0 move.l %d0,-(%sp) add.l #Racket,%d1 move.l %d1,-(%sp) jsr _ROM_CALL_26B:l subq.b #1,nbrRacket move.w #1,StartInt1 lea (18,%sp),%sp move.l (%sp)+,%d3 move.l (%sp)+,%d4 rts .even .globl CREATE_ANIM_RACKET_NEW CREATE_ANIM_RACKET_NEW: clr.w Rackets_anim clr.w StartInt1 clr.w __RACKET_ANIM_COUNTER move.l #65636,-(%sp) move.w 10(%sp),-(%sp) move.w 10(%sp),-(%sp) jbsr NewRacket clr.w %d0 move.b nbrRacket,%d0 subq.w #1,%d0 ext.l %d0 lea Racket,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 move.b #8,4(%a0) move.l (%a1,%d0.l),%a0 move.b #8,9(%a0) move.l (%a1,%d0.l),%a0 move.b #32,5(%a0) move.l (%a1,%d0.l),%a0 move.b #31,7(%a0) move.l (%a1,%d0.l),%a0 clr.w 10(%a0) move.w #8,12(%a0) move.w #1,Rackets_anim move.w #1,StartInt1 addq.l #8,%sp rts .even .globl CREATE_ANIM_RACKET_DEAD CREATE_ANIM_RACKET_DEAD: clr.w Rackets_anim clr.w __RACKET_ANIM_COUNTER moveq #0,%d0 move.b 5(%sp),%d0 lea Racket,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 move.b #7,4(%a0) move.l (%a1,%d0.l),%a0 move.b #7,9(%a0) move.l (%a1,%d0.l),%a0 move.b #32,5(%a0) move.l (%a1,%d0.l),%a0 move.b #31,7(%a0) move.l (%a1,%d0.l),%a0 clr.w 10(%a0) move.w #7,12(%a0) clr.w 54(%a0) tst.w 42(%a0) jbeq .L372 subq.l #2,%sp move.b 49(%a0),1(%sp) jbsr DestroyRacket addq.l #2,%sp .L372: move.w #1,Rackets_anim rts .even .globl DestroyAllRackets DestroyAllRackets: jbra .L376 .L377: clr.w -(%sp) jbsr DestroyRacket addq.l #2,%sp .L376: tst.b nbrRacket jbne .L377 rts .even .globl Destroy_MonsterAllocation Destroy_MonsterAllocation: move.l %a2,-(%sp) move.l %d3,-(%sp) clr.w %d3 lea Monster,%a2 jbra .L381 .L382: move.l (%a2)+,-(%sp) jsr _ROM_CALL_A3:l addq.w #1,%d3 addq.l #4,%sp .L381: clr.w %d0 move.b nbrMonster,%d0 cmp.w %d3,%d0 jbgt .L382 move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl ChangeMonsterSpeed ChangeMonsterSpeed: move.l %a2,-(%sp) move.w 10(%sp),%d1 cmp.w #200,%d1 jbls .L386 move.w #200,%d1 .L386: moveq #0,%d0 move.b 9(%sp),%d0 lea Monster,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 move.w %d1,8(%a0) clr.b 10(%a0) move.l (%a1,%d0.l),%a2 move.l %d1,%d0 moveq #15,%d2 lsl.l %d2,%d0 pea 255.w and.l #2147450880,%d0 move.l %d0,-(%sp) jbsr __divsi3 addq.l #8,%sp move.w %d0,12(%a2) clr.w 14(%a2) move.w #1,StartIntMonster move.l (%sp)+,%a2 rts .even .globl NewMonster NewMonster: movm.l #0x1820,-(%sp) move.b 21(%sp),%d4 move.b nbrMonster,%d3 cmp.b #45,%d3 jbeq .L394 clr.w StartIntMonster pea 24.w jsr _ROM_CALL_A2:l moveq #0,%d0 move.b %d3,%d0 lea Monster,%a2 lsl.l #2,%d0 move.l %a0,(%a2,%d0.l) move.b nbrMonster,%d2 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l (%a2,%d0.l),%a0 move.w 20(%sp),(%a0) move.w 22(%sp),2(%a0) move.b %d4,4(%a0) move.l (%a2,%d0.l),%a0 clr.b 5(%a0) move.l (%a2,%d0.l),%a1 moveq #0,%d1 move.b %d4,%d1 lea MONSTER_SPRITES,%a0 move.b (%a0,%d1.l),6(%a1) move.l (%a2,%d0.l),%a0 clr.w 22(%a0) move.w 26(%sp),-(%sp) move.w %d2,-(%sp) jbsr ChangeMonsterSpeed move.b nbrMonster,%d1 moveq #0,%d0 move.b %d1,%d0 lsl.l #2,%d0 move.l (%a2,%d0.l),%a0 clr.b 16(%a0) move.l (%a2,%d0.l),%a0 clr.b 18(%a0) move.l (%a2,%d0.l),%a0 move.b #1,19(%a0) move.l (%a2,%d0.l),%a0 clr.w 20(%a0) addq.l #8,%sp tst.b %d4 jbne .L392 move.b #52,17(%a0) .L392: addq.b #1,%d1 move.b %d1,nbrMonster move.w #1,StartIntMonster .L394: movm.l (%sp)+,#0x418 rts .even .globl DeleteMonster DeleteMonster: move.l %d4,-(%sp) move.l %d3,-(%sp) move.b 13(%sp),%d3 clr.w StartIntMonster clr.w %d4 move.b %d3,%d4 move.w %d4,%d0 ext.l %d0 lsl.l #2,%d0 lea Monster,%a0 move.l (%a0,%d0.l),-(%sp) jsr _ROM_CALL_A3:l and.l #255,%d3 lsl.l #2,%d3 clr.w %d0 move.b nbrMonster,%d0 sub.w %d4,%d0 subq.w #1,%d0 lsl.w #2,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d3,%d0 add.l #Monster+4,%d0 move.l %d0,-(%sp) add.l #Monster,%d3 move.l %d3,-(%sp) jsr _ROM_CALL_26B:l subq.b #1,nbrMonster move.w #1,StartIntMonster lea (16,%sp),%sp move.l (%sp)+,%d3 move.l (%sp)+,%d4 rts .even .globl DeleteAllMonsters DeleteAllMonsters: jbra .L398 .L399: clr.w -(%sp) jbsr DeleteMonster addq.l #2,%sp .L398: tst.b nbrMonster jbne .L399 rts .even .globl CREATE_ANIM_MONSTER_DEAD CREATE_ANIM_MONSTER_DEAD: move.l %a2,-(%sp) moveq #0,%d0 move.b 9(%sp),%d0 lea Monster,%a2 lsl.l #2,%d0 move.l (%a2,%d0.l),%a0 move.w #1,20(%a0) clr.b 5(%a0) move.l (%a2,%d0.l),%a1 moveq #0,%d1 move.b 4(%a1),%d1 lea MONSTER_DEAD,%a0 move.b (%a0,%d1.l),4(%a1) move.l (%a2,%d0.l),%a1 moveq #0,%d0 move.b 4(%a1),%d0 lea MONSTER_SPRITES,%a0 move.b (%a0,%d0.l),6(%a1) move.l (%sp)+,%a2 rts .even .globl DrawMonsters DrawMonsters: movm.l #0x1030,-(%sp) clr.w %d3 lea Monster,%a3 jbra .L405 .L406: move.l (%a3),%a1 tst.w 22(%a1) jbeq .L407 move.l ScreenBuffer,-(%sp) moveq #0,%d0 move.b 4(%a1),%d0 moveq #0,%d1 move.b 5(%a1),%d1 lsl.l #3,%d0 add.l %d1,%d0 lsl.l #2,%d0 lea SPRITE_MONSTER,%a0 move.l (%a0,%d0.l),-(%sp) move.w #16,-(%sp) move.w 2(%a1),%d0 addq.w #3,%d0 move.w %d0,-(%sp) move.w (%a1),%a1 addq.w #3,%a1 move.w %a1,-(%sp) jbsr DrawSprite16_SHADOW lea (14,%sp),%sp .L407: move.l (%a3)+,%a2 moveq #0,%d0 move.b 4(%a2),%d0 moveq #0,%d1 move.b 5(%a2),%d1 lsl.l #3,%d0 add.l %d1,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a0 lea SPRITE_MONSTER,%a1 move.l (%a1,%d0.l),%a1 moveq #16,%d2 move.w 2(%a2),%d1 move.w (%a2),%d0 jbsr FastGraySprite16_MASK_R addq.w #1,%d3 .L405: clr.w %d0 move.b nbrMonster,%d0 cmp.w %d3,%d0 jbgt .L406 movm.l (%sp)+,#0xc08 rts .even .globl MONSTER00_SetMove0 MONSTER00_SetMove0: move.l %a2,-(%sp) move.l %d3,-(%sp) moveq #0,%d1 move.b 13(%sp),%d1 lea Monster,%a2 lsl.l #2,%d1 move.l (%a2,%d1.l),%a1 move.b 16(%a1),%d3 moveq #0,%d2 move.b %d3,%d2 lea MONSTER00_Move_x,%a0 move.b (%a0,%d2.l),%d0 ext.w %d0 add.w %d0,%d0 add.w %d0,(%a1) lea MONSTER00_Move_y,%a0 move.b (%a0,%d2.l),%d0 ext.w %d0 add.w %d0,%d0 add.w %d0,2(%a1) addq.b #1,%d3 move.b %d3,16(%a1) move.l (%a2,%d1.l),%a0 move.b 16(%a0),%d0 cmp.b 17(%a0),%d0 jbne .L414 clr.b 16(%a0) .L414: move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl UpdateMonstersPos UpdateMonstersPos: move.l %d4,-(%sp) move.l %d3,-(%sp) clr.w %d4 jbra .L416 .L417: tst.w 20(%a0) jbne .L418 tst.b 4(%a0) jbne .L418 move.w 2(%a0),%d2 cmp.w #95,%d2 jble .L421 move.w %d4,-(%sp) jbsr MONSTER00_SetMove0 addq.l #2,%sp jbra .L418 .L421: and.w #255,%d0 move.b 18(%a0),%d1 ext.w %d1 muls.w %d0,%d1 add.w %d1,(%a0) move.b 19(%a0),%d1 ext.w %d1 muls.w %d1,%d0 add.w %d0,%d2 move.w %d2,2(%a0) .L418: addq.w #1,%d3 .L423: move.w %d4,%d0 ext.l %d0 lsl.l #2,%d0 lea Monster,%a0 move.l (%a0,%d0.l),%a0 move.b 10(%a0),%d0 cmp.b %d0,%d3 jbcs .L417 clr.b 10(%a0) addq.w #1,%d4 .L416: clr.w %d0 move.b nbrMonster,%d0 cmp.w %d4,%d0 jble .L427 clr.w %d3 jbra .L423 .L427: move.l (%sp)+,%d3 move.l (%sp)+,%d4 rts .even .globl GenerateTIOSName GenerateTIOSName: move.l %d4,-(%sp) move.l %d3,-(%sp) move.l 12(%sp),%d3 move.l 16(%sp),%a0 clr.b (%a0)+ move.l %d3,-(%sp) move.l %a0,-(%sp) jsr _ROM_CALL_26C:l move.l %a0,%d4 move.l %d3,-(%sp) jsr _ROM_CALL_27E:l lea (12,%sp),%sp move.l %d4,%a0 add.l %d0,%a0 move.l (%sp)+,%d3 move.l (%sp)+,%d4 rts .even .globl GetSymByName GetSymByName: link.w %fp,#-52 move.l %a2,-(%sp) move.l 8(%fp),%a0 lea _ROM_CALL_60:l,%a2 tst.b (%a0) jbeq .L431 #APP .xdef __ref_all___set_file_in_use_bit #NO_APP pea -50(%fp) move.l %a0,-(%sp) jbsr GenerateTIOSName move.l %a0,-(%sp) jbsr (%a2) move.w %d0,%d1 clr.w %d0 swap %d0 lea (12,%sp),%sp jbra .L433 .L431: #APP .xdef __ref_all___set_file_in_use_bit #NO_APP move.l %a0,-(%sp) jbsr (%a2) move.w %d0,%d1 clr.w %d0 swap %d0 addq.l #4,%sp .L433: tst.w %d0 jbne .L434 moveq #0,%d0 jbra .L436 .L434: move.w %d0,%d2 swap %d2 mov.w %d1,%d2 move.l %d2,-(%sp) jsr _ROM_CALL_79:l move.l %a0,%d0 addq.l #4,%sp .L436: move.l %d0,%a0 move.l -56(%fp),%a2 unlk %fp rts .lcomm tempfile.7737,18 .section .rodata.__unalignedstr,"dmu" .LC33: .ascii "\\\0" .text .even .globl FindFile FindFile: link.w %fp,#-52 movm.l #0x1e38,-(%sp) move.l 8(%fp),%d6 pea 400.w jsr _ROM_CALL_A2:l move.l %a0,%a3 lea _ROM_CALL_6C:l,%a4 move.w #4,-(%sp) clr.l -(%sp) jbsr (%a4) move.l %a0,%d1 clr.w %d3 lea (10,%sp),%sp jbra .L439 .L440: moveq #0,%d0 move.b %d5,%d0 lsl.l #2,%d0 move.l %d1,(%a3,%d0.l) jsr _ROM_CALL_6D:l move.l %a0,%d1 .L439: move.b %d3,%d5 addq.w #1,%d3 tst.l %d1 jbne .L440 move.l %a3,%a2 clr.w %d4 jbra .L442 .L443: pea -50(%fp) move.l (%a2),-(%sp) jbsr GenerateTIOSName move.w #9,-(%sp) move.l %a0,-(%sp) jbsr (%a4) move.l %a0,%d3 lea (14,%sp),%sp jbra .L444 .L445: move.l %d3,-(%sp) move.l %d6,-(%sp) jsr _ROM_CALL_271:l addq.l #8,%sp tst.w %d0 jbne .L446 pea 17.w clr.w -(%sp) pea tempfile.7737 jsr _ROM_CALL_27C:l move.l (%a2),-(%sp) jsr _ROM_CALL_27E:l move.l %d0,-(%sp) move.l (%a2),-(%sp) pea tempfile.7737 jsr _ROM_CALL_26A:l lea _ROM_CALL_26E:l,%a2 move.l #tempfile.7737,%d4 pea .LC33 move.l %d4,-(%sp) jbsr (%a2) lea (30,%sp),%sp move.l %d3,(%sp) move.l %d4,-(%sp) jbsr (%a2) move.l %a3,-(%sp) jsr _ROM_CALL_A3:l lea (12,%sp),%sp jbra .L448 .L446: jsr _ROM_CALL_6D:l move.l %a0,%d3 .L444: tst.l %d3 jbne .L445 addq.w #1,%d4 addq.l #4,%a2 .L442: clr.w %d0 move.b %d5,%d0 cmp.w %d4,%d0 jbgt .L443 move.l %a3,-(%sp) jsr _ROM_CALL_A3:l moveq #0,%d4 addq.l #4,%sp .L448: move.l %d4,%a0 movm.l -80(%fp),#0x1c78 unlk %fp rts .even .globl CenterScrolling CenterScrolling: move.b GRAPHIC_MODE,%d0 tst.w __calculator jbeq .L453 tst.b %d0 jbne .L480 clr.w xScroll tst.w EndCounterLogo jbeq .L457 cmp.b #1,nbrBille jbne .L459 move.l Bille,%a0 move.w 2(%a0),%a0 lea (-49,%a0),%a0 move.w %a0,yScroll jbra .L457 .L459: move.b HUMAIN0,%d0 cmp.b #-1,%d0 jbeq .L461 and.l #255,%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 move.b 6(%a0),%d0 lsr.l #1,%d0 moveq #127,%d1 and.l %d1,%d0 add.w 2(%a0),%d0 add.w #-64,%d0 move.w %d0,yScroll jbra .L457 .L461: move.w #72,yScroll .L457: move.w yScroll,%d0 jblt .L481 cmp.w #72,%d0 jble .L480 move.w #72,yScroll rts .L453: tst.b %d0 jbne .L480 tst.w EndCounterLogo jbeq .L467 cmp.b #1,nbrBille jbne .L469 move.l Bille,%a0 move.w 2(%a0),%d0 move.w (%a0),%a0 lea (-78,%a0),%a0 move.w %a0,xScroll add.w #-38,%d0 move.w %d0,yScroll jbra .L467 .L469: move.b HUMAIN0,%d0 cmp.b #-1,%d0 jbeq .L471 and.l #255,%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 move.b 6(%a0),%d0 lsr.l #1,%d0 moveq #127,%d2 and.l %d2,%d0 move.w 2(%a0),%d1 add.w %d0,%d1 move.b 5(%a0),%d0 lsr.l #1,%d0 and.l %d2,%d0 add.w (%a0),%d0 add.w #-80,%d0 move.w %d0,xScroll add.w #-50,%d1 move.w %d1,yScroll jbra .L467 .L471: move.w #100,yScroll .L467: move.w xScroll,%d0 jbge .L473 clr.w xScroll jbra .L475 .L473: cmp.w #64,%d0 jble .L475 move.w #64,xScroll .L475: move.w yScroll,%d0 jbge .L477 .L481: clr.w yScroll rts .L477: cmp.w #100,%d0 jble .L480 move.w #100,yScroll .L480: rts .even .globl ShowScreenBuffer ShowScreenBuffer: move.l %a3,-(%sp) move.l %a2,-(%sp) move.b GRAPHIC_MODE,%d1 tst.w __calculator jbeq .L483 move.l __D_plane,%d0 move.l __L_plane,%a2 move.l ScreenBuffer,%a0 tst.b %d1 jbne .L485 move.l %d0,%a3 move.w yScroll,%d1 move.w xScroll,%d0 jbsr CopyScreenBufferToScreen jbra .L489 .L485: move.l %d0,%a3 jbsr CopyScreenBufferToScreen2 jbra .L489 .L483: tst.b %d1 jbne .L489 move.l __D_plane,%a3 move.l __L_plane,%a2 move.l ScreenBuffer,%a0 move.w yScroll,%d1 move.w xScroll,%d0 jbsr CopyScreenBufferToScreen4 .L489: move.l (%sp)+,%a2 move.l (%sp)+,%a3 rts .even .globl InitScrollingLevel InitScrollingLevel: move.b GRAPHIC_MODE,%d0 tst.w __calculator jbeq .L491 tst.b %d0 jbne .L493 move.w #72,yScroll jbra .L493 .L491: tst.b %d0 jbne .L493 move.w #100,yScroll .L493: clr.w ScrollLevelLogo rts .even .globl InitCounterBricks InitCounterBricks: move.l %d3,-(%sp) clr.b COUNTER_BRICKS clr.w %d2 clr.b %d3 .L498: move.w %d2,%d0 muls.w #13,%d0 move.l %d0,%a0 add.l #LevelMap,%a0 moveq #13,%d1 .L499: move.b (%a0),%d0 and.w #15,%d0 jbeq .L500 cmp.w #11,%d0 jbeq .L500 cmp.w #8,%d0 jbeq .L500 addq.b #1,%d3 .L500: subq.w #1,%d1 addq.l #1,%a0 jbne .L499 addq.w #1,%d2 cmp.w #18,%d2 jbne .L498 move.b %d3,COUNTER_BRICKS jbne .L509 tst.b MAP_SCENARIO jbeq .L509 move.b #1,COUNTER_BRICKS .L509: move.l (%sp)+,%d3 rts .even .globl MAP_InitSpecialBricks_MOVE MAP_InitSpecialBricks_MOVE: movm.l #0x1e20,-(%sp) clr.w bricks_special_move_n clr.w %d5 moveq #8,%d6 .L515: move.w %d5,%d0 muls.w #13,%d0 move.l %d0,%a2 add.l #LevelMap,%a2 moveq #8,%d4 .L516: move.b (%a2),%d0 btst #5,%d0 jbeq .L517 move.b %d0,%d3 and.b #15,%d3 moveq #0,%d0 move.w bricks_special_move_n,%d0 lea MAP_bricks_special_move_sprite,%a0 move.b %d3,(%a0,%d0.l) clr.b (%a2) lea MAP_bricks_special_move_x,%a0 move.b %d4,(%a0,%d0.l) lea MAP_bricks_special_move_y,%a0 move.b %d6,(%a0,%d0.l) move.w #2,-(%sp) jbsr GCL_Random addq.l #2,%sp tst.w %d0 seq %d1 ext.w %d1 move.w bricks_special_move_n,%d2 moveq #0,%d0 move.w %d2,%d0 lea MAP_bricks_special_move_dir,%a0 or.b #1,%d1 move.b %d1,(%a0,%d0.l) add.l %d0,%d0 lea MAP_bricks_special_move_destroy,%a0 clr.w (%a0,%d0.l) cmp.b #6,%d3 jbeq .L522 cmp.b #8,%d3 jbeq .L522 cmp.b #11,%d3 jbne .L525 .L522: moveq #0,%d0 move.w %d2,%d0 add.l %d0,%d0 lea MAP_bricks_special_move_dep,%a0 clr.w (%a0,%d0.l) jbra .L533 .L525: lea MAP_bricks_special_move_dep,%a0 move.w #1,(%a0,%d0.l) .L533: addq.w #1,%d2 move.w %d2,bricks_special_move_n cmp.w #19,bricks_special_move_n jbhi .L529 .L517: addq.l #1,%a2 add.b #16,%d4 cmp.b #-40,%d4 jbne .L516 addq.w #1,%d5 addq.b #7,%d6 cmp.w #18,%d5 jbne .L515 .L529: movm.l (%sp)+,#0x478 rts .even .globl MAP_InitSpecialBricks_TIME MAP_InitSpecialBricks_TIME: move.l %d3,-(%sp) clr.w bricks_special_time_n clr.w %d3 clr.w %d1 .L535: move.w %d3,%d0 muls.w #13,%d0 move.l %d0,%a1 add.l #LevelMap,%a1 clr.w %d2 .L536: move.b (%a1),%d0 and.w #15,%d0 cmp.w #11,%d0 jbne .L537 moveq #0,%d0 move.w %d1,%d0 lea MAP_bricks_special_time_x,%a0 move.b %d2,(%a0,%d0.l) lea MAP_bricks_special_time_y,%a0 move.b %d3,(%a0,%d0.l) add.l %d0,%d0 lea MAP_bricks_special_time_c,%a0 clr.w (%a0,%d0.l) addq.w #1,%d1 cmp.w #99,%d1 jbhi .L548 .L537: addq.w #1,%d2 addq.l #1,%a1 cmp.w #13,%d2 jbne .L536 addq.w #1,%d3 cmp.w #18,%d3 jbne .L535 .L548: move.w %d1,bricks_special_time_n move.l (%sp)+,%d3 rts .even .globl InitBufferMap InitBufferMap: jbsr InitCounterBricks jbsr MAP_InitSpecialBricks_MOVE jbsr MAP_InitSpecialBricks_TIME clr.w __MAP_COUNTER_TIME move.w #1,MAP_StartInt1 rts .even .globl DrawMap DrawMap: movm.l #0x1e20,-(%sp) moveq #8,%d6 clr.w %d5 .L552: move.w %d5,%d0 muls.w #13,%d0 move.l %d0,%a2 add.l #LevelMap,%a2 moveq #8,%d4 .L553: move.b (%a2),%d0 move.b %d0,%d1 and.b #15,%d1 and.w #15,%d0 jbeq .L554 moveq #0,%d0 move.b %d1,%d0 lsl.l #2,%d0 move.b CST_SHADOW+1,%d3 move.l ScreenBuffer,%a1 lea SPRITE_BLOCKS,%a0 move.l (%a0,%d0.l),%a0 move.w %d6,%d1 move.w %d4,%d0 jbsr _DrawBlock .L554: add.w #16,%d4 addq.l #1,%a2 cmp.w #216,%d4 jbne .L553 addq.w #7,%d6 addq.w #1,%d5 cmp.w #18,%d5 jbne .L552 movm.l (%sp)+,#0x478 rts .even .globl DrawMapBackground DrawMapBackground: movm.l #0x1f3e,-(%sp) move.b 47(%sp),%d0 move.w %d0,%a6 clr.w %d4 move.b 45(%sp),%d4 move.w %d4,%d1 lsl.w #4,%d1 move.w %d1,%a5 move.w %d1,%a3 addq.w #8,%a3 and.w #255,%d0 move.w %d0,%a4 move.w %d0,%d7 muls.w #7,%d7 move.w %d4,%d0 and.w #1,%d0 eor.w #1,%d0 add.w %d0,%d0 move.b %d0,%d2 addq.b #1,%d2 tst.w %d7 jbne .L564 clr.w %d0 jbra .L566 .L564: move.w %d7,%d0 subq.w #7,%d0 and.w #224,%d0 move.w %d7,%d1 sub.w %d0,%d1 move.w %d1,%d0 lsl.w #4,%d0 .L566: clr.w %d5 move.b %d2,%d5 lea DrawSmallBackground,%a2 move.l BufferMap,%a1 lea DecorsBlocks,%a0 move.w %d5,%d2 add.w %d0,%d2 move.w %d7,%d1 move.w %a3,%d0 jbsr (%a2) move.w %d7,%d6 addq.w #7,%d6 move.w %d7,%d0 subq.w #1,%d0 and.w #224,%d0 move.w %d6,%d3 sub.w %d0,%d3 lsl.w #4,%d3 cmp.w #7,%d6 jbne .L567 moveq #112,%d3 .L567: move.l BufferMap,%a1 lea DecorsBlocks,%a0 move.w %d5,%d2 add.w %d3,%d2 move.w %d6,%d1 move.w %a3,%d0 jbsr (%a2) cmp.b #12,45(%sp) jbeq .L569 move.w %d4,%d2 addq.w #1,%d2 and.w #1,%d2 eor.w #1,%d2 add.w %d2,%d2 add.w %d3,%d2 move.l BufferMap,%a1 lea DecorsBlocks,%a0 addq.w #1,%d2 move.w %d6,%d1 move.w %a5,%d0 add.w #24,%d0 jbsr (%a2) .L569: move.w %a6,%d0 cmp.b #17,%d0 jbeq .L571 move.w %a4,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%d4.w),%a0 add.l #LevelMap+13,%a0 move.b (%a0),%d0 and.w #15,%d0 jbeq .L571 ext.l %d0 lsl.l #2,%d0 move.l BufferMap,%a1 lea SPRITE_BLOCKS,%a0 move.l (%a0,%d0.l),%a0 move.w %d6,%d1 move.w %a3,%d0 jbsr DrawBlockNoShadow .L571: cmp.b #12,45(%sp) jbeq .L574 move.w %a6,%d1 cmp.b #17,%d1 jbeq .L574 addq.w #1,%d4 move.w %a4,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%d4.w),%a0 subq.w #1,%d4 add.l #LevelMap+13,%a0 move.b (%a0),%d0 and.w #15,%d0 jbeq .L574 ext.l %d0 lsl.l #2,%d0 move.l BufferMap,%a1 lea SPRITE_BLOCKS,%a0 move.l (%a0,%d0.l),%a0 move.w %d6,%d1 move.w %a5,%d0 add.w #24,%d0 jbsr DrawBlockNoShadow .L574: tst.w CST_SHADOW jbne .L578 move.w %d6,%d7 jbra .L580 .L578: move.w %a4,%d3 subq.w #1,%d3 jbmi .L581 move.w %d3,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%d4.w),%a1 lea LevelMap,%a0 move.b (%a0,%a1.l),%d0 and.w #15,%d0 jbeq .L581 move.l BufferMap,%a0 move.w %d7,%d1 move.w %a5,%d0 add.w #16,%d0 jbsr _DrawSmallShadowBlock .L581: move.w %d4,%d5 subq.w #1,%d5 jbmi .L584 tst.w %d3 jblt .L586 move.w %d3,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%d5.w),%a1 lea LevelMap,%a0 move.b (%a0,%a1.l),%d0 and.w #15,%d0 jbeq .L586 move.l BufferMap,%a0 move.w %d7,%d1 move.w %a3,%d0 jbsr _DrawSmallShadowBlock jbra .L586 .L589: lea (%a2,%d4.w),%a0 add.l #LevelMap+13,%a0 tst.b (%a0) jbeq .L590 move.w %a6,%d0 cmp.b #17,%d0 jbne .L584 .L590: move.l BufferMap,%a0 move.w %d6,%d1 move.w %a3,%d0 jbsr _DrawSmallShadowBlock .L584: cmp.b #12,45(%sp) jbeq .L580 addq.w #1,%d4 move.w %a4,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%d4.w),%a1 lea LevelMap,%a0 move.b (%a0,%a1.l),%d0 and.w #15,%d0 jbeq .L580 move.l %a1,%a0 add.l #LevelMap+13,%a0 tst.b (%a0) jbeq .L594 move.w %a6,%d1 cmp.b #17,%d1 jbne .L580 .L594: move.l BufferMap,%a0 move.w %d6,%d1 move.w %a5,%d0 add.w #32,%d0 jbsr _DrawSmallShadowBlock .L580: tst.b 45(%sp) jbne .L596 move.l BufferMap,%a0 move.w %d7,%d1 move.w %a3,%d0 jbsr _DrawSmallShadowBlock move.w %a6,%d0 cmp.b #17,%d0 jbeq .L598 move.w %a4,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 add.l #LevelMap+13,%a0 tst.b (%a0) jbne .L600 .L598: move.l BufferMap,-(%sp) move.w %d7,%d1 addq.w #7,%d1 move.w %d1,-(%sp) move.w %a3,-(%sp) jbsr DrawSmallShadowBlock addq.l #8,%sp .L600: tst.w CST_SHADOW jbne .L596 move.l BufferMap,%a0 move.w %d7,%d1 subq.w #7,%d1 move.w %a3,%d0 jbsr _DrawSmallShadowBlock .L596: move.w %a6,%d0 tst.b %d0 jbne .L606 tst.b 45(%sp) jbeq .L604 move.l BufferMap,%a0 clr.w %d1 move.w %a3,%d0 jbsr _DrawSmallShadowBlock .L604: move.l BufferMap,%a0 clr.w %d1 move.w %a5,%d0 add.w #16,%d0 jbsr _DrawSmallShadowBlock jbra .L606 .L586: move.w %a4,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a2 lea (%a2,%d5.w),%a1 lea LevelMap,%a0 move.b (%a0,%a1.l),%d0 and.w #15,%d0 jbne .L589 jbra .L584 .L606: movm.l (%sp)+,#0x7cf8 rts .even .globl MAP_ShowSpecialBricks_MOVE MAP_ShowSpecialBricks_MOVE: movm.l #0x1030,-(%sp) moveq #0,%d3 lea MAP_bricks_special_move_destroy,%a3 jbra .L608 .L609: tst.w (%a3) jbne .L610 lea MAP_bricks_special_move_sprite,%a0 move.b (%a0,%d3.l),%d0 moveq #15,%d1 and.l %d1,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a0 lea SPRITE_BLOCKS,%a1 move.l (%a1,%d0.l),%a1 lea MAP_bricks_special_move_y,%a2 clr.w %d1 move.b (%a2,%d3.l),%d1 lea MAP_bricks_special_move_x,%a2 clr.w %d0 move.b (%a2,%d3.l),%d0 jbsr DrawBlockMove .L610: addq.l #1,%d3 addq.l #2,%a3 .L608: cmp.w bricks_special_move_n,%d3 jbcs .L609 movm.l (%sp)+,#0xc08 rts .even .globl MAP_ReDrawMap MAP_ReDrawMap: move.l %a2,-(%sp) moveq #0,%d0 move.b C_DECORS,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a1 lea SPRITE_DECORS,%a0 move.l (%a0,%d0.l),%a0 jbsr DrawScreen move.l ScreenBuffer,%a0 jbsr DrawScreenShadow jbsr DrawMap move.l ScreenBuffer,%a0 move.l SPRITE_SQUARE_left_and_right,%a2 jbsr DrawSquareSide move.l BufferMap,%a1 move.l ScreenBuffer,%a0 jbsr CopyScreenToBufferMap jbsr MAP_ShowSpecialBricks_MOVE move.l (%sp)+,%a2 rts .even .globl MAP_ShowSpecialBricks_TIME MAP_ShowSpecialBricks_TIME: movm.l #0x1820,-(%sp) move.w bricks_special_time_n,%d3 clr.w %d4 sub.l %a1,%a1 lea MAP_bricks_special_time_c,%a2 jbra .L617 .L618: lea MAP_bricks_special_time_x,%a0 moveq #0,%d2 move.b (%a0,%a1.l),%d2 lea MAP_bricks_special_time_y,%a0 moveq #0,%d1 move.b (%a0,%a1.l),%d1 lea LevelMap,%a0 move.l %d1,%d0 add.l %d1,%d0 add.l %d1,%d0 lsl.l #2,%d0 add.l %d1,%d0 move.l %d0,%d1 add.l %d2,%d1 move.b (%a0,%d1.l),%d0 and.w #15,%d0 jbne .L619 cmp.w #19,(%a2) jbls .L619 clr.w (%a2) move.b #11,(%a0,%d1.l) moveq #1,%d4 .L619: addq.l #1,%a1 addq.l #2,%a2 .L617: cmp.w %a1,%d3 jbhi .L618 tst.w %d4 jbeq .L625 jbsr MAP_ReDrawMap .L625: movm.l (%sp)+,#0x418 rts .even .globl Levels_OpenFile Levels_OpenFile: move.l %a2,-(%sp) move.l 8(%sp),-(%sp) jbsr FindFile move.l %a0,-(%sp) jbsr GetSymByName move.l %a0,%a2 move.l %a0,entry_fileLVL addq.l #8,%sp jbeq .L627 move.w 12(%a0),-(%sp) jsr _ROM_CALL_9A:l move.w %d0,12(%a2) move.l entry_fileLVL,%a0 addq.l #2,%sp cmp.w #0,%a0 jbeq .L627 move.w 12(%a0),-(%sp) jsr _ROM_CALL_96:l addq.l #2,%a0 move.l %a0,FileLVL move.w (%a0),MAP_SIZE move.b #1,LEVEL moveq #1,%d0 addq.l #2,%sp jbra .L630 .L627: clr.w %d0 .L630: move.l (%sp)+,%a2 rts .even .globl AddMissiles AddMissiles: move.b nbrMissile,%d2 moveq #0,%d0 move.b %d2,%d0 move.l %d0,%d1 add.l %d0,%d1 lea MISSILE_xpos,%a0 move.w 4(%sp),%a1 addq.w #7,%a1 move.w %a1,(%a0,%d1.l) lea MISSILE_ypos,%a0 move.w 6(%sp),%a1 subq.w #6,%a1 move.w %a1,(%a0,%d1.l) lea MISSILE_racket,%a0 st (%a0,%d0.l) addq.b #1,%d2 move.b %d2,nbrMissile rts .even .globl DeleteMissile DeleteMissile: movm.l #0x1c20,-(%sp) move.b 21(%sp),%d4 move.b nbrMissile,%d0 cmp.b #20,%d0 jbeq .L637 clr.w StartIntMissiles lea _ROM_CALL_26B:l,%a2 clr.w %d5 move.b %d4,%d5 and.l #255,%d4 move.l %d4,%d3 add.l %d4,%d3 and.w #255,%d0 sub.w %d5,%d0 subq.w #1,%d0 add.w %d0,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d3,%d0 add.l #MISSILE_xpos+2,%d0 move.l %d0,-(%sp) move.l %d3,%d0 add.l #MISSILE_xpos,%d0 move.l %d0,-(%sp) jbsr (%a2) clr.w %d0 move.b nbrMissile,%d0 sub.w %d5,%d0 subq.w #1,%d0 add.w %d0,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d3,%d0 add.l #MISSILE_ypos+2,%d0 move.l %d0,-(%sp) add.l #MISSILE_ypos,%d3 move.l %d3,-(%sp) jbsr (%a2) clr.w %d0 move.b nbrMissile,%d0 sub.w %d5,%d0 subq.w #1,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d4,%d0 add.l #MISSILE_racket+1,%d0 move.l %d0,-(%sp) add.l #MISSILE_racket,%d4 move.l %d4,-(%sp) jbsr (%a2) subq.b #1,nbrMissile move.w #1,StartIntMissiles lea (36,%sp),%sp .L637: movm.l (%sp)+,#0x438 rts .even .globl DrawMissiles DrawMissiles: movm.l #0x1030,-(%sp) clr.w %d3 lea MISSILE_xpos,%a3 lea MISSILE_ypos,%a2 jbra .L639 .L640: move.w (%a2),%d0 cmp.w #7,%d0 jble .L641 move.l ScreenBuffer,-(%sp) move.l SPRITE_MISSILE,-(%sp) move.w #7,-(%sp) addq.w #3,%d0 move.w %d0,-(%sp) move.w (%a3),%d0 addq.w #2,%d0 move.w %d0,-(%sp) jbsr DrawSprite16_SHADOW move.l ScreenBuffer,%a0 move.l SPRITE_MISSILE,%a1 moveq #7,%d2 move.w (%a2),%d1 move.w (%a3),%d0 jbsr FastGraySprite16_MASK_R lea (14,%sp),%sp .L641: addq.w #1,%d3 addq.l #2,%a3 addq.l #2,%a2 .L639: clr.w %d0 move.b nbrMissile,%d0 cmp.w %d3,%d0 jbgt .L640 movm.l (%sp)+,#0xc08 rts .even .globl CREATE_ANIM_MISSILE CREATE_ANIM_MISSILE: move.b nbrMissile_anim,%d2 moveq #0,%d0 move.b %d2,%d0 move.l %d0,%d1 add.l %d0,%d1 lea MISSILE_ANIM_xpos,%a0 move.w 4(%sp),(%a0,%d1.l) lea MISSILE_ANIM_ypos,%a0 move.w 6(%sp),(%a0,%d1.l) lea MISSILE_ANIM_sprite,%a0 move.b #1,(%a0,%d0.l) addq.b #1,%d2 move.b %d2,nbrMissile_anim rts .even .globl Missile_CollideWithScreen Missile_CollideWithScreen: move.l %a2,-(%sp) move.l %d3,-(%sp) clr.w %d3 jbra .L648 .L649: move.w %d3,%a1 lea (%a1,%a1.l),%a2 lea MISSILE_ypos,%a0 cmp.w #8,(%a0,%a2.l) jbne .L650 lea MISSILE_racket,%a0 move.b (%a0,%a1.l),%d0 cmp.b #-1,%d0 jbeq .L652 and.l #255,%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 subq.b #1,36(%a0) .L652: move.w #8,-(%sp) lea MISSILE_xpos,%a0 move.w (%a0,%a2.l),-(%sp) jbsr CREATE_ANIM_MISSILE move.b %d3,%d0 subq.w #1,%d3 move.w %d0,-(%sp) jbsr DeleteMissile addq.l #6,%sp .L650: addq.w #1,%d3 .L648: clr.w %d0 move.b nbrMissile,%d0 cmp.w %d3,%d0 jbgt .L649 move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl KEYS_Shoot KEYS_Shoot: movm.l #0x1820,-(%sp) move.b 17(%sp),%d4 cmp.b #-1,%d4 jbeq .L667 tst.w StartGameForHumain0 jbeq .L667 moveq #1,%d0 jbsr opt_rowread and.w #255,%d0 move.w #__ld_calc_const_0_4_0_0,%d1 asr.w %d1,%d0 btst #0,%d0 jbeq .L660 moveq #0,%d3 move.b %d4,%d3 lea Racket,%a2 lsl.l #2,%d3 move.l (%a2,%d3.l),%a0 tst.w 30(%a0) jbeq .L667 cmp.b #3,4(%a0) jbne .L667 moveq #1,%d0 cmp.l 32(%a0),%d0 jbcc .L667 cmp.b #2,36(%a0) jbhi .L667 tst.w STAT_MISSILES_KEY jbeq .L667 move.w 2(%a0),-(%sp) move.w (%a0),-(%sp) jbsr AddMissiles clr.w %d0 move.b nbrMissile,%d0 subq.w #1,%d0 lea MISSILE_racket,%a0 move.b %d4,(%a0,%d0.w) move.l (%a2,%d3.l),%a0 addq.b #1,36(%a0) move.l (%a2,%d3.l),%a0 clr.l 32(%a0) clr.w STAT_MISSILES_KEY addq.l #4,%sp jbra .L667 .L660: move.w #1,STAT_MISSILES_KEY .L667: movm.l (%sp)+,#0x418 rts .even .globl DELETE_ANIM_MISSILE DELETE_ANIM_MISSILE: movm.l #0x1c20,-(%sp) move.b 21(%sp),%d3 clr.w StartIntMissiles lea _ROM_CALL_26B:l,%a2 clr.w %d5 move.b %d3,%d5 and.l #255,%d3 move.l %d3,%d4 add.l %d3,%d4 clr.w %d0 move.b nbrMissile_anim,%d0 sub.w %d5,%d0 subq.w #1,%d0 add.w %d0,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d4,%d0 add.l #MISSILE_ANIM_xpos+2,%d0 move.l %d0,-(%sp) move.l %d4,%d0 add.l #MISSILE_ANIM_xpos,%d0 move.l %d0,-(%sp) jbsr (%a2) clr.w %d0 move.b nbrMissile_anim,%d0 sub.w %d5,%d0 subq.w #1,%d0 add.w %d0,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d4,%d0 add.l #MISSILE_ANIM_ypos+2,%d0 move.l %d0,-(%sp) add.l #MISSILE_ANIM_ypos,%d4 move.l %d4,-(%sp) jbsr (%a2) clr.w %d0 move.b nbrMissile_anim,%d0 sub.w %d5,%d0 subq.w #1,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d3,%d0 add.l #MISSILE_ANIM_sprite+1,%d0 move.l %d0,-(%sp) add.l #MISSILE_ANIM_sprite,%d3 move.l %d3,-(%sp) jbsr (%a2) subq.b #1,nbrMissile_anim move.w #1,StartIntMissiles lea (36,%sp),%sp movm.l (%sp)+,#0x438 rts .even .globl DRAW_ANIM_MISSILES DRAW_ANIM_MISSILES: movm.l #0x1030,-(%sp) moveq #0,%d3 lea MISSILE_ANIM_xpos,%a3 lea MISSILE_ANIM_ypos,%a2 jbra .L671 .L672: lea MISSILE_ANIM_sprite,%a0 move.b (%a0,%d3.l),%d0 cmp.b #2,%d0 jbhi .L673 move.w (%a2),%d1 cmp.w #7,%d1 jbls .L673 and.l #255,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a0 lea SPRITE_MISSILE,%a1 move.l (%a1,%d0.l),%a1 moveq #3,%d2 move.w (%a3),%d0 jbsr FastGraySprite16_MASK_R .L673: addq.l #1,%d3 addq.l #2,%a3 addq.l #2,%a2 .L671: clr.w %d0 move.b nbrMissile_anim,%d0 cmp.w %d0,%d3 jblt .L672 movm.l (%sp)+,#0xc08 rts .even .globl DeleteAllMissiles DeleteAllMissiles: jbra .L679 .L680: clr.w -(%sp) jbsr DeleteMissile addq.l #2,%sp .L679: tst.b nbrMissile jbne .L680 rts .even .globl Bonus_ActivateColle Bonus_ActivateColle: moveq #0,%d0 move.b 5(%sp),%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 tst.w 38(%a0) jbne .L686 move.w #1,38(%a0) clr.w 40(%a0) .L686: rts .even .globl Bonus_RacketColle Bonus_RacketColle: movm.l #0x1820,-(%sp) move.b 17(%sp),%d4 move.b 19(%sp),%d0 moveq #0,%d3 move.b %d0,%d3 lea Bille,%a2 lsl.l #2,%d3 move.l (%a2,%d3.l),%a0 move.w 18(%a0),34(%a0) move.b %d4,36(%a0) clr.w -(%sp) move.w %d0,-(%sp) jbsr ChangeBilleSpeed move.l (%a2,%d3.l),%a1 move.w #1,42(%a1) and.l #255,%d4 lsl.l #2,%d4 lea Racket,%a0 move.l (%a0,%d4.l),%a0 move.w (%a1),%d0 sub.w (%a0),%d0 move.w %d0,38(%a1) move.w 2(%a1),%d0 sub.w 2(%a0),%d0 move.w %d0,40(%a1) addq.l #4,%sp movm.l (%sp)+,#0x418 rts .even .globl Bonus_BilleInRacketColle Bonus_BilleInRacketColle: move.l %a2,-(%sp) move.l %d3,-(%sp) clr.w %d3 jbra .L690 .L701: move.w %d1,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 move.w 2(%a0),%d0 add.w 40(%a1),%d0 move.w %d0,-(%sp) move.w (%a0),%a0 add.w 38(%a1),%a0 move.w %a0,-(%sp) move.w %d3,-(%sp) jbsr ChangeBillePos addq.l #6,%sp jbra .L696 .L691: move.l (%a2),%a0 tst.w 38(%a0) jbeq .L692 move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a1 tst.w 42(%a1) jbeq .L692 clr.w %d0 move.b 36(%a1),%d0 cmp.w %d0,%d1 jbeq .L701 .L692: addq.w #1,%d1 addq.l #4,%a2 .L697: cmp.w %d1,%d2 jbgt .L691 .L696: addq.w #1,%d3 .L690: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jble .L700 clr.w %d2 move.b nbrRacket,%d2 clr.w %d1 lea Racket,%a2 jbra .L697 .L700: move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl Bonus_RacketNoSticked Bonus_RacketNoSticked: move.l %a2,-(%sp) move.l %d3,-(%sp) move.b 13(%sp),%d0 moveq #0,%d3 move.b %d0,%d3 lea Bille,%a2 lsl.l #2,%d3 move.l (%a2,%d3.l),%a0 move.w 34(%a0),-(%sp) move.w %d0,-(%sp) jbsr ChangeBilleSpeed move.l (%a2,%d3.l),%a1 moveq #0,%d0 move.b 36(%a1),%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 clr.w 40(%a0) clr.w 42(%a1) addq.l #4,%sp move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl Bonus_RacketNoStickedAllBilles Bonus_RacketNoStickedAllBilles: movm.l #0x1820,-(%sp) move.b 17(%sp),%d4 clr.w %d3 lea Bille,%a2 jbra .L705 .L706: move.l (%a2),%a0 cmp.b 36(%a0),%d4 jbne .L707 move.w %d3,-(%sp) jbsr Bonus_RacketNoSticked addq.l #2,%sp .L707: addq.w #1,%d3 addq.l #4,%a2 .L705: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L706 movm.l (%sp)+,#0x418 rts .even .globl Bonus_DesactivateColle Bonus_DesactivateColle: movm.l #0x1820,-(%sp) move.b 17(%sp),%d4 clr.w %d3 lea Bille,%a2 jbra .L712 .L713: move.l (%a2),%a0 tst.w 42(%a0) jbeq .L714 cmp.b 36(%a0),%d4 jbne .L714 move.w %d3,-(%sp) jbsr Bonus_RacketNoSticked moveq #0,%d0 move.b %d4,%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 clr.w 40(%a0) addq.l #2,%sp .L714: addq.w #1,%d3 addq.l #4,%a2 .L712: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L713 moveq #0,%d0 move.b %d4,%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 clr.w 38(%a0) movm.l (%sp)+,#0x418 rts .even .globl KEYS_BonusColle KEYS_BonusColle: movm.l #0x1c30,-(%sp) move.b 25(%sp),%d4 cmp.b #-1,%d4 jbeq .L735 tst.w StartGameForHumain0 jbeq .L735 clr.w %d5 move.b %d4,%d5 move.w %d5,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 tst.w 38(%a0) jbeq .L735 moveq #1,%d3 lea opt_rowread,%a2 move.w #__ld_calc_const_9_1_9_9,%d0 move.w %d3,%d1 lsl.w %d0,%d1 move.w %d1,%d0 jbsr (%a2) and.w #255,%d0 move.w #__ld_calc_const_1_0_1_1,%d1 asr.w %d1,%d0 btst #0,%d0 jbne .L724 move.w #__ld_calc_const_6_1_6_6,%d0 lsl.w %d0,%d3 move.w %d3,%d0 jbsr (%a2) and.w #255,%d0 move.w #__ld_calc_const_6_0_6_6,%d1 asr.w %d1,%d0 btst #0,%d0 jbne .L724 moveq #1,%d0 jbsr (%a2) and.w #255,%d0 move.w #__ld_calc_const_0_4_0_0,%d1 asr.w %d1,%d0 btst #0,%d0 jbeq .L735 .L724: sub.l %a2,%a2 lea Bille,%a3 jbra .L727 .L728: move.l (%a3),%a0 tst.w 42(%a0) jbeq .L729 cmp.b 36(%a0),%d4 jbne .L729 move.w %a2,-(%sp) jbsr Bonus_RacketNoSticked move.w %d5,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 clr.w 40(%a0) addq.l #2,%sp tst.w EndAnimForHumain0 jbne .L729 tst.w StartGameForHumain0 jbeq .L729 tst.w LanceBille jbne .L729 move.w %d4,-(%sp) jbsr Bonus_DesactivateColle move.w #1,LanceBille addq.l #2,%sp .L729: addq.w #1,%a2 addq.l #4,%a3 .L727: clr.w %d0 move.b nbrBille,%d0 cmp.w %a2,%d0 jbgt .L728 .L735: movm.l (%sp)+,#0xc38 rts .even .globl CREATE_ANIM_DOUBLE_RACKET CREATE_ANIM_DOUBLE_RACKET: moveq #0,%d0 move.b 5(%sp),%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 tst.w 42(%a0) jbne .L740 tst.w 50(%a0) jbne .L740 move.w #15,46(%a0) move.w #1,44(%a0) move.b #1,48(%a0) move.w #1,StartIntDoubleRacket .L740: rts .even .globl DestroyDoubleRacket DestroyDoubleRacket: move.l %a2,-(%sp) move.l %d3,-(%sp) moveq #0,%d3 move.b 13(%sp),%d3 lea Racket,%a2 lsl.l #2,%d3 move.l (%a2,%d3.l),%a0 subq.l #2,%sp move.b 49(%a0),1(%sp) jbsr DestroyRacket move.l (%a2,%d3.l),%a0 clr.w 42(%a0) addq.l #2,%sp move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl DESTROY_ANIM_DOUBLE_RACKET DESTROY_ANIM_DOUBLE_RACKET: move.l %a2,-(%sp) move.l %d3,-(%sp) move.b 13(%sp),%d0 moveq #0,%d3 move.b %d0,%d3 lea Racket,%a2 lsl.l #2,%d3 move.l (%a2,%d3.l),%a0 tst.w 42(%a0) jbeq .L746 clr.w StartIntDoubleRacket move.w %d0,-(%sp) jbsr DestroyDoubleRacket move.l (%a2,%d3.l),%a0 move.w #36,46(%a0) move.w #1,44(%a0) move.b #-2,48(%a0) move.w #1,StartIntDoubleRacket addq.l #2,%sp .L746: move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl DrawDoubleRacket_anim DrawDoubleRacket_anim: movm.l #0x1830,-(%sp) clr.w %d3 lea Racket,%a3 jbra .L748 .L749: move.l (%a3),%a2 tst.w 44(%a2) jbeq .L750 move.w (%a2),%d1 add.w 46(%a2),%d1 move.w %d1,%d0 add.w #28,%d0 move.w #186,%d4 cmp.w #215,%d0 jbgt .L754 move.w %d1,%d4 .L754: move.l ScreenBuffer,%a0 move.l SPRITE_RACKETS+24,%a1 moveq #9,%d2 move.w 2(%a2),%d1 move.w %d4,%d0 jbsr FastGraySprite32_MASK_R .L750: addq.w #1,%d3 addq.l #4,%a3 .L748: clr.w %d0 move.b nbrRacket,%d0 cmp.w %d3,%d0 jbgt .L749 movm.l (%sp)+,#0xc18 rts .even .globl AddDoubleRacket AddDoubleRacket: movm.l #0x1820,-(%sp) move.b 17(%sp),%d4 moveq #0,%d3 move.b %d4,%d3 lea Racket,%a2 lsl.l #2,%d3 move.l (%a2,%d3.l),%a0 cmp.b #1,4(%a0) jbne .L762 tst.w 38(%a0) jbne .L762 tst.w 54(%a0) jbne .L762 move.w #1,42(%a0) move.l #65636,-(%sp) move.w 2(%a0),-(%sp) move.w (%a0),%a0 lea (36,%a0),%a0 move.w %a0,-(%sp) jbsr NewRacket move.b nbrRacket,%d1 clr.w %d0 move.b %d1,%d0 subq.w #1,%d0 ext.l %d0 lsl.l #2,%d0 move.l (%a2,%d0.l),%a0 move.w #1,50(%a0) move.b %d4,52(%a0) move.l (%a2,%d3.l),%a0 subq.b #1,%d1 move.b %d1,49(%a0) addq.l #8,%sp .L762: movm.l (%sp)+,#0x418 rts .even .globl Bonus_CreateGhost Bonus_CreateGhost: moveq #0,%d0 move.b 5(%sp),%d0 lea Racket,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 tst.w 54(%a0) jbne .L766 move.w #1,54(%a0) move.b #1,56(%a0) move.l (%a1,%d0.l),%a0 clr.w 58(%a0) clr.w 60(%a0) clr.w 62(%a0) move.w #1,StartIntGhost .L766: rts .even .globl Bonus_DrawGhost Bonus_DrawGhost: movm.l #0x1c30,-(%sp) clr.w %d5 lea Racket,%a3 jbra .L768 .L769: move.l (%a3),%a2 tst.w 54(%a2) jbeq .L770 tst.w 60(%a2) jbeq .L770 move.w (%a2),%d1 move.w 58(%a2),%d0 cmp.b #1,56(%a2) jbne .L773 add.w %d1,%d0 move.w %d0,%d3 add.w #-13,%d3 move.w %d0,%d4 add.w #-35,%d4 jbra .L775 .L773: sub.w %d0,%d1 move.w %d1,%d3 add.w #15,%d3 move.w %d1,%d4 add.w #37,%d4 .L775: cmp.w #13,58(%a2) jble .L776 move.l ScreenBuffer,%a0 move.l SPRITE_RACKETS+240,%a1 moveq #9,%d2 move.w 2(%a2),%d1 move.w %d3,%d0 jbsr FastGraySprite32_MASK_R .L776: move.l (%a3),%a2 cmp.w #37,58(%a2) jble .L770 move.l ScreenBuffer,%a0 move.l SPRITE_RACKETS+216,%a1 moveq #9,%d2 move.w 2(%a2),%d1 move.w %d4,%d0 jbsr FastGraySprite32_MASK_R .L770: addq.w #1,%d5 addq.l #4,%a3 .L768: clr.w %d0 move.b nbrRacket,%d0 cmp.w %d5,%d0 jbgt .L769 movm.l (%sp)+,#0xc38 rts .even .globl Bonus_DeleteGhost Bonus_DeleteGhost: moveq #0,%d0 move.b 5(%sp),%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 clr.w 54(%a0) move.w #1,StartIntGhost rts .even .globl Bonus_Slow Bonus_Slow: movm.l #0x1820,-(%sp) move.b 17(%sp),%d4 clr.w %d3 lea Bille,%a2 jbra .L784 .L785: move.l (%a2),%a0 cmp.b 36(%a0),%d4 jbne .L786 move.w #85,-(%sp) move.w %d3,-(%sp) jbsr ChangeBilleSpeed addq.l #4,%sp .L786: addq.w #1,%d3 addq.l #4,%a2 .L784: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L785 movm.l (%sp)+,#0x418 rts .even .globl Bonus_BilleFire Bonus_BilleFire: move.b 5(%sp),%d2 clr.w %d1 move.b nbrBille,%d1 clr.w %d0 lea Bille,%a1 jbra .L791 .L792: move.l (%a1),%a0 cmp.b 36(%a0),%d2 jbne .L793 move.w #1,12(%a0) .L793: addq.w #1,%d0 addq.l #4,%a1 .L791: cmp.w %d0,%d1 jbgt .L792 rts .even .globl Bonus_BilleNoFire Bonus_BilleNoFire: move.b 5(%sp),%d2 clr.w %d1 move.b nbrBille,%d1 clr.w %d0 lea Bille,%a1 jbra .L798 .L799: move.l (%a1),%a0 cmp.b 36(%a0),%d2 jbne .L800 clr.w 12(%a0) .L800: addq.w #1,%d0 addq.l #4,%a1 .L798: cmp.w %d0,%d1 jbgt .L799 rts .even .globl Bonus_Add5Billes Bonus_Add5Billes: movm.l #0x1f38,-(%sp) move.b 37(%sp),%d0 move.w %d0,%a4 move.b nbrBille,%d2 clr.w %d1 jbra .L805 .L806: move.w %a3,%d3 moveq #0,%d0 move.b %d3,%d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 addq.w #1,%d1 move.w %a4,%d0 cmp.b 36(%a0),%d0 jbeq .L807 .L805: move.w %d1,%a3 cmp.b %d1,%d2 jbhi .L806 jbra .L812 .L807: move.w (%a0),%d4 move.w 2(%a0),%d7 move.w 18(%a0),%d6 move.w 12(%a0),%d5 jbra .L809 .L812: move.w %a4,%d3 moveq #0,%d0 move.b %d3,%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 move.b 5(%a0),%d0 lsr.l #1,%d0 moveq #127,%d1 and.l %d1,%d0 move.w (%a0),%d4 add.w %d0,%d4 move.w 2(%a0),%d7 subq.w #5,%d7 move.w %a4,-(%sp) move.l #5570560,-(%sp) move.w #45,-(%sp) move.w %d7,-(%sp) move.w %d4,-(%sp) jbsr NewBille move.b nbrBille,%d3 subq.b #1,%d3 move.w %d3,%a3 moveq #85,%d6 clr.w %d5 lea (12,%sp),%sp .L809: move.w %d7,%d3 subq.w #1,%d3 move.w %a4,-(%sp) move.w %d5,-(%sp) move.w %d6,-(%sp) move.w #96,-(%sp) move.w %d3,-(%sp) move.w %d4,%d0 subq.w #5,%d0 move.w %d0,-(%sp) lea NewBille,%a2 jbsr (%a2) move.w %a4,-(%sp) move.w %d5,-(%sp) move.w %d6,-(%sp) move.w #32,-(%sp) move.w %d3,-(%sp) move.w %d4,%d1 addq.w #5,%d1 move.w %d1,-(%sp) jbsr (%a2) move.w %a4,-(%sp) move.w %d5,-(%sp) move.w %d6,-(%sp) move.w %a3,%d3 moveq #0,%d0 move.b %d3,%d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.b 10(%a0),%d0 add.b #-128,%d0 move.w %d0,-(%sp) move.w %d7,%d0 subq.w #5,%d0 move.w %d0,-(%sp) move.w %d4,-(%sp) jbsr (%a2) move.w %d7,%d3 addq.w #5,%d3 lea (34,%sp),%sp move.w %a4,(%sp) move.w %d5,-(%sp) move.w %d6,-(%sp) move.w #-96,-(%sp) move.w %d3,-(%sp) move.w %d4,%d1 subq.w #3,%d1 move.w %d1,-(%sp) jbsr (%a2) move.w %a4,-(%sp) move.w %d5,-(%sp) move.w %d6,-(%sp) move.w #-32,-(%sp) move.w %d3,-(%sp) addq.w #3,%d4 move.w %d4,-(%sp) jbsr (%a2) lea (24,%sp),%sp movm.l (%sp)+,#0x1cf8 rts .even .globl Bonus_Add3Billes Bonus_Add3Billes: movm.l #0x1f20,-(%sp) move.b 29(%sp),%d7 clr.w %d3 move.b %d7,%d3 move.w %d3,%d0 ext.l %d0 lea Racket,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 tst.w 64(%a0) jbne .L823 move.w #1,64(%a0) tst.w 42(%a0) jbne .L816 .L817: move.b nbrBille,%d2 clr.w %d1 jbra .L818 .L816: moveq #0,%d0 move.b 49(%a0),%d0 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 move.w #1,64(%a0) jbra .L817 .L819: and.l #255,%d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 addq.w #1,%d1 cmp.b 36(%a0),%d7 jbeq .L820 .L818: move.b %d1,%d0 cmp.b %d1,%d2 jbhi .L819 jbra .L824 .L820: move.w (%a0),%d6 move.w 2(%a0),%d3 move.w 18(%a0),%d5 move.w 12(%a0),%d4 .L822: subq.w #1,%d3 move.w %d7,-(%sp) move.w %d4,-(%sp) move.w %d5,-(%sp) move.w #96,-(%sp) move.w %d3,-(%sp) move.w %d6,%d0 subq.w #5,%d0 move.w %d0,-(%sp) lea NewBille,%a2 jbsr (%a2) move.w %d7,-(%sp) move.w %d4,-(%sp) move.w %d5,-(%sp) move.w #32,-(%sp) move.w %d3,-(%sp) addq.w #5,%d6 move.w %d6,-(%sp) jbsr (%a2) lea (24,%sp),%sp jbra .L823 .L824: move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 move.b 5(%a0),%d0 lsr.l #1,%d0 moveq #127,%d1 and.l %d1,%d0 move.w (%a0),%d6 add.w %d0,%d6 move.w 2(%a0),%d3 subq.w #5,%d3 move.w %d7,-(%sp) move.l #5570560,-(%sp) move.w #45,-(%sp) move.w %d3,-(%sp) move.w %d6,-(%sp) jbsr NewBille moveq #85,%d5 clr.w %d4 lea (12,%sp),%sp jbra .L822 .L823: movm.l (%sp)+,#0x4f8 rts .even .globl Bonus_3Billes Bonus_3Billes: movm.l #0x1f30,-(%sp) clr.w %d4 lea Racket,%a2 jbra .L826 .L827: move.l (%a2),%a1 tst.w 64(%a1) jbeq .L828 move.b nbrBille,%d3 clr.b %d6 clr.w %d1 jbra .L830 .L831: and.l #255,%d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 clr.w %d0 move.b 36(%a0),%d0 cmp.w %d0,%d4 jbne .L832 addq.b #1,%d6 .L832: addq.w #1,%d1 cmp.b #3,%d6 jbeq .L834 .L830: move.b %d1,%d0 cmp.b %d1,%d3 jbhi .L831 .L834: move.b %d6,%d0 subq.b #1,%d0 cmp.b #1,%d0 jbhi .L828 tst.w 66(%a1) jbeq .L828 clr.w %d2 jbra .L837 .L838: addq.w #1,%d2 moveq #0,%d0 move.b %d1,%d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 clr.w %d0 move.b 36(%a0),%d0 cmp.w %d0,%d4 jbeq .L839 .L837: move.b %d2,%d1 cmp.b %d2,%d3 jbhi .L838 .L839: moveq #0,%d0 move.b %d1,%d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.w 18(%a0),%d5 move.w 12(%a0),%d7 tst.w 42(%a0) jbne .L840 sub.l %a3,%a3 jbra .L842 .L840: move.w 34(%a0),%d5 move.w #1,%a3 .L842: clr.w %d3 jbra .L843 .L844: move.l (%a2),%a0 move.w %d4,-(%sp) move.w %d7,-(%sp) move.w %d5,-(%sp) move.b %d3,%d0 lsl.b #6,%d0 add.b #32,%d0 move.w %d0,-(%sp) move.w 2(%a0),%d0 subq.w #5,%d0 move.w %d0,-(%sp) move.b 5(%a0),%d0 lsr.l #1,%d0 moveq #127,%d1 and.l %d1,%d0 add.w (%a0),%d0 move.w %d0,-(%sp) jbsr NewBille lea (12,%sp),%sp move.w %a3,%d0 jbeq .L845 move.b nbrBille,%d0 subq.b #1,%d0 move.w %d0,-(%sp) move.w %d4,-(%sp) jbsr Bonus_RacketColle addq.l #4,%sp .L845: addq.w #1,%d3 .L843: clr.w %d0 move.b %d6,%d0 moveq #3,%d1 sub.w %d0,%d1 cmp.w %d3,%d1 jbgt .L844 .L828: addq.w #1,%d4 addq.l #4,%a2 .L826: clr.w %d0 move.b nbrRacket,%d0 cmp.w %d4,%d0 jbgt .L827 movm.l (%sp)+,#0xcf8 rts .even .globl NewBonus NewBonus: move.b nbrBonus,%d2 cmp.b #20,%d2 jbeq .L852 moveq #0,%d0 move.b %d2,%d0 move.l %d0,%d1 add.l %d0,%d1 lea BONUS_xpos,%a0 move.w 4(%sp),(%a0,%d1.l) lea BONUS_ypos,%a0 move.w 6(%sp),(%a0,%d1.l) lea BONUS_SHOWANIM,%a0 clr.b (%a0,%d0.l) lea BONUS_TYPE,%a0 move.b 9(%sp),(%a0,%d0.l) lea BONUS_SPRITE_ANIM,%a0 clr.b (%a0,%d0.l) addq.b #1,%d2 move.b %d2,nbrBonus move.w #1,INT_START_BONUS .L852: rts .even .globl DeleteBonus DeleteBonus: movm.l #0x1c20,-(%sp) move.b 21(%sp),%d3 clr.w INT_START_BONUS lea _ROM_CALL_26B:l,%a2 clr.w %d5 move.b %d3,%d5 and.l #255,%d3 move.l %d3,%d4 add.l %d3,%d4 clr.w %d0 move.b nbrBonus,%d0 sub.w %d5,%d0 subq.w #1,%d0 add.w %d0,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d4,%d0 add.l #BONUS_xpos+2,%d0 move.l %d0,-(%sp) move.l %d4,%d0 add.l #BONUS_xpos,%d0 move.l %d0,-(%sp) jbsr (%a2) clr.w %d0 move.b nbrBonus,%d0 sub.w %d5,%d0 subq.w #1,%d0 add.w %d0,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d4,%d0 add.l #BONUS_ypos+2,%d0 move.l %d0,-(%sp) add.l #BONUS_ypos,%d4 move.l %d4,-(%sp) jbsr (%a2) clr.w %d0 move.b nbrBonus,%d0 sub.w %d5,%d0 subq.w #1,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d3,%d0 add.l #BONUS_SHOWANIM+1,%d0 move.l %d0,-(%sp) move.l %d3,%d0 add.l #BONUS_SHOWANIM,%d0 move.l %d0,-(%sp) jbsr (%a2) lea (36,%sp),%sp clr.w %d0 move.b nbrBonus,%d0 sub.w %d5,%d0 subq.w #1,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d3,%d0 add.l #BONUS_TYPE+1,%d0 move.l %d0,-(%sp) move.l %d3,%d0 add.l #BONUS_TYPE,%d0 move.l %d0,-(%sp) jbsr (%a2) clr.w %d0 move.b nbrBonus,%d0 sub.w %d5,%d0 subq.w #1,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d3,%d0 add.l #BONUS_SPRITE_ANIM+1,%d0 move.l %d0,-(%sp) add.l #BONUS_SPRITE_ANIM,%d3 move.l %d3,-(%sp) jbsr (%a2) subq.b #1,nbrBonus move.w #1,INT_START_BONUS lea (24,%sp),%sp movm.l (%sp)+,#0x438 rts .even .globl DrawAllBonus DrawAllBonus: movm.l #0x1c3c,-(%sp) moveq #0,%d5 lea BONUS_TYPE,%a5 lea BONUS_xpos,%a4 lea BONUS_ypos,%a3 jbra .L856 .L857: cmp.b #9,(%a5) seq %d3 neg.b %d3 move.w (%a3),%d2 move.w %d2,%d0 add.w #10,%d0 cmp.w #198,%d0 jbgt .L858 move.w (%a4),%d1 move.w %d1,%d0 add.w #17,%d0 cmp.w #214,%d0 jbgt .L858 move.l ScreenBuffer,-(%sp) move.l SPRITE_BONUS_mask+4,-(%sp) move.w #7,-(%sp) addq.w #3,%d2 move.w %d2,-(%sp) addq.w #3,%d1 move.w %d1,-(%sp) jbsr DrawBonusShadow lea (14,%sp),%sp .L858: move.w (%a3),%d4 move.w %d4,%d0 addq.w #6,%d0 cmp.w #215,%d0 jbgt .L861 moveq #0,%d2 move.b %d3,%d2 lsl.l #2,%d2 moveq #0,%d0 move.b (%a5),%d0 lea BONUS_SPRITE_ANIM,%a0 moveq #0,%d1 move.b (%a0,%d5.l),%d1 lsl.l #3,%d0 add.l %d1,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a0 lea SPRITE_BONUS_mask,%a1 move.l (%a1,%d2.l),%a2 lea SPRITE_BONUS,%a1 move.l (%a1,%d0.l),%a1 moveq #7,%d2 move.w %d4,%d1 move.w (%a4),%d0 jbsr DrawBonus .L861: addq.l #1,%d5 addq.l #1,%a5 addq.l #2,%a4 addq.l #2,%a3 .L856: clr.w %d0 move.b nbrBonus,%d0 cmp.w %d0,%d5 jblt .L857 movm.l (%sp)+,#0x3c38 rts .even .globl Bonus_CollideWithScreen Bonus_CollideWithScreen: move.l %d3,-(%sp) clr.w %d3 jbra .L866 .L867: move.w %d3,%a0 add.l %a0,%a0 lea BONUS_ypos,%a1 cmp.w #193,(%a1,%a0.l) jbne .L868 move.b %d3,%d0 subq.w #1,%d3 move.w %d0,-(%sp) jbsr DeleteBonus addq.l #2,%sp .L868: addq.w #1,%d3 .L866: clr.w %d0 move.b nbrBonus,%d0 cmp.w %d3,%d0 jbgt .L867 move.l (%sp)+,%d3 rts .even .globl SetBonus SetBonus: move.w #80,-(%sp) jbsr GCL_Random move.b %d0,%d1 addq.l #2,%sp cmp.b #3,%d0 jbhi .L873 clr.b %d0 jbra .L875 .L873: subq.b #4,%d0 cmp.b #3,%d0 jbhi .L876 moveq #1,%d0 jbra .L875 .L876: move.b %d1,%d0 subq.b #8,%d0 cmp.b #2,%d0 jbhi .L878 moveq #2,%d0 jbra .L875 .L878: move.b %d1,%d0 add.b #-11,%d0 cmp.b #2,%d0 jbhi .L880 moveq #3,%d0 jbra .L875 .L880: move.b %d1,%d0 add.b #-14,%d0 cmp.b #3,%d0 jbhi .L882 moveq #4,%d0 jbra .L875 .L882: cmp.b #18,%d1 jbne .L884 moveq #5,%d0 jbra .L875 .L884: cmp.b #19,%d1 jbne .L886 moveq #6,%d0 jbra .L875 .L886: move.b %d1,%d0 add.b #-20,%d0 cmp.b #1,%d0 jbhi .L888 moveq #7,%d0 jbra .L875 .L888: move.b %d1,%d0 add.b #-22,%d0 cmp.b #1,%d0 jbhi .L890 moveq #8,%d0 jbra .L875 .L890: move.b %d1,%d0 add.b #-24,%d0 cmp.b #3,%d0 jbhi .L892 moveq #9,%d0 jbra .L875 .L892: move.b %d1,%d0 add.b #-28,%d0 cmp.b #2,%d0 jbhi .L894 moveq #10,%d0 jbra .L875 .L894: move.b %d1,%d0 add.b #-31,%d0 cmp.b #1,%d0 jbhi .L896 moveq #11,%d0 jbra .L875 .L896: cmp.b #33,%d1 jbne .L900 moveq #12,%d0 .L875: move.w %d0,-(%sp) move.w 8(%sp),-(%sp) move.w 8(%sp),-(%sp) jbsr NewBonus addq.l #6,%sp .L900: rts .even .globl Test_Collide_0 Test_Collide_0: movm.l #0x1e00,-(%sp) move.w 26(%sp),%a0 move.b 31(%sp),%d1 move.b 35(%sp),%d3 move.b 29(%sp),%d0 lsr.l #1,%d0 moveq #127,%d6 and.l %d0,%d6 move.b 33(%sp),%d0 lsr.l #1,%d0 moveq #127,%d5 and.l %d0,%d5 move.w 20(%sp),%d2 add.w %d6,%d2 move.w 24(%sp),%d0 add.w %d5,%d0 sub.w %d0,%d2 jbpl .L902 neg.w %d2 .L902: lsr.b #1,%d1 clr.w %d4 move.b %d1,%d4 lsr.b #1,%d3 and.w #255,%d3 move.w 22(%sp),%d1 add.w %d4,%d1 add.w %d3,%a0 sub.w %a0,%d1 jbpl .L903 neg.w %d1 .L903: move.w %d6,%d0 add.w %d5,%d0 cmp.w %d2,%d0 jble .L904 move.w %d4,%a1 add.w %d3,%a1 cmp.w %a1,%d1 jbge .L904 move.w %d0,%a0 sub.w %d2,%a0 move.w %a1,%d0 sub.w %d1,%d0 cmp.w %a0,%d0 jblt .L909 move.w %a0,%d0 jbra .L909 .L904: clr.w %d0 .L909: movm.l (%sp)+,#0x78 rts .even .globl DeleteAllBonus DeleteAllBonus: jbra .L912 .L913: clr.w -(%sp) jbsr DeleteBonus addq.l #2,%sp .L912: tst.b nbrBonus jbne .L913 rts .even .globl ShowIndicators ShowIndicators: movm.l #0x1f3e,-(%sp) move.b GRAPHIC_MODE,%d0 tst.w __calculator jbeq .L917 tst.b %d0 jbne .L975 clr.w %d3 lea Bille,%a4 jbra .L921 .L922: move.l (%a4),%a3 move.w 2(%a3),%a1 move.w yScroll,%d1 move.w %a1,%d0 addq.w #4,%d0 cmp.w %d0,%d1 sgt %d0 ext.w %d0 neg.w %d0 move.w %d1,%a0 lea (127,%a0),%a0 jbne .L923 move.w %a0,%d2 cmp.w %a1,%d2 jbge .L925 .L923: cmp.b #-1,17(%a3) seq %d2 neg.b %d2 eor.b #1,%d2 tst.w %d0 jbne .L926 add.w #119,%d1 .L926: moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 lea SPRITE_FLECHE,%a0 move.l (%a0,%d0.l),%a2 move.l ScreenBuffer,%a0 move.l %a2,%a1 moveq #8,%d2 move.w (%a3),%d0 jbsr DrawFleche .L925: addq.w #1,%d3 addq.l #4,%a4 .L921: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L922 clr.w %d3 lea Racket,%a4 jbra .L929 .L930: move.l (%a4),%a3 move.w 2(%a3),%a0 move.w yScroll,%d1 move.w %d1,%a1 lea (127,%a1),%a1 clr.w %d0 move.b 8(%a3),%d0 add.w %a0,%d0 cmp.w %d0,%d1 jble .L931 clr.b %d0 jbra .L933 .L931: move.w %a1,%d0 cmp.w %a0,%d0 jbge .L934 add.w #119,%d1 moveq #1,%d0 .L933: and.l #255,%d0 lsl.l #2,%d0 lea SPRITE_FLECHE,%a0 move.l (%a0,%d0.l),%a2 move.b 7(%a3),%d0 lsr.l #1,%d0 moveq #127,%d2 and.l %d2,%d0 move.l ScreenBuffer,%a0 move.l %a2,%a1 moveq #8,%d2 add.w (%a3),%d0 jbsr DrawFleche .L934: addq.w #1,%d3 addq.l #4,%a4 .L929: clr.w %d0 move.b nbrRacket,%d0 cmp.w %d3,%d0 jbgt .L930 jbra .L975 .L917: tst.b %d0 jbne .L975 sub.l %a4,%a4 clr.w %d7 lea Bille,%a3 jbra .L937 .L938: move.l (%a3),%a2 move.w (%a2),%a1 move.w xScroll,%d6 move.w %a1,%d0 addq.w #4,%d0 cmp.w %d0,%d6 sgt %d0 move.b %d0,%d5 ext.w %d5 neg.w %d5 move.w %d6,%d0 add.w #159,%d0 cmp.w %a1,%d0 slt %d0 move.b %d0,%d4 ext.w %d4 neg.w %d4 move.w 2(%a2),%a0 move.w yScroll,%d1 move.w %a0,%d0 addq.w #4,%d0 cmp.w %d0,%d1 sgt %d0 move.b %d0,%d2 ext.w %d2 neg.w %d2 move.w %d1,%d0 add.w #99,%d0 cmp.w %a0,%d0 slt %d0 ext.w %d0 neg.w %d0 tst.w %d5 jbne .L939 tst.w %d4 jbne .L939 tst.w %d2 jbne .L939 tst.w %d0 jbeq .L943 .L939: move.w %a1,%d3 addq.w #2,%d3 addq.w #2,%a0 tst.w %d2 jbne .L944 tst.w %d0 jbne .L944 move.w %a0,%d1 jbra .L947 .L944: cmp.b #-1,17(%a2) seq %d0 neg.b %d0 eor.b #1,%d0 move.w %d0,%a4 tst.w %d2 jbne .L947 add.w #91,%d1 .L947: tst.w %d5 jbne .L949 tst.w %d4 jbeq .L951 .L949: cmp.b #-1,16(%a2) sne %d0 moveq #2,%d2 sub.b %d0,%d2 move.w %d2,%a4 tst.w %d5 jbeq .L955 move.w %d6,%d3 jbra .L951 .L955: move.w %d6,%d3 add.w #151,%d3 .L951: move.w %a4,%d2 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 lea SPRITE_FLECHE,%a0 move.l (%a0,%d0.l),%a2 move.l ScreenBuffer,%a0 move.l %a2,%a1 moveq #8,%d2 move.w %d3,%d0 jbsr DrawFleche .L943: addq.w #1,%d7 addq.l #4,%a3 .L937: clr.w %d0 move.b nbrBille,%d0 cmp.w %d7,%d0 jbgt .L938 sub.l %a6,%a6 lea Racket,%a5 jbra .L958 .L959: move.l (%a5),%a0 move.w (%a0),%a2 move.b 7(%a0),%d4 move.w xScroll,%d7 clr.w %d0 move.b %d4,%d0 add.w %a2,%d0 cmp.w %d0,%d7 sgt %d0 move.b %d0,%d6 ext.w %d6 neg.w %d6 move.w %d7,%d0 add.w #159,%d0 cmp.w %a2,%d0 slt %d0 move.b %d0,%d5 ext.w %d5 neg.w %d5 move.w 2(%a0),%a1 move.b 8(%a0),%d3 move.w yScroll,%a3 clr.w %d0 move.b %d3,%d0 add.w %a1,%d0 cmp.w %a3,%d0 slt %d0 move.b %d0,%d1 ext.w %d1 neg.w %d1 move.w %a3,%d0 add.w #99,%d0 cmp.w %a1,%d0 slt %d0 move.b %d0,%d2 ext.w %d2 neg.w %d2 tst.w %d6 jbne .L960 tst.w %d5 jbne .L960 tst.w %d1 jbne .L960 tst.w %d2 jbeq .L964 .L960: lsr.b #1,%d4 clr.w %d0 move.b %d4,%d0 move.w %a2,%a0 add.w %d0,%a0 lsr.b #1,%d3 clr.w %d0 move.b %d3,%d0 add.w %a1,%d0 tst.w %d1 jbeq .L965 sub.l %a4,%a4 jbra .L967 .L965: tst.w %d2 jbne .L968 move.w %d0,%a3 jbra .L967 .L968: lea (91,%a3),%a3 move.w #1,%a4 .L967: tst.w %d6 jbeq .L970 move.w #2,%a4 jbra .L972 .L970: tst.w %d5 jbne .L973 move.w %a0,%d7 jbra .L972 .L973: add.w #151,%d7 move.w #3,%a4 .L972: move.w %a4,%d1 moveq #0,%d0 move.b %d1,%d0 lsl.l #2,%d0 lea SPRITE_FLECHE,%a0 move.l (%a0,%d0.l),%a2 move.l ScreenBuffer,%a0 move.l %a2,%a1 moveq #8,%d2 move.w %a3,%d1 move.w %d7,%d0 jbsr DrawFleche .L964: addq.w #1,%a6 addq.l #4,%a5 .L958: clr.w %d0 move.b nbrRacket,%d0 cmp.w %a6,%d0 jbgt .L959 .L975: movm.l (%sp)+,#0x7cf8 rts .even .globl KEYS_MoveRacket KEYS_MoveRacket: movm.l #0x1f20,-(%sp) move.b 29(%sp),%d0 clr.w %d5 move.b %d0,%d5 move.w %d5,%d1 ext.l %d1 lsl.l #2,%d1 lea Racket,%a0 move.l (%a0,%d1.l),%a0 move.b 22(%a0),%d4 cmp.b #-1,%d0 jbeq .L1005 tst.w StartGameForHumain0 jbeq .L1005 tst.b %d4 jbeq .L1005 clr.b 22(%a0) moveq #1,%d3 move.w #__ld_calc_const_0_0xF_0_0,%d0 move.w %d3,%d7 lsl.w %d0,%d7 move.w %d7,%d0 not.w %d0 jbsr _rowread move.w #__ld_calc_const_3_0xF_3_3,%d1 move.w %d1,%d6 lsl.w %d1,%d3 and.w %d3,%d0 jbeq .L981 lsl.b #1,%d4 .L981: lea opt_rowread,%a2 moveq #1,%d0 jbsr (%a2) and.w #255,%d0 move.w #__ld_calc_const_4_1_4_4,%d1 asr.w %d1,%d0 btst #0,%d0 jbeq .L983 neg.b %d4 jbra .L985 .L983: moveq #1,%d0 jbsr (%a2) and.w #255,%d0 move.w #__ld_calc_const_6_3_6_6,%d1 asr.w %d1,%d0 btst #0,%d0 jbne .L985 clr.w %d1 jbra .L987 .L985: move.w %d5,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 move.b %d4,%d0 ext.w %d0 add.w %d0,(%a0) moveq #1,%d1 .L987: move.w %d5,%d0 ext.l %d0 lea Racket,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 tst.w 42(%a0) jbeq .L988 tst.w %d1 jbeq .L988 moveq #0,%d0 move.b 49(%a0),%d0 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 move.b %d4,%d0 ext.w %d0 add.w %d0,(%a0) .L988: ext.l %d5 lea Racket,%a2 move.l %d5,%d3 lsl.l #2,%d3 move.l (%a2,%d3.l),%a0 tst.w 54(%a0) jbeq .L991 tst.w %d1 jbeq .L991 move.w (%a0),%d0 add.w #-9,%d0 cmp.w #176,%d0 jbhi .L991 move.w #1,62(%a0) move.w #1,60(%a0) addq.w #1,58(%a0) move.w %d7,%d0 jbsr opt_rowread and.w #255,%d0 asr.w %d6,%d0 btst #0,%d0 jbeq .L995 move.l (%a2,%d3.l),%a0 addq.w #2,58(%a0) .L995: move.l %d5,%d0 move.l %a2,%a1 move.l (%a2,%d3.l),%a0 tst.b %d4 jble .L997 cmp.b #1,56(%a0) jbne .L999 st 56(%a0) jbra .L1006 .L999: st 56(%a0) jbra .L1001 .L997: cmp.b #-1,56(%a0) jbne .L1002 move.b #1,56(%a0) .L1006: move.l (%a1,%d3.l),%a0 move.w #14,58(%a0) jbra .L1001 .L1002: move.b #1,56(%a0) .L1001: lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 cmp.w #56,58(%a0) jble .L1005 move.w #56,58(%a0) jbra .L1005 .L991: clr.w 62(%a0) .L1005: movm.l (%sp)+,#0x4f8 rts .even .globl TestCollideSquare TestCollideSquare: movm.l #0x1e00,-(%sp) move.w 20(%sp),%d5 move.w 22(%sp),%d3 move.w 24(%sp),%d6 move.w 26(%sp),%d4 clr.w %d0 move.b 35(%sp),%d0 move.w %d4,%a0 add.w %d0,%a0 cmp.w %a0,%d3 jbgt .L1008 clr.w %d0 move.b 31(%sp),%d0 move.w %d3,%a1 add.w %d0,%a1 cmp.w %a1,%d4 jbgt .L1008 clr.w %d0 move.b 33(%sp),%d0 move.w %d6,%d2 add.w %d0,%d2 cmp.w %d2,%d5 jbgt .L1008 clr.w %d0 move.b 29(%sp),%d0 move.w %d5,%d1 add.w %d0,%d1 cmp.w %d6,%d1 jblt .L1008 sub.w %d3,%a0 addq.w #1,%a0 sub.w %d4,%a1 addq.w #1,%a1 move.w %d2,%d0 sub.w %d5,%d0 addq.w #1,%d0 sub.w %d6,%d1 addq.w #1,%d1 cmp.w %d1,%d0 jble .L1013 move.w %d1,%d0 .L1013: move.w %a0,%d1 cmp.w %a1,%d1 jble .L1015 move.w %a1,%a0 .L1015: cmp.w %a0,%d0 jble .L1017 move.w %a0,%d0 .L1017: tst.w %d0 jbne .L1021 moveq #1,%d0 jbra .L1021 .L1008: clr.w %d0 .L1021: movm.l (%sp)+,#0x78 rts .even .globl GetDirCollideSquare GetDirCollideSquare: move.w 4(%sp),%a0 move.w 6(%sp),%d1 move.w 8(%sp),%d2 move.w 10(%sp),%a1 clr.w %d0 move.b 19(%sp),%d0 add.w %a1,%d0 cmp.w %d0,%d1 jbgt .L1024 clr.w %d0 move.b 15(%sp),%d0 add.w %d0,%d1 cmp.w %a1,%d1 jblt .L1024 clr.w %d0 move.b 17(%sp),%d0 add.w %d2,%d0 cmp.w %a0,%d0 jblt .L1027 clr.w %d0 move.b 13(%sp),%d0 add.w %d0,%a0 cmp.w %a0,%d2 jbgt .L1027 clr.w %d0 rts .L1024: moveq #2,%d0 rts .L1027: moveq #1,%d0 rts .even .globl GetDirCollideSquare2 GetDirCollideSquare2: move.l %d3,-(%sp) move.w 12(%sp),%a1 move.w 14(%sp),%a0 move.b 17(%sp),%d3 move.b 19(%sp),%d0 lsr.l #1,%d0 moveq #127,%d1 and.l %d1,%d0 move.w 10(%sp),%d1 add.w %d0,%d1 clr.w %d0 move.b 23(%sp),%d0 add.w %a0,%d0 cmp.w %d0,%d1 sgt %d2 neg.b %d2 cmp.w %a0,%d1 jbge .L1033 or.b #2,%d2 .L1033: lsr.b #1,%d3 clr.w %d0 move.b %d3,%d0 move.w 8(%sp),%d1 add.w %d0,%d1 clr.w %d0 move.b 21(%sp),%d0 add.w %a1,%d0 cmp.w %d0,%d1 jble .L1035 or.b #4,%d2 .L1035: cmp.w %a1,%d1 jbge .L1037 or.b #8,%d2 .L1037: clr.w %d0 move.b %d2,%d0 move.l (%sp)+,%d3 rts .even .globl CollideWithScreen CollideWithScreen: move.l %a2,-(%sp) move.l %d3,-(%sp) clr.w %d3 lea Bille,%a2 jbra .L1041 .L1042: move.l (%a2),%a0 move.w (%a0),%d0 cmp.w #7,%d0 jbgt .L1043 move.w 2(%a0),-(%sp) move.w #8,-(%sp) jbra .L1054 .L1043: addq.w #4,%d0 cmp.w #215,%d0 jble .L1045 move.w 2(%a0),-(%sp) move.w #211,-(%sp) .L1054: move.w %d3,-(%sp) jbsr ChangeBillePos move.l (%a2),%a0 moveq #-128,%d0 sub.b 10(%a0),%d0 move.w %d0,-(%sp) move.w %d3,-(%sp) jbsr AngleBille lea (10,%sp),%sp .L1045: move.l (%a2),%a0 cmp.w #7,2(%a0) jbgt .L1047 move.w #8,-(%sp) move.w (%a0),-(%sp) move.w %d3,-(%sp) jbsr ChangeBillePos move.l (%a2),%a0 move.b 10(%a0),%d0 neg.b %d0 move.w %d0,-(%sp) move.w %d3,-(%sp) jbsr AngleBille lea (10,%sp),%sp .L1047: move.l (%a2),%a0 move.w #1,14(%a0) move.w 2(%a0),%d0 addq.w #8,%d0 cmp.w #199,%d0 jbgt .L1049 move.w (%a0),%d0 addq.w #8,%d0 cmp.w #215,%d0 jble .L1051 .L1049: clr.w 14(%a0) .L1051: addq.w #1,%d3 addq.l #4,%a2 .L1041: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L1042 move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl CREATE_ANIM_BLOCK CREATE_ANIM_BLOCK: move.l %d4,-(%sp) move.l %d3,-(%sp) move.w 12(%sp),%d2 move.w 14(%sp),%d3 move.b nbrAnimBlocks,%d4 cmp.b #10,%d4 jbeq .L1058 moveq #0,%d0 move.b %d4,%d0 move.l %d0,%d1 add.l %d0,%d1 lsl.w #4,%d2 lea AnimBlock_x,%a0 addq.w #8,%d2 move.w %d2,(%a0,%d1.l) muls.w #7,%d3 lea AnimBlock_y,%a0 addq.w #8,%d3 move.w %d3,(%a0,%d1.l) lea AnimBlock_sprite,%a0 move.b 17(%sp),%d1 and.b #15,%d1 move.b %d1,(%a0,%d0.l) lea AnimBlock_counter,%a0 clr.b (%a0,%d0.l) addq.b #1,%d4 move.b %d4,nbrAnimBlocks move.w #1,StartInt1 .L1058: move.l (%sp)+,%d3 move.l (%sp)+,%d4 rts .even .globl CollideWithBlock CollideWithBlock: lea (-44,%sp),%sp movm.l #0x1f3e,-(%sp) clr.w 54(%sp) clr.w 56(%sp) move.l #Bille,60(%sp) jbra .L1060 .L1061: move.l 60(%sp),%a0 move.l (%a0),%a5 move.w 2(%a5),%d4 cmp.w #133,%d4 jbgt .L1062 move.w (%a5),42(%sp) move.w 42(%sp),%d0 subq.w #6,%d0 jbpl .L1064 move.w 42(%sp),%d0 add.w #9,%d0 .L1064: move.w %d0,%d2 asr.w #4,%d2 subq.w #6,%d4 move.w %d4,%d1 moveq #7,%d3 ext.l %d1 divs.w %d3,%d1 addq.w #6,%d4 cmp.w #12,%d2 jbhi .L1062 tst.w %d1 jblt .L1062 cmp.w #17,%d1 jbgt .L1062 move.w %d2,64(%sp) move.w %d1,74(%sp) move.w %d2,%d0 subq.w #1,%d0 jbpl .L1068 moveq #1,%d6 jbra .L1070 .L1110: move.w #1,54(%sp) jbra .L1062 .L1068: move.w %d0,66(%sp) move.w %d1,76(%sp) moveq #2,%d6 .L1070: move.w %d2,%d0 addq.w #1,%d0 cmp.w #12,%d0 jbgt .L1071 move.w %d6,%a0 add.l %a0,%a0 lea (84,%sp),%a1 add.l %a1,%a0 move.w %d0,-20(%a0) move.w %d1,-10(%a0) addq.w #1,%d6 .L1071: move.w %d1,%d0 subq.w #1,%d0 jbmi .L1073 move.w %d6,%a0 add.l %a0,%a0 moveq #84,%d3 add.l %sp,%d3 add.l %d3,%a0 move.w %d2,-20(%a0) move.w %d0,-10(%a0) addq.w #1,%d6 .L1073: move.w %d1,%d0 addq.w #1,%d0 cmp.w #17,%d0 jbgt .L1075 move.w %d6,%a0 add.l %a0,%a0 lea (84,%sp),%a1 add.l %a1,%a0 move.w %d2,-20(%a0) move.w %d0,-10(%a0) addq.w #1,%d6 .L1075: clr.w 58(%sp) sub.l %a4,%a4 jbra .L1077 .L1078: move.w 74(%a4,%sp.l),%d5 move.w 64(%a4,%sp.l),%a2 move.w %d5,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%a2.w),%a1 lea LevelMap,%a0 move.b (%a0,%a1.l),53(%sp) clr.w %d0 move.b 53(%sp),%d0 move.w %d0,44(%sp) and.w #15,%d0 move.w %d0,%a6 jbeq .L1079 move.w %a2,%d1 lsl.w #4,%d1 move.w %d1,46(%sp) move.w %d1,%a3 addq.w #8,%a3 move.w %d5,%d3 muls.w #7,%d3 move.w %d3,48(%sp) move.w %d3,%d7 addq.w #8,%d7 move.l #327685,-(%sp) move.l #1048583,-(%sp) move.w %d4,-(%sp) move.w 52(%sp),-(%sp) move.w %d7,-(%sp) move.w %a3,-(%sp) jbsr TestCollideSquare lea (16,%sp),%sp move.w %d0,%d3 jbeq .L1079 tst.w 12(%a5) jbne .L1082 move.b 10(%a5),%d4 move.b 57(%sp),%d6 move.b %d4,%d0 add.b #-128,%d0 move.w %d0,-(%sp) move.w 58(%sp),-(%sp) jbsr AngleBille addq.l #4,%sp .L1084: move.w %d3,-(%sp) move.w %d6,-(%sp) jbsr MoveBille move.l 64(%sp),%a1 move.l (%a1),%a0 move.w 2(%a0),%a5 move.w (%a0),%a4 move.l #327685,-(%sp) move.l #1048583,-(%sp) move.w %a5,-(%sp) move.w %a4,-(%sp) move.w %d7,-(%sp) move.w %a3,-(%sp) jbsr TestCollideSquare move.w %d0,%d3 lea (20,%sp),%sp jbne .L1084 move.l #327685,-(%sp) move.l #1048583,-(%sp) move.w %a5,-(%sp) move.w %a4,-(%sp) move.w %d7,-(%sp) move.w %a3,-(%sp) jbsr GetDirCollideSquare lea (16,%sp),%sp lea AngleBille,%a0 move.w 44(%sp),%d3 and.w #143,%d3 cmp.b #1,%d0 jbne .L1086 moveq #-128,%d0 sub.b %d4,%d0 move.w %d0,-(%sp) jbra .L1113 .L1086: neg.b %d4 move.w %d4,-(%sp) .L1113: move.w %d6,-(%sp) jbsr (%a0) addq.l #4,%sp cmp.w #6,%d3 jbne .L1089 move.w #6,-(%sp) jbra .L1114 .L1089: cmp.w #11,%d3 jbne .L1092 move.w #11,-(%sp) .L1114: move.w %d5,-(%sp) move.w %a2,-(%sp) jbsr CREATE_ANIM_BLOCK move.w %d5,%a0 lea LevelMap,%a1 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%a2.w),%a0 or.b #-128,(%a1,%a0.l) .L1115: addq.l #6,%sp jbra .L1091 .L1092: cmp.w #8,%d3 jbne .L1094 move.w #8,-(%sp) move.w %d5,-(%sp) move.w %a2,-(%sp) jbsr CREATE_ANIM_BLOCK jbra .L1115 .L1094: moveq #11,%d0 cmp.w %a6,%d0 jbeq .L1096 moveq #8,%d1 cmp.w %a6,%d1 jbeq .L1096 subq.b #1,COUNTER_BRICKS .L1096: move.w %d5,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%a2.w),%a1 lea LevelMap,%a0 clr.b (%a0,%a1.l) move.w %d5,-(%sp) move.w %a2,-(%sp) jbsr DrawMapBackground addq.l #4,%sp move.b 53(%sp),%d3 btst #4,%d3 jbne .L1099 move.w #1,54(%sp) jbra .L1091 .L1099: move.w 48(%sp),%a0 lea (15,%a0),%a0 move.w %a0,-(%sp) move.w 48(%sp),%a1 lea (10,%a1),%a1 move.w %a1,-(%sp) jbsr SetBonus move.w #1,58(%sp) addq.l #4,%sp .L1091: move.l 60(%sp),%a1 move.l (%a1),%a0 move.w #1,32(%a0) jbra .L1062 .L1082: moveq #11,%d0 cmp.w %a6,%d0 jbeq .L1101 moveq #8,%d1 cmp.w %a6,%d1 jbeq .L1101 subq.b #1,COUNTER_BRICKS .L1101: move.w %d5,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%a2.w),%a1 lea LevelMap,%a0 clr.b (%a0,%a1.l) move.w %d5,-(%sp) move.w %a2,-(%sp) jbsr DrawMapBackground addq.l #4,%sp move.b 53(%sp),%d3 btst #4,%d3 jbeq .L1110 move.w 48(%sp),%a0 lea (15,%a0),%a0 move.w %a0,-(%sp) move.w 48(%sp),%a1 lea (10,%a1),%a1 move.w %a1,-(%sp) jbsr SetBonus move.w #1,58(%sp) addq.l #4,%sp jbra .L1062 .L1079: addq.w #1,58(%sp) addq.l #2,%a4 .L1077: cmp.w 58(%sp),%d6 jbgt .L1078 .L1062: addq.w #1,56(%sp) addq.l #4,60(%sp) .L1060: clr.w %d0 move.b nbrBille,%d0 cmp.w 56(%sp),%d0 jbgt .L1061 tst.w 54(%sp) jbeq .L1109 jbsr MAP_ShowSpecialBricks_MOVE .L1109: movm.l (%sp)+,#0x7cf8 lea (44,%sp),%sp rts .even .globl CollideWithBlock_Special CollideWithBlock_Special: lea (-16,%sp),%sp movm.l #0x1f3e,-(%sp) clr.w 40(%sp) clr.w 42(%sp) lea Bille,%a4 jbra .L1117 .L1118: move.l (%a4),%a0 cmp.w #133,2(%a0) jbgt .L1119 clr.l 44(%sp) lea MAP_bricks_special_move_y,%a6 lea MAP_bricks_special_move_x,%a5 move.l #MAP_bricks_special_move_destroy,48(%sp) lea MAP_bricks_special_move_sprite,%a3 move.l #MAP_bricks_special_move_dep,52(%sp) jbra .L1121 .L1122: move.l 48(%sp),%a0 tst.w (%a0) jbne .L1123 move.l (%a4),%a2 clr.w %d0 move.b (%a6),%d0 clr.w %d1 move.b (%a5),%d1 move.l #327685,-(%sp) move.l #1048583,-(%sp) move.w 2(%a2),-(%sp) move.w (%a2),-(%sp) move.w %d0,-(%sp) move.w %d1,-(%sp) jbsr TestCollideSquare lea (16,%sp),%sp move.w %d0,%d3 jbeq .L1123 move.w 12(%a2),%d0 jbne .L1126 move.b 10(%a2),%d0 clr.w %d7 move.b %d0,%d7 move.b 43(%sp),%d6 add.b #-128,%d0 move.w %d0,-(%sp) move.w 44(%sp),-(%sp) jbsr AngleBille addq.l #4,%sp .L1128: move.w %d3,-(%sp) move.w %d6,-(%sp) jbsr MoveBille move.l (%a4),%a0 move.w (%a0),%d4 clr.w %d0 move.b (%a6),%d0 clr.w %d5 move.b (%a5),%d5 move.l #327685,-(%sp) move.l #1048583,-(%sp) move.w 2(%a0),-(%sp) move.w %d4,-(%sp) move.w %d0,-(%sp) move.w %d5,-(%sp) jbsr TestCollideSquare move.w %d0,%d3 lea (20,%sp),%sp jbne .L1128 move.w %d5,%d0 add.w #15,%d0 cmp.w %d4,%d0 jblt .L1130 addq.w #4,%d4 cmp.w %d4,%d5 jble .L1132 .L1130: moveq #-128,%d0 sub.b %d7,%d0 jbra .L1164 .L1132: move.b %d7,%d0 neg.b %d0 jbra .L1164 .L1161: move.b (%a3),%d1 clr.w %d2 move.b %d1,%d2 move.w %d2,%d0 and.w #143,%d0 cmp.w #6,%d0 jbeq .L1162 cmp.w #11,%d0 jbne .L1138 .L1162: or.b #-128,%d1 move.b %d1,(%a3) jbra .L1163 .L1138: cmp.w #8,%d0 jbne .L1140 or.b #-128,%d1 move.b %d1,(%a3) jbra .L1137 .L1140: cmp.w #136,%d0 jbne .L1142 .L1163: move.l 52(%sp),%a0 move.w #1,(%a0) jbra .L1137 .L1142: move.w %d2,%d0 and.w #15,%d0 cmp.w #11,%d0 jbeq .L1144 cmp.w #8,%d0 jbeq .L1144 subq.b #1,COUNTER_BRICKS .L1144: move.l 48(%sp),%a0 move.w #1,(%a0) btst #4,%d1 jbne .L1147 move.w #1,40(%sp) jbra .L1137 .L1147: clr.w %d0 move.b (%a6),%d0 addq.w #7,%d0 move.w %d0,-(%sp) clr.w %d0 move.b (%a5),%d0 addq.w #2,%d0 move.w %d0,-(%sp) jbsr SetBonus move.w #1,44(%sp) addq.l #4,%sp .L1137: move.l (%a4),%a0 move.w #1,32(%a0) jbra .L1123 .L1126: cmp.w #1,%d0 jbne .L1123 move.b (%a3),%d1 move.w %d1,%d0 and.w #15,%d0 cmp.w #11,%d0 jbeq .L1150 cmp.w #8,%d0 jbeq .L1150 subq.b #1,COUNTER_BRICKS .L1150: move.l 48(%sp),%a0 move.w #1,(%a0) btst #4,%d1 jbne .L1153 move.w #1,40(%sp) jbra .L1123 .L1153: clr.w %d0 move.b (%a6),%d0 addq.w #7,%d0 move.w %d0,-(%sp) clr.w %d0 move.b (%a5),%d0 addq.w #2,%d0 move.w %d0,-(%sp) jbsr SetBonus move.w #1,44(%sp) addq.l #4,%sp .L1123: addq.l #1,44(%sp) addq.l #1,%a6 addq.l #1,%a5 addq.l #2,48(%sp) addq.l #1,%a3 addq.l #2,52(%sp) .L1121: move.w 46(%sp),%d0 cmp.w bricks_special_move_n,%d0 jbcs .L1122 .L1119: addq.w #1,42(%sp) addq.l #4,%a4 .L1117: clr.w %d0 move.b nbrBille,%d0 cmp.w 42(%sp),%d0 jbgt .L1118 tst.w 40(%sp) jbeq .L1158 jbsr MAP_ReDrawMap jbra .L1158 .L1164: move.w %d0,-(%sp) move.w %d6,-(%sp) jbsr AngleBille addq.l #4,%sp move.l (%a4),%a0 move.w 12(%a0),%d0 jbeq .L1161 jbra .L1126 .L1158: movm.l (%sp)+,#0x7cf8 lea (16,%sp),%sp rts .even .globl Rackets_CollideWithScreen Rackets_CollideWithScreen: move.l %d3,-(%sp) clr.w %d3 move.b nbrRacket,%d3 clr.w %d2 lea Racket,%a1 jbra .L1166 .L1167: move.l (%a1),%a0 move.w 42(%a0),%d0 tst.w 50(%a0) jbne .L1168 tst.w %d0 jbne .L1170 move.w (%a0),%d0 cmp.w #7,%d0 jbgt .L1172 move.w #8,(%a0) jbra .L1174 .L1172: clr.w %d1 move.b 7(%a0),%d1 add.w %d1,%d0 cmp.w #215,%d0 jble .L1174 move.w #215,%d0 sub.w %d1,%d0 move.w %d0,(%a0) jbra .L1174 .L1168: tst.w %d0 jbeq .L1174 .L1170: move.w (%a0),%d0 cmp.w #7,%d0 jbgt .L1176 move.w #8,(%a0) move.l (%a1),%a0 moveq #0,%d0 move.b 49(%a0),%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 move.w #44,(%a0) jbra .L1174 .L1176: add.w #64,%d0 cmp.w #215,%d0 jble .L1174 move.w #151,(%a0) move.l (%a1),%a0 moveq #0,%d0 move.b 49(%a0),%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 move.w #187,(%a0) .L1174: move.l (%a1),%a0 move.w #1,28(%a0) clr.w %d0 move.b 6(%a0),%d0 move.w %d0,%d1 mulu.w #43691,%d1 clr.w %d1 swap %d1 lsr.w #1,%d1 add.w %d1,%d0 add.w 2(%a0),%d0 cmp.w #199,%d0 jbgt .L1179 move.b 5(%a0),%d0 clr.w %d1 move.b %d0,%d1 lsr.b #2,%d0 and.w #255,%d0 add.w %d0,%d1 move.w (%a0),%d0 add.w %d1,%d0 cmp.w #215,%d0 jble .L1181 .L1179: clr.w 28(%a0) .L1181: addq.w #1,%d2 addq.l #4,%a1 .L1166: cmp.w %d2,%d3 jbgt .L1167 move.l (%sp)+,%d3 rts .even .globl Rackets_CollideWithBilles Rackets_CollideWithBilles: subq.w #4,%sp movm.l #0x1f3e,-(%sp) sub.l %a6,%a6 jbra .L1185 .L1186: move.l (%a4),%a0 clr.w %d3 move.b 6(%a0),%d3 moveq #5,%d2 lea BufferSprite32_0,%a1 move.l SPRITE_BILLE,%a0 jbsr CopySprite8_32 move.l (%a4),%a0 clr.w %d3 move.b 6(%a0),%d3 moveq #0,%d1 move.b 9(%a0),%d1 move.w 10(%a0),%a0 move.l %d1,%d0 add.l %d1,%d0 add.l %d1,%d0 add.l %d0,%d0 add.l %a0,%d0 lsl.l #2,%d0 move.w %d3,%d2 lea BufferSprite32_1,%a1 lea SPRITE_RACKETS,%a0 move.l (%a0,%d0.l),%a0 jbsr CopySprite32_32 move.l (%a4),%a0 move.b 4(%a0),%d0 cmp.b #2,%d0 jbeq .L1187 cmp.b #5,%d0 jbeq .L1187 clr.w 40(%sp) jbra .L1190 .L1187: lea CopySprite8_8,%a2 clr.w %d3 move.b 6(%a0),%d3 moveq #5,%d2 lea BufferSprite8_0,%a1 move.l SPRITE_BILLE,%a0 jbsr (%a2) move.l (%a4),%a0 clr.w %d3 move.b 6(%a0),%d3 moveq #0,%d1 move.b 9(%a0),%d1 move.w 10(%a0),%a0 move.l %d1,%d0 add.l %d1,%d0 add.l %d1,%d0 add.l %d0,%d0 add.l %a0,%d0 lsl.l #2,%d0 move.w %d3,%d2 lea BufferSprite8_1,%a1 lea SPRITE_RACKETS,%a0 move.l (%a0,%d0.l),%a0 lea (108,%a0),%a0 jbsr (%a2) move.w #1,40(%sp) .L1190: move.l (%a4),%a2 move.w %a6,%d5 ext.l %d5 lea Bille,%a5 lsl.l #2,%d5 move.l (%a5,%d5.l),%a3 lea BufferSprite32_1,%a1 lea BufferSprite32_0,%a0 clr.w %d4 move.b 6(%a2),%d4 move.w 2(%a2),%d3 move.w (%a2),%d2 move.w 2(%a3),%d1 move.w (%a3),%d0 jbsr CollideSprite32 move.w %d0,%d6 tst.w 40(%sp) jbne .L1191 clr.w %d3 jbra .L1193 .L1191: move.l (%a4),%a2 move.l (%a5,%d5.l),%a3 lea BufferSprite8_1,%a1 lea BufferSprite8_0,%a0 clr.w %d4 move.b 6(%a2),%d4 move.w 2(%a2),%d3 move.w (%a2),%d2 add.w #32,%d2 move.w 2(%a3),%d1 move.w (%a3),%d0 jbsr CollideSprite8 move.w %d0,%d3 .L1193: move.l (%a4),%a0 clr.w 66(%a0) tst.w %d6 jbne .L1194 tst.w %d3 jbeq .L1196 .L1194: move.w %a6,%d7 move.w %a6,%d0 ext.l %d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.b 10(%a0),%d0 add.b #-128,%d0 move.w %d0,-(%sp) move.w %a6,-(%sp) jbsr AngleBille addq.l #4,%sp jbra .L1235 .L1198: move.w #1,-(%sp) move.w %d7,-(%sp) jbsr MoveBille move.l (%a4),%a2 move.w %a6,%d5 ext.l %d5 lea Bille,%a5 lsl.l #2,%d5 move.l (%a5,%d5.l),%a3 lea BufferSprite32_1,%a1 lea BufferSprite32_0,%a0 clr.w %d4 move.b 6(%a2),%d4 move.w 2(%a2),%d3 move.w (%a2),%d2 move.w 2(%a3),%d1 move.w (%a3),%d0 jbsr CollideSprite32 move.w %d0,%d6 addq.l #4,%sp tst.w 40(%sp) jbne .L1199 clr.w %d3 jbra .L1235 .L1199: move.l (%a4),%a2 move.l (%a5,%d5.l),%a3 lea BufferSprite8_1,%a1 lea BufferSprite8_0,%a0 clr.w %d4 move.b 6(%a2),%d4 move.w 2(%a2),%d3 move.w (%a2),%d2 add.w #32,%d2 move.w 2(%a3),%d1 move.w (%a3),%d0 jbsr CollideSprite8 move.w %d0,%d3 .L1235: tst.w %d6 jbne .L1198 tst.w %d3 jbne .L1198 move.w %a6,%d0 ext.l %d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.b 17(%a0),%d6 cmp.b #-1,%d6 jbne .L1203 moveq #64,%d5 moveq #1,%d3 jbra .L1205 .L1203: move.w #192,%d5 moveq #-1,%d3 .L1205: move.w (%a0),%d4 move.l (%a4),%a0 move.w (%a0),%a1 move.w %a1,%d0 addq.w #7,%d0 cmp.w %d4,%d0 jblt .L1206 muls.w #28,%d3 jbra .L1233 .L1206: clr.w %d0 move.b 7(%a0),%d0 add.w %a1,%d0 subq.w #7,%d0 cmp.w %d4,%d0 jbgt .L1209 muls.w #28,%d3 jbra .L1234 .L1209: move.b 5(%a0),%d0 lsr.b #1,%d0 clr.w %d1 move.b %d0,%d1 add.w %a1,%d1 lsr.b #2,%d0 clr.w %d2 move.b %d0,%d2 move.w %d1,%d0 sub.w %d2,%d0 cmp.w %d4,%d0 jblt .L1211 muls.w #18,%d3 .L1233: move.w %d5,%d0 add.w %d3,%d0 jbra .L1208 .L1211: move.w %d1,%d0 add.w %d2,%d0 cmp.w %d4,%d0 jbgt .L1213 muls.w #18,%d3 .L1234: move.w %d5,%d0 sub.w %d3,%d0 jbra .L1208 .L1213: move.w %d3,%d0 muls.w #11,%d0 cmp.w %d4,%d1 jblt .L1215 add.w %d5,%d0 jbra .L1208 .L1215: sub.w %d0,%d5 move.w %d5,%d0 .L1208: cmp.b #1,%d6 jbne .L1217 add.w #256,%d0 .L1217: move.w %d0,-(%sp) move.w %d7,-(%sp) jbsr AngleBille move.l (%a4),%a0 move.w %a6,%d3 ext.l %d3 lea Bille,%a2 lsl.l #2,%d3 move.l (%a2,%d3.l),%a1 move.w 68(%a0),%d1 sub.w (%a0),%d1 jbpl .L1219 neg.w %d1 .L1219: moveq #7,%d2 ext.l %d1 divs.w %d2,%d1 add.w 18(%a1),%d1 move.w %d1,-(%sp) move.w %d7,-(%sp) jbsr ChangeBilleSpeed move.l (%a2,%d3.l),%a0 move.w #1,32(%a0) move.l (%a4),%a0 move.w #1,66(%a0) addq.l #8,%sp tst.w 38(%a0) jbeq .L1196 clr.w %d0 move.b HUMAIN0,%d0 cmp.w 42(%sp),%d0 jbne .L1221 tst.w StartGameForHumain0 jbeq .L1196 .L1221: move.w %d7,-(%sp) move.w 44(%sp),-(%sp) jbsr Bonus_RacketColle addq.l #4,%sp .L1196: addq.w #1,42(%sp) addq.l #4,%a4 .L1223: clr.w %d0 move.b nbrRacket,%d0 cmp.w 42(%sp),%d0 jbgt .L1186 addq.w #1,%a6 .L1185: clr.w %d0 move.b nbrBille,%d0 cmp.w %a6,%d0 jble .L1227 clr.w 42(%sp) lea Racket,%a4 jbra .L1223 .L1227: movm.l (%sp)+,#0x7cf8 addq.w #4,%sp rts .even .globl Missiles_CollideWithBlock Missiles_CollideWithBlock: lea (-12,%sp),%sp movm.l #0x1f3e,-(%sp) sub.l %a6,%a6 clr.w 44(%sp) clr.w %d7 jbra .L1237 .L1238: move.w %d7,%a0 lea (%a0,%a0.l),%a1 lea MISSILE_ypos,%a0 move.w (%a0,%a1.l),%d1 cmp.w #133,%d1 jbgt .L1239 lea MISSILE_xpos,%a0 move.w (%a0,%a1.l),%a0 move.w %a0,%d0 subq.w #7,%d0 jbpl .L1241 add.w #15,%d0 .L1241: move.w %d0,%d3 asr.w #4,%d3 move.b %d3,50(%sp) move.w %a0,%d0 addq.w #5,%d0 jbpl .L1242 add.w #15,%d0 .L1242: asr.w #4,%d0 move.b %d0,51(%sp) subq.w #8,%d1 moveq #7,%d4 ext.l %d1 divs.w %d4,%d1 move.b %d1,%d5 cmp.b %d3,%d0 seq %d0 move.b %d0,43(%sp) addq.b #2,43(%sp) clr.w %d1 move.b %d5,%d1 move.w %d1,%a4 move.w %a4,%d3 muls.w #7,%d3 add.w #15,%d3 clr.w %d4 clr.l 46(%sp) jbra .L1246 .L1247: move.l 46(%sp),%d0 move.b 50(%sp,%d0.l),%d0 move.w %d0,%a5 clr.w %d2 move.b %d0,%d2 move.w %a4,%a0 lea LevelMap,%a3 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%d2.w),%a2 move.b (%a3,%a2.l),%d6 clr.w %d0 move.b %d6,%d0 move.w %d0,%d1 and.w #15,%d1 jbeq .L1248 move.w %d2,%d4 lsl.w #4,%d4 and.w #143,%d0 cmp.w #6,%d0 jbne .L1250 move.w #6,-(%sp) jbra .L1267 .L1250: cmp.w #11,%d0 jbne .L1252 move.w #11,-(%sp) .L1267: clr.w %d0 move.b %d5,%d0 move.w %d0,-(%sp) move.w %d2,-(%sp) jbsr CREATE_ANIM_BLOCK or.b #-128,(%a3,%a2.l) .L1268: move.w %d3,%a6 moveq #1,%d4 addq.l #6,%sp jbra .L1248 .L1252: cmp.w #8,%d0 jbne .L1254 move.w #8,-(%sp) clr.w %d0 move.b %d5,%d0 move.w %d0,-(%sp) move.w %d2,-(%sp) jbsr CREATE_ANIM_BLOCK jbra .L1268 .L1254: cmp.w #11,%d1 jbeq .L1256 cmp.w #8,%d1 jbeq .L1256 subq.b #1,COUNTER_BRICKS .L1256: move.w %a4,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%d2.w),%a1 lea LevelMap,%a0 clr.b (%a0,%a1.l) move.w %d5,-(%sp) move.w %a5,-(%sp) jbsr DrawMapBackground addq.l #4,%sp btst #4,%d6 jbne .L1259 move.w %d3,%a6 move.w #1,44(%sp) moveq #1,%d4 jbra .L1248 .L1259: move.w %d3,-(%sp) add.w #10,%d4 move.w %d4,-(%sp) jbsr SetBonus move.w %d3,%a6 move.w #1,48(%sp) moveq #1,%d4 addq.l #4,%sp .L1248: addq.l #1,46(%sp) .L1246: clr.w %d0 move.b 43(%sp),%d0 move.w 48(%sp),%d1 cmp.w %d0,%d1 jblt .L1247 tst.w %d4 jbeq .L1239 clr.w StartIntMissiles move.w %a6,-(%sp) move.w %d7,%a2 lea (%a2,%a2.l),%a1 lea MISSILE_xpos,%a0 move.w (%a0,%a1.l),-(%sp) jbsr CREATE_ANIM_MISSILE lea MISSILE_racket,%a1 moveq #0,%d0 move.b (%a1,%a2.l),%d0 lea Racket,%a3 lsl.l #2,%d0 move.l (%a3,%d0.l),%a0 subq.b #1,36(%a0) moveq #0,%d0 move.b (%a1,%a2.l),%d0 lsl.l #2,%d0 move.l (%a3,%d0.l),%a0 moveq #2,%d4 move.l %d4,32(%a0) move.b %d7,%d0 subq.w #1,%d7 move.w %d0,-(%sp) jbsr DeleteMissile move.w #1,StartIntMissiles addq.l #6,%sp .L1239: addq.w #1,%d7 .L1237: clr.w %d0 move.b nbrMissile,%d0 cmp.w %d7,%d0 jbgt .L1238 tst.w 44(%sp) jbeq .L1266 jbsr MAP_ShowSpecialBricks_MOVE .L1266: movm.l (%sp)+,#0x7cf8 lea (12,%sp),%sp rts .even .globl Missiles_CollideWithBlock_Special Missiles_CollideWithBlock_Special: lea (-16,%sp),%sp movm.l #0x1f3e,-(%sp) clr.w 44(%sp) clr.w 46(%sp) sub.l %a4,%a4 jbra .L1270 .L1271: move.w %a4,%a0 add.l %a0,%a0 lea MISSILE_ypos,%a1 cmp.w #133,(%a1,%a0.l) jbgt .L1272 clr.w %d7 clr.l 48(%sp) lea MAP_bricks_special_move_sprite,%a5 lea MAP_bricks_special_move_dep,%a6 move.l #MAP_bricks_special_move_destroy,52(%sp) jbra .L1274 .L1275: move.l 52(%sp),%a0 tst.w (%a0) jbne .L1276 move.w %a4,%a0 add.l %a0,%a0 lea MISSILE_ypos,%a1 move.w (%a1,%a0.l),%a3 lea MISSILE_xpos,%a1 move.w (%a1,%a0.l),%d4 lea MAP_bricks_special_move_y,%a0 move.l 48(%sp),%d0 clr.w %d6 move.b (%a0,%d0.l),%d6 lea MAP_bricks_special_move_x,%a0 move.b (%a0,%d0.l),43(%sp) clr.w %d3 move.b 43(%sp),%d3 lea TestCollideSquare,%a2 move.l #196615,-(%sp) move.l #1048583,-(%sp) move.w %a3,-(%sp) move.w %d4,%a0 lea (12,%a0),%a0 move.w %a0,-(%sp) move.w %d6,-(%sp) move.w %d3,-(%sp) jbsr (%a2) lea (16,%sp),%sp move.w %d0,%d5 move.l #196615,-(%sp) move.l #1048583,-(%sp) move.w %a3,-(%sp) move.w %d4,-(%sp) move.w %d6,-(%sp) move.w %d3,-(%sp) jbsr (%a2) lea (16,%sp),%sp tst.w %d0 jbne .L1278 tst.w %d5 jbeq .L1276 .L1278: addq.w #7,%d6 move.w %d6,44(%sp) move.b (%a5),%d1 clr.w %d2 move.b %d1,%d2 move.w %d2,%d0 and.w #143,%d0 cmp.w #6,%d0 jbeq .L1299 cmp.w #11,%d0 jbne .L1282 .L1299: or.b #-128,%d1 move.b %d1,(%a5) jbra .L1301 .L1282: cmp.w #8,%d0 jbne .L1284 or.b #-128,%d1 move.b %d1,(%a5) .L1300: moveq #1,%d7 jbra .L1276 .L1284: cmp.w #136,%d0 jbne .L1286 .L1301: move.w #1,(%a6) jbra .L1300 .L1286: move.w %d2,%d0 and.w #15,%d0 cmp.w #11,%d0 jbeq .L1288 cmp.w #8,%d0 jbeq .L1288 subq.b #1,COUNTER_BRICKS .L1288: move.l 52(%sp),%a0 move.w #1,(%a0) btst #4,%d1 jbne .L1291 moveq #1,%d7 move.w #1,46(%sp) jbra .L1276 .L1291: move.w 44(%sp),-(%sp) clr.w %d0 move.b 45(%sp),%d0 addq.w #2,%d0 move.w %d0,-(%sp) jbsr SetBonus moveq #1,%d7 move.w #1,50(%sp) addq.l #4,%sp .L1276: addq.l #1,48(%sp) addq.l #1,%a5 addq.l #2,%a6 addq.l #2,52(%sp) .L1274: move.w 50(%sp),%d0 cmp.w bricks_special_move_n,%d0 jbcs .L1275 tst.w %d7 jbeq .L1272 clr.w StartIntMissiles move.w 44(%sp),-(%sp) move.w %a4,%a2 lea (%a2,%a2.l),%a1 lea MISSILE_xpos,%a0 move.w (%a0,%a1.l),-(%sp) jbsr CREATE_ANIM_MISSILE lea MISSILE_racket,%a1 moveq #0,%d0 move.b (%a1,%a2.l),%d0 lea Racket,%a3 lsl.l #2,%d0 move.l (%a3,%d0.l),%a0 subq.b #1,36(%a0) moveq #0,%d0 move.b (%a1,%a2.l),%d0 lsl.l #2,%d0 move.l (%a3,%d0.l),%a0 moveq #2,%d0 move.l %d0,32(%a0) move.w %a4,%d0 subq.w #1,%a4 move.w %d0,-(%sp) jbsr DeleteMissile move.w #1,StartIntMissiles addq.l #6,%sp .L1272: addq.w #1,%a4 .L1270: clr.w %d0 move.b nbrMissile,%d0 cmp.w %a4,%d0 jbgt .L1271 tst.w 46(%sp) jbeq .L1298 jbsr MAP_ReDrawMap .L1298: movm.l (%sp)+,#0x7cf8 lea (16,%sp),%sp rts .even .globl Rackets_CollideBillesWithGhost Rackets_CollideBillesWithGhost: movm.l #0x1e38,-(%sp) clr.w %d6 lea Racket,%a4 jbra .L1303 .L1304: move.l (%a4),%a0 tst.w 54(%a0) jbeq .L1305 cmp.w #15,58(%a0) jble .L1305 clr.w %d5 lea Bille,%a3 jbra .L1308 .L1309: move.l (%a4),%a0 move.w (%a0),%d0 move.w 58(%a0),%d1 move.l (%a3),%a2 cmp.b #1,56(%a0) jbne .L1310 move.w %d0,%d1 add.w #29,%d1 jbra .L1312 .L1310: sub.w %d1,%d0 move.w %d0,%d1 add.w #15,%d1 .L1312: move.b 59(%a0),%d0 add.b #-15,%d0 move.w #9,-(%sp) move.w %d0,-(%sp) move.l #327685,-(%sp) move.w 2(%a0),-(%sp) move.w %d1,-(%sp) move.w 2(%a2),-(%sp) move.w (%a2),-(%sp) jbsr TestCollideSquare lea (16,%sp),%sp move.w %d0,%d4 jbeq .L1313 move.b 10(%a2),%d3 move.b %d3,%d0 add.b #-128,%d0 move.w %d0,-(%sp) move.w %d5,-(%sp) lea AngleBille,%a2 jbsr (%a2) move.w %d4,-(%sp) move.w %d5,-(%sp) jbsr MoveBille neg.b %d3 move.w %d3,-(%sp) move.w %d5,-(%sp) jbsr (%a2) move.l (%a3),%a0 move.w #1,32(%a0) lea (12,%sp),%sp .L1313: addq.w #1,%d5 addq.l #4,%a3 .L1308: clr.w %d0 move.b nbrBille,%d0 cmp.w %d5,%d0 jbgt .L1309 .L1305: addq.w #1,%d6 addq.l #4,%a4 .L1303: clr.w %d0 move.b nbrRacket,%d0 cmp.w %d6,%d0 jbgt .L1304 movm.l (%sp)+,#0x1c78 rts .even .globl ExitBille ExitBille: move.l %d3,-(%sp) clr.w %d3 jbra .L1318 .L1319: move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.w 2(%a0),%d0 addq.w #4,%d0 cmp.w #199,%d0 jble .L1320 move.b %d3,%d0 subq.w #1,%d3 move.w %d0,-(%sp) jbsr DeleteBille addq.l #2,%sp .L1320: addq.w #1,%d3 .L1318: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L1319 move.l (%sp)+,%d3 rts .even .globl Monsters_SetMove Monsters_SetMove: movm.l #0x1030,-(%sp) move.w #2,-(%sp) lea GCL_Random,%a2 jbsr (%a2) moveq #0,%d3 move.b 19(%sp),%d3 lea Monster,%a3 lsl.l #2,%d3 move.l (%a3,%d3.l),%a0 addq.l #2,%sp tst.b 18(%a0) jbeq .L1325 move.w #3,-(%sp) jbsr (%a2) addq.l #2,%sp move.l (%a3,%d3.l),%a0 tst.b %d0 jbne .L1327 neg.b 18(%a0) jbra .L1336 .L1327: clr.b 18(%a0) move.l (%a3,%d3.l),%a0 cmp.b #1,%d0 seq %d0 or.b #1,%d0 move.b %d0,19(%a0) jbra .L1336 .L1325: move.w #3,-(%sp) jbsr (%a2) addq.l #2,%sp move.l (%a3,%d3.l),%a0 tst.b %d0 jbne .L1332 neg.b 19(%a0) jbra .L1336 .L1332: clr.b 19(%a0) move.l (%a3,%d3.l),%a0 cmp.b #1,%d0 seq %d0 or.b #1,%d0 move.b %d0,18(%a0) .L1336: movm.l (%sp)+,#0xc08 rts .even .globl Monsters_CollideWithScreen Monsters_CollideWithScreen: move.l %d3,-(%sp) clr.w %d3 jbra .L1338 .L1339: move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Monster,%a0 move.l (%a0,%d0.l),%a0 move.w #1,22(%a0) move.w (%a0),%d0 add.w #19,%d0 cmp.w #215,%d0 jbgt .L1340 move.w 2(%a0),%d0 add.w #19,%d0 cmp.w #199,%d0 jble .L1342 .L1340: clr.w 22(%a0) .L1342: move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Monster,%a0 move.l (%a0,%d0.l),%a0 move.w (%a0),%d0 cmp.w #7,%d0 jbgt .L1343 move.w #8,(%a0) jbra .L1353 .L1343: add.w #16,%d0 cmp.w #215,%d0 jble .L1345 move.w #199,(%a0) .L1353: move.w %d3,-(%sp) jbsr Monsters_SetMove addq.l #2,%sp .L1345: move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Monster,%a0 move.l (%a0,%d0.l),%a0 move.w 2(%a0),%d0 cmp.w #7,%d0 jbgt .L1347 move.w #8,2(%a0) move.w %d3,-(%sp) jbsr Monsters_SetMove jbra .L1354 .L1347: add.w #15,%d0 cmp.w #199,%d0 jble .L1349 move.b %d3,%d0 subq.w #1,%d3 move.w %d0,-(%sp) jbsr DeleteMonster .L1354: addq.l #2,%sp .L1349: addq.w #1,%d3 .L1338: clr.w %d0 move.b nbrMonster,%d0 cmp.w %d3,%d0 jbgt .L1339 move.l (%sp)+,%d3 rts .even .globl Monsters_CollideWithBlock Monsters_CollideWithBlock: lea (-20,%sp),%sp movm.l #0x1f3c,-(%sp) clr.w %d0 move.b nbrMonster,%d0 move.w %d0,%a5 sub.l %a4,%a4 lea Monster,%a3 jbra .L1356 .L1357: move.l (%a3),%a2 move.w 2(%a2),%d6 cmp.w #133,%d6 jbgt .L1358 move.w (%a2),%d5 move.w %d5,%d0 jbge .L1360 add.w #15,%d0 .L1360: move.w %d0,%d2 asr.w #4,%d2 move.w %d6,%d1 moveq #7,%d3 ext.l %d1 divs.w %d3,%d1 cmp.w #12,%d2 jbhi .L1358 tst.w %d1 jblt .L1358 cmp.w #17,%d1 jbgt .L1358 move.w %d2,36(%sp) move.w %d1,46(%sp) move.w %d2,%d0 subq.w #1,%d0 jbpl .L1364 moveq #1,%d3 jbra .L1366 .L1380: move.b 18(%a2),%d0 ext.w %d0 muls.w %d1,%d0 sub.w %d0,%d5 move.w %d5,(%a2) move.l (%a3),%a0 move.b 19(%a0),%d0 ext.w %d0 muls.w %d1,%d0 sub.w %d0,2(%a0) neg.b 18(%a0) move.l (%a3),%a0 neg.b 19(%a0) jbra .L1358 .L1364: move.w %d0,38(%sp) move.w %d1,48(%sp) moveq #2,%d3 .L1366: move.w %d2,%d0 addq.w #1,%d0 cmp.w #12,%d0 jbgt .L1367 move.w %d3,%a0 add.l %a0,%a0 lea (56,%sp),%a1 add.l %a1,%a0 move.w %d0,-20(%a0) move.w %d1,-10(%a0) addq.w #1,%d3 .L1367: move.w %d1,%d0 subq.w #1,%d0 jbmi .L1369 move.w %d3,%a0 add.l %a0,%a0 lea (56,%sp),%a1 add.l %a1,%a0 move.w %d2,-20(%a0) move.w %d0,-10(%a0) addq.w #1,%d3 .L1369: move.w %d1,%d0 addq.w #1,%d0 cmp.w #17,%d0 jbgt .L1371 move.w %d3,%a0 add.l %a0,%a0 moveq #56,%d1 add.l %sp,%d1 add.l %d1,%a0 move.w %d2,-20(%a0) move.w %d0,-10(%a0) addq.w #1,%d3 .L1371: clr.w %d7 moveq #0,%d4 jbra .L1373 .L1374: move.w 46(%sp,%d4.l),%d2 move.w 36(%sp,%d4.l),%d1 move.w %d2,%a0 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%d1.w),%a1 lea LevelMap,%a0 move.b (%a0,%a1.l),%d0 and.w #15,%d0 jbeq .L1375 muls.w #7,%d2 lsl.w #4,%d1 move.l #851981,-(%sp) move.l #917509,-(%sp) move.w %d6,-(%sp) move.w %d5,-(%sp) addq.w #8,%d2 move.w %d2,-(%sp) addq.w #8,%d1 move.w %d1,-(%sp) jbsr TestCollideSquare lea (16,%sp),%sp move.w %d0,%d1 jbne .L1380 .L1375: addq.w #1,%d7 addq.l #2,%d4 .L1373: cmp.w %d7,%d3 jbgt .L1374 .L1358: addq.w #1,%a4 addq.l #4,%a3 .L1356: move.w %a5,%d3 cmp.w %a4,%d3 jbgt .L1357 movm.l (%sp)+,#0x3cf8 lea (20,%sp),%sp rts .even .globl Monsters_CollideWithBlock_Special Monsters_CollideWithBlock_Special: movm.l #0x1f3c,-(%sp) clr.w %d0 move.b nbrMonster,%d0 move.w %d0,%a5 move.w bricks_special_move_n,%d7 clr.w %d6 lea Monster,%a4 jbra .L1382 .L1394: move.b 18(%a2),%d0 ext.w %d0 muls.w %d1,%d0 sub.w %d0,%d4 move.w %d4,(%a2) move.l (%a4),%a0 move.b 19(%a0),%d0 ext.w %d0 muls.w %d1,%d0 sub.w %d0,2(%a0) neg.b 18(%a0) move.l (%a4),%a0 neg.b 19(%a0) jbra .L1384 .L1383: move.l (%a4),%a2 move.w 2(%a2),%d5 cmp.w #133,%d5 jbgt .L1384 tst.w 20(%a2) jbne .L1384 moveq #0,%d3 lea MAP_bricks_special_move_destroy,%a3 jbra .L1387 .L1388: tst.w (%a3) jbne .L1389 move.w (%a2),%d4 lea MAP_bricks_special_move_y,%a0 clr.w %d1 move.b (%a0,%d3.l),%d1 lea MAP_bricks_special_move_x,%a0 clr.w %d0 move.b (%a0,%d3.l),%d0 move.l #851981,-(%sp) move.l #917509,-(%sp) move.w %d5,-(%sp) move.w %d4,-(%sp) move.w %d1,-(%sp) move.w %d0,-(%sp) jbsr TestCollideSquare lea (16,%sp),%sp move.w %d0,%d1 jbne .L1394 .L1389: addq.l #1,%d3 addq.l #2,%a3 .L1387: cmp.w %d7,%d3 jbcs .L1388 .L1384: addq.w #1,%d6 addq.l #4,%a4 .L1382: cmp.w %a5,%d6 jblt .L1383 movm.l (%sp)+,#0x3cf8 rts .even .globl SHOW_ANIM_BLOCK SHOW_ANIM_BLOCK: movm.l #0x1030,-(%sp) moveq #0,%d3 lea AnimBlock_y,%a3 lea AnimBlock_x,%a2 jbra .L1396 .L1397: lea AnimBlock_sprite-1,%a0 moveq #0,%d0 move.b (%a0,%d3.l),%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a1 lea SPRITE_BLOCKS,%a0 move.l (%a0,%d0.l),%a0 move.w (%a3)+,%d1 move.w (%a2)+,%d0 jbsr DrawBlock2 .L1396: move.w %d3,%d1 addq.l #1,%d3 clr.w %d0 move.b nbrAnimBlocks,%d0 cmp.w %d1,%d0 jbgt .L1397 movm.l (%sp)+,#0xc08 rts .even .globl DeleteBlockAnim DeleteBlockAnim: movm.l #0x1c20,-(%sp) move.b 21(%sp),%d3 clr.w StartInt1 lea _ROM_CALL_26B:l,%a2 clr.w %d5 move.b %d3,%d5 and.l #255,%d3 move.l %d3,%d4 add.l %d3,%d4 clr.w %d0 move.b nbrAnimBlocks,%d0 sub.w %d5,%d0 subq.w #1,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d4,%d0 add.l #AnimBlock_x+2,%d0 move.l %d0,-(%sp) move.l %d4,%d0 add.l #AnimBlock_x,%d0 move.l %d0,-(%sp) jbsr (%a2) clr.w %d0 move.b nbrAnimBlocks,%d0 sub.w %d5,%d0 subq.w #1,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d4,%d0 add.l #AnimBlock_y+2,%d0 move.l %d0,-(%sp) add.l #AnimBlock_y,%d4 move.l %d4,-(%sp) jbsr (%a2) clr.w %d0 move.b nbrAnimBlocks,%d0 sub.w %d5,%d0 subq.w #1,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d3,%d0 add.l #AnimBlock_sprite+1,%d0 move.l %d0,-(%sp) move.l %d3,%d0 add.l #AnimBlock_sprite,%d0 move.l %d0,-(%sp) jbsr (%a2) lea (36,%sp),%sp clr.w %d0 move.b nbrAnimBlocks,%d0 sub.w %d5,%d0 subq.w #1,%d0 move.w %d0,%a0 move.l %a0,-(%sp) move.l %d3,%d0 add.l #AnimBlock_counter+1,%d0 move.l %d0,-(%sp) add.l #AnimBlock_counter,%d3 move.l %d3,-(%sp) jbsr (%a2) subq.b #1,nbrAnimBlocks move.w #1,StartInt1 lea (12,%sp),%sp movm.l (%sp)+,#0x438 rts .even .globl INT1_80Hz INT1_80Hz: move.w __COUNTER_80Hz,%d1 move.w %d1,%d0 add.w #10240,%d0 move.w %d0,__COUNTER_80Hz cmp.w #-32768,%d0 jbls .L1405 add.w #-22528,%d1 move.w %d1,__COUNTER_80Hz move.w delay_80Hz,%d0 addq.w #1,%d0 move.w %d0,delay_80Hz .L1405: rts .even .globl INT1_ScrollLevel INT1_ScrollLevel: move.w __COUNTER_SCROLL_LEVEL_UP_DOWN,%d1 move.w %d1,%d0 add.w #2570,%d0 move.w %d0,__COUNTER_SCROLL_LEVEL_UP_DOWN cmp.w #-32768,%d0 jbls .L1422 add.w #-30198,%d1 move.w %d1,__COUNTER_SCROLL_LEVEL_UP_DOWN tst.w EndCounterLogo jbne .L1422 cmp.w #1,COUNTER_LOGO jbls .L1422 move.w yScroll,%d0 tst.w ScrollLevelLogo jbne .L1411 subq.w #2,%d0 jbra .L1423 .L1411: addq.w #2,%d0 .L1423: move.w %d0,yScroll move.w yScroll,%d1 jbgt .L1414 move.w delay_1Hz,%d0 cmp.w #1,%d0 jbls .L1416 move.w #1,ScrollLevelLogo jbra .L1416 .L1414: cmp.w #2,%d1 jble .L1418 move.w #0,delay_1Hz jbra .L1418 .L1416: tst.w %d1 jbge .L1422 clr.w yScroll rts .L1418: cmp.w #72,%d1 jble .L1422 move.w #72,yScroll .L1422: rts .even .globl INT1_BillesSpeed INT1_BillesSpeed: clr.w %d2 move.b nbrBille,%d2 clr.w %d1 lea Bille,%a1 jbra .L1425 .L1426: move.l (%a1),%a0 move.w 24(%a0),%d0 add.w 22(%a0),%d0 move.w %d0,24(%a0) cmp.w #-32768,%d0 jbls .L1427 add.w #-32768,%d0 move.w %d0,24(%a0) addq.b #1,20(%a0) .L1427: addq.w #1,%d1 addq.l #4,%a1 .L1425: cmp.w %d1,%d2 jbgt .L1426 rts .even .globl INT1_BillesVarSpeed INT1_BillesVarSpeed: move.l %a2,-(%sp) move.l %d3,-(%sp) move.w __COUNTER_VARSPEED,%d1 move.w %d1,%d0 add.w #1028,%d0 move.w %d0,__COUNTER_VARSPEED cmp.w #-32768,%d0 jbls .L1441 add.w #-31740,%d1 move.w %d1,__COUNTER_VARSPEED clr.w %d3 lea Bille,%a2 jbra .L1434 .L1435: move.l (%a2),%a0 tst.w 26(%a0) jbeq .L1436 move.l 28(%a0),%d0 addq.l #1,%d0 move.l %d0,28(%a0) tst.w 32(%a0) jbeq .L1436 clr.w 32(%a0) moveq #1,%d1 cmp.l %d0,%d1 jbcs .L1439 move.w 18(%a0),%a0 addq.w #1,%a0 move.w %a0,-(%sp) move.w %d3,-(%sp) jbsr ChangeBilleSpeed addq.l #4,%sp .L1439: move.l (%a2),%a0 clr.l 28(%a0) .L1436: addq.w #1,%d3 addq.l #4,%a2 .L1434: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L1435 .L1441: move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl INT1_BricksTIME INT1_BricksTIME: move.l %a2,-(%sp) move.l %d3,-(%sp) tst.w MAP_StartInt1 jbeq .L1450 move.w __MAP_COUNTER_TIME,%d1 move.w %d1,%d0 add.w #128,%d0 move.w %d0,__MAP_COUNTER_TIME cmp.w #-32768,%d0 jbls .L1450 add.w #-32640,%d1 move.w %d1,__MAP_COUNTER_TIME move.w bricks_special_time_n,%d3 sub.l %a1,%a1 lea MAP_bricks_special_time_c,%a2 jbra .L1446 .L1447: lea MAP_bricks_special_time_x,%a0 moveq #0,%d2 move.b (%a0,%a1.l),%d2 lea MAP_bricks_special_time_y,%a0 moveq #0,%d1 move.b (%a0,%a1.l),%d1 move.l %d1,%d0 add.l %d1,%d0 add.l %d1,%d0 lsl.l #2,%d0 add.l %d1,%d0 add.l %d2,%d0 lea LevelMap,%a0 move.b (%a0,%d0.l),%d0 and.w #15,%d0 jbne .L1448 addq.w #1,(%a2) .L1448: addq.l #1,%a1 addq.l #2,%a2 .L1446: cmp.w %a1,%d3 jbhi .L1447 .L1450: move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl INT1_BricksMOVE INT1_BricksMOVE: subq.w #4,%sp movm.l #0x1f3e,-(%sp) tst.w MAP_StartInt1 jbeq .L1476 move.w __MAP_COUNTER_MOVE,%d1 move.w %d1,%d0 add.w #1927,%d0 move.w %d0,__MAP_COUNTER_MOVE cmp.w #-32768,%d0 jbls .L1476 add.w #-30841,%d1 move.w %d1,__MAP_COUNTER_MOVE move.w bricks_special_move_n,42(%sp) moveq #0,%d5 lea MAP_bricks_special_move_dir,%a3 lea MAP_bricks_special_move_x,%a2 lea MAP_bricks_special_move_dep,%a6 lea MAP_bricks_special_move_destroy,%a5 jbra .L1455 .L1456: tst.w (%a5) jbne .L1457 tst.w (%a6) jbeq .L1457 move.b (%a3),%d2 move.b (%a2),%d4 move.b %d4,%d3 add.b %d2,%d3 move.b %d3,(%a2) lea MAP_bricks_special_move_y,%a0 move.b (%a0,%d5.l),%d6 clr.w %d0 move.b %d6,%d0 subq.w #7,%d0 moveq #7,%d1 ext.l %d0 divs.w %d1,%d0 clr.w %d1 move.b %d3,%d1 move.w %d0,%a0 lea LevelMap,%a1 cmp.b #1,%d2 jbne .L1460 addq.w #7,%d1 asr.w #4,%d1 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%d1.w),%a0 move.b (%a1,%a0.l),%d0 and.w #15,%d0 jbeq .L1462 st (%a3) move.b %d4,(%a2) jbra .L1462 .L1460: subq.w #8,%d1 jbpl .L1464 neg.w %d1 .L1464: asr.w #4,%d1 move.l %a0,%d0 add.l %a0,%d0 add.l %a0,%d0 lsl.l #2,%d0 lea (%a0,%d0.l),%a0 lea (%a0,%d1.w),%a0 move.b (%a1,%a0.l),%d0 and.w #15,%d0 jbeq .L1462 move.b %d2,%d0 ext.w %d0 neg.w %d0 move.b %d0,(%a3) add.b %d0,%d3 move.b %d3,(%a2) .L1462: move.b (%a2),%d1 move.b %d1,%d0 subq.b #8,%d0 cmp.b #-64,%d0 jbls .L1466 move.b (%a3),%d0 ext.w %d0 neg.w %d0 move.b %d0,(%a3) add.b %d0,%d1 move.b %d1,(%a2) .L1466: clr.w %d4 sub.l %a1,%a1 lea MAP_bricks_special_move_destroy,%a4 jbra .L1468 .L1469: tst.w (%a4) jbne .L1470 cmp.w %a1,%d7 jbeq .L1470 move.b (%a2),%d3 clr.w %d2 move.b %d3,%d2 lea MAP_bricks_special_move_x,%a0 clr.w %d1 move.b (%a0,%a1.l),%d1 move.w %d1,%d0 add.w #15,%d0 cmp.w %d2,%d0 jbeq .L1473 add.w #16,%d2 addq.w #1,%d1 cmp.w %d2,%d1 jbne .L1470 .L1473: lea MAP_bricks_special_move_y,%a0 cmp.b (%a0,%a1.l),%d6 jbne .L1470 lea MAP_bricks_special_move_dir,%a0 move.b (%a3),(%a0,%a1.l) move.b (%a3),%d0 ext.w %d0 neg.w %d0 move.b %d0,(%a3) add.b %d0,%d3 move.b %d3,(%a2) .L1470: addq.w #1,%d4 addq.l #1,%a1 addq.l #2,%a4 .L1468: cmp.w 42(%sp),%d4 jbne .L1469 .L1457: addq.l #1,%d5 addq.l #1,%a3 addq.l #1,%a2 addq.l #2,%a6 addq.l #2,%a5 .L1455: move.w %d5,%d7 cmp.w 42(%sp),%d5 jbcs .L1456 .L1476: movm.l (%sp)+,#0x7cf8 addq.w #4,%sp rts .even .globl INT1_RacketsAnim INT1_RacketsAnim: movm.l #0x1030,-(%sp) move.w __RACKET_ANIM_COUNTER,%d1 move.w %d1,%d0 add.w #514,%d0 move.w %d0,__RACKET_ANIM_COUNTER tst.w Rackets_anim jbeq .L1508 cmp.w #-32768,%d0 jbls .L1508 add.w #-32254,%d1 move.w %d1,__RACKET_ANIM_COUNTER clr.w %d3 jbra .L1481 .L1482: move.w %d3,%d0 ext.l %d0 lea Racket,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 move.w 12(%a0),%d1 cmp.w #-1,%d1 jbne .L1483 move.w 10(%a0),%d0 cmp.w #3,%d0 jbne .L1485 clr.w 10(%a0) jbra .L1487 .L1485: addq.w #1,%d0 move.w %d0,10(%a0) jbra .L1487 .L1483: cmp.w #6,%d1 jbgt .L1488 move.b 18(%a0),%d2 moveq #0,%d0 move.b %d2,%d0 move.b 14(%a0,%d0.l),%d1 cmp.b #1,16(%a0,%d0.l) jbne .L1490 subq.b #4,%d1 cmp.b #1,%d1 jbhi .L1492 cmp.w #3,10(%a0) jbeq .L1494 .L1492: move.w 10(%a0),%d0 cmp.w #5,%d0 jbne .L1495 .L1494: addq.b #1,%d2 move.b %d2,18(%a0) move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 clr.w 10(%a0) jbra .L1496 .L1495: addq.w #1,%d0 jbra .L1509 .L1490: move.w 10(%a0),%d0 jbne .L1497 addq.b #1,%d2 move.b %d2,18(%a0) jbra .L1496 .L1497: subq.w #1,%d0 .L1509: move.w %d0,10(%a0) .L1496: move.w %d3,%d1 ext.l %d1 lea Racket,%a3 lsl.l #2,%d1 move.l (%a3,%d1.l),%a0 move.b 18(%a0),%d0 cmp.b #2,%d0 jbeq .L1499 cmp.b #1,%d0 jbne .L1501 tst.b 15(%a0) jbne .L1501 .L1499: move.b 13(%a0),4(%a0) move.l (%a3,%d1.l),%a0 move.b 13(%a0),9(%a0) move.l (%a3,%d1.l),%a1 move.w 12(%a1),%a2 lea RACKETS_GAME_size,%a0 move.b (%a0,%a2.l),5(%a1) move.l (%a3,%d1.l),%a0 move.b 5(%a0),%d0 subq.b #1,%d0 move.b %d0,7(%a0) move.l (%a3,%d1.l),%a0 move.w #-1,12(%a0) jbra .L1487 .L1501: and.l #255,%d0 move.b 14(%a0,%d0.l),9(%a0) move.w %d3,%d2 ext.l %d2 lea Racket,%a2 lsl.l #2,%d2 move.l (%a2,%d2.l),%a0 move.b 9(%a0),4(%a0) move.l (%a2,%d2.l),%a1 move.w 10(%a1),%a0 moveq #0,%d1 move.b 9(%a1),%d1 move.l %d1,%d0 add.l %d1,%d0 add.l %d1,%d0 add.l %d0,%d0 lea (%a0,%d0.l),%a0 add.l #RACKETS_ANIMS_size-24,%a0 move.b (%a0),5(%a1) move.l (%a2,%d2.l),%a0 move.b 5(%a0),%d0 subq.b #1,%d0 move.b %d0,7(%a0) jbra .L1487 .L1488: move.w 10(%a0),%d1 cmp.w #4,%d1 jbne .L1503 cmp.b #7,4(%a0) jbne .L1505 move.b %d3,%d0 subq.w #1,%d3 move.w %d0,-(%sp) jbsr DestroyRacket addq.l #2,%sp jbra .L1487 .L1505: move.w #-1,12(%a0) move.b #1,4(%a0) move.l (%a1,%d0.l),%a0 clr.w 10(%a0) move.b #29,5(%a0) move.l (%a1,%d0.l),%a0 move.b #28,7(%a0) move.l (%a1,%d0.l),%a0 move.b #9,6(%a0) move.l (%a1,%d0.l),%a0 move.b #8,8(%a0) move.l (%a1,%d0.l),%a0 move.b #1,9(%a0) clr.w %d0 move.b HUMAIN0,%d0 cmp.w %d3,%d0 jbne .L1487 move.w #1,EndAnimForHumain0 jbra .L1487 .L1503: addq.w #1,%d1 move.w %d1,10(%a0) .L1487: addq.w #1,%d3 .L1481: clr.w %d0 move.b nbrRacket,%d0 cmp.w %d3,%d0 jbgt .L1482 .L1508: movm.l (%sp)+,#0xc08 rts .even .globl INT1_RacketsVarSpeed INT1_RacketsVarSpeed: move.w __RACKET_VARSPEED_COUNTER,%d1 move.w %d1,%d0 add.w #330,%d0 move.w %d0,__RACKET_VARSPEED_COUNTER cmp.w #-32768,%d0 jbls .L1515 add.w #-32438,%d1 move.w %d1,__RACKET_VARSPEED_COUNTER clr.w %d1 move.b nbrRacket,%d1 clr.w %d0 lea Racket,%a1 jbra .L1513 .L1514: move.l (%a1)+,%a0 move.w (%a0),68(%a0) addq.w #1,%d0 .L1513: cmp.w %d0,%d1 jbgt .L1514 .L1515: rts .even .globl INT1_Bonus INT1_Bonus: move.l %a2,-(%sp) move.l %d3,-(%sp) move.w __COUNTER_BONUS,%d1 move.w %d1,%d0 add.w #3084,%d0 move.w %d0,__COUNTER_BONUS cmp.w #-32768,%d0 jbls .L1526 add.w #-29684,%d1 move.w %d1,__COUNTER_BONUS tst.w INT_START_BONUS jbeq .L1526 clr.w %d2 move.b nbrBonus,%d2 clr.w %d1 lea BONUS_SPRITE_ANIM,%a2 lea BONUS_SHOWANIM,%a1 lea BONUS_ypos,%a0 jbra .L1520 .L1521: move.w (%a0),%d0 move.w %d0,%d3 addq.w #2,%d3 move.w %d3,(%a0) addq.w #8,%d0 cmp.w #199,%d0 jble .L1522 move.w #193,(%a0) .L1522: move.b (%a1),%d0 addq.b #1,%d0 move.b %d0,(%a1) cmp.b #3,%d0 jbls .L1524 move.b (%a2),%d0 addq.b #1,%d0 and.b #7,%d0 move.b %d0,(%a2) clr.b (%a1) .L1524: addq.w #1,%d1 addq.l #1,%a2 addq.l #1,%a1 addq.l #2,%a0 .L1520: cmp.w %d1,%d2 jbgt .L1521 .L1526: move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl INT1_Missiles INT1_Missiles: move.w __COUNTER_MISSILES,%d1 move.w %d1,%d0 add.w #3855,%d0 move.w %d0,__COUNTER_MISSILES cmp.w #-32768,%d0 jbls .L1538 add.w #-28913,%d1 move.w %d1,__COUNTER_MISSILES clr.w %d2 move.b nbrMissile,%d2 clr.w %d1 lea MISSILE_ypos,%a0 jbra .L1530 .L1531: move.w (%a0),%d0 subq.w #3,%d0 move.w %d0,(%a0) cmp.w #7,%d0 jbgt .L1532 move.w #8,(%a0) .L1532: addq.w #1,%d1 addq.l #2,%a0 .L1530: cmp.w %d1,%d2 jbgt .L1531 tst.w StartIntMissiles jbeq .L1538 clr.w %d1 move.b nbrRacket,%d1 clr.w %d0 lea Racket,%a1 jbra .L1536 .L1537: move.l (%a1)+,%a0 addq.l #1,32(%a0) addq.w #1,%d0 .L1536: cmp.w %d0,%d1 jbgt .L1537 .L1538: rts .even .globl INT1_Missiles_anim INT1_Missiles_anim: move.l %d3,-(%sp) move.w __COUNTER_MISSILES_ANIM,%d1 move.w %d1,%d0 add.w #385,%d0 move.w %d0,__COUNTER_MISSILES_ANIM cmp.w #-32768,%d0 jbls .L1548 add.w #-32383,%d1 move.w %d1,__COUNTER_MISSILES_ANIM tst.w StartIntMissiles jbeq .L1548 clr.w %d3 jbra .L1543 .L1544: move.w %d3,%a0 lea MISSILE_ANIM_sprite,%a1 move.b (%a1,%a0.l),%d0 cmp.b #1,%d0 jbls .L1545 move.b %d3,%d0 subq.w #1,%d3 move.w %d0,-(%sp) jbsr DELETE_ANIM_MISSILE addq.l #2,%sp jbra .L1547 .L1545: addq.b #1,%d0 move.b %d0,(%a1,%a0.l) .L1547: addq.w #1,%d3 .L1543: clr.w %d0 move.b nbrMissile_anim,%d0 cmp.w %d3,%d0 jbgt .L1544 .L1548: move.l (%sp)+,%d3 rts .even .globl INT1_DoubleRacket_anim INT1_DoubleRacket_anim: movm.l #0x1820,-(%sp) tst.w StartIntDoubleRacket jbeq .L1561 move.w __COUNTER_DOUBLE_RACKET_ANIM,%d1 move.w %d1,%d0 add.w #2570,%d0 move.w %d0,__COUNTER_DOUBLE_RACKET_ANIM cmp.w #-32768,%d0 jbls .L1561 add.w #-30198,%d1 move.w %d1,__COUNTER_DOUBLE_RACKET_ANIM clr.w %d4 jbra .L1553 .L1554: move.w %d4,%d3 ext.l %d3 lea Racket,%a2 lsl.l #2,%d3 move.l (%a2,%d3.l),%a0 tst.w 44(%a0) jbeq .L1555 tst.w 50(%a0) jbne .L1555 move.b 48(%a0),%d0 ext.w %d0 add.w 46(%a0),%d0 move.w %d0,46(%a0) jbgt .L1558 clr.w 44(%a0) jbra .L1555 .L1558: cmp.w #36,%d0 jbne .L1555 move.w %d4,-(%sp) jbsr AddDoubleRacket move.l (%a2,%d3.l),%a0 clr.w 44(%a0) addq.w #1,%d4 addq.l #2,%sp .L1555: addq.w #1,%d4 .L1553: clr.w %d0 move.b nbrRacket,%d0 cmp.w %d4,%d0 jbgt .L1554 .L1561: movm.l (%sp)+,#0x418 rts .even .globl INT1_Ghost INT1_Ghost: tst.w StartIntGhost jbeq .L1574 move.w __COUNTER_GHOST,%d1 move.w %d1,%d0 add.w #1028,%d0 move.w %d0,__COUNTER_GHOST cmp.w #-32768,%d0 jbls .L1574 add.w #-31740,%d1 move.w %d1,__COUNTER_GHOST clr.w %d2 move.b nbrRacket,%d2 clr.w %d1 lea Racket,%a1 jbra .L1566 .L1567: move.l (%a1),%a0 tst.w 54(%a0) jbeq .L1568 tst.w 60(%a0) jbeq .L1568 tst.w 62(%a0) jbne .L1568 move.w 58(%a0),%d0 cmp.w #13,%d0 jbgt .L1572 move.b #1,56(%a0) move.l (%a1),%a0 clr.w 60(%a0) jbra .L1568 .L1572: subq.w #2,%d0 move.w %d0,58(%a0) .L1568: addq.w #1,%d1 addq.l #4,%a1 .L1566: cmp.w %d1,%d2 jbgt .L1567 .L1574: rts .even .globl INT1_DoorsEndLevel INT1_DoorsEndLevel: move.w __COUNTER_DOORS_ENDLEVEL,%d1 move.w %d1,%d0 add.w #514,%d0 move.w %d0,__COUNTER_DOORS_ENDLEVEL cmp.w #-32768,%d0 jbls .L1583 add.w #-32254,%d1 move.w %d1,__COUNTER_DOORS_ENDLEVEL tst.w EndLevel jbeq .L1583 move.b EndLevel_Sprite,%d0 addq.b #1,%d0 move.b %d0,EndLevel_Sprite cmp.b #2,%d0 jbls .L1579 clr.b EndLevel_Sprite .L1579: tst.w PlayAnimEndLevel jbeq .L1583 move.w AnimEndLevel_x,%d0 subq.w #1,%d0 move.w %d0,AnimEndLevel_x jbge .L1583 clr.w PlayAnimEndLevel .L1583: rts .even .globl INT1_MonstersAnim INT1_MonstersAnim: move.l %d3,-(%sp) tst.w StartIntMonster jbeq .L1594 move.w __COUNTER_MONSTER_ANIM,%d1 move.w %d1,%d0 add.w #900,%d0 move.w %d0,__COUNTER_MONSTER_ANIM cmp.w #-32768,%d0 jbls .L1594 add.w #-31868,%d1 move.w %d1,__COUNTER_MONSTER_ANIM clr.w %d3 jbra .L1588 .L1589: move.w %d3,%d0 ext.l %d0 lea Monster,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 addq.b #1,5(%a0) move.l (%a1,%d0.l),%a0 move.b 5(%a0),%d0 cmp.b 6(%a0),%d0 jbcs .L1590 tst.w 20(%a0) jbeq .L1592 move.b %d3,%d0 subq.w #1,%d3 move.w %d0,-(%sp) jbsr DeleteMonster addq.l #2,%sp jbra .L1590 .L1592: clr.b 5(%a0) .L1590: addq.w #1,%d3 .L1588: clr.w %d0 move.b nbrMonster,%d0 cmp.w %d3,%d0 jbgt .L1589 .L1594: move.l (%sp)+,%d3 rts .even .globl INT1_MonstersSpeed INT1_MonstersSpeed: tst.w StartIntMonster jbeq .L1602 clr.w %d2 move.b nbrMonster,%d2 clr.w %d1 lea Monster,%a1 jbra .L1598 .L1599: move.l (%a1),%a0 move.w 14(%a0),%d0 add.w 12(%a0),%d0 move.w %d0,14(%a0) cmp.w #-32768,%d0 jbls .L1600 add.w #-32768,%d0 move.w %d0,14(%a0) addq.b #1,10(%a0) .L1600: addq.w #1,%d1 addq.l #4,%a1 .L1598: cmp.w %d1,%d2 jbgt .L1599 .L1602: rts .even .globl INT1_MonstersChangeDir INT1_MonstersChangeDir: movm.l #0x1030,-(%sp) tst.w StartIntMonster jbeq .L1615 move.w __COUNTER_MONSTER_DIR,%d1 move.w %d1,%d0 add.w #102,%d0 move.w %d0,__COUNTER_MONSTER_DIR cmp.w #-32768,%d0 jbls .L1615 add.w #-32666,%d1 move.w %d1,__COUNTER_MONSTER_DIR clr.w %d3 lea Monster,%a3 jbra .L1607 .L1608: move.w #2,-(%sp) lea GCL_Random,%a2 jbsr (%a2) addq.l #2,%sp tst.w %d0 jbeq .L1609 move.l (%a3),%a0 clr.b 18(%a0) move.l (%a3),%a0 move.b #1,19(%a0) jbra .L1611 .L1609: move.w #2,-(%sp) jbsr (%a2) addq.l #2,%sp tst.w %d0 jbeq .L1611 move.l (%a3),%a0 clr.b 19(%a0) move.w #2,-(%sp) jbsr (%a2) addq.l #2,%sp move.l (%a3),%a0 tst.w %d0 seq %d0 or.b #1,%d0 move.b %d0,18(%a0) .L1611: addq.w #1,%d3 addq.l #4,%a3 .L1607: clr.w %d0 move.b nbrMonster,%d0 cmp.w %d3,%d0 jbgt .L1608 .L1615: movm.l (%sp)+,#0xc08 rts .even .globl INT1_BlocksAnim INT1_BlocksAnim: move.l %d3,-(%sp) move.w __COUNTER_BLOCKS_ANIM,%d1 move.w %d1,%d0 add.w #1285,%d0 move.w %d0,__COUNTER_BLOCKS_ANIM cmp.w #-32768,%d0 jbls .L1623 add.w #-31483,%d1 move.w %d1,__COUNTER_BLOCKS_ANIM clr.w %d3 jbra .L1619 .L1620: move.w %d3,%a0 lea AnimBlock_counter,%a1 move.b (%a1,%a0.l),%d0 addq.b #1,%d0 move.b %d0,(%a1,%a0.l) cmp.b #3,%d0 jbls .L1621 move.b %d3,%d0 subq.w #1,%d3 move.w %d0,-(%sp) jbsr DeleteBlockAnim addq.l #2,%sp .L1621: addq.w #1,%d3 .L1619: clr.w %d0 move.b nbrAnimBlocks,%d0 cmp.w %d3,%d0 jbgt .L1620 .L1623: move.l (%sp)+,%d3 rts .even .globl INT1_RacketsSpeed INT1_RacketsSpeed: clr.w %d2 move.b nbrRacket,%d2 clr.w %d1 lea Racket,%a1 jbra .L1625 .L1626: move.l (%a1),%a0 move.w 26(%a0),%d0 add.w 24(%a0),%d0 move.w %d0,26(%a0) cmp.w #-32768,%d0 jbls .L1627 add.w #-32768,%d0 move.w %d0,26(%a0) addq.b #1,22(%a0) .L1627: addq.w #1,%d1 addq.l #4,%a1 .L1625: cmp.w %d1,%d2 jbgt .L1626 rts .even .globl INT1_ShowLogo INT1_ShowLogo: tst.w EndCounterLogo jbne .L1635 move.w COUNTER_LOGO,%d0 addq.w #1,%d0 move.w %d0,COUNTER_LOGO cmp.w #6,%d0 jbls .L1635 move.w #1,EndCounterLogo .L1635: rts .even .globl INT1_1Hz INT1_1Hz: move.w __COUNTER_1HZ,%d1 move.w %d1,%d0 add.w #128,%d0 move.w %d0,__COUNTER_1HZ cmp.w #-32768,%d0 jbls .L1639 add.w #-32640,%d1 move.w %d1,__COUNTER_1HZ move.w delay_1Hz,%d0 addq.w #1,%d0 move.w %d0,delay_1Hz move.w counter_fps,counter_fps2 clr.w counter_fps jbsr INT1_ShowLogo .L1639: rts .even .globl GAME_INT1 GAME_INT1: jbsr INT1_1Hz jbsr INT1_80Hz tst.w StartInt1 jbeq .L1643 jbsr INT1_ScrollLevel jbsr INT1_BillesSpeed jbsr INT1_BillesVarSpeed jbsr INT1_BricksTIME jbsr INT1_BricksMOVE jbsr INT1_RacketsAnim jbsr INT1_RacketsVarSpeed jbsr INT1_Bonus jbsr INT1_Missiles jbsr INT1_Missiles_anim jbsr INT1_DoubleRacket_anim jbsr INT1_Ghost jbsr INT1_DoorsEndLevel jbsr INT1_MonstersAnim jbsr INT1_MonstersSpeed jbsr INT1_MonstersChangeDir jbsr INT1_BlocksAnim jbsr INT1_RacketsSpeed .L1643: rts .even .globl interrupt1 interrupt1: movm.l #0xe0c0,-(%sp) jbsr __get_hw_version cmp.w #1,%d0 jbne .L1645 move.w __COUNTER_HARDWARE,%d1 move.w %d1,%d0 add.w #21500,%d0 move.w %d0,__COUNTER_HARDWARE cmp.w #-32768,%d0 jbls .L1649 add.w #-11268,%d1 move.w %d1,__COUNTER_HARDWARE .L1645: jbsr GAME_INT1 .L1649: movm.l (%sp)+,#0x307 rte .even .globl GAMETIME_BilleSpeed GAMETIME_BilleSpeed: move.l %a2,-(%sp) move.l %d3,-(%sp) move.w billes_counter_time,%d0 addq.w #1,%d0 move.w %d0,billes_counter_time tst.w StartInt1 jbeq .L1656 cmp.w #59,%d0 jbls .L1656 clr.w billes_counter_time clr.w %d3 lea Bille,%a2 jbra .L1654 .L1655: move.l (%a2)+,%a0 move.w 18(%a0),%a0 addq.w #5,%a0 move.w %a0,-(%sp) move.w %d3,-(%sp) jbsr ChangeBilleSpeed addq.w #1,%d3 addq.l #4,%sp .L1654: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L1655 .L1656: move.l (%sp)+,%d3 move.l (%sp)+,%a2 rts .even .globl INT5_BonusColle INT5_BonusColle: movm.l #0x1830,-(%sp) tst.w StartInt1 jbeq .L1674 clr.w %d4 lea Racket,%a3 jbra .L1660 .L1661: move.l (%a3),%a0 tst.w 38(%a0) jbeq .L1662 move.w 40(%a0),%d0 addq.w #1,%d0 move.w %d0,40(%a0) cmp.w #6,%d0 jbls .L1662 tst.w StartGameForHumain0 jbeq .L1662 clr.w %d3 lea Bille,%a2 jbra .L1666 .L1667: move.l (%a2),%a0 clr.w %d0 move.b 36(%a0),%d0 cmp.w %d0,%d4 jbne .L1668 tst.w 42(%a0) jbeq .L1668 move.w %d3,-(%sp) jbsr Bonus_RacketNoSticked move.l (%a3),%a0 clr.w 40(%a0) addq.l #2,%sp tst.w EndAnimForHumain0 jbne .L1668 tst.w StartGameForHumain0 jbeq .L1668 tst.w LanceBille jbne .L1668 move.w %d4,-(%sp) jbsr Bonus_DesactivateColle move.w #1,LanceBille addq.l #2,%sp .L1668: addq.w #1,%d3 addq.l #4,%a2 .L1666: clr.w %d0 move.b nbrBille,%d0 cmp.w %d3,%d0 jbgt .L1667 .L1662: addq.w #1,%d4 addq.l #4,%a3 .L1660: clr.w %d0 move.b nbrRacket,%d0 cmp.w %d4,%d0 jbgt .L1661 .L1674: movm.l (%sp)+,#0xc18 rts .even .globl INT_GAME INT_GAME: movm.l #0xe0c0,-(%sp) addq.l #1,GAMETIME jbsr GAMETIME_BilleSpeed jbsr INT5_BonusColle movm.l (%sp)+,#0x307 rte .even .globl DrawLifes DrawLifes: move.l %d4,-(%sp) move.l %d3,-(%sp) moveq #0,%d0 move.b C_DECORS,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a1 lea SPRITE_DECORS,%a0 move.l (%a0,%d0.l),%a0 jbsr DrawScreen2 moveq #9,%d3 clr.w %d4 jbra .L1678 .L1679: move.l ScreenBuffer,%a0 move.l SPRITE_LIFE,%a1 moveq #6,%d2 move.w #194,%d1 move.w %d3,%d0 jbsr FastGraySprite16_MASK_R add.w #16,%d3 addq.w #1,%d4 .L1678: clr.w %d0 move.b nbrLifes,%d0 cmp.w %d4,%d0 jble .L1680 cmp.w #217,%d3 jbne .L1679 .L1680: move.l BufferLifes,%a1 move.l ScreenBuffer,%a0 jbsr CopyScreenToBufferLifes move.l (%sp)+,%d3 move.l (%sp)+,%d4 rts .even .globl SetDecors SetDecors: move.b 5(%sp),%d0 move.b %d0,C_DECORS and.l #255,%d0 lsl.l #2,%d0 lea DecorsBlocks,%a1 lea SPRITE_DECORS,%a0 move.l (%a0,%d0.l),%a0 jbsr CopyDecorsBlocks rts .even .globl ENV_Prepare ENV_Prepare: movm.l #0x3c,-(%sp) move.l ScreenBuffer,%a0 jbsr BlackScreenBuffer moveq #0,%d0 move.b C_DECORS,%d0 lea SPRITE_DECORS,%a2 lsl.l #2,%d0 move.l ScreenBuffer,%a1 move.l (%a2,%d0.l),%a0 jbsr DrawScreen moveq #0,%d0 move.b C_DECORS,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a1 move.l (%a2,%d0.l),%a0 jbsr DrawScreen2 move.l ScreenBuffer,%a0 jbsr DrawScreenShadow move.l ScreenBuffer,%a0 move.l SPRITE_SQUARE_doors0,%a5 move.l SPRITE_SQUARE_up,%a4 move.l SPRITE_SQUARE_corner_right,%a3 move.l SPRITE_SQUARE_corner_left,%a2 jbsr DrawSquareUp movm.l (%sp)+,#0x3c00 rts .even .globl ENV_DrawLevel ENV_DrawLevel: jbsr InitBufferMap jbsr DrawMap rts .even .globl ENV_EndPrepare ENV_EndPrepare: move.l %a2,-(%sp) move.l ScreenBuffer,%a0 move.l SPRITE_SQUARE_left_and_right,%a2 jbsr DrawSquareSide move.l BufferMap,%a1 move.l ScreenBuffer,%a0 jbsr CopyScreenToBufferMap move.l BufferLifes,%a1 move.l ScreenBuffer,%a0 jbsr CopyScreenToBufferLifes jbsr DrawLifes move.l (%sp)+,%a2 rts .even .globl ENV_DrawScreenAndMap ENV_DrawScreenAndMap: moveq #0,%d0 move.b C_DECORS,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a1 lea SPRITE_DECORS,%a0 move.l (%a0,%d0.l),%a0 jbsr DrawScreen3 move.l ScreenBuffer,%a1 move.l BufferLifes,%a0 jbsr CopyBufferLifesToScreen move.l ScreenBuffer,%a1 move.l BufferMap,%a0 jbsr CopyBufferMapToScreen jbsr MAP_ShowSpecialBricks_TIME jbsr MAP_ShowSpecialBricks_MOVE rts .even .globl ENV_DrawMap ENV_DrawMap: movm.l #0x3c,-(%sp) move.l ScreenBuffer,%a0 jbsr BlackScreenBuffer moveq #0,%d0 move.b C_DECORS,%d0 lea SPRITE_DECORS,%a2 lsl.l #2,%d0 move.l ScreenBuffer,%a1 move.l (%a2,%d0.l),%a0 jbsr DrawScreen moveq #0,%d0 move.b C_DECORS,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a1 move.l (%a2,%d0.l),%a0 jbsr DrawScreen2 move.l ScreenBuffer,%a0 jbsr DrawScreenShadow move.l ScreenBuffer,%a0 move.l SPRITE_SQUARE_doors0,%a5 move.l SPRITE_SQUARE_up,%a4 move.l SPRITE_SQUARE_corner_right,%a3 move.l SPRITE_SQUARE_corner_left,%a2 jbsr DrawSquareUp jbsr DrawMap jbsr ENV_EndPrepare movm.l (%sp)+,#0x3c00 rts .even .globl ENV_SetDecors2 ENV_SetDecors2: move.b 5(%sp),%d0 move.w %d0,-(%sp) jbsr SetDecors jbsr ENV_DrawMap addq.l #2,%sp rts .even .globl MNU_ShowDecors MNU_ShowDecors: lea SetDecors,%a1 tst.w CST_DECORS jbeq .L1698 move.l MAP_PTR,%a0 move.b (%a0),%d0 and.b #15,%d0 move.w %d0,-(%sp) jbra .L1704 .L1698: clr.w -(%sp) .L1704: jbsr (%a1) addq.l #2,%sp tst.w 4(%sp) jbeq .L1703 subq.l #2,%sp move.b C_DECORS,1(%sp) jbsr ENV_SetDecors2 addq.l #2,%sp .L1703: rts .even .globl Levels_SetMap Levels_SetMap: movm.l #0x1c00,-(%sp) move.b 17(%sp),%d5 move.b 19(%sp),%d4 clr.w %d2 move.b %d5,%d2 cmp.w MAP_SIZE,%d2 jbhi .L1706 move.w %d2,%d0 muls.w #472,%d0 clr.w %d3 move.b %d4,%d3 move.w %d3,%d1 muls.w #236,%d1 add.w %d1,%d0 add.w #-706,%d0 move.w %d0,%a0 cmp.w #0,%a0 jblt .L1706 move.w %d2,MAP_LVL move.b %d4,MAP_DIR add.l FileLVL,%a0 move.l %a0,MAP_PTR move.b (%a0),MAP_SCENARIO pea 234.w pea 2(%a0) pea LevelMap jsr _ROM_CALL_26A:l clr.w EndLevel move.b %d5,LEVEL move.w %d3,LEVEL_DIR clr.w billes_counter_time clr.w -(%sp) jbsr MNU_ShowDecors moveq #1,%d0 lea (14,%sp),%sp jbra .L1709 .L1706: clr.w %d0 .L1709: movm.l (%sp)+,#0x38 rts .even .globl GAME_CreateRacketHumain0 GAME_CreateRacketHumain0: clr.w StartGameForHumain0 clr.w EndAnimForHumain0 clr.w EndCounterLogo move.w #1,StartInt1 clr.w COUNTER_LOGO jbsr InitScrollingLevel move.l #6357176,-(%sp) jbsr CREATE_ANIM_RACKET_NEW jbsr DeleteAllBonus move.b nbrRacket,%d0 subq.b #1,%d0 move.b %d0,HUMAIN0 addq.l #4,%sp rts .even .globl CheckBillesPlayer CheckBillesPlayer: move.b 5(%sp),%d1 cmp.b #-1,%d1 jbeq .L1723 moveq #0,%d0 move.b %d1,%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 cmp.b #7,4(%a0) jbeq .L1723 tst.w StartGameForHumain0 jbeq .L1723 tst.w EndLevel jbne .L1723 clr.w %d2 move.b nbrBille,%d2 clr.w %d0 lea Bille,%a1 jbra .L1719 .L1720: move.l (%a1)+,%a0 cmp.b 36(%a0),%d1 jbeq .L1723 addq.w #1,%d0 .L1719: cmp.w %d0,%d2 jbgt .L1720 move.w %d1,-(%sp) jbsr CREATE_ANIM_RACKET_DEAD addq.l #2,%sp .L1723: rts .section .rodata.__unalignedstr,"dmu" .LC34: .ascii "ROUND\0" .LC35: .ascii "0\0" .LC36: .ascii "READY\0" .text .even .globl GAME_DrawLogo GAME_DrawLogo: move.l %a3,-(%sp) move.l %a2,-(%sp) tst.w EndCounterLogo jbne .L1739 move.b LEVEL,%d1 cmp.b #1,%d1 jbeq .L1727 cmp.b #18,%d1 jbeq .L1727 cmp.b #17,%d1 jbeq .L1730 cmp.b #34,%d1 jbeq .L1730 move.w LEVEL_DIR,%d0 cmp.b #16,%d1 jbhi .L1733 moveq #3,%d1 jbra .L1740 .L1733: moveq #5,%d1 .L1740: sub.b %d0,%d1 move.b %d1,%d0 jbra .L1735 .L1727: moveq #1,%d0 jbra .L1735 .L1730: clr.b %d0 .L1735: and.l #255,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a1 lea SPRITE_LOGO,%a0 move.l (%a0,%d0.l),%a0 jbsr DrawLogo move.l ScreenBuffer,-(%sp) pea .LC34 move.l #5308577,-(%sp) lea Font0_DrawString,%a2 jbsr (%a2) move.b LEVEL,%d0 lea (12,%sp),%sp move.l %a2,%a3 lea Font0_DrawNumber,%a2 cmp.b #9,%d0 jbhi .L1736 move.l ScreenBuffer,-(%sp) pea .LC35 move.l #8454305,-(%sp) jbsr (%a3) move.l ScreenBuffer,-(%sp) clr.w %d0 move.b LEVEL,%d0 move.w %d0,-(%sp) move.l #8978593,-(%sp) jbsr (%a2) lea (22,%sp),%sp jbra .L1738 .L1736: move.l ScreenBuffer,-(%sp) and.w #255,%d0 move.w %d0,-(%sp) move.l #8454305,-(%sp) jbsr (%a2) lea (10,%sp),%sp .L1738: move.l ScreenBuffer,-(%sp) pea .LC36 move.l #6029485,-(%sp) jbsr (%a3) move.w #32,xScroll lea (12,%sp),%sp .L1739: move.l (%sp)+,%a2 move.l (%sp)+,%a3 rts .section .rodata.__unalignedstr,"dmu" .LC37: .ascii "GAME OVER\0" .text .even .globl GAME_Lifes GAME_Lifes: cmp.b #-1,HUMAIN0 jbne .L1747 tst.w EndLevel jbne .L1747 move.b nbrLifes,%d0 jbne .L1745 move.l ScreenBuffer,-(%sp) pea .LC37 move.l #4980897,-(%sp) jbsr Font0_DrawString move.w #32,xScroll lea (12,%sp),%sp rts .L1745: subq.b #1,%d0 move.b %d0,nbrLifes jbsr DrawLifes jbsr ENV_Prepare jbsr DrawMap jbsr ENV_EndPrepare jbsr ENV_DrawScreenAndMap jbsr CenterScrolling jbsr ShowScreenBuffer jbsr GAME_CreateRacketHumain0 .L1747: rts .even .globl ENDLEVEL_NoBricks ENDLEVEL_NoBricks: tst.b COUNTER_BRICKS jbne .L1753 tst.w EndLevel jbne .L1753 tst.w StartGameForHumain0 jbeq .L1753 move.w #1,EndLevel subq.l #2,%sp move.b HUMAIN0,1(%sp) jbsr DeleteAllBilles jbsr DeleteAllMissiles jbsr DeleteAllBonus jbsr DeleteAllMonsters subq.l #2,%sp move.b HUMAIN0,1(%sp) jbsr DESTROY_ANIM_DOUBLE_RACKET move.w #1,-(%sp) subq.l #2,%sp move.b HUMAIN0,1(%sp) jbsr ChangeRacket clr.w PlayAnimEndLevel addq.l #8,%sp .L1753: rts .even .globl ENDLEVEL_AttendPlayer ENDLEVEL_AttendPlayer: move.l %d3,-(%sp) tst.w EndLevel jbeq .L1773 tst.w EndCounterLogo jbeq .L1773 moveq #0,%d0 move.b EndLevel_Sprite,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a1 lea SPRITE_ENDDOORS,%a0 move.l (%a0,%d0.l),%a0 jbsr DrawEndDoors tst.w PlayAnimEndLevel jbeq .L1758 move.l ScreenBuffer,%d1 move.w AnimEndLevel_x,%d0 tst.w LEVEL_DIR jbeq .L1762 move.w #195,%a0 sub.w %d0,%a0 move.w %a0,%d0 .L1762: move.l %d1,%a0 move.l SPRITE_RACKETS+24,%a1 moveq #9,%d2 move.w #184,%d1 jbsr FastGraySprite32_MASK_R jbra .L1763 .L1758: move.b HUMAIN0,%d3 moveq #0,%d0 move.b %d3,%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 move.w (%a0),%d2 cmp.w #8,%d2 jbne .L1764 move.w 2(%a0),%d1 cmp.w #176,%d1 jble .L1764 clr.w %d0 move.b 8(%a0),%d0 add.w %d0,%d1 cmp.w #194,%d1 jbgt .L1764 move.w %d3,-(%sp) jbsr DestroyRacket clr.w LEVEL_DIR jbra .L1774 .L1764: clr.w %d0 move.b 7(%a0),%d0 add.w %d0,%d2 cmp.w #215,%d2 jbne .L1763 move.w 2(%a0),%d1 cmp.w #176,%d1 jble .L1763 clr.w %d0 move.b 8(%a0),%d0 add.w %d0,%d1 cmp.w #194,%d1 jbgt .L1763 move.w %d3,-(%sp) jbsr DestroyRacket move.w #1,LEVEL_DIR .L1774: move.w #1,PlayAnimEndLevel move.w #8,AnimEndLevel_x addq.l #2,%sp .L1763: tst.w PlayAnimEndLevel jbne .L1773 cmp.b #-1,HUMAIN0 jbne .L1773 move.w LEVEL_DIR,-(%sp) move.b LEVEL,%d0 addq.b #1,%d0 move.w %d0,-(%sp) jbsr Levels_SetMap jbsr ENV_Prepare jbsr ENV_DrawLevel jbsr ENV_EndPrepare jbsr DestroyAllRackets jbsr GAME_CreateRacketHumain0 addq.l #4,%sp .L1773: move.l (%sp)+,%d3 rts .even .globl myint2 myint2: move.b #0,6291483 rte .even .globl DeleteGame DeleteGame: move.l %a2,-(%sp) lea _ROM_CALL_9F:l,%a2 move.l entry_fileGFX,%a0 move.w 12(%a0),-(%sp) jbsr (%a2) move.l entry_fileSND,%a0 move.w 12(%a0),-(%sp) jbsr (%a2) move.l entry_fileLVL,%a0 move.w 12(%a0),-(%sp) jbsr (%a2) #APP bclr.b #2,0x600001 #NO_APP move.l OldInt1,100.w #APP bset.b #2,0x600001 bclr.b #2,0x600001 #NO_APP move.l OldInt2,104.w #APP bset.b #2,0x600001 #NO_APP addq.l #6,%sp move.l (%sp)+,%a2 rts .even .globl UninstallGame UninstallGame: move.l %a2,-(%sp) lea _ROM_CALL_9F:l,%a2 move.l entry_fileGFX,%a0 move.w 12(%a0),-(%sp) jbsr (%a2) move.l entry_fileSND,%a0 move.w 12(%a0),-(%sp) jbsr (%a2) move.l entry_fileLVL,%a0 move.w 12(%a0),-(%sp) jbsr (%a2) lea _ROM_CALL_A3:l,%a2 move.l ScreenBuffer,-(%sp) jbsr (%a2) move.l BufferMap,-(%sp) jbsr (%a2) move.l BufferLifes,-(%sp) jbsr (%a2) jbsr Destroy_BilleAllocation jbsr Destroy_RacketAllocation jbsr Destroy_MonsterAllocation jbsr pSnd_UninstallSound jbsr pSnd_DisableSound jbsr GrayOff #APP bclr.b #2,0x600001 #NO_APP move.l OldInt1,100.w #APP bset.b #2,0x600001 bclr.b #2,0x600001 #NO_APP move.l OldInt2,104.w #APP bset.b #2,0x600001 #NO_APP pea 3840.w move.l SaveScreen,-(%sp) pea 19456.w jsr _ROM_CALL_26A:l move.l SaveScreen,-(%sp) jbsr (%a2) lea (34,%sp),%sp move.l (%sp)+,%a2 rts .even .globl Font0_DrawChar_IntroBuffer Font0_DrawChar_IntroBuffer: move.l %d3,-(%sp) move.w 8(%sp),%d3 move.w 10(%sp),%d1 move.b 13(%sp),%d2 move.l 14(%sp),%a0 cmp.b #32,%d2 jbne .L1782 move.l SPRITE_FONT0,%a1 jbra .L1797 .L1782: cmp.b #34,%d2 jbne .L1785 move.l SPRITE_FONT0+4,%a1 jbra .L1797 .L1785: cmp.b #44,%d2 jbne .L1787 move.l SPRITE_FONT0+8,%a1 jbra .L1797 .L1787: cmp.b #46,%d2 jbne .L1789 move.l SPRITE_FONT0+12,%a1 jbra .L1797 .L1789: move.b %d2,%d0 add.b #-48,%d0 cmp.b #9,%d0 jbhi .L1791 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l %d0,%a1 add.l #SPRITE_FONT0-176,%a1 jbra .L1798 .L1791: move.b %d2,%d0 add.b #-65,%d0 cmp.b #25,%d0 jbhi .L1793 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l %d0,%a1 add.l #SPRITE_FONT0-204,%a1 jbra .L1798 .L1793: move.b %d2,%d0 add.b #-97,%d0 cmp.b #25,%d0 jbhi .L1796 moveq #0,%d0 move.b %d2,%d0 lsl.l #2,%d0 move.l %d0,%a1 add.l #SPRITE_FONT0-332,%a1 .L1798: move.l (%a1),%a1 .L1797: moveq #8,%d2 move.w %d3,%d0 jbsr Font0_DrawSprite_IntroBuffer .L1796: move.l (%sp)+,%d3 rts .even .globl Font0_DrawString_IntroBuffer Font0_DrawString_IntroBuffer: movm.l #0x1f20,-(%sp) move.w 28(%sp),%d3 move.w 30(%sp),%d7 move.l 32(%sp),%a2 move.l 36(%sp),%d6 moveq #0,%d5 jbra .L1800 .L1801: move.l %d6,-(%sp) subq.l #2,%sp move.b (%a2,%d4.l),1(%sp) move.w %d7,-(%sp) move.w %d3,-(%sp) jbsr Font0_DrawChar_IntroBuffer addq.w #8,%d3 lea (10,%sp),%sp .L1800: moveq #0,%d4 move.w %d5,%d4 move.l %a2,-(%sp) jsr _ROM_CALL_27E:l addq.l #1,%d5 addq.l #4,%sp cmp.l %d4,%d0 jbhi .L1801 movm.l (%sp)+,#0x4f8 rts .section .rodata.__unalignedstr,"dmu" .LC38: .ascii "PUSH\0" .LC39: .ascii "START\0" .text .even .globl INTRO_ArkanoidTitle INTRO_ArkanoidTitle: movm.l #0x1e30,-(%sp) move.w #2,delay_1Hz move.w __calculator,%d6 jbra .L1826 .L1806: move.l ScreenBuffer,%d0 tst.w %d6 jbeq .L1807 move.l %d0,%a1 move.l IMG_IntroTitle0,%a0 jbsr DrawFullPicture0 move.w delay_1Hz,%d0 cmp.w #1,%d0 jbls .L1809 move.l ScreenBuffer,-(%sp) pea .LC38 move.l #11862071,-(%sp) lea Font0_DrawString_White,%a2 jbsr (%a2) move.l ScreenBuffer,-(%sp) pea .LC39 move.l #11665473,-(%sp) jbsr (%a2) lea (24,%sp),%sp .L1809: move.w delay_1Hz,%d0 cmp.w #3,%d0 jbls .L1811 move.w #0,delay_1Hz .L1811: move.l __D_plane,%a3 move.l __L_plane,%a2 move.l ScreenBuffer,%a0 clr.w %d1 clr.w %d0 jbsr CopyScreenBufferToScreen jbra .L1826 .L1807: move.l %d0,%a1 move.l IMG_IntroTitle1,%a0 jbsr DrawFullPicture1 move.w delay_1Hz,%d0 cmp.w #1,%d0 jbls .L1813 move.l ScreenBuffer,-(%sp) pea .LC38 move.l #7733288,-(%sp) lea Font0_DrawString_White,%a2 jbsr (%a2) move.l ScreenBuffer,-(%sp) pea .LC39 move.l #7536690,-(%sp) jbsr (%a2) lea (24,%sp),%sp .L1813: move.w delay_1Hz,%d0 cmp.w #3,%d0 jbls .L1815 move.w #0,delay_1Hz .L1815: move.l __D_plane,%a3 move.l __L_plane,%a2 move.l ScreenBuffer,%a0 clr.w %d1 clr.w %d0 jbsr CopyScreenBufferToScreen4 .L1826: moveq #1,%d5 move.w #__ld_calc_const_9_1_9_9,%d0 move.w %d5,%d4 lsl.w %d0,%d4 lea opt_rowread,%a2 move.w %d4,%d0 jbsr (%a2) move.w #__ld_calc_const_1_0_1_1,%d1 move.w %d1,%d3 and.w #255,%d0 asr.w %d1,%d0 btst #0,%d0 jbne .L1820 move.w %d4,%d0 jbsr (%a2) and.w #255,%d0 asr.w %d3,%d0 btst #0,%d0 jbne .L1820 move.w #__ld_calc_const_6_1_6_6,%d0 lsl.w %d0,%d5 move.w %d5,%d0 jbsr (%a2) and.w #255,%d0 move.w #__ld_calc_const_6_0_6_6,%d1 asr.w %d1,%d0 btst #0,%d0 jbeq .L1806 .L1820: movm.l (%sp)+,#0xc78 rts .even .globl ScrollingIntroBuffer ScrollingIntroBuffer: move.l %a2,-(%sp) lea _ROM_CALL_26B:l,%a2 move.l BufferMap,%a0 pea 3690.w pea 30(%a0) move.l %a0,-(%sp) jbsr (%a2) move.l BufferMap,%a0 pea 3690.w pea 3750(%a0) pea 3720(%a0) jbsr (%a2) lea (24,%sp),%sp move.l (%sp)+,%a2 rts .even .globl CopyIntroBufferInScreenBuffer CopyIntroBufferInScreenBuffer: movm.l #0x38,-(%sp) move.w 16(%sp),%d1 lea _ROM_CALL_26A:l,%a4 clr.w %d0 move.b 19(%sp),%d0 muls.w #30,%d0 move.w %d0,%a3 move.w %d1,%d0 add.w %d1,%d0 lsl.w #5,%d1 sub.w %d0,%d1 move.w %d1,%a2 move.l %a3,-(%sp) move.l BufferMap,-(%sp) move.l ScreenBuffer,%d0 add.l %a2,%d0 move.l %d0,-(%sp) jbsr (%a4) move.l %a3,-(%sp) move.l BufferMap,%d0 add.l #3720,%d0 move.l %d0,-(%sp) add.l ScreenBuffer,%a2 pea 6000(%a2) jbsr (%a4) lea (24,%sp),%sp movm.l (%sp)+,#0x1c00 rts .even .globl INTRO_ShipIntroduction INTRO_ShipIntroduction: movm.l #0x1f30,-(%sp) move.l ScreenBuffer,%a0 jbsr BlackScreenBuffer move.l ScreenBuffer,%d0 tst.w __calculator jbeq .L1832 move.l %d0,%a1 move.l IMG_Introduction0_Picture0,%a0 jbsr DrawIntro0_Picture0 move.l __D_plane,%a3 move.l __L_plane,%a2 move.l ScreenBuffer,%a0 clr.w %d1 clr.w %d0 jbsr CopyScreenBufferToScreen jbra .L1834 .L1832: move.l %d0,%a1 move.l IMG_Introduction0_Picture1,%a0 jbsr DrawIntro0_Picture1 move.l __D_plane,%a3 move.l __L_plane,%a2 move.l ScreenBuffer,%a0 clr.w %d1 clr.w %d0 jbsr CopyScreenBufferToScreen4 .L1834: pea 7440.w move.w #255,-(%sp) move.l BufferMap,-(%sp) jsr _ROM_CALL_27C:l clr.w TouchKey clr.b %d4 moveq #7,%d3 lea (10,%sp),%sp jbra .L1867 .L1836: lea ScrollingIntroBuffer,%a0 tst.w __calculator jbeq .L1837 jbsr (%a0) cmp.b #7,%d3 jbne .L1839 moveq #0,%d0 move.b %d4,%d0 lsl.l #2,%d0 addq.b #1,%d4 move.l BufferMap,-(%sp) lea Text_Intro0,%a0 move.l (%a0,%d0.l),-(%sp) move.l #327722,-(%sp) jbsr Font0_DrawString_IntroBuffer clr.b %d3 lea (12,%sp),%sp jbra .L1841 .L1839: addq.b #1,%d3 .L1841: pea 49.w jbsr CopyIntroBufferInScreenBuffer move.l __D_plane,%a3 move.l __L_plane,%a2 move.l ScreenBuffer,%a0 clr.w %d1 clr.w %d0 jbsr CopyScreenBufferToScreen jbra .L1866 .L1837: jbsr (%a0) cmp.b #7,%d3 jbne .L1843 moveq #0,%d0 move.b %d4,%d0 lsl.l #2,%d0 addq.b #1,%d4 move.l BufferMap,-(%sp) lea Text_Intro1,%a0 move.l (%a0,%d0.l),-(%sp) move.l #65561,-(%sp) jbsr Font0_DrawString_IntroBuffer clr.b %d3 lea (12,%sp),%sp jbra .L1845 .L1843: addq.b #1,%d3 .L1845: pea 32.w jbsr CopyIntroBufferInScreenBuffer move.l __D_plane,%a3 move.l __L_plane,%a2 move.l ScreenBuffer,%a0 clr.w %d1 clr.w %d0 jbsr CopyScreenBufferToScreen4 .L1866: addq.l #4,%sp move.w #0,delay_80Hz .L1846: move.w delay_80Hz,%d0 cmp.w #4,%d0 jbls .L1846 lea opt_rowread,%a2 move.w %d7,%d0 jbsr (%a2) and.w #255,%d0 asr.w %d6,%d0 btst #0,%d0 jbne .L1867 move.w %d7,%d0 jbsr (%a2) and.w #255,%d0 asr.w %d6,%d0 btst #0,%d0 jbne .L1867 moveq #1,%d0 move.w #__ld_calc_const_6_1_6_6,%d1 lsl.w %d1,%d0 jbsr (%a2) and.w #255,%d0 move.w #__ld_calc_const_6_0_6_6,%d1 asr.w %d1,%d0 btst #0,%d0 jbne .L1867 move.w #1,TouchKey .L1867: tst.w __calculator jbeq .L1851 cmp.b #37,%d4 jbls .L1853 jbra .L1858 .L1851: cmp.b #40,%d4 jbhi .L1858 .L1853: moveq #1,%d5 move.w #__ld_calc_const_9_1_9_9,%d0 move.w %d5,%d7 lsl.w %d0,%d7 lea opt_rowread,%a2 move.w %d7,%d0 jbsr (%a2) move.w #__ld_calc_const_1_0_1_1,%d1 move.w %d1,%d6 and.w #255,%d0 asr.w %d1,%d0 btst #0,%d0 jbne .L1855 move.w %d7,%d0 jbsr (%a2) and.w #255,%d0 asr.w %d6,%d0 btst #0,%d0 jbne .L1855 move.w #__ld_calc_const_6_1_6_6,%d0 lsl.w %d0,%d5 move.w %d5,%d0 jbsr (%a2) and.w #255,%d0 move.w #__ld_calc_const_6_0_6_6,%d1 asr.w %d1,%d0 btst #0,%d0 jbeq .L1836 .L1855: tst.w TouchKey jbeq .L1836 .L1858: movm.l (%sp)+,#0xcf8 rts .even .globl INTRO1_DrawStars INTRO1_DrawStars: move.l ScreenBuffer,%a0 lea (421,%a0),%a0 and.b #-33,(%a0) move.l ScreenBuffer,%a0 lea (6421,%a0),%a0 and.b #-33,(%a0) move.w #122,%a0 add.l ScreenBuffer,%a0 and.b #-9,(%a0) move.l ScreenBuffer,%a0 lea (7352,%a0),%a0 and.b #-9,(%a0) move.l ScreenBuffer,%a0 lea (732,%a0),%a0 and.b #-9,(%a0) move.l ScreenBuffer,%a0 lea (6732,%a0),%a0 and.b #-9,(%a0) move.l ScreenBuffer,%a0 lea (1045,%a0),%a0 and.b #127,(%a0) move.l ScreenBuffer,%a0 lea (7045,%a0),%a0 and.b #127,(%a0) move.l ScreenBuffer,%a0 lea (477,%a0),%a0 and.b #-5,(%a0) move.l ScreenBuffer,%a0 lea (6477,%a0),%a0 and.b #-5,(%a0) move.l ScreenBuffer,%a0 lea (322,%a0),%a0 and.b #-9,(%a0) move.l ScreenBuffer,%a0 lea (6322,%a0),%a0 and.b #-9,(%a0) move.l ScreenBuffer,%a0 lea (569,%a0),%a0 and.b #-33,(%a0) move.l ScreenBuffer,%a0 lea (6569,%a0),%a0 and.b #-33,(%a0) move.l ScreenBuffer,%a0 lea (430,%a0),%a0 and.b #127,(%a0) move.l ScreenBuffer,%a0 lea (6430,%a0),%a0 and.b #127,(%a0) move.l ScreenBuffer,%a0 lea (526,%a0),%a0 and.b #-2,(%a0) move.l ScreenBuffer,%a0 lea (6526,%a0),%a0 and.b #-2,(%a0) move.l ScreenBuffer,%a0 lea (1278,%a0),%a0 and.b #127,(%a0) move.l ScreenBuffer,%a0 lea (7278,%a0),%a0 and.b #127,(%a0) move.l ScreenBuffer,%a0 lea (1040,%a0),%a0 and.b #-9,(%a0) move.l ScreenBuffer,%a0 lea (6855,%a0),%a0 and.b #-17,(%a0) rts .even .globl INTRO_AccessInShip INTRO_AccessInShip: lea (-16,%sp),%sp movm.l #0x1f3e,-(%sp) clr.w TouchKey sub.l %a4,%a4 clr.b 41(%sp) clr.b %d5 clr.b %d6 clr.b %d7 move.w #60,42(%sp) move.w #26,44(%sp) clr.w 46(%sp) clr.w 48(%sp) clr.w 50(%sp) clr.l 52(%sp) jbra .L1871 .L1872: move.l ScreenBuffer,%a0 jbsr BlackScreenBuffer jbsr INTRO1_DrawStars lea DrawAbsSprite,%a3 move.l ScreenBuffer,%a0 move.l IMG_Introduction1,%a1 moveq #78,%d3 moveq #30,%d2 moveq #50,%d1 clr.w %d0 jbsr (%a3) move.w 54(%sp),%d4 cmp.w #4,%d4 jbls .L1873 tst.w 48(%sp) jbeq .L1875 move.w %a4,%d0 moveq #0,%d1 move.b %d0,%d1 move.l %d1,%d2 lsl.l #2,%d2 lea Table_Intro1_Ship_x,%a0 clr.w %d0 move.b (%a0,%d1.l),%d0 move.l ScreenBuffer,%a0 lea SPRITE_INTRO1_SHIP,%a1 move.l (%a1,%d2.l),%a1 moveq #18,%d3 lea Table_Intro1_Ship_size,%a2 clr.w %d2 move.b (%a2,%d1.l),%d2 moveq #12,%d1 addq.w #4,%d0 jbsr (%a3) .L1875: tst.w 50(%sp) jbeq .L1877 moveq #0,%d0 move.b %d5,%d0 lsl.l #2,%d0 move.l ScreenBuffer,%a0 lea SPRITE_INTRO1_EXPLOSE,%a1 move.l (%a1,%d0.l),%a1 moveq #13,%d2 moveq #90,%d1 moveq #85,%d0 jbsr FastGraySprite32_MASK_R .L1877: tst.w 46(%sp) jbeq .L1879 moveq #0,%d0 move.b 41(%sp),%d0 move.l ScreenBuffer,%a0 move.l SPRITE_INTRO1_SHIP+56,%a1 moveq #6,%d2 lea Table_Capy,%a2 clr.w %d1 move.b (%a2,%d0.l),%d1 lea Table_Capx,%a2 move.b (%a2,%d0.l),%d0 and.w #255,%d0 jbsr FastGraySprite16_MASK_R addq.b #1,41(%sp) cmp.b #63,41(%sp) sne %d0 ext.w %d0 and.w %d0,46(%sp) .L1879: cmp.w #15,%d4 jbne .L1882 moveq #1,%d7 jbra .L1884 .L1882: tst.b %d7 jbeq .L1873 .L1884: addq.b #1,%d6 cmp.b #-1,%d7 jbne .L1885 addq.w #4,42(%sp) addq.w #8,44(%sp) subq.b #2,%d6 .L1885: move.w 42(%sp),%a2 move.w 44(%sp),%d3 sub.l %a3,%a3 jbra .L1887 .L1888: move.l ScreenBuffer,%a0 move.l SPRITE_INTRO1_SHIP+52,%a1 moveq #8,%d2 move.w %d3,%d1 move.w %a2,%d0 jbsr FastGraySprite16_MASK_R addq.w #1,%a3 addq.w #4,%a2 addq.w #8,%d3 .L1887: clr.w %d0 move.b %d6,%d0 cmp.w %a3,%d0 jbgt .L1888 cmp.b #9,%d6 jbne .L1890 st %d7 move.w #1,50(%sp) jbra .L1873 .L1890: tst.b %d6 sne %d0 and.b %d0,%d7 .L1873: move.l ScreenBuffer,%a0 move.l __D_plane,%d0 move.l __L_plane,%d1 tst.w __calculator jbeq .L1893 move.l %d0,%a3 move.l %d1,%a2 clr.w %d1 clr.w %d0 jbsr CopyScreenBufferToScreen move.w #0,delay_80Hz .L1895: move.w delay_80Hz,%d0 cmp.w #4,%d0 jbhi .L1896 jbra .L1895 .L1893: move.l %d0,%a2 move.l %d1,%a1 jbsr CopyScreenBufferToScreen5 move.w #0,delay_80Hz .L1897: move.w delay_80Hz,%d0 cmp.w #2,%d0 jbls .L1897 .L1896: move.w %d4,%d2 addq.w #1,%d2 cmp.w #10,%d2 jbne .L1898 move.w #1,46(%sp) jbra .L1900 .L1898: cmp.w #5,%d2 jbne .L1900 move.w #1,48(%sp) .L1900: move.w %a4,%d1 clr.w %d0 move.b %d1,%d0 move.w %d0,%d1 add.w %d0,%d1 add.w %d0,%d1 add.w #28,%d1 cmp.w %d2,%d1 jbne .L1902 move.w %a4,%d0 addq.b #1,%d0 move.w %d0,%a4 .L1902: move.w %a4,%d1 cmp.b #13,%d1 sne %d0 ext.w %d0 and.w %d0,48(%sp) clr.w %d0 move.b %d5,%d0 lsl.w #2,%d0 add.w #28,%d0 cmp.w %d2,%d0 jbne .L1906 addq.b #1,%d5 .L1906: cmp.w #70,%d2 jbne .L1908 moveq #6,%d5 .L1908: clr.w %d0 move.b %d5,%d0 moveq #6,%d1 sub.w %d0,%d1 move.w %d1,%d0 add.w %d1,%d1 add.w %d0,%d1 add.w #74,%d1 cmp.w %d2,%d1 jbne .L1910 addq.b #1,%d5 .L1910: cmp.b #9,%d5 jbls .L1912 moveq #9,%d5 .L1912: moveq #89,%d0 cmp.l 52(%sp),%d0 jbeq .L1923 lea opt_rowread,%a2 move.w %a6,%d0 jbsr (%a2) and.w #255,%d0 move.w %a5,%d1 asr.w %d1,%d0 btst #0,%d0 jbne .L1916 move.w %a6,%d0 jbsr (%a2) and.w #255,%d0 move.w %a5,%d1 asr.w %d1,%d0 btst #0,%d0 jbne .L1916 moveq #1,%d0 move.w #__ld_calc_const_6_1_6_6,%d1 lsl.w %d1,%d0 jbsr (%a2) and.w #255,%d0 move.w #__ld_calc_const_6_0_6_6,%d1 asr.w %d1,%d0 btst #0,%d0 jbne .L1916 move.w #1,TouchKey .L1916: addq.l #1,52(%sp) .L1871: moveq #1,%d3 move.w #__ld_calc_const_9_1_9_9,%d0 move.w %d3,%d1 lsl.w %d0,%d1 move.w %d1,%a6 lea opt_rowread,%a2 move.w %d1,%d0 jbsr (%a2) move.w #__ld_calc_const_1_0_1_1,%d1 move.w %d1,%a5 and.w #255,%d0 asr.w %d1,%d0 btst #0,%d0 jbne .L1920 move.w %a6,%d0 jbsr (%a2) and.w #255,%d0 move.w %a5,%d1 asr.w %d1,%d0 btst #0,%d0 jbne .L1920 move.w #__ld_calc_const_6_1_6_6,%d0 lsl.w %d0,%d3 move.w %d3,%d0 jbsr (%a2) and.w #255,%d0 move.w #__ld_calc_const_6_0_6_6,%d1 asr.w %d1,%d0 btst #0,%d0 jbeq .L1872 .L1920: tst.w TouchKey jbeq .L1872 .L1923: movm.l (%sp)+,#0x7cf8 lea (16,%sp),%sp rts .even .globl ApplicateBonus ApplicateBonus: movm.l #0x1820,-(%sp) move.b 17(%sp),%d4 moveq #0,%d0 move.b %d4,%d0 lea Racket,%a1 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 tst.w 50(%a0) jbeq .L1927 move.b 52(%a0),%d4 .L1927: clr.w %d3 move.b %d4,%d3 move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 move.l (%a1,%d0.l),%a0 move.b 4(%a0),%d0 subq.b #7,%d0 cmp.b #1,%d0 jbls .L1949 clr.w %d0 move.b 19(%sp),%d0 cmp.w #11,%d0 jbhi .L1949 and.l #65535,%d0 add.l %d0,%d0 .set .LI1943,.+2 move.w .L1943-.LI1943.b(%pc,%d0.l),%d0 jmp %pc@(2,%d0:w) .even .L1943: .word .L1931-.L1943 .word .L1932-.L1943 .word .L1933-.L1943 .word .L1934-.L1943 .word .L1935-.L1943 .word .L1936-.L1943 .word .L1937-.L1943 .word .L1938-.L1943 .word .L1939-.L1943 .word .L1940-.L1943 .word .L1941-.L1943 .word .L1942-.L1943 .L1931: clr.w 64(%a0) move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 clr.w 54(%a0) move.w #1,StartIntGhost move.w %d4,-(%sp) jbsr Bonus_BilleNoFire move.w %d4,-(%sp) jbsr Bonus_DesactivateColle move.w %d4,-(%sp) jbsr DESTROY_ANIM_DOUBLE_RACKET move.w #3,-(%sp) jbra .L1952 .L1932: clr.w 64(%a0) move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 clr.w 54(%a0) move.w #1,StartIntGhost move.w %d4,-(%sp) jbsr Bonus_BilleNoFire move.w %d4,-(%sp) jbsr Bonus_DesactivateColle move.w %d4,-(%sp) jbsr DESTROY_ANIM_DOUBLE_RACKET move.w #2,-(%sp) .L1952: move.w %d4,-(%sp) jbsr ChangeRacket jbra .L1950 .L1933: move.w %d4,-(%sp) jbsr Bonus_RacketNoStickedAllBilles move.w %d4,-(%sp) jbsr Bonus_BilleNoFire move.w %d4,-(%sp) jbsr Bonus_Add3Billes addq.l #6,%sp jbra .L1949 .L1934: move.w %d4,-(%sp) jbsr Bonus_Slow jbra .L1951 .L1935: clr.w 64(%a0) ext.l %d3 lea Racket,%a2 lsl.l #2,%d3 move.l (%a2,%d3.l),%a0 clr.w 54(%a0) move.w #1,StartIntGhost move.w %d4,-(%sp) jbsr Bonus_BilleNoFire move.w %d4,-(%sp) jbsr Bonus_RacketNoStickedAllBilles move.w %d4,-(%sp) jbsr DESTROY_ANIM_DOUBLE_RACKET move.l (%a2,%d3.l),%a0 addq.l #6,%sp cmp.b #3,4(%a0) jbne .L1944 move.w #1,-(%sp) move.w %d4,-(%sp) jbsr ChangeRacket addq.l #4,%sp .L1944: move.l (%a2,%d3.l),%a0 tst.w 38(%a0) jbne .L1949 move.w #1,38(%a0) clr.w 40(%a0) jbra .L1949 .L1936: addq.b #1,nbrLifes jbsr DrawLifes jbra .L1949 .L1937: move.w #1,EndLevel subq.l #2,%sp move.b HUMAIN0,1(%sp) jbsr DeleteAllBilles jbsr DeleteAllMissiles jbsr DeleteAllBonus jbsr DeleteAllMonsters subq.l #2,%sp move.b HUMAIN0,1(%sp) jbsr DESTROY_ANIM_DOUBLE_RACKET move.w #1,-(%sp) subq.l #2,%sp move.b HUMAIN0,1(%sp) jbsr ChangeRacket clr.w PlayAnimEndLevel addq.l #8,%sp jbra .L1949 .L1938: clr.w 64(%a0) move.w %d4,-(%sp) jbsr Bonus_RacketNoStickedAllBilles move.w %d4,-(%sp) jbsr Bonus_Add5Billes addq.l #4,%sp jbra .L1949 .L1939: clr.w 64(%a0) move.w %d4,-(%sp) jbsr Bonus_BilleNoFire move.w %d4,-(%sp) jbsr Bonus_DesactivateColle move.w %d4,-(%sp) jbsr DESTROY_ANIM_DOUBLE_RACKET move.w #1,-(%sp) move.w %d4,-(%sp) jbsr ChangeRacket move.w %d4,-(%sp) jbsr Bonus_CreateGhost lea (12,%sp),%sp jbra .L1949 .L1940: clr.w 64(%a0) move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 clr.w 54(%a0) move.w #1,StartIntGhost move.w %d4,-(%sp) jbsr Bonus_BilleNoFire move.w %d4,-(%sp) jbsr Bonus_DesactivateColle move.w %d4,-(%sp) jbsr DESTROY_ANIM_DOUBLE_RACKET clr.w -(%sp) jbra .L1952 .L1941: clr.w 64(%a0) ext.l %d3 lea Racket,%a2 lsl.l #2,%d3 move.l (%a2,%d3.l),%a0 clr.w 54(%a0) move.w #1,StartIntGhost move.w %d4,-(%sp) jbsr Bonus_DesactivateColle move.w %d4,-(%sp) jbsr DESTROY_ANIM_DOUBLE_RACKET move.l (%a2,%d3.l),%a0 addq.l #4,%sp cmp.b #3,4(%a0) jbne .L1947 move.w #1,-(%sp) move.w %d4,-(%sp) jbsr ChangeRacket addq.l #4,%sp .L1947: move.w %d4,-(%sp) jbsr Bonus_BilleFire .L1951: addq.l #2,%sp jbra .L1949 .L1942: clr.w 64(%a0) move.w %d3,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 clr.w 54(%a0) move.w #1,StartIntGhost move.w %d4,-(%sp) jbsr Bonus_BilleNoFire move.w %d4,-(%sp) jbsr Bonus_DesactivateColle move.w #1,-(%sp) move.w %d4,-(%sp) jbsr ChangeRacket move.w %d4,-(%sp) jbsr CREATE_ANIM_DOUBLE_RACKET .L1950: lea (10,%sp),%sp .L1949: movm.l (%sp)+,#0x418 rts .even .globl Bonus_CollideWithRacket Bonus_CollideWithRacket: movm.l #0x1e30,-(%sp) clr.w %d6 move.b nbrRacket,%d6 clr.w %d3 move.b nbrBonus,%d3 clr.w %d5 jbra .L1954 .L1955: move.w %d5,%d0 ext.l %d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 move.l #917511,-(%sp) subq.l #4,%sp move.b 6(%a0),3(%sp) move.b 5(%a0),1(%sp) move.w (%a3)+,-(%sp) move.w (%a2)+,-(%sp) move.w 2(%a0),-(%sp) move.w (%a0),-(%sp) jbsr Test_Collide_0 lea (16,%sp),%sp tst.w %d0 jbne .L1963 addq.w #1,%d4 .L1959: cmp.w %d4,%d3 jbgt .L1955 addq.w #1,%d5 .L1954: cmp.w %d5,%d6 jble .L1962 clr.w %d4 lea BONUS_ypos,%a3 lea BONUS_xpos,%a2 jbra .L1959 .L1963: lea BONUS_TYPE,%a0 move.b (%a0,%d4.w),%d3 move.w %d4,-(%sp) jbsr DeleteBonus move.w %d3,-(%sp) move.w %d5,-(%sp) jbsr ApplicateBonus addq.l #6,%sp .L1962: movm.l (%sp)+,#0xc78 rts .even .globl GAME_CreateBilleHumain0 GAME_CreateBilleHumain0: tst.w EndAnimForHumain0 jbeq .L1971 tst.w StartGameForHumain0 jbne .L1971 tst.w EndCounterLogo jbeq .L1971 subq.l #2,%sp move.b HUMAIN0,1(%sp) move.l #5570560,-(%sp) move.l #11730994,-(%sp) move.w #109,-(%sp) jbsr NewBille move.b HUMAIN0,%d1 moveq #0,%d0 move.b %d1,%d0 lsl.l #2,%d0 lea Racket,%a0 move.l (%a0,%d0.l),%a0 lea (12,%sp),%sp tst.w 38(%a0) jbne .L1969 move.w #1,38(%a0) clr.w 40(%a0) .L1969: move.b nbrBille,%d0 subq.b #1,%d0 move.w %d0,-(%sp) move.w %d1,-(%sp) jbsr Bonus_RacketColle move.w #1,StartGameForHumain0 clr.w EndAnimForHumain0 clr.w LanceBille addq.l #4,%sp .L1971: rts .even .globl Monsters_CollideWidthBille Monsters_CollideWidthBille: movm.l #0x1c30,-(%sp) clr.w %d4 jbra .L1973 .L1974: move.l (%a3),%a2 move.w %d4,%d0 ext.l %d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.l #851981,-(%sp) move.l #917509,-(%sp) move.w 2(%a2),-(%sp) move.w (%a2),-(%sp) move.w 2(%a0),-(%sp) move.w (%a0),-(%sp) jbsr TestCollideSquare lea (16,%sp),%sp tst.w %d0 jbeq .L1975 tst.w 20(%a2) jbne .L1975 move.w #1,20(%a2) move.l (%a3),%a0 clr.b 5(%a0) move.l (%a3),%a1 moveq #0,%d0 move.b 4(%a1),%d0 lea MONSTER_DEAD,%a0 move.b (%a0,%d0.l),4(%a1) move.l (%a3),%a1 moveq #0,%d0 move.b 4(%a1),%d0 lea MONSTER_SPRITES,%a0 move.b (%a0,%d0.l),6(%a1) move.w #256,-(%sp) jbsr GCL_Random move.w %d0,%d1 addq.l #2,%sp cmp.w #24,%d0 jbgt .L1978 moveq #25,%d1 jbra .L1980 .L1978: add.w #-40,%d0 cmp.w #24,%d0 jbhi .L1981 moveq #39,%d1 jbra .L1980 .L1981: move.w %d1,%d0 add.w #-65,%d0 cmp.w #23,%d0 jbhi .L1983 moveq #89,%d1 jbra .L1980 .L1983: move.w %d1,%d0 add.w #-104,%d0 cmp.w #24,%d0 jbhi .L1985 moveq #103,%d1 jbra .L1980 .L1985: move.w %d1,%d0 add.w #-129,%d0 cmp.w #23,%d0 jbhi .L1987 move.w #153,%d1 jbra .L1980 .L1987: move.w %d1,%d0 add.w #-168,%d0 cmp.w #24,%d0 jbhi .L1989 move.w #167,%d1 jbra .L1980 .L1989: move.w %d1,%d0 add.w #-193,%d0 cmp.w #23,%d0 jbhi .L1991 move.w #217,%d1 jbra .L1980 .L1991: move.w %d1,%d0 add.w #-232,%d0 cmp.w #24,%d0 jbhi .L1980 move.w #231,%d1 .L1980: move.w %d1,-(%sp) move.w %d4,-(%sp) jbsr AngleBille move.w %d4,%d0 ext.l %d0 lsl.l #2,%d0 lea Bille,%a0 move.l (%a0,%d0.l),%a0 move.w 18(%a0),%d3 move.w #18,-(%sp) jbsr GCL_Random add.w %d0,%d3 addq.w #8,%d3 move.w %d3,-(%sp) move.w %d4,-(%sp) jbsr ChangeBilleSpeed lea (10,%sp),%sp .L1975: addq.w #1,%d5 addq.l #4,%a3 .L1994: clr.w %d0 move.b nbrMonster,%d0 cmp.w %d5,%d0 jbgt .L1974 addq.w #1,%d4 .L1973: clr.w %d0 move.b nbrBille,%d0 cmp.w %d4,%d0 jble .L1998 clr.w %d5 lea Monster,%a3 jbra .L1994 .L1998: movm.l (%sp)+,#0xc38 rts .even .globl Create_Sprites Create_Sprites: move.l FileGFX,SPRITE_BILLE jbsr Create_SpritesSquare jbsr Create_SpritesDecors jbsr Create_SpritesBlocks jbsr Create_SpritesFont0 jbsr Create_SpriteRackets jbsr Create_SpriteBonus move.l FileGFX,%d0 add.l #10492,%d0 move.l %d0,SPRITE_LIFE jbsr Create_SpriteMissiles jbsr Create_SpriteFleches jbsr Create_SpriteLogos jbsr Create_SpriteEndDoors move.l FileGFX,%d0 move.l %d0,%d1 add.l #14202,%d1 move.l %d1,IMG_IntroTitle0 add.l #7680,%d1 move.l %d1,IMG_IntroTitle1 add.l #4000,%d1 move.l %d1,IMG_Introduction0_Picture0 add.l #4780,%d1 move.l %d1,IMG_Introduction0_Picture1 add.l #33342,%d0 move.l %d0,IMG_Introduction1 jbsr Create_SpriteIntro1Ship jbsr Create_SpriteIntro1_Explose jbsr CreateSpriteMonsters rts .section .rodata.__unalignedstr,"dmu" .LC40: .ascii "ark_gfx\0" .LC41: .ascii "ark_snd\0" .LC42: .ascii "ark_gfx no found.\0" .LC43: .ascii "ark_snd no found.\0" .LC44: .ascii "ark_lvls\0" .LC45: .ascii "ark_lvls no found.\0" .LC46: .ascii "Unknown error with Data Files!\0" .LC47: .ascii "No enought memory.\0" .text .even .globl InstallGame InstallGame: move.l %a3,-(%sp) move.l %a2,-(%sp) jbsr GCL_Randomize clr.w StartIntMonster clr.w StartIntGhost clr.w StartIntDoubleRacket clr.w StartIntMissiles clr.w Rackets_anim clr.w MAP_StartInt1 clr.w StartInt1 pea .LC40 lea FindFile,%a3 jbsr (%a3) move.l %a0,-(%sp) lea GetSymByName,%a2 jbsr (%a2) move.l %a0,entry_fileGFX pea .LC41 jbsr (%a3) move.l %a0,-(%sp) jbsr (%a2) move.l %a0,entry_fileSND lea (16,%sp),%sp tst.l entry_fileGFX jbne .L2002 pea .LC42 jbra .L2023 .L2002: cmp.w #0,%a0 jbne .L2004 pea .LC43 .L2023: jsr _ROM_CALL_E6:l jbsr __exit .L2004: pea .LC44 jbsr (%a3) move.l %a0,-(%sp) jbsr (%a2) addq.l #8,%sp cmp.w #0,%a0 jbne .L2006 pea .LC45 jbra .L2023 .L2006: lea _ROM_CALL_9A:l,%a3 move.l entry_fileGFX,%a2 move.w 12(%a2),-(%sp) jbsr (%a3) move.w %d0,12(%a2) move.l entry_fileSND,%a2 move.w 12(%a2),-(%sp) jbsr (%a3) move.w %d0,12(%a2) move.l entry_fileGFX,%a0 move.w 12(%a0),%d0 addq.l #4,%sp jbeq .L2008 move.l entry_fileSND,%a0 tst.w 12(%a0) jbeq .L2008 move.l entry_fileLVL,%a0 tst.w 12(%a0) jbne .L2011 .L2008: pea .LC46 jbra .L2023 .L2011: lea _ROM_CALL_96:l,%a2 move.w %d0,-(%sp) jbsr (%a2) addq.l #2,%a0 move.l %a0,FileGFX move.l entry_fileSND,%a0 move.w 12(%a0),-(%sp) jbsr (%a2) addq.l #2,%a0 move.l %a0,FileSND lea _ROM_CALL_A2:l,%a2 pea 12000.w jbsr (%a2) move.l %a0,ScreenBuffer addq.l #8,%sp jbeq .L2024 pea 7448.w jbsr (%a2) move.l %a0,BufferMap addq.l #4,%sp jbne .L2014 move.l ScreenBuffer,-(%sp) jsr _ROM_CALL_A3:l jbra .L2024 .L2014: pea 336.w jbsr (%a2) move.l %a0,BufferLifes addq.l #4,%sp jbne .L2016 lea _ROM_CALL_A3:l,%a2 move.l ScreenBuffer,-(%sp) jbsr (%a2) move.l BufferMap,-(%sp) jbra .L2025 .L2016: pea 3840.w jbsr (%a2) move.l %a0,SaveScreen addq.l #4,%sp jbne .L2018 lea _ROM_CALL_A3:l,%a2 move.l ScreenBuffer,-(%sp) jbsr (%a2) move.l BufferMap,-(%sp) jbsr (%a2) move.l BufferLifes,-(%sp) .L2025: jbsr (%a2) jbra .L2024 .L2018: move.l 100.w,OldInt1 move.l 104.w,OldInt2 #APP bclr.b #2,0x600001 #NO_APP move.l #interrupt1,100.w #APP bset.b #2,0x600001 bclr.b #2,0x600001 #NO_APP move.l #myint2,104.w #APP bset.b #2,0x600001 #NO_APP jbsr GrayOn tst.w %d0 jbne .L2020 lea _ROM_CALL_A3:l,%a2 move.l ScreenBuffer,-(%sp) jbsr (%a2) move.l BufferMap,-(%sp) jbsr (%a2) move.l BufferLifes,-(%sp) jbsr (%a2) move.l SaveScreen,-(%sp) jbsr (%a2) jbsr DeleteGame .L2024: pea .LC47 jbra .L2023 .L2020: pea 3840.w pea 19456.w move.l SaveScreen,-(%sp) jsr _ROM_CALL_26A:l #APP move.w #0x2400,__gray_plane_index+6 #NO_APP jbsr pSnd_EnableSound jbsr pSnd_InstallSound lea INT_GAME,%a0 jbsr pSnd_Interrupt5 jbsr Create_Sprites clr.b nbrAnimBlocks clr.b nbrMonster clr.b nbrMissile_anim clr.b nbrMissile clr.b nbrBonus clr.b nbrRacket clr.b nbrBille clr.l GAMETIME lea (12,%sp),%sp move.l (%sp)+,%a2 move.l (%sp)+,%a3 rts .section .rodata.__unalignedstr,"dmu" .LC48: .ascii "Thank you to have played Arkanoid II v0.37\0" .text .even .globl __main __main: movm.l #0x1c20,-(%sp) jbsr InstallGame jbsr INTRO_OrageStudio jbsr INTRO_ArkanoidTitle jbsr INTRO_ShipIntroduction jbsr INTRO_AccessInShip pea .LC44 jbsr Levels_OpenFile move.l #65537,-(%sp) jbsr Levels_SetMap jbsr ENV_Prepare jbsr ENV_DrawLevel jbsr ENV_EndPrepare jbsr GAME_CreateRacketHumain0 pea 16.w move.l #6553610,-(%sp) lea NewMonster,%a2 jbsr (%a2) pea 16.w move.l #655370,-(%sp) jbsr (%a2) pea 16.w move.l #3276810,-(%sp) jbsr (%a2) lea (32,%sp),%sp jbra .L2053 .L2028: move.b COUNTER_FRAMESKIP,%d0 addq.b #1,%d0 move.b %d0,COUNTER_FRAMESKIP jbeq .L2029 jbsr ENV_DrawScreenAndMap jbsr SHOW_ANIM_BLOCK jbsr UpdateBillesPos jbsr UpdateMonstersPos subq.l #2,%sp move.b HUMAIN0,1(%sp) jbsr KEYS_MoveRacket subq.l #2,%sp move.b HUMAIN0,1(%sp) jbsr KEYS_BonusColle jbsr Rackets_CollideWithScreen jbsr Bonus_BilleInRacketColle jbsr CollideWithBlock jbsr CollideWithBlock_Special jbsr Rackets_CollideBillesWithGhost jbsr Rackets_CollideWithBilles jbsr Bonus_3Billes jbsr CollideWithScreen jbsr ExitBille jbsr DrawDoubleRacket_anim jbsr Bonus_DrawGhost jbsr Bonus_CollideWithRacket jbsr Bonus_CollideWithScreen jbsr Monsters_CollideWidthBille jbsr Monsters_CollideWithBlock jbsr Monsters_CollideWithBlock_Special jbsr Monsters_CollideWithScreen jbsr DrawRackets jbsr DrawAllBonus jbsr DrawMonsters jbsr DrawBilles subq.l #2,%sp move.b HUMAIN0,1(%sp) jbsr KEYS_Shoot jbsr Missiles_CollideWithBlock jbsr Missiles_CollideWithBlock_Special jbsr Missile_CollideWithScreen jbsr DrawMissiles jbsr DRAW_ANIM_MISSILES jbsr GAME_CreateBilleHumain0 subq.l #2,%sp move.b HUMAIN0,1(%sp) jbsr CheckBillesPlayer jbsr GAME_Lifes jbsr GAME_DrawLogo jbsr ShowIndicators jbsr ENDLEVEL_NoBricks jbsr ENDLEVEL_AttendPlayer move.l ScreenBuffer,-(%sp) move.w counter_fps2,-(%sp) move.l #1966230,-(%sp) jbsr Font0_DrawNumber jbsr CenterScrolling jbsr ShowScreenBuffer clr.b COUNTER_FRAMESKIP lea (18,%sp),%sp .L2029: addq.w #1,counter_fps move.w #__ld_calc_const_6_5_6_6,%d0 move.w %d4,%d1 lsl.w %d0,%d1 move.w %d1,%d0 jbsr (%a2) move.w #__ld_calc_const_4_7_4_4,%d1 move.w %d1,%d3 and.w #255,%d0 asr.w %d1,%d0 btst #0,%d0 jbeq .L2031 clr.b GRAPHIC_MODE jbra .L2033 .L2031: moveq #16,%d0 jbsr (%a2) and.w #255,%d0 asr.w %d3,%d0 btst #0,%d0 jbeq .L2034 move.b #1,GRAPHIC_MODE jbra .L2033 .L2034: move.w #__ld_calc_const_7_1_7_7,%d0 move.w %d4,%d1 lsl.w %d0,%d1 move.w %d1,%d0 jbsr (%a2) and.w #255,%d0 asr.w %d3,%d0 btst #0,%d0 jbeq .L2036 clr.w CST_DECORS jbra .L2051 .L2036: move.w #__ld_calc_const_5_0xF_5_5,%d0 move.w %d4,%d1 lsl.w %d0,%d1 move.w %d1,%d0 jbsr (%a2) move.w #__ld_calc_const_4_0xF_4_4,%d1 move.w %d1,%d3 and.w #255,%d0 asr.w %d1,%d0 btst #0,%d0 jbeq .L2038 move.w #1,CST_DECORS .L2051: move.w #1,-(%sp) jbsr MNU_ShowDecors addq.l #2,%sp jbra .L2033 .L2038: move.w #__ld_calc_const_3_0xF_3_3,%d0 move.w %d4,%d1 lsl.w %d0,%d1 move.w %d1,%d0 jbsr (%a2) and.w #255,%d0 asr.w %d3,%d0 btst #0,%d0 jbeq .L2040 clr.w CST_SHADOW jbra .L2052 .L2040: move.w #__ld_calc_const_1_0xF_1_1,%d0 lsl.w %d0,%d4 move.w %d4,%d0 jbsr (%a2) and.w #255,%d0 asr.w %d3,%d0 btst #0,%d0 jbeq .L2033 move.w #1,CST_SHADOW .L2052: jbsr ENV_DrawMap .L2033: moveq #1,%d0 move.w #__ld_calc_const_7_5_7_7,%d1 lsl.w %d1,%d0 jbsr opt_rowread and.w #255,%d0 asr.w %d5,%d0 btst #0,%d0 jbeq .L2053 jsr _ROM_CALL_29A:l .L2053: moveq #1,%d4 lea opt_rowread,%a2 move.w #__ld_calc_const_8_6_8_8,%d0 move.w %d4,%d1 lsl.w %d0,%d1 move.w %d1,%d0 jbsr (%a2) move.w #__ld_calc_const_6_0_6_6,%d1 move.w %d1,%d5 and.w #255,%d0 asr.w %d1,%d0 btst #0,%d0 jbeq .L2028 jbsr UninstallGame pea .LC48 jsr _ROM_CALL_E6:l addq.l #4,%sp movm.l (%sp)+,#0x438 rts .comm AnimBlock_counter,10 .comm AnimBlock_sprite,10 .comm AnimBlock_y,20 .comm AnimBlock_x,20 .comm nbrAnimBlocks,2 .comm MISSILE_ANIM_sprite,20 .comm MISSILE_ANIM_ypos,40 .comm MISSILE_ANIM_xpos,40 .comm Monster,180 .comm Racket,32 .comm billes_counter_time,2 .comm Bille,60 .comm SPRITE_MONSTER,608 .comm SPRITE_INTRO1_EXPLOSE,40 .comm SPRITE_INTRO1_SHIP,60 .comm SPRITE_ENDDOORS,12 .comm SPRITE_LOGO,24 .comm SPRITE_FLECHE,16 .comm SPRITE_MISSILE,12 .comm SPRITE_BONUS_mask,8 .comm SPRITE_BONUS,416 .comm SPRITE_RACKETS,264 .comm SPRITE_FONT0,160 .comm SPRITE_BLOCKS,56 .comm SPRITE_DECORS,24 .comm GCL_RandomSeed,4 .comm entry_fileLVL,4 .comm entry_fileSND,4 .comm entry_fileGFX,4 .lcomm INT_START_BONUS,2 .lcomm BONUS_SHOWANIM,20 .lcomm BONUS_TYPE,20 .lcomm BONUS_SPRITE_ANIM,20 .lcomm BONUS_ypos,40 .lcomm BONUS_xpos,40 .lcomm MISSILE_racket,20 .lcomm MISSILE_ypos,40 .lcomm MISSILE_xpos,40 .lcomm MAP_DIR,2 .lcomm MAP_LVL,2 .lcomm MAP_SIZE,2 .lcomm MAP_bricks_special_move_dep,40 .lcomm MAP_bricks_special_move_sprite,20 .lcomm MAP_bricks_special_move_destroy,40 .lcomm MAP_bricks_special_move_dir,20 .lcomm MAP_bricks_special_move_y,20 .lcomm MAP_bricks_special_move_x,20 .lcomm bricks_special_move_n,2 .lcomm MAP_bricks_special_time_c,200 .lcomm MAP_bricks_special_time_y,100 .lcomm MAP_bricks_special_time_x,100 .lcomm bricks_special_time_n,2 .lcomm yScroll,2 .lcomm xScroll,2 .lcomm MAP_SCENARIO,2