![]() |
Routines |
Prev: A5C4 | Up: Map | Next: A63A |
Used by the routines at ProcessTextStream and A6D3.
|
||||||||
ProcessTextCommand | A5CD | LD A,(IX+$00) | A=*IX+00. | |||||
A5D0 | BIT 7,A | Jump to ProcessTextCommand_2 if bit 7 of A is not set. | ||||||
A5D2 | JR Z,ProcessTextCommand_2 | |||||||
A5D4 | AND %01111111 | Keep only bits 0-6. | ||||||
A5D6 | LD D,A | D=A. | ||||||
A5D7 | LD E,(IX+$01) | E=*IX+01. | ||||||
A5DA | INC IX | Increment IX by one. | ||||||
A5DC | AND %11110000 | Keep only bits 4-7. | ||||||
A5DE | CP $30 | Jump to A647 if A is equal to 30. | ||||||
A5E0 | JR Z,$A647 | |||||||
A5E2 | CP $20 | Jump to A647 if A is equal to 20. | ||||||
A5E4 | JR Z,$A647 | |||||||
A5E6 | CP $60 | Jump to A647 if A is equal to 60. | ||||||
A5E8 | JR Z,$A647 | |||||||
This entry point is used by the routine at A83A.
|
||||||||
ProcessTextCommand_0 | A5EA | CALL $A887 | Call A887. | |||||
ProcessTextCommand_1 | A5ED | INC IX | Increment IX by one. | |||||
A5EF | OR %00000001 | Set bit 0 to indicate there is further text to print. | ||||||
A5F1 | RET | Return. | ||||||
ProcessTextCommand_2 | A5F2 | CP $20 | Jump to ProcessTextCommand_5 if A is less than 20. | |||||
A5F4 | JR C,ProcessTextCommand_5 | |||||||
A5F6 | CP $60 | Jump to A83A if A is greater than 60. | ||||||
A5F8 | JP NC,$A83A | |||||||
A5FB | CP $40 | Jump to ProcessTextCommand_4 if A is less than 40. | ||||||
A5FD | JR C,ProcessTextCommand_4 | |||||||
A5FF | AND %00011111 | Keep only bits 0-4. | ||||||
A601 | INC A | Increment A by one. | ||||||
A602 | LD B,A | B=A. | ||||||
A603 | PUSH IX | HL=IX (using the stack). | ||||||
A605 | POP HL | |||||||
A606 | INC HL | Increment HL by one. | ||||||
A607 | LD C,$00 | C=00. | ||||||
ProcessTextCommand_3 | A609 | CALL $A990 | Call A990. | |||||
A60C | CALL $A9B7 | Call A9B7. | ||||||
A60F | DJNZ ProcessTextCommand_3 | Decrease counter by one and loop back to ProcessTextCommand_3 until counter is zero. | ||||||
A611 | PUSH HL | IX=HL (using the stack). | ||||||
A612 | POP IX | |||||||
A614 | LD A,C | A=C. | ||||||
A615 | AND A | Set flags. | ||||||
A616 | JR NZ,ProcessTextCommand_1 | Jump to ProcessTextCommand_1 if HL is not equal to A. | ||||||
A618 | DEC IX | Decrease IX by one. | ||||||
A61A | JR ProcessTextCommand_1 | Jump to ProcessTextCommand_1. | ||||||
ProcessTextCommand_4 | A61C | CALL $A9B7 | Call A9B7. | |||||
A61F | JR ProcessTextCommand_1 | Jump to ProcessTextCommand_1. | ||||||
ProcessTextCommand_5 | A621 | PUSH DE | Stash DE on the stack. | |||||
A622 | LD E,A | E=A. | ||||||
A623 | LD D,$00 | D=00. | ||||||
A625 | LD HL,$A55D | HL=A55D+(DE*02). | ||||||
A628 | ADD HL,DE | |||||||
A629 | ADD HL,DE | |||||||
A62A | LD E,(HL) | E=*HL. | ||||||
A62B | INC HL | Increment HL by one. | ||||||
A62C | LD D,(HL) | D=*HL. | ||||||
A62D | EX DE,HL | Exchange the DE and HL registers. | ||||||
A62E | POP DE | Restore DE from the stack. | ||||||
A62F | CP $1D | Jump to IndirectJump if A is greater than or equal to 1D. | ||||||
A631 | JR NC,IndirectJump | |||||||
A633 | CALL IndirectJump | Call IndirectJump. | ||||||
A636 | JR Z,ProcessTextCommand_1 | Jump to ProcessTextCommand_1 if A is equal to 1D. | ||||||
A638 | JR ProcessTextCommand_0 | Jump to ProcessTextCommand_0. |
Prev: A5C4 | Up: Map | Next: A63A |