Prev: 1F23 Up: Map Next: 1F54
1F3A: 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.
Input
Output
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