100 '< < COLUMN.100 > > Copyright 23 Nov 87 by Wm. T. Stauffer 70435,237 105 'Documentation in COLUMN.DOC 110 CLS:CLEAR5000:MAXFILES=1:SCREEN1:WIDTH40 120 ONERRORGOTO1350 130 DIMH$(150),J$(150),LJ(150),S(15) 140 ES$=CHR$(27):RS$=ES$+"p":NS$=ES$+"q":EP$=ES$+"J":EL$=ES$+"K":PT$=CHR$(16) 150 '----- FUNCTION KEYS ----- 160 KEYON:ONKEYGOSUB,,,1280,,1300,,1320 170 '----- ENTER DATA ----- 180 PRINTRS$;" COLUMN FORMATTER ";NS$ 190 PRINT@40,EP$ 200 PRINT@280,EP$;RS$;" RAM: ";NS$;" [0] Disk 0 [1] Disk 1":PRINT:FILES:GOSUB1330 210 BEEP:FI$="":PRINT@120,EL$;:PRINTTAB(10)"Input File: ";:INPUTFI$ 220 IFFI$=""THENPRINT:PRINT@209,RS$;" File MUST be entered! ";NS$:GOTO210 230 IFFI$="F"ORFI$="f"THENPRINT@200,EL$:PRINT@280,EP$;RS$;" RAM: ";NS$;" [0] Disk 0 [1] Disk 1":PRINT:FILES:GOSUB1330:GOTO210 240 IFFI$="0"THENPRINT@200,EL$:PRINT@280,EP$;RS$;" Disk 0: ";NS$" [F] RAM [1] Disk 1":PRINT:D=0:GOSUB1150:GOSUB1330:GOTO210 250 IFFI$="1"THENPRINT@200,EL$:PRINT@280,EP$;RS$;" Disk 1: ";NS$" [F] RAM [0] Disk 0":PRINT:D=1:GOSUB1150:GOSUB1330:GOTO210 260 I$=LEFT$(FI$,2):IFI$="0:"ORI$="1:"THEN280 270 IFRIGHT$(FI$,3)<>".DO"THENFI$=FI$+".DO" 280 OPENFI$FORINPUTAS1:CLOSE 290 PRINT@120,EP$:GOSUB1330:PRINT@130,"Input File: ";FI$ 300 BEEP:FO$="":PRINT@200,EP$:GOSUB1330:PRINT@210,"Output File:";:INPUTFO$ 310 IFFO$="LPT:"THEN320ELSEIFFO$=""THENFO$=FI$ELSEIFRIGHT$(FO$,3)<>".DO"THENFO$=FO$+".DO" 320 PRINT@440,EP$;RS$;"Line";NS$ 330 OPENFI$FORINPUTAS1:FORX=1TO8:LINEINPUT#1,A$:PRINTRS$;X;NS$;" ";LEFT$(A$,35):NEXT:CLOSE:GOSUB1330 340 BEEP:PRINT@290,EL$;"Lines in Header:";:INPUTHL$ 350 IFHL$=""THENHL=0:GOTO380 360 HL=VAL(HL$):IFHL<=8THEN380 370 PRINT@365,RS$;" Header CANNOT Exceed 8 Lines ";NS$:GOTO340 380 BEEP:PRINT@360,EP$:PRINT@800,"[C] to correct data or [ENT] to continue":GOSUB1330 390 Q$=INKEY$:IFQ$=""THEN390ELSEIFQ$="C"ORQ$="c"THEN190 400 '----- COUNTING ----- 410 PRINT@40,EP$ 420 IFFI$=FO$THENA$="Reformatting "+FI$:GOTO450 430 IFFO$="LPT:"THENA$="Printing "+FI$:GOTO450 440 A$="Formatting "+FI$+" to "+FO$ 450 PRINT@100-(LEN(A$)/2),A$ 460 S$="Counting Lines":GOSUB970 470 OPENFI$FORINPUTAS1:C=0:CC=0:ML=0 480 IFHL=0THEN510 490 FORX=1TOHL:GOSUB980:LINEINPUT#1,H$(X):LH(X)=LEN(H$(X)):NEXT 500 C=0 510 C=C+1:GOSUB980:LINEINPUT#1,J$(C):LJ(C)=LEN(J$(C)):IFLJ(C)>MLTHENML=LJ(C) 520 IFEOF(1)THEN530ELSE510 530 CLOSE 540 P$=STR$(C)+" Lines - Maximum"+STR$(ML)+" Characters/Line" 550 PRINT@180-(LEN(P$)/2),EP$;P$ 560 '----- OUTPUT FILE FORMAT ----- 570 BEEP:PRINT@280,EP$:GOSUB1330:PRINT@280,FO$;" Char/Line (Default: 80)";:INPUTPC$ 580 IFPC$=""THENPC=80ELSEPC=VAL(PC$) 590 IFPC>255THENPRINT:PRINTTAB(5)RS$;" Cannot Exceed 255 Characters ";NS$:GOTO570 600 IFCW=>PCTHENPRINT:PRINT:BEEP:PRINTTAB(5)RS$;" ";FI$;" Lines too wide to reformat ";NS$:STOP 610 BEEP:PRINT@360,EL$;"Column Width (Default:";ML+1;")";:INPUTCW$ 620 IFCW$=""THENCW=ML+1ELSECW=VAL(CW$) 630 MC=INT(PC/CW) 640 BEEP:PRINT@440,EL$;FO$;" Columns (Default:";MC;")";:INPUTNC$ 650 IFNC$=""THENNC=MCELSENC=VAL(NC$) 660 M=PC-(NC*CW) 670 PRINT@605,"Maximum Left Margin: ";M;" Spaces" 680 PRINT@520,EL$;"Left Margin (Default: ";INT(M/2);")";:INPUTLM$ 690 IFLM$=""THENLM=INT(M/2)ELSELM=VAL(LM$) 700 IFLM>MTHEN680 710 BEEP:PRINT@800,EP$:PRINT"[C] to correct data or [ENT] to continue" 720 GOSUB1330 730 Q$=INKEY$:IFQ$=""THEN730ELSEIFQ$="C"ORQ$="c"THEN570 740 '----- WRITING OUTPUT ----- 750 PRINT@120,EP$ 760 CO=C/NC:IFCO=INT(C/NC)THEN780 770 C=C+1:J$(C)=" ":LJ(C)=1:GOTO760 780 IFFO$="LPT:"THENGOSUB1010 790 S$="Writing "+FO$:GOSUB970 800 OPENFO$FOROUTPUTAS1:CC=0 810 IFHL>0THEN GOSUB1110 820 FORX=1TOCO:FORY=1TONC 830 GOSUB980:C1=X+((Y-1)*CO) 840 IFY=1THENPRINT#1,SPACE$(LM); 850 IFY=NCTHENPRINT#1,J$(C1):GOTO870 860 PRINT#1,J$(C1);SPACE$(CW-LJ(C1)); 870 NEXTY 890 NEXTX:CLOSE 900 IFFO$="LPT:"THENGOSUB1090 910 BEEP:PRINT@240,EP$:PRINT@250,RS$;" Conversion Complete ";NS$ 920 IFFO$=FI$THEN950 930 A$="Press [K] to Kill "+FI$:GOSUB1330:PRINT@400,SPACE$(20-(LEN(A$)/2));A$ 940 Q$=INKEY$:IFQ$=""THEN940ELSEIFQ$="K"ORQ$="k"THENKILLFI$ 950 GOTO1320 960 '----- SUBROUTINES ----- 970 PRINT@240,EP$:PRINT@260-(LEN(S$)/2),S$:RETURN 980 CC=CC+1:PRINT@337,RS$;" ";CC;" ";NS$:RETURN 990 PRINT:PRINTTAB(9)RS$;" Incorrect Input File ";NS$:RESUME210 1000 '----- PRINTER SET-UP ----- 1010 BEEP:PRINT@120,EP$:PRINT@404,RS$;" Ready PRINTER and Press [ENTER] ";NS$ 1020 Q$=INKEY$:IFQ$=""THEN1020 1030 BEEP:PRINT@400,EL$:PRINT@407,"Press [T] to COMPRESS TEXT" 1040 Q$=INKEY$:IFQ$=""THEN1040ELSEIFQ$="T"THEN1070 1050 IFPC>80THENLPRINTPT$;ES$;"G";PT$;CHR$(15)ELSELPRINTPT$;ES$;"E" 1060 RETURN 1070 LPRINTPT$;ES$;"G";PT$;CHR$(15);PT$;ES$;"S1";PT$;ES$;"1" 1080 PRINT@400,EL$:RETURN 1090 LPRINTPT$;CHR$(12);PT$;ES$;"@":RETURN 1100 '----- PRINT HEADER ----- 1110 IFNC/2=INT(NC/2)THENG=INT(CW*NC/2)ELSEG=INT(((CW*(NC-1))+(.5*CW))/2) 1120 FORX=1TOHL:GOSUB980 1130 PRINT#1,SPACE$(LM+(G-(LEN(H$(X))/2)));H$(X):NEXTX:RETURN 1140 '----- READ FILES ----- 1150 Z=0:OPEN"CRT:"FOROUTPUTAS1 1160 FORS=1TO15:FORH=0TO1 1170 A$=DSKI$(D,20,S,H) 1180 FORX=0TO7:P=16*X+1 1190 F$=MID$(A$,P,10) 1200 IFLEFT$(F$,1)=CHR$(0)THEN1230 1210 IFLEFT$(F$,1)=CHR$(255)THENCLOSE:RETURN 1220 IFRIGHT$(F$,1)=CHR$(0)THENZ=Z+1:IFZ<>3THENPRINT#1,LEFT$(F$,6);".";MID$(F$,7,3);" ";ELSEZ=0:PRINT#1,LEFT$(F$,6);".";MID$(F$,7,3) 1230 NEXTX,H,S 1240 '----- FUNCTION KEYS ----- 1250 'F1 1260 'F2 1270 'F3 1280 CLOSE:CLEAR:RUN 'F4 1290 'F5 1300 CLS:WIDTH80:CLOSE:CLEAR:EDIT 'F6 1310 'F7 1320 BEEP:CLOSE:CLEAR:WIDTH80:PRINT@996,"M E N U":MENU 'F8 1330 PRINT@920," F1 F2 F3 F4 o F5 F6 F7 F8 1340 PRINTRS$; "oooRUN ooEDITooMENU";NS$;:RETURN 1350 '----- ERROR TRAP ----- 1360 IFERL=280THEN990 1370 PRINT:PRINT"Error ";ERR;"in Line ";ERL:STOP 1380 END