$CPU 8086 ' make compatible with XT systems $LIB ALL OFF ' turn off all PowerBASIC libraries $ERROR ALL OFF ' turn off all PowerBASIC error checking $OPTIMIZE SIZE ' optimize for smaller code $COMPILE UNIT ' COMPILE TO A UNIT (.PBU) '$COMPILE EXE ' COMPILE TO A UNIT (.PBU) DEFINT A-Z ' Required for all numeric functions, forces PB to not ' include floating point in UNIT (makes it smaller) '/*------------------------------------------------------------------*/ DECLARE FUNCTION SPACE(BYVAL X AS STRING, BYVAL N AS INTEGER, BYVAL PAD AS STRING) AS STRING DECLARE FUNCTION CENTER(BYVAL X AS STRING, BYVAL L AS INTEGER, BYVAL PAD AS STRING) AS STRING DECLARE FUNCTION FILESPEC(BYVAL OPT AS STRING, BYVAL FLNAME AS STRING) AS STRING DECLARE FUNCTION PROGNAME() AS STRING DECLARE FUNCTION SUBSTR(BYVAL X AS STRING, BYVAL N AS INTEGER, BYVAL L AS INTEGER, BYVAL PAD AS STRING) AS STRING DECLARE SUB PUTSCREEN(BYVAL X AS STRING) DECLARE FUNCTION GETSCREEN() AS STRING DECLARE FUNCTION MBOX(ROW,COL,ATTR,MSG$(),OPT$,BTYPE) AS STRING DECLARE SUB PL242(FSPEC$,UD$,OPT,MPOINT&) '/*------------------------------------------------------------------*/ $CODE SEG "MLIB6" '/*------------------------------------------------------------------*/ SUB PL121(FSPEC$,UD$,OPT,MPOINT&) PUBLIC REDIM MSG$(10) REDIM A$(66) HPATH$ = FILESPEC("H",PROGNAME) F$ = FSPEC$ IF UD$ = "" THEN UD$ = STRING$(172," ") ELSE UD$ = SPACE(UD$,1," ") UD$ = CENTER(UD$,172," ") END IF PL242 "",C1$,OPT,MPOINT& IF OPT = 1 THEN H1 = 5620 H2 = 5803 ELSE H1 = 5530 H2 = 5713 END IF MID$(C1$,H1,172) = UD$ MID$(C1$,H2,172) = UD$ '/*--- Header --- SP1 = 1 EP1 = INSTR(SP1+1,C1$,"³") SL1 = EP1-SP1 '/* --- CREATE PRINT FILE --- FBN = FREEFILE OPEN"I",FBN,F$ FBO = FREEFILE OPEN"O",FBO,HPATH$+"6col.OUT" CNT = 0 RCNT = 0 PCNT& = 0 WHILE NOT EOF(FBN) LINE INPUT#FBN,T$ INCR PCNT& T$ = SUBSTR(T$,1,121," ") + " " INCR CNT INCR RCNT IF CNT = 1 THEN T$ = MID$(C1$,SP1,SL1) + T$ A$(RCNT) = A$(RCNT) + T$ IF RCNT = 66 THEN RCNT = 0 IF CNT = 132 THEN FOR CNT = 1 TO 66 IF CNT = 66 THEN A$(CNT) = A$(CNT) + CHR$(12) PRINT#FBO,A$(CNT) NEXT CNT CNT = 0 INITSTR A$() END IF '/* PRINT#FBO,T$ IF MPOINT& > 0 AND (MPOINT& = PCNT&) THEN CLOSE#FBO C$ = "COPY "+HPATH$+"6col.OUT PRN > nul" SHELL C$ TSCREEN$ = GETSCREEN MSG$(1) = "First Pass Completed" MSG$(2) = "When Printer is Finished Printing" MSG$(3) = "Return Paper to Paper Bin" MSG$(4) = "Press ANY key to Print Back Sides" MSG$(5) = "" T$ = MBOX(0,0,79,MSG$(),"",7) PUTSCREEN TSCREEN$ OPEN"O",FBO,HPATH$+"6col.OUT" END IF WEND IF CNT < 132 THEN FOR CNT = 1 TO 66 PRINT#FBO,A$(CNT) NEXT CNT CNT = 0 END IF PRINT#FBO,"E" CLOSE#FBN CLOSE#FBO C$ = "COPY "+HPATH$+"6col.OUT PRN > NUL" SHELL C$ KILL HPATH$+"6col.OUT" '/*----------------------------------------------------------------------- END SUB '/*----------------------------------------------------------------------- SUB INITSTR(A$()) FOR CNT = 1 TO 66 A$(CNT) = "" NEXT CNT END SUB '/*----------------------------------------------------------------------- ' $INCLUDE "C:\CODE\MLIB\MLIB.INC" ' F$ = "" ' POPT = 0 ' MPOINT& = 0 ' CMD$ = UCASE$(COMMAND$) ' F$ = WORD(CMD$,1) ' UD$ = "" ' POPT = VAL(WORD(CMD$,2)) ' MPOINT& = VAL(WORD(CMD$,3)) ' PL121 F$,UD$,POPT,MPOINT& '/*Y$ = GETKEY '/*END