Prev: 58194 Up: Map Next: 58800
58262: Routine at E396
Used by the routine at 62366.
58262 LD A,(58802) A=*Data_Control.
58265 LD HL,55348 HL=55348.
58268 CP 1 Jump to 58361 if A is not equal to 1.
58270 JR NZ,58361
58272 LD A,(55341) A=*55341.
58275 CP 15 Compare A with 15.
58277 JP P,58684 Jump to 58684 P.
58280 CP 2 Compare A with 2.
58282 JR NZ,58352 Jump to 58352 if A is not zero.
58284 LD A,(55340) Compare *55340 with 2.
58287 CP 2
58289 LD A,(55341) A=*55341.
58292 JR NZ,58352 Jump to 58352 if *55340 is not equal to 2.
58294 ADD A,4 A+=4.
58296 LD (55341),A Write A to *55341.
58299 INC (HL) Increment *HL by one.
58300 LD A,0 Write 0 to *PlayerCursor_Flag.
58302 LD (55349),A
58305 LD A,47 A=INK: WHITE, PAPER: CYAN .
58307 CALL ColouriseHome Call ColouriseHome.
58310 LD HL,55343 HL=PlayerCursor_X_Position.
58313 INC (HL) Increment *HL by one.
58314 LD B,3 B=3.
58316 PUSH BC Stash BC and HL on the stack.
58317 PUSH HL
58318 CALL Draw_Cursor Call Draw_Cursor.
58321 CALL 58986 Call 58986.
58324 CALL 58803 Call 58803.
58327 HALT Halt operation (suspend CPU until the next interrupt).
58328 CALL Remove_PlayerCursorAttributes Call Remove_PlayerCursorAttributes.
58331 POP HL Restore HL and BC from the stack.
58332 POP BC
58333 INC (HL) Increment *HL by one.
58334 DJNZ 58316 Decrease counter by one and loop back to 58316 until counter is zero.
58336 CALL Display_PlayerCursor Call Display_PlayerCursor.
58339 LD A,(55340) Write *55340 to *55344.
58342 LD (55344),A
58345 LD A,(55341) Write *55341 to *55345.
58348 LD (55345),A
58351 RET Return.
58352 ADD A,4 A+=4.
58354 LD (55341),A Write A to *55341.
58357 INC (HL) Increment *HL by one.
58358 JP 58684 Jump to 58684.
58361 CP 2 Jump to 58452 if A is not equal to 2.
58363 JR NZ,58452
58365 LD A,(55341) A=*55341.
58368 CP 5 Compare A with 5.
58370 JP M,58684 Jump to 58684 M.
58373 CP 6 Jump to 58443 if A is not equal to 6.
58375 JR NZ,58443
58377 LD A,(55340) A=*55340.
58380 CP 2 Compare A with 2.
58382 LD A,(55341) A=*55341.
58385 JR NZ,58443 Jump to 58443 if A is not zero.
58387 SUB 4 A-=4.
58389 LD (55341),A Write A to *55341.
58392 DEC (HL) Decrease *HL by one.
58393 CALL Remove_PlayerCursor Call Remove_PlayerCursor.
58396 LD HL,55343 HL=PlayerCursor_X_Position.
58399 LD B,4 B=4.
58401 CP 2 Jump to 58365 if A is equal to 2.
58403 JR Z,58365
58405 PUSH BC Stash BC and HL on the stack.
58406 PUSH HL
58407 CALL Draw_Cursor Call Draw_Cursor.
58410 CALL 58986 Call 58986.
58413 CALL 58803 Call 58803.
58416 HALT Halt operation (suspend CPU until the next interrupt).
58417 CALL Remove_PlayerCursorAttributes Call Remove_PlayerCursorAttributes.
58420 POP HL Restore HL and BC from the stack.
58421 POP BC
58422 DEC (HL) Decrease *HL by one.
58423 DJNZ 58405 Decrease counter by one and loop back to 58405 until counter is zero.
58425 LD A,0 Write 0 to *PlayerCursor_Flag.
58427 LD (55349),A
58430 LD A,(55340) Write *55340 to *55344.
58433 LD (55344),A
58436 LD A,(55341) Write *55341 to *55345.
58439 LD (55345),A
58442 RET Return.
58443 SUB 4 A-=4.
58445 LD (55341),A Write A to *55341.
58448 DEC (HL) Decrease *HL by one.
58449 JP 58684 Jump to 58684.
58452 CP 4 Jump to 58491 if A is not equal to 4.
58454 JR NZ,58491
58456 LD A,(55340) A=*55340.
58459 CP 15 Compare A with 15.
58461 JP P,58684 Jump to 58684 P.
58464 CP 2 Jump to 58479 if A is not equal to 2.
58466 JR NZ,58479
58468 LD A,(55341) Jump to 58684 if *55341 is equal to 2.
58471 CP 2
58473 JP Z,58684
58476 LD A,(55340) A=*55340.
58479 ADD A,4 A+=4.
58481 LD (55340),A Write A to *55340.
58484 LD A,(HL) A=*HL.
58485 ADD A,7 A+=7.
58487 LD (HL),A Write A to *HL.
58488 JP 58684 Jump to 58684.
58491 CP 8 Jump to 58530 if A is not equal to 8.
58493 JR NZ,58530
58495 LD A,(55340) A=*55340.
58498 CP 5 Compare A with 5.
58500 JP M,58684 Jump to 58684 M.
58503 CP 6 Jump to 58518 if A is not equal to 6.
58505 JR NZ,58518
58507 LD A,(55341) Jump to 58684 if *55341 is equal to 2.
58510 CP 2
58512 JP Z,58684
58515 LD A,(55340) A=*55340.
58518 SUB 4 A-=4.
58520 LD (55340),A Write A to *55340.
58523 LD A,(HL) A=*HL.
58524 SUB 7 A-=7.
58526 LD (HL),A Write A to *HL.
58527 JP 58684 Jump to 58684.
58530 CP 5 Jump to 58565 if A is not equal to 5.
58532 JR NZ,58565
58534 LD A,(55341) A=*55341.
58537 CP 15 Compare A with 15.
58539 JP P,58456 Jump to 58456 P.
58542 CP 2 Jump to 58557 if A is not equal to 2.
58544 JR NZ,58557
58546 LD A,(55340) Jump to 58272 if *55340 is equal to 2.
58549 CP 2
58551 JP Z,58272
58554 LD A,(55341) A=*55341.
58557 ADD A,4 A+=4.
58559 LD (55341),A Write A to *55341.
58562 INC (HL) Increment *HL by one.
58563 JR 58456 Jump to 58456.
58565 CP 6 Jump to 58601 if A is not equal to 6.
58567 JR NZ,58601
58569 LD A,(55341) A=*55341.
58572 CP 5 Compare A with 5.
58574 JP M,58456 Jump to 58456 M.
58577 CP 6 Jump to 58592 if A is not equal to 6.
58579 JR NZ,58592
58581 LD A,(55340) Jump to 58365 if *55340 is equal to 2.
58584 CP 2
58586 JP Z,58365
58589 LD A,(55341) A=*55341.
58592 SUB 4 A-=4.
58594 LD (55341),A Write A to *55341.
58597 DEC (HL) Decrease *HL by one.
58598 JP 58456 Jump to 58456.
58601 CP 9 Jump to 58642 if A is not equal to 9.
58603 JR NZ,58642
58605 LD A,(55341) A=*55341.
58608 CP 15 Compare A with 15.
58610 JP P,58495 Jump to 58495 P.
58613 CP 2 Jump to 58633 if A is not equal to 2.
58615 JR NZ,58633
58617 LD A,(55340) Jump to 58272 if *55340 is equal to 6.
58620 CP 6
58622 JP Z,58272
58625 CP 2 Jump to 58272 if *55340 is equal to 2.
58627 JP Z,58272
58630 LD A,(55341) A=*55341.
58633 ADD A,4 A+=4.
58635 LD (55341),A Write A to *55341.
58638 INC (HL) Increment *HL by one.
58639 JP 58495 Jump to 58495.
58642 CP 10 Compare A with 10.
58644 JP NZ,62526 Jump to 62526 if A is not zero.
58647 LD A,(55341) A=*55341.
58650 CP 5 Compare A with 5.
58652 JP M,58495 Jump to 58495 M.
58655 CP 6 Compare A with 6.
58657 JR NZ,58675 Jump to 58675 if A is not zero.
58659 LD A,(55340) A=*55340.
58662 CP 6 Compare A with 6.
58664 JP Z,58684 Jump to 58684 if A is zero.
58667 CP 2 Compare A with 2.
58669 JP Z,58365 Jump to 58365 if A is zero.
58672 LD A,(55341) A=*55341.
58675 SUB 4 A-=4.
58677 LD (55341),A Write A to *55341.
58680 DEC (HL) Decrease *HL by one.
58681 JP 58495 Jump to 58495.
58684 CALL 58058 Call 58058.
58687 LD A,(55340) Write *55340 to *55344.
58690 LD (55344),A
58693 LD A,(55341) Write *55341 to *55345.
58696 LD (55345),A
58699 LD A,R A=the contents of the Memory Refresh Register.
58701 RLCA RLCA.
58702 LD L,A L=A.
58703 LD H,0 H=0.
58705 LD B,70 B=70.
58707 LD D,5 D=5.
58709 LD A,(HL) A=*HL.
58710 AND %00011000 Keep only bits 3-4.
58712 OR %00000101 Set bits 0, 2.
58714 OUT (254),A Set border to the colour held by A.
58716 INC HL Increment HL by one.
58717 PUSH BC Stash BC on the stack.
58718 LD B,D B=D.
58719 DJNZ 58719 Decrease counter by one and loop back to 58719 until counter is zero.
58721 POP BC Restore BC from the stack.
58722 DJNZ 58709 Decrease counter by one and loop back to 58709 until counter is zero.
58724 HALT Halt operation (suspend CPU until the next interrupt).
58725 LD A,(55340) Jump to 58741 if *55340 is equal to *PlayerCursor_Y_Position.
58728 LD HL,55342
58731 CP (HL)
58732 JR Z,58741
58734 JP P,58740 Jump to 58740 P.
58737 DEC (HL) Decrease *HL by one.
58738 JR 58741 Jump to 58741.
58740 INC (HL) Increment *HL by one.
58741 LD A,(55341) Jump to 58757 if *55341 is equal to *PlayerCursor_X_Position.
58744 LD HL,55343
58747 CP (HL)
58748 JR Z,58757
58750 JP P,58756 Jump to 58756 P.
58753 DEC (HL) Decrease *HL by one.
58754 JR 58757 Jump to 58757.
58756 INC (HL) Increment *HL by one.
58757 LD A,(55342) Jump to 58684 if *PlayerCursor_Y_Position is not equal to *55340.
58760 LD HL,55340
58763 CP (HL)
58764 JR NZ,58684
58766 LD A,(55343) Jump to 58684 if *PlayerCursor_X_Position is not equal to *55341.
58769 LD HL,55341
58772 CP (HL)
58773 JR NZ,58684
58775 LD A,R L=the contents of the Memory Refresh Register.
58777 LD L,A
58778 LD H,10 H=10.
58780 LD B,35 B=35.
58782 LD C,100 C=100.
58784 LD A,(HL) A=*HL.
58785 INC HL Increment HL by one.
58786 AND %00011000 Keep only bits 3-4.
58788 OR %00000101 Set bits 0, 2.
58790 OUT (254),A Set border to the colour held by A.
58792 PUSH BC Stash BC on the stack.
58793 LD B,C B=C.
58794 DJNZ 58794 Decrease counter by one and loop back to 58794 until counter is zero.
58796 POP BC Restore BC from the stack.
58797 DJNZ 58784 Decrease counter by one and loop back to 58784 until counter is zero.
58799 RET Return.
Prev: 58194 Up: Map Next: 58800