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
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