Routines |
Prev: 30419 | Up: Map | Next: 30683 |
30423 | CALL 26924 | Call 26924. | ||
30426 | LD A,(30757) | Return if *30757 is zero. | ||
30429 | AND A | |||
30430 | RET Z | |||
30431 | XOR A | Write 0 to *30757. | ||
30432 | LD (30757),A | |||
30435 | LD A,(30762) | Return if *Action is not zero. | ||
30438 | AND A | |||
30439 | RET NZ | |||
30440 | EXX | Switch to the shadow registers. | ||
30441 | LD A,C | A=C'. | ||
30442 | EXX | Switch back to the normal registers. | ||
30443 | CP 68 | Jump to 30532 if A is lower than 68. | ||
30445 | JR C,30532 | |||
30447 | JR NZ,30505 | Jump to 30505 if A is not equal to 68. | ||
30449 | LD HL,30784 | HL=30784. | ||
30452 | LD A,(HL) | Jump to 60458 if *HL is not zero. | ||
30453 | AND A | |||
30454 | JP NZ,60458 | |||
30457 | LD (HL),1 | Write 1 to *HL. | ||
30459 | CALL 60431 | Call 60431. | ||
30462 | NOP | No operation. | ||
30463 | LD HL,(30788) | HL=*Score+500. | ||
30466 | LD DE,500 | |||
30469 | ADD HL,DE | |||
30470 | LD (30788),HL | Write HL to *Score. | ||
Print the "THE RACE IS ON!" messaging in the footer.
|
||||
30473 | LD A,150 | A=150 (INK: YELLOW, PAPER: RED FLASH: ON). | ||
30475 | LD HL,47782 | HL=Messaging_RaceIsOn. | ||
30478 | CALL PrintFooterColourString | Call PrintFooterColourString. | ||
30481 | CALL Sounds_TheRaceIsOn | Call Sounds_TheRaceIsOn. | ||
30484 | CALL PrintDemoMode | Call PrintDemoMode. | ||
30487 | XOR A | Write 0 to *30756. | ||
30488 | LD (30756),A | |||
30491 | INC A | Write 1 to *30746. | ||
30492 | LD (30746),A | |||
30495 | LD HL,2926 | Write 2926 to *30785. | ||
30498 | LD (30785),HL | |||
30501 | NOP | No operation. | ||
30502 | CALL 27977 | Call 27977. | ||
30505 | CP 70 | Jump to 30530 if A is higher than 70. | ||
30507 | JR NC,30530 | |||
30509 | LD DE,50 | HL=*Score+0050. | ||
30512 | LD HL,(30788) | |||
30515 | ADD HL,DE | |||
30516 | LD (30788),HL | Write HL to *Score. | ||
30519 | POP HL | Restore HL and DE from the stack. | ||
30520 | POP DE | |||
30521 | PUSH DE | Stash DE and HL on the stack. | ||
30522 | PUSH HL | |||
30523 | LD HL,65530 | HL=65530. | ||
30526 | ADD HL,DE | HL+=DE. | ||
30527 | SET 7,(HL) | Set bit 7 of *HL. | ||
30529 | RET | Return. | ||
30530 | JR NZ,30626 | Jump to 30626 if {} is not zero. | ||
30532 | NOP | No operation. | ||
30533 | NOP | |||
30534 | NOP | |||
30535 | NOP | |||
30536 | NOP | |||
30537 | NOP | |||
30538 | POP HL | Restore HL and DE from the stack. | ||
30539 | POP DE | |||
30540 | LD HL,(30782) | HL=*30782. | ||
30543 | LD BC,8 | BC=0008. | ||
30546 | LD A,C | A=C. | ||
30547 | SET 7,(HL) | Set bit 7 of *HL. | ||
30549 | ADD HL,BC | HL+=BC. | ||
30550 | DEC A | Decrease A by one. | ||
30551 | JR NZ,30547 | Jump to 30547 until A is zero. | ||
30553 | LD HL,65530 | HL=65530. | ||
30556 | ADD HL,DE | HL+=DE. | ||
30557 | RES 7,(HL) | Reset bit 7 of *HL. | ||
This entry point is used by the routine at 60458.
|
||||
30559 | PUSH HL | Stash HL on the stack. | ||
30560 | LD B,6 | B=6. | ||
30562 | PUSH BC | Stash BC on the stack. | ||
30563 | CALL RemoveSprite | Call RemoveSprite. | ||
30566 | CALL 27437 | Call 27437. | ||
30569 | LD C,40 | C=40. | ||
30571 | LD HL,2048 | HL=2048. | ||
30574 | LD A,2 | A=2. | ||
30576 | OUT (254),A | OUT 254 | ||
30578 | XOR %00010000 | Flip bit 4. | ||
30580 | LD D,A | D=A. | ||
30581 | LD B,C | B=C. | ||
30582 | DJNZ 30582 | Decrease counter by one and loop back to 30582 until counter is zero. | ||
30584 | DEC HL | Decrease HL by one. | ||
30585 | LD A,H | Is HL zero? | ||
30586 | OR L | |||
30587 | LD A,D | A=D. | ||
30588 | JR NZ,30576 | Jump to 30576 if HL is not zero. | ||
30590 | CALL RemoveSprite | Call RemoveSprite. | ||
30593 | CALL 29460 | Call 29460. | ||
30596 | LD C,20 | C=20. | ||
30598 | LD HL,4096 | HL=4096. | ||
30601 | LD A,6 | A=6. | ||
30603 | OUT (254),A | OUT 254 | ||
30605 | XOR %00010000 | Flip bit 4. | ||
30607 | LD D,A | D=A. | ||
30608 | LD B,C | B=C. | ||
30609 | DJNZ 30609 | Decrease counter by one and loop back to 30609 until counter is zero. | ||
30611 | DEC HL | Decrease HL by one. | ||
30612 | LD A,H | Is HL zero? | ||
30613 | OR L | |||
30614 | LD A,D | A=D. | ||
30615 | JR NZ,30603 | Jump to 30603 if HL is not zero. | ||
30617 | POP BC | Restore BC from the stack. | ||
30618 | DJNZ 30562 | Decrease counter by one and loop back to 30562 until counter is zero. | ||
30620 | POP HL | Restore HL from the stack. | ||
30621 | SET 7,(HL) | Set bit 7 of *HL. | ||
30623 | JP 28372 | Jump to 28372. | ||
30626 | NOP | No operation. | ||
30627 | NOP | |||
30628 | NOP | |||
30629 | NOP | |||
30630 | NOP | |||
30631 | NOP | |||
30632 | LD DE,1000 | HL=*Score+1000. | ||
30635 | LD HL,(30788) | |||
30638 | ADD HL,DE | |||
30639 | LD (30788),HL | Write HL to *Score. | ||
30642 | CALL 29728 | Call 29728. | ||
30645 | CALL RemoveSprite | Call RemoveSprite. | ||
30648 | NOP | No operation. | ||
30649 | NOP | |||
30650 | NOP | |||
30651 | NOP | |||
30652 | LD HL,30777 | HL=Lives. | ||
30655 | LD (HL),5 | Write 5 to *HL. | ||
30657 | CALL GetLevelPassword | Call GetLevelPassword. | ||
Print the "NEW CODE ABCDE-PRESS KEY TO PLAY" messaging in the footer.
|
||||
30660 | LD A,159 | A=159 (INK: WHITE, PAPER: MAGENTA FLASH: ON). | ||
30662 | LD HL,47814 | HL=Messaging_NewCode. | ||
30665 | CALL PrintFooterColourString | Call PrintFooterColourString. | ||
30668 | CALL Sounds_LevelComplete | Call Sounds_LevelComplete. | ||
LevelComplete_Input | 30671 | CALL KeyboardInput | Call KeyboardInput. | |
30674 | AND A | Jump to LevelComplete_Input until any key is pressed. | ||
30675 | JR Z,LevelComplete_Input | |||
30677 | CALL PrintDemoMode | Call PrintDemoMode. | ||
30680 | JP GameInitialisation_0 | Jump to GameInitialisation_0. |
Prev: 30419 | Up: Map | Next: 30683 |