1 ******************************************************************* 2 ** Virtual printer subprogram 3 ******************************************************************* 4 IDENTIFICATION DIVISION. 5 ************************************** 6 PROGRAM-ID. VIRTUAL-PRINTER. 7 ** 8 ENVIRONMENT DIVISION. 9 *************************************** 10 ** 11 INPUT-OUTPUT SECTION. 12 **-*-*-*-*-*-*-*-*-*-*-*-*-* 13 FILE-CONTROL. 14 SELECT FPRINTER ASSIGN to "./printer.dat" 15 ORGANIZATION LINE SEQUENTIAL 16 ACCESS SEQUENTIAL. 17 ** 18 DATA DIVISION. 19 ************************************** 20 FILE SECTION. 21 **-*-*-*-*-*-*-*-*-*-*-*-*-* 22 FD FPRINTER. 23 01 ENREG-PRINTER PIC X(80). 24 ** 25 WORKING-STORAGE SECTION. 26 **-*-*-*-*-*-*-*-*-*-*-*-*-* 27 LINKAGE SECTION. 28 **-*-*-*-*-*-*-*-*-*-*-*-*-* 29 01 RECEIVED-PARAM. 30 02 PA-RESET PIC X . 31 02 PA-BUFFER PIC X(80) . 32 02 PA-WHEN PIC X(6) . 33 02 PA-WHAT PIC X(5) . 34 02 PA-HOWMANY PIC 99 . 35 PROCEDURE DIVISION USING RECEIVED-PARAM. 36 ************************************** 37 MAIN-PRINTER. 38 IF(PA-RESET = "O") 39 OPEN OUTPUT FPRINTER 40 if(PA-WHEN = "AFTER") 41 if(PA-WHEN = "AFTER") 42 WRITE ENREG-PRINTER 43 END-IF 44 END-IF 45 ELSE 46 OPEN EXTEND FPRINTER 47 IF(PA-WHEN = "AFTER") 48 IF(PA-WHAT = "PAGE") 49 MOVE '>------------------------------------------' 50 -'------------------------------------<' TO ENREG-PRINTER 51 WRITE ENREG-PRINTER 52 ELSE 53 SUBTRACT 1 FROM PA-HOWMANY 54 PERFORM PA-HOWMANY TIMES 55 MOVE SPACES TO ENREG-PRINTER 56 WRITE ENREG-PRINTER 57 END-PERFORM 58 END-IF 59 END-IF 60 WRITE ENREG-PRINTER FROM PA-BUFFER 61 IF(PA-WHEN = "BEFORE") 62 IF(PA-WHAT = "PAGE") 63 MOVE '>------------------------------------------' 64 -'------------------------------------<' TO ENREG-PRINTER 65 WRITE ENREG-PRINTER 66 ELSE 67 SUBTRACT 1 FROM PA-HOWMANY 68 PERFORM PA-HOWMANY TIMES 69 MOVE SPACES TO ENREG-PRINTER 70 WRITE ENREG-PRINTER 71 END-PERFORM 72 END-IF 73 END-IF 74 END-IF 75 CLOSE FPRINTER 76 MOVE "N" TO PA-RESET 77 MOVE SPACES TO PA-BUFFER 78 MOVE "AFTER" TO PA-WHEN 79 MOVE "LINES" TO PA-WHAT 80 MOVE 1 TO PA-HOWMANY 81 EXIT PROGRAM. 82 END PROGRAM VIRTUAL-PRINTER. 83