Prev: 44409 Up: Map Next: 44557
44449: Game Start
Used by the routine at GameEntryPoint.
GameStart 44449 LD HL,40840 HL=Table_ItemLocations.
44452 LD BC,385 BC=0385.
GameStart_0 44455 LD (HL),0 Write 0 to *HL.
44457 INC HL Increment HL by one.
44458 DEC BC Decrease BC by one.
44459 LD A,B Jump to GameStart_0 until BC is zero.
44460 OR C
44461 JR NZ,GameStart_0
44463 LD HL,47883 Copy 0136 bytes of data (count is via *Count_Objects_1) from 47883 to Table_ItemLocations.
44466 LD DE,40840
44469 LD BC,(48071)
44473 LDIR
44475 LD A,(48087) Write *48087 to *41171.
44478 LD (41171),A
44481 LD IX,47865 IX=47865.
44485 LD DE,47877 DE=47877.
44488 LD A,(48081) B=*48081.
44491 LD B,A
GameStart_1 44492 LD L,(IX+0) L=*IX+0.
44495 LD H,(IX+1) H=*IX+1.
44498 LD A,(DE) A=*DE.
44499 LD (HL),A Write A to *HL.
44500 INC IX Increment IX by two.
44502 INC IX
44504 INC DE Increment DE by one.
44505 DJNZ GameStart_1 Decrease counter by one and loop back to GameStart_1 until counter is zero.
44507 CALL JustReturn Call JustReturn.
44510 LD A,(48083) Write *StartingRoom to *CurrentRoom.
44513 LD (41222),A
44516 CALL ChangeRoom Call ChangeRoom.
GameStart_2 44519 CALL 41600 Call 41600.
44522 CALL Handler_ScenicEvents Call Handler_ScenicEvents.
44525 LD A,0 A=0.
44527 CALL 41416 Call 41416.
44530 JR NZ,GameOver Jump to GameOver if DE is not equal to C.
44532 LD A,1 A=1.
44534 CALL 41416 Call 41416.
44537 JR NZ,GameOver_Score Jump to GameOver_Score if DE is not equal to C.
44539 LD A,2 A=2.
44541 CALL 41416 Call 41416.
44544 JR NZ,WantAnotherGameInput Jump to WantAnotherGameInput if DE is not equal to C.
44546 CALL Handler_UserInput Call Handler_UserInput.
44549 CALL Parser_ProcessItem Call Parser_ProcessItem.
44552 CALL NC,44284 Call 44284 if C is greater than 2.
44555 JR GameStart_2 Jump to GameStart_2.
Prev: 44409 Up: Map Next: 44557