( if a seperate print task is compiled it's pfa is set here)
CREATE (PRINT_TASK) 0 t,
ram_variable PRINT_JOB
ram_create PRINTING #facility_length ram_allot \ _facility variable
| : PRINT_QUIT
-1 PRINTING ! ( block claim while sending page)
EOJ ( end of job)
send
0 PRINT_JOB !
0 PRINTING !
xoff
PRINTING @ IF ( only execute if task claimed)
PRINT_JOB @
?DUP IF
EXECUTE
THEN
THEN
ABORT
;
| : PRINT_GO ( --)
wake (PRINT_TASK) @ @ @ W! ;
| : PRINT_SEND ( --)
\ (PRINT_TASK) @ @ QREG his @ ?DUP IF
\ 'BUFR @ >R 'BUFR ! KILLBUFF
\ THEN
\ #### fix up
\ FILE (PRINT_TASK) @ @ FILE his CURRENT 2+ FILE - CMOVE
\ 0 QREG ! >IN @ #TIB !
;
: PRINT>IBM ( --)
(PRINT_TASK) @ IF
100 PRINTING xgrab ABORT" Print task in use"
['] scan PRINT_JOB !
PRINT_SEND
PRINT_GO
THEN
;