From 98cab31fc3659e33aef260efca55bf9f1753164c Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 11 Feb 2019 11:49:19 +0100 Subject: Add source files from Michael --- system/std.zusatz/1.7.3/src/printer-M | 69 +++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 system/std.zusatz/1.7.3/src/printer-M (limited to 'system/std.zusatz/1.7.3/src/printer-M') diff --git a/system/std.zusatz/1.7.3/src/printer-M b/system/std.zusatz/1.7.3/src/printer-M new file mode 100644 index 0000000..45b1381 --- /dev/null +++ b/system/std.zusatz/1.7.3/src/printer-M @@ -0,0 +1,69 @@ +PACKET multi user printer : + +INT VAR printer channel ; + + put ("Druckerkanal:") ; + get (printer channel) ; + server channel (printer channel); + + command dialogue (FALSE) ; + spool manager (PROC printer) ; + + +LET ack = 0 , + fetch code = 11 , + file type = 1003 ; + +INT VAR reply , old heap size ; + +DATASPACE VAR ds ; + +FILE VAR file ; + +PROC printer : + + disable stop ; + continue (server channel) ; + IF is error + THEN clear error ; + end + FI ; + + old heap size := heap size ; + REP + forget (ds) ; + execute print ; + IF is error AND online + THEN put error + FI ; + clear error ; + IF heap size > old heap size + 4 + THEN collect heap garbage ; + old heap size := heap size + FI + PER + +ENDPROC printer ; + +PROC execute print : + + enable stop ; + REP + ds := nilspace ; + call (father, fetch code, ds, reply) ; + IF reply = ack CAND type (ds) = file type + THEN print file + FI ; + forget (ds) + PER . + +print file : + file := sequential file (input, ds) ; + IF is elan source (file) + THEN elan list (file) + ELSE print (file) + FI . + +ENDPROC execute print ; + +ENDPACKET multi user printer ; -- cgit v1.2.3