Prev: 07971 Up: Map Next: 08020
07994: THE 'PAUSE' COMMAND ROUTINE
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