Prev: 47497 Up: Map Next: 48537
47537: Start Game
Used by the routine at 26699.
StartGame 47537 LD (46995),IY Write IY to *46995.
47541 LD HL,5392 HL=5392.
47544 CALL ScreenAddress Call ScreenAddress.
47547 LD (47014),HL Write HL to *47014.
47550 LD HL,5568 HL=5568.
47553 CALL ScreenAddress Call ScreenAddress.
47556 LD (47048),HL Write HL to *47048.
47559 LD HL,5480 HL=5480.
47562 CALL ScreenAddress Call ScreenAddress.
47565 LD (47030),HL Write HL to *47030.
47568 LD DE,24576 DE=24576.
47571 LD HL,39632 HL=39632.
47574 LD A,11 A=11.
StartGame_0 47576 LD BC,22 BC=0022.
47579 LDIR LDIR.
47581 DEC A Decrease A by one.
47582 JR NZ,StartGame_0 Jump to StartGame_0 until A is zero.
47584 LD HL,23768 HL=23768.
47587 LD B,1 B=1.
47589 CALL 36570 Call 36570.
StartGame_1 47592 LD A,(47014) A=*47014.
47595 AND %00011111 Keep only bits 0-4.
47597 CP 2 Call 48688 if A is not equal to 2.
47599 CALL NZ,48688
47602 CALL 37880 Call 37880.
47605 LD HL,0 HL=0000.
47608 LD (47084),HL Write HL to *1UP_Score.
47611 LD (47085),HL Write HL to *47085.
47614 LD (47018),HL Write HL to *47018.
47617 LD (47020),HL Write HL to *47020.
47620 LD (47022),HL Write HL to *47022.
47623 LD (47052),HL Write HL to *47052.
47626 LD (47054),HL Write HL to *47054.
47629 LD (47056),HL Write HL to *47056.
47632 LD A,3 Write 3 to *1UP_Lives.
47634 LD (47080),A
47637 LD A,192 Write 192 to *47170.
47639 LD (47170),A
47642 XOR A Reset the bits from A.
47643 LD (47082),A Write A to *1UP_Level.
47646 LD (47083),A Write A to *47083.
47649 LD (47078),A Write A to *47078.
47652 CALL 48724 Call 48724.
47655 LD DE,24832 DE=24832.
47658 LD HL,(38793) HL=*38793.
47661 LD BC,180 BC=0180.
47664 LDIR LDIR.
47666 LD DE,47088 DE=47088.
47669 LD HL,47080 HL=1UP_Lives.
47672 LD BC,7 BC=0007.
47675 LDIR LDIR.
47677 LD A,(47077) Jump to StartGame_2 if *GameMode is not zero.
47680 AND A
47681 JR NZ,StartGame_2
47683 LD (47088),A Write A to *47088.
StartGame_2 47686 CALL 38829 Call 38829.
47689 CALL 38844 Call 38844.
StartGame_3 47692 CALL 38774 Call 38774.
47695 CALL 48779 Call 48779.
47698 CALL 47096 Call 47096.
47701 CALL 38829 Call 38829.
47704 CALL 47476 Call 47476.
47707 CALL 48591 Call 48591.
47710 CALL 48630 Call 48630.
47713 CALL 46997 Call 46997.
47716 CALL 36704 Call 36704.
47719 LD B,4 B=4.
47721 CALL 47068 Call 47068.
47724 CALL 46949 Call 46949.
47727 LD HL,33112 HL=33112.
47730 LD BC,2600 BC=2600.
47733 CALL 40180 Call 40180.
47736 LD HL,55563 HL=55563.
47739 LD DE,23051 DE=23051 (attribute buffer location).
47742 LD BC,139 BC=0139.
47745 LDIR LDIR.
StartGame_4 47747 LD A,(36169) Call 36466 if *36169 is equal to 153.
47750 CP 153
47752 CALL Z,36466
47755 XOR A Reset the bits from A.
47756 LD (23772),A Write A to *23772.
47759 CALL 41313 Call 41313.
47762 LD HL,(36166) HL=*36166.
47765 INC HL Increment HL by one.
47766 LD (36166),HL Write HL to *36166.
47769 CALL 40618 Call 40618.
47772 CALL 36532 Call 36532.
47775 LD IX,39764 IX=39764.
47779 CALL 40804 Call 40804.
47782 LD A,(47077) Jump to StartGame_5 if *GameMode is not equal to 2.
47785 CP 2
47787 JR NZ,StartGame_5
47789 CALL 42604 Call 42604.
47792 LD A,(36569) A=*36569.
47795 PUSH AF Stash AF on the stack.
47796 LD A,(47095) A=*47095.
47799 CALL 41374 Call 41374.
47802 LD A,(36569) A=*36569.
47805 LD (47474),A Write A to *47474.
47808 LD IX,39742 IX=39742.
47812 CALL 40804 Call 40804.
47815 POP AF Restore AF from the stack.
47816 LD (36569),A Write A to *36569.
47819 LD IX,39764 IX=39764.
47823 CALL 44238 Call 44238.
47826 LD IX,39742 IX=39742.
47830 CALL 44205 Call 44205.
47833 CALL 42604 Call 42604.
StartGame_5 47836 LD HL,40788 HL=40788.
47839 CALL 46698 Call 46698.
47842 LD HL,46724 HL=46724.
47845 CALL 46698 Call 46698.
47848 CALL 46740 Call 46740.
47851 JR StartGame_6 Jump to StartGame_6.
47853 LD A,(39852) A=*39852.
47856 AND A Set flags.
47857 JP NZ,StartGame_12 Jump to StartGame_12 if {} is not zero.
StartGame_6 47860 LD A,(23769) A=*23769.
47863 AND A Set flags.
47864 JP Z,StartGame_22 Jump to StartGame_22 if {} is zero.
47867 LD A,(47081) A=*Number_Bricks.
47870 AND A Set flags.
47871 JP Z,StartGame_22 Jump to StartGame_22 if {} is zero.
47874 CALL 38878 Call 38878.
47877 LD HL,39184 HL=39184.
47880 CALL 46698 Call 46698.
47883 CALL Sounds_PlayQueue Call Sounds_PlayQueue.
47886 JR NZ,StartGame_10 Jump to StartGame_10 if {} is not zero.
47888 LD A,(53248) A=*53248.
47891 CP 4 Compare A with 4.
47893 JR Z,StartGame_7 Jump to StartGame_7 if {} is zero.
47895 JR C,StartGame_9 Jump to StartGame_9 if {} is lower.
47897 LD A,(23768) A=*23768.
47900 CP 35 Compare A with 35.
47902 JR NC,StartGame_10 Jump to StartGame_10 if {} is higher.
47904 JR StartGame_9 Jump to StartGame_9.
StartGame_7 47906 LD A,(39776) A=*39776.
47909 CP 28 Compare A with 28.
47911 JR NZ,StartGame_8 Jump to StartGame_8 if {} is not zero.
47913 LD A,(39808) A=*39808.
47916 AND A Set flags.
47917 JR NZ,StartGame_9 Jump to StartGame_9 if {} is not zero.
StartGame_8 47919 LD A,(23772) A=*23772.
47922 CP 3 Compare A with 3.
47924 JR C,StartGame_10 Jump to StartGame_10 if {} is lower.
StartGame_9 47926 EI Enable interrupts.
47927 HALT Halt operation (suspend CPU until the next interrupt).
47928 DI Disable interrupts.
StartGame_10 47929 LD IX,39764 IX=39764.
47933 CALL 47334 Call 47334.
47936 LD A,(47077) A=*GameMode.
47939 CP 2 Compare A with 2.
47941 JR NZ,StartGame_11 Jump to StartGame_11 if {} is not zero.
47943 CALL 47319 Call 47319.
47946 LD IX,39742 IX=39742.
47950 CALL 47334 Call 47334.
47953 CALL 47319 Call 47319.
StartGame_11 47956 LD HL,39973 HL=39973.
47959 CALL 46698 Call 46698.
47962 LD A,(39972) A=*39972.
47965 AND A Set flags.
47966 CALL NZ,46871 Call 46871 not zero.
47969 CALL 39034 Call 39034.
47972 CALL 38795 Call 38795.
47975 JP StartGame_4 Jump to StartGame_4.
StartGame_12 47978 LD B,11
47980 LD DE,22
47983 LD IX,39632
StartGame_13 47987 LD A,(IX+0)
47990 AND A
47991 JR Z,StartGame_14
47993 SET 7,(IX+0)
StartGame_14 47997 ADD IX,DE
47999 DJNZ StartGame_13
48001 LD A,1
48003 LD HL,0
48006 LD (HL),A
48007 LD A,6
48009 LD (39852),A
48012 LD A,5
48014 LD (49336),A
48017 XOR A
48018 LD (36166),A
48021 JR StartGame_16
StartGame_15 48023 LD A,(36166)
48026 INC A
48027 LD (36166),A
48030 CALL 36532
48033 LD HL,40788
48036 CALL 46698
48039 CALL 46740
StartGame_16 48042 LD HL,46724
48045 CALL 46698
48048 CALL 38878
48051 LD HL,39184
48054 CALL 46698
48057 LD IY,(46995)
48061 EI
48062 HALT
48063 DI
48064 CALL Sounds_PlayQueue
48067 LD HL,39973
48070 CALL 46698
48073 LD A,(39972)
48076 AND A
48077 CALL NZ,46871
48080 CALL 39066
48083 CALL 38795
48086 LD A,(39852)
48089 AND A
48090 JP Z,StartGame_20
48093 JP StartGame_15
StartGame_17 48096 LD A,(47083)
48099 INC A
48100 LD (47083),A
48103 LD A,(47082)
48106 INC A
48107 CP 15
48109 JR Z,StartGame_18
48111 LD (47082),A
48114 JR StartGame_19
StartGame_18 48116 XOR A
48117 LD (47082),A
StartGame_19 48120 JP 48724
StartGame_20 48123 CALL 44929
StartGame_21 48126 LD A,(47081)
48129 AND A
48130 CALL Z,Sounds_PlayQueue
48133 CALL StartGame_17
48136 LD B,2
48138 CALL 47068
48141 JP StartGame_3
StartGame_22 48144 LD A,(36465)
48147 AND A
48148 JR Z,StartGame_23
48150 LD IX,(36464)
48154 LD A,(IX+2)
48157 SUB 5
48159 LD L,A
48160 LD A,(IX+4)
48163 SUB 5
48165 LD H,A
48166 LD BC,1047
48169 CALL 40180
48172 XOR A
48173 LD (36465),A
StartGame_23 48176 LD IX,39632
48180 LD B,11
48182 LD DE,22
48185 LD A,(39852)
48188 PUSH AF
StartGame_24 48189 LD A,(IX+0)
48192 AND A
48193 JR Z,StartGame_25
48195 SET 7,(IX+0)
StartGame_25 48199 ADD IX,DE
48201 DJNZ StartGame_24
48203 POP AF
48204 LD (39852),A
48207 LD HL,39184
48210 CALL 46698
48213 LD HL,39973
48216 CALL 46698
48219 LD A,(39972)
48222 AND A
48223 CALL NZ,46871
48226 LD A,(47081)
48229 AND A
48230 JP Z,StartGame_21
48233 LD A,8
48235 LD (49336),A
48238 LD A,61
48240 LD (49337),A
48243 XOR A
48244 LD (43161),A
48247 LD IX,39632
48251 LD B,10
48253 LD A,(39766)
48256 LD C,A
48257 LD A,(39744)
48260 SUB C
48261 LD (48359),A
48264 LD A,(39776)
48267 SRL A
48269 ADD A,C
48270 SUB 12
48272 LD C,A
48273 LD DE,22
48276 LD L,27
StartGame_26 48278 LD (IX+20),24
48282 LD (IX+21),24
48286 LD (IX+12),8
48290 LD (IX+13),7
48294 LD (IX+8),2
48298 LD (IX+9),11
48302 LD (IX+17),D
48305 LD (IX+1),D
48308 LD (IX+0),7
48312 LD (IX+2),C
48315 LD (IX+4),174
48319 LD (IX+6),L
48322 LD (IX+7),2
48326 LD A,L
48327 ADD A,5
48329 AND 63
48331 LD L,A
48332 ADD IX,DE
48334 INC C
48335 INC C
48336 INC C
48337 DJNZ StartGame_26
48339 LD A,(47077)
48342 CP 2
48344 JR NZ,StartGame_28
48346 LD IX,39654
48350 LD DE,22
48353 LD B,5
StartGame_27 48355 LD A,(IX+2)
48358 ADD A,0
48360 LD (IX+2),A
48363 ADD IX,DE
48365 ADD IX,DE
48367 DJNZ StartGame_27
StartGame_28 48369 CALL 36532
48372 LD HL,40788
48375 CALL 46698
48378 CALL 46740
48381 LD HL,46724
48384 CALL 46698
48387 CALL 38878
48390 LD HL,39184
48393 LD A,(39654)
48396 RLA
48397 CALL NC,46698
48400 CALL Sounds_PlayQueue
48403 LD HL,39973
48406 CALL 46698
48409 LD A,(39972)
48412 AND A
48413 CALL NZ,46871
48416 CALL 39066
48419 CALL 38795
48422 LD A,(39654)
48425 AND A
48426 JP NZ,StartGame_28
48429 LD B,3
48431 CALL 47068
48434 LD A,(47080)
48437 DEC A
48438 LD (47080),A
48441 JR Z,StartGame_29
48443 LD A,(47077)
48446 DEC A
48447 CALL Z,48652
48450 JP StartGame_3
StartGame_29 48453 LD B,2
48455 CALL 47060
48458 CALL 38829
48461 CALL 38844
48464 LD A,(47078)
48467 INC A
48468 LD (48562),A
48471 LD DE,48537
48474 LD B,2
48476 CALL 46998
48479 LD A,(47077)
48482 CP 2
48484 CALL Z,48563
48487 LD B,12
48489 CALL 47060
48492 CALL 48750
48495 CALL 37132
48498 LD A,(47077)
48501 CP 2
48503 JR NZ,StartGame_30
48505 CALL 48688
48508 CALL 48750
48511 CALL 37132
48514 CALL 48688
48517 JP StartGame_1
StartGame_30 48520 DEC A
48521 JP NZ,StartGame_1
48524 LD A,(47088)
48527 AND A
48528 JP Z,StartGame_1
48531 CALL 48652
48534 JP StartGame_3
Prev: 47497 Up: Map Next: 48537