| Routines

08270: THE 'PRINT POSITION' SUBROUTINE

Used by the routines at PRINT_2 and INPUT. The various position controlling characters are considered by this subroutine.
Output
F | Zero flag set if a position controlling character is found
PR_POSN_1 | 08270 | RST 24 | Get the present character.
| 08271 | CP ";" | Jump forward if it is a ';'.
| 08273 | JR Z,PR_POSN_3
| 08275 | CP "," | Also jump forward with a character other than a ',', but do not actually print the character if checking syntax.
| 08277 | JR NZ,PR_POSN_2
| 08279 | CALL SYNTAX_Z
| 08282 | JR Z,PR_POSN_3
| 08284 | LD A,6 | Load the A register with the 'comma' control code and print it, then jump forward.
| 08286 | RST 16
| 08287 | JR PR_POSN_3
PR_POSN_2 | 08289 | CP "'" | Is it a '''?
| 08291 | RET NZ | Return now (with the zero flag reset) if not any of the position controllers.
| 08292 | CALL PRINT_CR | Print 'carriage return' unless checking syntax.
PR_POSN_3 | 08295 | RST 32 | Fetch the next character.
| 08296 | CALL PR_END_Z | If not at the end of a print statement then jump forward.
| 08299 | JR NZ,PR_POSN_4
| 08301 | POP BC | Otherwise drop the return address from the stack.
PR_POSN_4 | 08302 | CP A | Set the zero flag and return.
| 08303 | RET