home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Shareware - Software Farm 2
/
wosw_2.zip
/
wosw_2
/
PRINTING
/
SMPSQZPR.ZIP
/
SMPSQZGW.BAS
< prev
next >
Wrap
BASIC Source File
|
1990-06-26
|
3KB
|
82 lines
10 CLEAR
15 WIDTH LPRINT 254
20 OPTION BASE 1:DEFINT A-Z:DIM BUFFER$(2,66),FLY$(10),BUFF,BUFFLINE,COUNT,FLAG,FLAG2,FLY,FLYNO,MAX,A$,B$,ESC$,F$,Z$
30 GOSUB 1000:'blurb
40 GOSUB 2000:'initialize buffer,get get file name
45 FOR FLY=1 TO FLYNO
46 F$=FLY$(FLY)
47 BUFF=1:BUFFLINE=1:BLOCK=1:FLAG=0:FLAG2=0:LPRINT Z$;
48 ON ERROR GOTO 60000:OPEN"i",1,F$
49 CLS:PRINT TAB(20)"PRINTING FILE: "F$
50 IF EOF(1) THEN GOSUB 5000:GOTO 220
55 IF FLAG=1 THEN 70
60 GOSUB 3000:'line input routine
70 IF A$="" THEN 50
80 IF A$=STRING$(LEN(A$),32) THEN 50
90 IF LEN(A$)>80 THEN FLAG=1 ELSE FLAG=0
100 LSET BUFFER$(BUFF,BUFFLINE)=A$
105 IF FLAG=1 THEN A$=MID$(A$,81)
110 BUFFLINE=BUFFLINE +1
120 IF BUFFLINE <67 THEN 50
130 IF BUFF=1 THEN BUFF=2:BUFFLINE=1:GOTO 50
139 ' REST FOLLOWS FROM FILLING BUFFER 2
140 BUFFLINE=1
150 MAX=66:GOSUB 4000:' PRINT THE BLOCK
195 BUFF=1
200 IF BLOCK=1 THEN LPRINT STRING$(159,"#"):BLOCK=2:GOTO 50
210 LPRINT STRING$(159,"#");CHR$(12);:BLOCK=1:GOTO 50
220 NEXT FLY
230 END
1000 CLS
1010 PRINT TAB(20)"SIMPLE SQUEEZE PRINT":PRINT
1020 PRINT:PRINT: PRINT TAB(20)"(c) C.R.J.Currie 1990"
1100 RETURN
2000 PRINT: PRINT "initializing buffer"
2010 FOR COUNT=1 TO 66:FOR N=1 TO 2
2020 BUFFER$(N,COUNT)=STRING$(80,32)
2030 NEXT:NEXT
2035 ESC$=CHR$(27)
2036 Z$=ESC$+"@"+ESC$+CHR$(15)+ESC$+"M"+ESC$+"Q"+CHR$(160)+ESC$+"S0"+ESC$+"A"+CHR$(5)
2038 :INPUT"HOW MANY FILES TO PRINT (MAX. 10)";FLYNO
2039 IF FLYNO<1 OR FLYNO>10 THEN PRINT"TOO FEW OR TOO MANY!":PRINT:GOTO 2038
2040 FOR FLY=1 TO FLYNO
2047 PRINT"ENTER NAME OF FILE NO.";FLY;":";:LINE INPUT F$:FLY$(FLY)=F$
2049 NEXT FLY
2050 PRINT :LINE INPUT"GET PRINTER READY AND PRESS ENTER TO CONTINUE: ";DUMMY$
2070 RETURN
3000 LINE INPUT#1,A$:RETURN:' OK for model 4 etc
3009 REM for model III bascom: return line in A$
3010 A$=""
3015 IF EOF(1) THEN CLOSE:GOTO 3500
3020 B$=INPUT$(1,#1)
3030 IF B$=CHR$(13) THEN 3500 ELSE A$=A$+B$:GOTO 3015
3500 RETURN
3999 REM PRINT ROUTINE
4000 FOR COUNT=1 TO MAX
4010 SPEW$=BUFFER$(1,COUNT)+BUFFER$(2,COUNT)
4020 LPRINT SPEW$
4030 NEXT
4040 RETURN
4999 'TIDY UP ROUTINE
5000 CLOSE
5010 IF BUFF=2 THEN GOSUB 6000:MAX=66:GOSUB 4000:LPRINT STRING$(159,"#");CHR$(12);:GOTO 5800
5011 BUFFLINE=BUFFLINE-1
5015 IF BUFFLINE<>(INT(BUFFLINE/2)*2) THEN FLAG2=1 ELSE FLAG2=0
5020 MAX=INT(BUFFLINE/2)+1
5030 IF MAX>33 THEN MAX=33
5040 FOR COUNT=1 TO MAX
5050 LSET BUFFER$(2,COUNT)=BUFFER$(1,MAX+COUNT)
5055 NEXT
5060 IF FLAG2=1 THEN LSET BUFFER$(2,COUNT)=" "
5070 GOSUB 4000
5080 LPRINT STRING$(159,"#");CHR$(12);
5800 RETURN
5999 'BLANK OUT REST OF BUFF2
6000 START=BUFFLINE+1
6010 FOR COUNT=START TO 66
6020 LSET BUFFER$(2,COUNT)=" "
6025 NEXT COUNT
6030 RETURN
60000 IF ERL=48 THEN PRINT "Cannot open file: ";F$:CLOSE:STOP
60010 PRINT"unexpected error no. ";ERR;" in line: ";ERL:STOP