Routines |
Prev: 1F23 | Up: Map | Next: 1F54 |
The address of this routine is found in the parameter table.
The period of the pause is determined by counting the number of maskable interrupts as they occur every 1/50th of a second.
A pause is finished either after the appropriate number of interrupts or by the system variable FLAGS indicating that a key has been pressed.
|
||||
PAUSE | 1F3A | CALL FIND_INT2 | Fetch the operand. | |
PAUSE_1 | 1F3D | HALT | Wait for a maskable interrupt. | |
1F3E | DEC BC | Decrease the counter. | ||
1F3F | LD A,B | If the counter is thereby reduced to zero the pause has come to an end. | ||
1F40 | OR C | |||
1F41 | JR Z,PAUSE_END | |||
1F43 | LD A,B | If the operand was zero BC will now hold +FFFF and this value will be returned to zero. Jump with all other operand values. | ||
1F44 | AND C | |||
1F45 | INC A | |||
1F46 | JR NZ,PAUSE_2 | |||
1F48 | INC BC | |||
PAUSE_2 | 1F49 | BIT 5,(IY+$01) | Jump back unless a key has been pressed (bit 5 of FLAGS set). | |
1F4D | JR Z,PAUSE_1 | |||
The period of the pause has now finished.
|
||||
PAUSE_END | 1F4F | RES 5,(IY+$01) | Signal 'no key pressed' (reset bit 5 of FLAGS). | |
1F53 | RET | Now return - to STMT_RET. |
Prev: 1F23 | Up: Map | Next: 1F54 |