Prev: AD79 Up: Map Next: AE0D
ADA1: Game Start
Used by the routine at GameEntryPoint.
GameStart ADA1 LD HL,$9F88 HL=Table_ItemLocations.
ADA4 LD BC,$0181 BC=0181.
GameStart_0 ADA7 LD (HL),$00 Write 00 to *HL.
ADA9 INC HL Increment HL by one.
ADAA DEC BC Decrease BC by one.
ADAB LD A,B Jump to GameStart_0 until BC is zero.
ADAC OR C
ADAD JR NZ,GameStart_0
ADAF LD HL,$BB0B Copy 0088 bytes of data (count is via *Count_Objects_1) from BB0B to Table_ItemLocations.
ADB2 LD DE,$9F88
ADB5 LD BC,($BBC7)
ADB9 LDIR
ADBB LD A,($BBD7) Write *BBD7 to *A0D3.
ADBE LD ($A0D3),A
ADC1 LD IX,$BAF9 IX=BAF9.
ADC5 LD DE,$BB05 DE=BB05.
ADC8 LD A,($BBD1) B=*BBD1.
ADCB LD B,A
GameStart_1 ADCC LD L,(IX+$00) L=*IX+00.
ADCF LD H,(IX+$01) H=*IX+01.
ADD2 LD A,(DE) A=*DE.
ADD3 LD (HL),A Write A to *HL.
ADD4 INC IX Increment IX by two.
ADD6 INC IX
ADD8 INC DE Increment DE by one.
ADD9 DJNZ GameStart_1 Decrease counter by one and loop back to GameStart_1 until counter is zero.
ADDB CALL JustReturn Call JustReturn.
ADDE LD A,($BBD3) Write *StartingRoom to *CurrentRoom.
ADE1 LD ($A106),A
ADE4 CALL ChangeRoom Call ChangeRoom.
GameStart_2 ADE7 CALL $A280 Call A280.
ADEA CALL Handler_ScenicEvents Call Handler_ScenicEvents.
ADED LD A,$00 A=00.
ADEF CALL $A1C8 Call A1C8.
ADF2 JR NZ,GameOver Jump to GameOver if DE is not equal to C.
ADF4 LD A,$01 A=01.
ADF6 CALL $A1C8 Call A1C8.
ADF9 JR NZ,GameOver_Score Jump to GameOver_Score if DE is not equal to C.
ADFB LD A,$02 A=02.
ADFD CALL $A1C8 Call A1C8.
AE00 JR NZ,WantAnotherGameInput Jump to WantAnotherGameInput if DE is not equal to C.
AE02 CALL Handler_UserInput Call Handler_UserInput.
AE05 CALL Parser_ProcessItem Call Parser_ProcessItem.
AE08 CALL NC,$ACFC Call ACFC if C is greater than 02.
AE0B JR GameStart_2 Jump to GameStart_2.
Prev: AD79 Up: Map Next: AE0D