| Routines

61630: End a cutscene

Used by the routine at 30989. Ends the cutscene by entering demo mode or resuming the game in the next mode.
61630 | CALL 60121 | Check the keyboard (to flush any recent keypress)
61633 | LD HL,(32670) | 32670 holds the number of bucks Sam has left
61636 | LD A,H | Has Sam's cash supply run out?
61637 | OR L
61638 | JR Z,61651 | Jump if so
61640 | LD HL,32607 | Set every bit of the screen refresh buffer so that the entire display will be updated
61643 | LD (HL),255
61645 | DEC L
61646 | JR NZ,61643
61648 | JP 60032 | Update the display
Sam is out of money, so it must be the end of the game. Time to check for a new high score and enter demo mode.
61651 | LD HL,(65516) | Collect the old high score from 65516
61654 | LD DE,(32668) | Collect the score from 32668
61658 | SBC HL,DE | Do we have a new high score?
61660 | JR NC,61671 | Jump if not
61662 | LD (65516),DE | Otherwise set the new high score
61666 | JR 61671 | Jump forward to enter demo mode
This entry point is used by the routine at 61600 and by the unused routine at 61612.
61668 | CALL 56576 | This startup routine prepares the bottom 4 lines of the screen just after the game has loaded
61671 | XOR A | A=0 (demo mode)
61672 | JR 61676 |
This entry point is used by the routine at 31126 to start a new game.
61674 | LD A,1 | A=1 (new game)
61676 | LD (65518),A | Store the game mode (0 or 1) at 65518, from where it will be copied to 32750
61679 | LD SP,23898 | Reset the stack pointer
61682 | NOP |
61683 | CALL 63662 | Prepare for demo mode or a new game
61686 | JP 61503 | Enter the main loop