Routines |
Prev: 07971 | Up: Map | Next: 08020 |
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 | 07994 | CALL FIND_INT2 | Fetch the operand. | |
PAUSE_1 | 07997 | HALT | Wait for a maskable interrupt. | |
07998 | DEC BC | Decrease the counter. | ||
07999 | LD A,B | If the counter is thereby reduced to zero the pause has come to an end. | ||
08000 | OR C | |||
08001 | JR Z,PAUSE_END | |||
08003 | LD A,B | If the operand was zero BC will now hold 65535 and this value will be returned to zero. Jump with all other operand values. | ||
08004 | AND C | |||
08005 | INC A | |||
08006 | JR NZ,PAUSE_2 | |||
08008 | INC BC | |||
PAUSE_2 | 08009 | BIT 5,(IY+1) | Jump back unless a key has been pressed (bit 5 of FLAGS set). | |
08013 | JR Z,PAUSE_1 | |||
The period of the pause has now finished.
|
||||
PAUSE_END | 08015 | RES 5,(IY+1) | Signal 'no key pressed' (reset bit 5 of FLAGS). | |
08019 | RET | Now return - to STMT_RET. |
Prev: 07971 | Up: Map | Next: 08020 |