Prev: 30419 Up: Map Next: 30683
30423: Routine at 76D7
Used by the routines at 29038 and 29457.
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.
race-is-on
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.
new-code
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