Routines |
Prev: 72D3 | Up: Map | Next: 7340 |
Used by the routines at SquiggleLine, ICannotDoThat, 72D3, 77D1, DisplayLocHlpMsg, GameOver, LoadGame, SaveGame, Action_Look, Action_Putdown, Action_Pickup, Action_Dir, Action_Follow, Action_Talkto, Action_Shoot, YouAreDead, Action_Inventory, Action_Attack, Action_Give, Action_Examine, YouSeeEntry, 96B3, 9ACD, 9D44, 9F94, A050, A0C8, DisplayExits, ActionTie, ActionUntie, ActionBurn, ActionCapture, ActionClimbOut and EventForestriver.
|
||||||||
Store A, DE and IX for later (see Return).
|
||||||||
PrintMsg | 72DD | LD ($70DD),DE | Stash DE at 70DD. | |||||
72E1 | LD ($70E0),IX | Stash IX at 70E0. | ||||||
72E5 | LD ($70DC),A | Stash A at 70DC. | ||||||
Important.
|
||||||||
72E8 | LD A,($B6FA) | |||||||
72EB | AND A | |||||||
72EC | JR NZ,PrintMsg_0 | |||||||
72EE | LD ($B6FB),A | |||||||
This entry point is used by the routine at 73E0.
|
||||||||
PrintMsg_0 | 72F1 | PUSH HL | IX=HL (the text message address). | |||||
72F2 | POP IX | |||||||
PrintMsg_Loop | 72F4 | LD A,(IX+$00) | Fetch the next character of the text message. | |||||
72F7 | BIT 7,A | Is this blah? Jump to PrintMsg_1 if not. | ||||||
72F9 | JR Z,PrintMsg_1 | |||||||
72FB | AND $7F | Reset bit 7. | ||||||
72FD | LD D,A | |||||||
72FE | LD E,(IX+$01) | |||||||
7301 | INC IX | Increase IX by one to move onto the next character of the message. | ||||||
7303 | AND $F0 | |||||||
7305 | CP $30 | |||||||
7307 | JR Z,$7348 | |||||||
7309 | CP $20 | |||||||
730B | JR Z,$7348 | |||||||
730D | CP $60 | |||||||
730F | JR Z,$7348 | |||||||
This entry point is used by the routine at GetCommonWord.
|
||||||||
PrintMsg_Token | 7311 | CALL PrintToken | Call PrintToken. | |||||
PrintMsg_Next | 7314 | INC IX | Increase IX by one to move onto the next character of the message. | |||||
7316 | JR PrintMsg_Loop | Jump back to PrintMsg_Loop. | ||||||
Check.
|
||||||||
PrintMsg_1 | 7318 | CP $20 | If the character is less than $20 jump to PrintMsg_PrintTable. | |||||
731A | JR C,PrintMsg_PrintTable | |||||||
731C | CP $60 | If the character is more than $60 jump to GetCommonWord. | ||||||
731E | JP NC,GetCommonWord | |||||||
7321 | CALL $72C3 | Else, call 72C3. | ||||||
7324 | JR PrintMsg_Next | Jump back to PrintMsg_Next to move onto the next character. | ||||||
X
|
||||||||
PrintMsg_PrintTable | 7326 | PUSH DE | Stash DE on the stack for later. | |||||
7327 | LD E,A | E=A - DE now holds the current character as the LSB. | ||||||
7328 | LD D,$00 | |||||||
732A | LD HL,$7295 | HL=PrintTable | ||||||
732D | ADD HL,DE | HL=(DE * $02) | ||||||
732E | ADD HL,DE | |||||||
732F | LD E,(HL) | Loads DE with the address held in HL. | ||||||
7330 | INC HL | |||||||
7331 | LD D,(HL) | |||||||
7332 | EX DE,HL | Exchange DE and HL. | ||||||
7333 | POP DE | Restore the previous value of DE from the stack. | ||||||
7334 | CP $14 | If the character is more than $14 jump to PrintMsg_Indirect_Jump. | ||||||
7336 | JR NC,PrintMsg_Indirect_Jump | |||||||
7338 | CALL PrintMsg_Indirect_Jump | Call PrintMsg_Indirect_Jump. | ||||||
733B | JR Z,PrintMsg_Next | If xxxx jump back to PrintMsg_Next to move onto the next character. | ||||||
733D | JR PrintMsg_Token | Jump to PrintMsg_Token. | ||||||
PrintMsg_Indirect_Jump | 733F | JP (HL) | Indirect jump to the address held in HL. |
Prev: 72D3 | Up: Map | Next: 7340 |