![]() |
Routines |
Prev: F5F9 | Up: Map | Next: F7C0 |
|
||||
F620 | LD HL,$A825 | HL=UserInput_Token_2. | ||
F623 | LD BC,$0009 | BC=0009. | ||
F626 | LD A,$3C | A=3C. | ||
F628 | CPIR | CPIR. | ||
F62A | RET | Return. | ||
F62B | LD HL,$E392 | HL=Data_ItemGroup_Sword. | ||
F62E | CALL CheckItemGroupPresent | Call CheckItemGroupPresent. | ||
F631 | CALL CheckObjectInInventory | Call CheckObjectInInventory. | ||
F634 | RET Z | Return if A is equal to 3C. | ||
F635 | POP HL | Restore HL from the stack. | ||
F636 | CALL $F620 | Call F620. | ||
F639 | LD A,E | A=E. | ||
F63A | CALL Z,IsPlayerCarryingItem | Call IsPlayerCarryingItem if ?? is equal to 3C. | ||
F63D | LD HL,$DCE5 | HL=Messaging_DontHaveAWeopon. | ||
F640 | JP $ED6D | Jump to ED6D. | ||
F643 | LD HL,$E341 | HL=Data_ItemGroup_Roman. | ||
F646 | CALL CheckItemGroupPresent | Call CheckItemGroupPresent. | ||
F649 | CP $0C | Jump to Response_YouveDoneThatAlready if A is equal to 0C. | ||
F64B | JP Z,Response_YouveDoneThatAlready | |||
F64E | CP $55 | Jump to Response_YouveDoneThatAlready if A is equal to 55. | ||
F650 | JP Z,Response_YouveDoneThatAlready | |||
F653 | LD ($A773),A | Write A to *A773. | ||
F656 | CALL $F62B | Call F62B. | ||
F659 | LD A,($A773) | Jump to F67B if *A773 is greater than or equal to 04. | ||
F65C | CP $04 | |||
F65E | JR NC,$F67B | |||
F660 | LD A,$02 | A=02. | ||
F662 | CALL Handler_DestroyItemEvent | Call Handler_DestroyItemEvent. | ||
F665 | LD A,$03 | A=03. | ||
F667 | CALL Handler_DestroyItemEvent | Call Handler_DestroyItemEvent. | ||
F66A | LD A,$08 | A=08. | ||
F66C | CALL Handler_DestroyItemEvent | Call Handler_DestroyItemEvent. | ||
F66F | LD BC,$070A | Call TransformItem to transform item 07 ( N/A) into item 0A ("The Roman,camped"). | ||
F672 | CALL TransformItem | |||
F675 | LD HL,$DCFE | HL=Messaging_RomanIsUnnerved. | ||
F678 | JP $ED6D | Jump to ED6D. | ||
F67B | CP $0A | Jump to F68B if A is not equal to 0A. | ||
F67D | JR NZ,$F68B | |||
F67F | LD BC,$0A0C | Call TransformItem to transform item 0A ("The Roman,camped") into item 0C ("The body of the Roman"). | ||
F682 | CALL TransformItem | |||
F685 | LD HL,$DD4A | HL=Messaging_BlowStrikesTrue. | ||
F688 | JP $ED6D | Jump to ED6D. | ||
F68B | LD BC,$0B55 | Call TransformItem to transform item 0B ("The captured Roman") into item 55 ("The body of the Roman"). | ||
F68E | CALL TransformItem | |||
F691 | LD HL,$A787 | HL=A787. | ||
F694 | RES 0,(HL) | Reset bit 0 of *HL. | ||
F696 | CALL $F685 | Call F685. | ||
F699 | LD HL,$DD6E | HL=Messaging_VeryCowardly. | ||
F69C | JP $ED6D | Jump to ED6D. | ||
F69F | LD HL,$E348 | HL=Data_ItemGroup_Fomorian. | ||
F6A2 | CALL CheckItemGroupPresent | Call CheckItemGroupPresent. | ||
F6A5 | LD HL,$FC8A | HL=FC8A. | ||
F6A8 | LD BC,$0003 | BC=0003. | ||
F6AB | CPIR | CPIR. | ||
F6AD | JP Z,Response_YouveDoneThatAlready | Jump to Response_YouveDoneThatAlready if A is equal to 0A. | ||
F6B0 | LD ($A773),A | Write A to *A773. | ||
F6B3 | CALL $F62B | Call F62B. | ||
F6B6 | LD A,($A773) | Jump to F6C7 if *A773 is not equal to 0F. | ||
F6B9 | CP $0F | |||
F6BB | JR NZ,$F6C7 | |||
F6BD | LD HL,$E9B2 | HL=GameOver. | ||
F6C0 | EX (SP),HL | Exchange the *SP with the HL register. | ||
F6C1 | LD HL,$DD86 | HL=Messaging_AttackInVain. | ||
F6C4 | JP $ED6D | Jump to ED6D. | ||
F6C7 | LD A,$39 | A=39. | ||
F6C9 | CALL ValidateItemPresent | Call ValidateItemPresent. | ||
F6CC | JR Z,$F6D4 | Jump to F6D4 if A is equal to 39. | ||
F6CE | LD HL,$DDB5 | HL=Messaging_FomorianUnaffected. | ||
F6D1 | JP $ED6D | Jump to ED6D. | ||
F6D4 | LD A,($A773) | A=*A773. | ||
F6D7 | LD B,A | B=A. | ||
F6D8 | ADD A,$09 | A+=09. | ||
F6DA | LD C,A | C=A. | ||
F6DB | CALL TransformItem | Call TransformItem. | ||
F6DE | JP $F685 | Jump to F685. | ||
F6E1 | LD A,$26 | A=26. | ||
F6E3 | CALL ValidateItemPresent | Call ValidateItemPresent. | ||
F6E6 | JP Z,Response_YouveDoneThatAlready | Jump to Response_YouveDoneThatAlready if A is equal to 26. | ||
F6E9 | CALL $F620 | Call F620. | ||
F6EC | JR NZ,$F6F7 | Jump to F6F7 if A is not equal to 26. | ||
F6EE | LD HL,$E392 | HL=Data_ItemGroup_Sword. | ||
F6F1 | CALL CheckItemGroupPresent | Call CheckItemGroupPresent. | ||
F6F4 | CALL IsPlayerCarryingItem | Call IsPlayerCarryingItem. | ||
F6F7 | LD BC,$1326 | Call TransformItem to transform item 13 ("A hare,caught by the leg,in a trap") into item 26 ("A dead hare,caught in a trap"). | ||
F6FA | CALL TransformItem | |||
F6FD | LD HL,$DDDF | HL=Messaging_NoLongerSuffers. | ||
F700 | JP $ED6D | Jump to ED6D. | ||
F703 | LD ($A772),HL | Write HL to *A772. | ||
F706 | CALL $F62B | Call F62B. | ||
F709 | LD HL,$E9B2 | HL=GameOver. | ||
F70C | EX (SP),HL | Exchange the *SP with the HL register. | ||
F70D | LD HL,($A772) | HL=*A772. | ||
F710 | JP $ED6D | Jump to ED6D. | ||
F713 | CALL $F62B | Call F62B. | ||
F716 | CALL $F685 | Call F685. | ||
F719 | LD HL,$DDFA | HL=Messaging_MobbedByAngryVillagers. | ||
F71C | JP $F703 | Jump to F703. | ||
F71F | LD HL,$E377 | HL=Data_ItemGroup_Warrior. | ||
F722 | CALL CheckItemGroupPresent | Call CheckItemGroupPresent. | ||
F725 | CP $27 | Jump to F69F if A is not equal to 27. | ||
F727 | JP NZ,$F69F | |||
F72A | LD HL,$DCE5 | HL=Messaging_DontHaveAWeopon. | ||
F72D | JP $ED6D | Jump to ED6D. | ||
F730 | CALL $F62B | Call F62B. | ||
F733 | LD HL,$DE31 | HL=Messaging_YouCantTooManyOfThem. | ||
F736 | JP $ED6D | Jump to ED6D. | ||
F739 | LD A,$45 | A=45. | ||
F73B | CALL ValidateItemPresent | Call ValidateItemPresent. | ||
F73E | JP Z,Response_YouveDoneThatAlready | Jump to Response_YouveDoneThatAlready if A is equal to 45. | ||
F741 | CALL $F62B | Call F62B. | ||
F744 | LD A,$56 | A=56. | ||
F746 | CALL CheckObjectInInventory | Call CheckObjectInInventory. | ||
F749 | LD HL,$DE57 | HL=Messaging_AttackBoldly. | ||
F74C | JP NZ,$F703 | Jump to F703 if A is not equal to 56. | ||
F74F | LD BC,$4445 | Call TransformItem to transform item 44 ("A bear") into item 45 ("A dead bear"). | ||
F752 | CALL TransformItem | |||
F755 | LD A,$2C | Write 2C to *E84D. | ||
F757 | LD ($E84D),A | |||
F75A | LD A,$35 | Write 35 to *E84E. | ||
F75C | LD ($E84E),A | |||
F75F | LD A,$04 | Call AddToScore to add 04 points to the score. | ||
F761 | CALL AddToScore | |||
F764 | LD HL,$DE9E | HL=Messaging_YourBlowStrikesTrue. | ||
F767 | JP $ED6D | Jump to ED6D. | ||
F76A | CALL $F62B | Call F62B. | ||
F76D | CALL $F685 | Call F685. | ||
F770 | LD HL,$DEC2 | HL=Messaging_GuardOnTheRampartAbove. | ||
F773 | JP $F703 | Jump to F703. | ||
F776 | CALL $F62B | Call F62B. | ||
F779 | LD HL,$DEF0 | HL=Messaging_DruidAvoidsBlow. | ||
F77C | JP $F703 | Jump to F703. | ||
F77F | LD A,$50 | A=50. | ||
F781 | CALL ValidateItemPresent | Call ValidateItemPresent. | ||
F784 | JP Z,Response_YouveDoneThatAlready | Jump to Response_YouveDoneThatAlready if A is equal to 50. | ||
F787 | CALL $F62B | Call F62B. | ||
F78A | LD BC,$4F50 | Call TransformItem to transform item 4F ("A pig") into item 50 ("A dead pig"). | ||
F78D | CALL TransformItem | |||
F790 | JP $F764 | Jump to F764. | ||
F793 | LD A,$52 | A=52. | ||
F795 | CALL ValidateItemPresent | Call ValidateItemPresent. | ||
F798 | JP NZ,Response_YouveDoneThatAlready | Jump to Response_YouveDoneThatAlready if A is not equal to 52. | ||
F79B | CALL $F62B | Call F62B. | ||
F79E | LD BC,$5253 | Call TransformItem to transform item 52 ("A wild ox,tethered to the pen by a length of rope") into item 53 ("A dead ox,tethered by a piece of rope"). | ||
F7A1 | CALL TransformItem | |||
F7A4 | LD A,$04 | Call AddToScore to add 04 points to the score. | ||
F7A6 | CALL AddToScore | |||
F7A9 | JP $F764 | Jump to F764. | ||
This entry point is used by the routines at F2FF and F31D.
|
||||
F7AC | LD A,$19 | A=19. | ||
F7AE | CALL CheckObjectInInventory | Call CheckObjectInInventory. | ||
F7B1 | RET NZ | Return if A is not equal to 19. | ||
F7B2 | LD A,E | A=E. | ||
F7B3 | CALL Handler_DestroyItemEvent | Call Handler_DestroyItemEvent. | ||
F7B6 | LD HL,$A790 | Decrease *Count_InventoryItems by one. | ||
F7B9 | DEC (HL) | |||
F7BA | LD HL,$E060 | HL=Messaging_SaltHasDissolved. | ||
F7BD | JP $ED6D | Jump to ED6D. |
Prev: F5F9 | Up: Map | Next: F7C0 |