![]() |
Routines |
Prev: CC37 | Up: Map | Next: CCC7 |
Used by the routine at GameEntryPoint.
|
||||||||
ScriptInterpreter | CC78 | CALL $CC5A | Call CC5A. | |||||
CC7B | LD IY,($9FDB) | IY=CurrentCharacter_TimetablePointer. | ||||||
CC7F | CALL $D008 | Call D008. | ||||||
This entry point is used by the routines at CCF3 and CEB8.
|
||||||||
ScriptInterpreter_0 | CC82 | LD L,(IY+$01) | Get the characters script position. | |||||
CC85 | LD H,(IY+$02) | |||||||
CC88 | XOR A | Write 00 to *B934. | ||||||
CC89 | LD ($B934),A | |||||||
CC8C | LD A,($CC0B) | Jump to TerminateCharacterScript if *CC0B is equal to 0A. | ||||||
CC8F | CP $0A | |||||||
CC91 | JP Z,TerminateCharacterScript | |||||||
FindNextCommand | CC94 | LD A,(HL) | Jump to ProcessScriptCommand if *HL is not equal to A. | |||||
CC95 | AND A | |||||||
CC96 | JR NZ,ProcessScriptCommand | |||||||
CC98 | INC HL | Increment HL by one. | ||||||
CC99 | JR FindNextCommand | Jump to FindNextCommand. | ||||||
Process the current script command.
|
||||||||
ProcessScriptCommand | CC9B | PUSH HL | IX=HL (using the stack). | |||||
CC9C | POP IX | |||||||
CC9E | LD ($9FD9),HL | Write HL to *CurrentCharacter_CommandPosition. | ||||||
CCA1 | AND %00001111 | Keep only bits 0-3. | ||||||
CCA3 | CP $0A | Jump to CCF3 if A is greater than or equal to 0A. | ||||||
CCA5 | JR NC,$CCF3 | |||||||
CCA7 | LD A,($CC0D) | Jump to ExecuteCharacterCommand if *CC0D is not equal to 01. | ||||||
CCAA | CP $01 | |||||||
CCAC | JR NZ,ExecuteCharacterCommand | |||||||
CCAE | SUB A | A-=A. | ||||||
CCAF | LD ($CC0D),A | Write A to *CC0D. | ||||||
CCB2 | LD A,(HL) | A=*HL. | ||||||
CCB3 | CALL $B936 | Call B936. | ||||||
CCB6 | JP C,TerminateCharacterScript_0 | Jump to TerminateCharacterScript_0 if A is less than 01. | ||||||
CCB9 | JR Z,ExecuteCharacterCommand | Jump to ExecuteCharacterCommand if A is equal to 01. | ||||||
CCBB | CALL $C4D1 | Call C4D1. | ||||||
CCBE | RET NC | Return if A is greater than 01. | ||||||
CCBF | CALL $CFB6 | Call CFB6. | ||||||
CCC2 | LD (IX+$05),$02 | Write 02 to *IX+05. | ||||||
CCC6 | RET | Return. |
Prev: CC37 | Up: Map | Next: CCC7 |