Prev: 26539 Up: Map Next: 27853
27648: Game Entry Point
Start 27648 DI Disable interrupts.
Initial set-up; copies "clean" data to the "CopyOf..." store. This is then used to create a new game in ReStart.
27649 LD DE,62464 Copies Objects to CopyOfObjects ($615 bytes).
27652 LD HL,49435
27655 LD BC,1557
27658 LDIR
27660 LD HL,47754 Copies Locations to CopyOfLocations ($5D9 bytes).
27663 LD BC,1497
27666 LDIR
27668 LD DE,24320 Copies 46827 to $5F00 ($1D bytes).
27671 LD HL,46827
27674 LD BC,29
27677 LDIR
27679 LD HL,51844 Copies $CA84 to $5F1D ($BF bytes).
27682 LD BC,191
27685 LDIR
This entry point is used by the routines at 33459, LoadGame and YouAreDead.
ReStart 27687 DI Disable interrupts.
27688 LD SP,24319 Set the stack pointer to 24319.
Reset the border and paper colours for location 5 - "Trolls Clearing".
27691 LD IX,52224 IX=LocGFXTable
27695 LD A,5 Call IndexIdTable with location 5 - "Trolls Clearing".
27697 CALL IndexIdTable
27700 LD L,(IX+1) HL=57666 (HL=location graphics data for "Trolls Clearing").
27703 LD H,(IX+2)
27706 LD (HL),0 Write $00 (black) to the first (border) and second (paper) addresses.
27708 INC HL
27709 LD (HL),0
Copy "clean" data to the game tables ready for a new game.
27711 LD HL,62464 Copies CopyOfObjects to Objects ($615 bytes).
27714 LD DE,49435
27717 LD BC,1557
27720 LDIR
27722 LD DE,47754 Copies CopyOfLocations to Locations ($5D9 bytes).
27725 LD BC,1497
27728 LDIR
27730 LD HL,24320 Copies $5F00 to 46827 ($1D bytes).
27733 LD DE,46827
27736 LD BC,29
27739 LDIR
27741 LD DE,51844 Copies $CA84 to $5F1D ($BF bytes).
27744 LD BC,191
27747 LDIR
27749 XOR A Set the border colour to black.
27750 OUT (254),A
27752 LD A,56 Write $38 to BORDCR.
27754 LD (23624),A
ReStart_Keypress 27757 XOR A Read from the keyboard port.
27758 IN A,(254)
27760 AND %00011111 A pressed key from any line will set its respective bit; bit 0 (outer key) to bit 4 (inner key). Hence keep only bits 0-4 for the check.
27762 CP 31 Loop back to ReStart_Keypress until any key has been pressed.
27764 JR Z,ReStart_Keypress
27766 LD A,127 Read from the keyboard port.
Port Number Bit
0 1 2 3 4
$7F SPACE FULL-STOP M N B
27768 IN A,(254)
27770 AND %00001000 Keep bit 3 ("N").
27772 LD (46855),A Write it to 46855.
27775 LD HL,20704 Write $50E0 to the percentage buffer.
27778 LD (34228),HL
27781 LD A,43 Write $2B to $85B6.
27783 LD (34230),A
27786 LD HL,20512 Write $5020 to 34460.
27789 LD (34460),HL
27792 LD A,1 Write $01 to 34462.
27794 LD (34462),A
27797 LD A,32 Write $20 to 34227.
27799 LD (34227),A
27802 LD A,42 Write $2A to 34459.
27804 LD (34459),A
27807 LD B,200 Write $00 to 200 bytes, starting from 46904 (using Blanker).
27809 LD HL,46904
27812 CALL Blanker
27815 LD A,R R = refresh register; i.e. write a semi-random number to RandomSeed.
27817 LD (46862),A
27820 XOR A Write $00 to;
27821 LD (34463),A
27824 LD (34464),A
27827 LD (46874),A
27830 LD (46848),A
27833 LD (46834),A
27836 LD A,1 Write $01 to;
27838 LD (46850),A
27841 LD (46842),A
27844 LD (46852),A
27847 LD HL,0 Write $0000 to PercentageComplete.
27850 LD (46839),HL
Prev: 26539 Up: Map Next: 27853