1  COM A[25],V[2,10]
2  COM A$[255],A1$[255],B0$[5],D0$[255],F0$[1],F1$[11],S0$[6]
3  COM H0$[94],H1$[94],J0$[3],J1$[3],K1$[15],P0$[184],P1$[4]
4  COM N0$[1],U0$[11],U1$[11],V0$[10],V1$[10],W$[102],W0$[8],W1$[255],Z$[255]
5  COM C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,D0
6  COM D,D1,D2,F9,G,G0,G8,L,S0,V0,V1,V2,V3,V5,V7
7  COM W0,W1,W3,W5,W8,W9
10  COM L[5],M[64,2],N[64,2],P[2]
11  COM B$[94],L$[94],M$[94],N$[94],O$[94],P$[94]
12  COM L1,L2,L3,L4,L7,M1,M2,M3,M4,M5,M7,M8,M9,N1,N2,N3,N4
15  REM (C) COPYRIGHT  HEWLETT-PACKARD CO. 1976
16  REM ALL RIGHTS RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,
17  REM REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT THE
18  REM PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD CO.
50  FILES *,*
99  CHAIN "$EDITOR"
100  REM *ENTRY*
110  IF  ERROR  THEN 9998
120  ASSIGN U0$,C1,J, PR 
130  IF J THEN 9998
140  U0=V6=C0
145  D1=D
150  U1=C2
160  GOSUB 1000
165  W1=C0
170  A1$="EDIT00"
175  A1$[C7]=B0$
180  CHAIN J,A1$,100
190  GOTO 9998
1000  REMP >>SHOW<<
1005  GOTO 1300
1035  DATA 22,1,"RBOUND",1,"LBOUND",1,"DISPLAY",1,"AUTOMARGIN"
1040  DATA 2,"ECHO",1,"//COMMANDS",2,"FROM",1,"INCREMENT",1,"WIDTH"
1045  DATA 4,"PAGE",3,"PAUSE",2,"FACING",2,"TABS",2,"HEADING"
1050  DATA 4,"PAGING",2,"TOPSPACE",1,"BOTTOMSPACE",2,"FILLER"
1055  DATA 2,"ENVIRONMENT",1,"NONPRINT",1,"CONTROL",2,"HYPHENATION"
1100  PRINT "Missing parameter"
1105  GOTO 1155
1110  PRINT "'"A1$;"' is an illegal specification."
1115  GOTO 1155
1120  PRINT "'"A1$;"' is an illegal keyword."
1125  GOTO 1155
1130  PRINT "Lines in WORK file; ENVIRONMENT cannot be changed"
1135  GOTO 1155
1140  PRINT "Heading string too long."
1145  GOTO 1155
1150  PRINT "Paging string too long."
1155  GOSUB 9700
1160  RETURN 
1200  REM2 <UN LINE #>
1205  GOTO A[C1] OF 1210,1210,1220
1210  I=I/100
1215  RETURN 
1220  I=I/1000
1225  RETURN 
1300  REM2 >>SHOW<<
1305  IF  NOT LEN(A$) THEN 1100
1310  GOSUB 6900
1315  RESTORE 1035
1320  GOSUB 9300
1325  IF  NOT K2 OR K2=C2 OR K2=C3 OR K2=C4 THEN 1345
1330  GOSUB K2 OF 1705,1715,1725,1755,2395,1925,1935,1955,1975,1985,1995,2015
1335  GOSUB K2-12 OF 2305,2035,2115,2220,2240,2255,2355,2280,1905,1915
1340  GOTO 1375
1345  RESTORE 1350
1350  DATA 7,2,"ALL",2,"AUTOMARGIN",2,"DISPLAY",2,"DEFINITIONS",1,"GUIDE"
1355  DATA 2,"LINES",2,"LBOUND"
1360  GOSUB 9300
1365  IF  NOT K2 THEN 1120
1370  GOSUB K2 OF 1385,1755,1725,2405,1770,2465,1715
1375  IF LEN(A$) THEN 1310
1380  RETURN 
1385  REM2 *ALL*
1390  IF SYS(C3) THEN 1665
1395  PRINT 
1400  GOSUB 2355
1405  PRINT "AUTOMARGIN="TAB(12);
1410  GOSUB A[C7]+C1 OF 1675,1685
1415  PRINT TAB(20);"CONTROL=";TAB(32);
1420  GOSUB A[24]+C1 OF 1675,1685
1425  PRINT TAB(40);"DISPLAY="TAB(52);
1430  GOSUB A[C4]+C1 OF 1735,1745
1435  PRINT "ECHO=";TAB(12);
1440  GOSUB A[C8]+C1 OF 1675,1685
1445  PRINT TAB(20);"//COMMANDS="TAB(32);
1450  GOSUB A[D0]+C1 OF 1675,1685
1455  PRINT TAB(40)"LINES="TAB(51);M5
1460  PRINT "LBOUND="TAB(11);A[C2];TAB(20);"RBOUND="TAB(31);A[C3];TAB(40);
1465  PRINT "WIDTH="TAB(51);A[C9]
1470  I=A[C5]
1475  GOSUB 1200
1480  PRINT "FROM="TAB(11);I;
1485  I=A[C6]
1490  GOSUB 1200
1495  PRINT TAB(20)"INCREMENT="TAB(31);I;TAB(40)"PAUSE="TAB(51);
1500  IF  NOT A[12] THEN 1515
1505  PRINT A[12]
1510  GOTO 1525
1515  PRINT TAB(52);
1520  GOSUB 1735
1525  PRINT "HYPHENATION="TAB(12);
1530  GOSUB A[25]+C1 OF 1675,1685
1535  PRINT TAB(20)"FILLER="TAB(32);
1540  IF A[22] THEN 1555
1545  GOSUB 1675
1550  GOTO 1560
1555  PRINT "'"F0$"'";
1560  PRINT TAB(40)"NONPRINT="TAB(52);
1565  IF A[23] THEN 1580
1570  GOSUB 1735
1575  GOTO 1585
1580  PRINT "'"N0$"'"
1585  GOSUB 2305
1590  PRINT 
1595  IF SYS(C3) THEN 1665
1600  PRINT "PAGE="TAB(11);A[11];TAB(20);"TOPSPACE="TAB(32);
1605  PRINT  USING 1610;A[18],A[19]
1610  IMAGE #,D,",",D
1615  PRINT TAB(40)"BOTTOMSPACE="TAB(52);
1620  PRINT  USING 2230;A[20],A[21]
1625  GOSUB 2015
1630  GOSUB 2035
1635  GOSUB 2115
1640  PRINT 
1645  GOSUB 2405
1650  PRINT 
1655  GOSUB 1770
1660  RETURN 
1665  PRINT 
1670  RETURN 
1675  PRINT "OFF";
1680  RETURN 
1685  PRINT "ON";
1690  RETURN 
1700  REM2 *SHOW SETTINGS*
1705  PRINT "RBOUND=";TAB(11);A[3]
1710  RETURN 
1715  PRINT "LBOUND=";TAB(11);A[2]
1720  RETURN 
1725  PRINT "DISPLAY=";TAB(12);
1730  IF A[C4] THEN 1745
1735  PRINT "OFF"
1740  RETURN 
1745  PRINT "ON"
1750  RETURN 
1755  PRINT "AUTOMARGIN="TAB(12);
1760  GOTO A[C7]+C1 OF 1735,1745
1765  REM2 *GUIDE*
1770  J1=(C1+V7*(C7-(A[C1]=C2)*C3))
1775  PRINT TAB(J1);
1780  J=C0
1785  FOR I=A[C2] TO A[C3] MIN (A[C9]-J1+A[C2]-C1) MIN 90
1790  IF INT(I/D0)=J THEN 1810
1795  PRINT  USING "#,D";INT(I/D0)
1800  J=INT(I/D0)
1805  GOTO 1815
1810  PRINT  USING "#,X";I
1815  NEXT I
1820  PRINT LIN(C1),TAB(J1);
1825  FOR I=A[C2] TO A[C3] MIN (A[C9]-J1+A[C2]-C1) MIN 94
1830  PRINT  USING "#,D";I-D0*INT(I/D0)
1835  NEXT I
1840  PRINT 
1845  IF  NOT A[13] THEN 1890
1850  PRINT TAB(J1);
1855  FOR I=C1 TO A[13]
1860  IF V[C1,I]<A[C2] THEN 1880
1865  IF V[C1,I]>A[C3] OR V[C1,I]>A[C9]-J1+A[C2]-C1 THEN 1885
1870  W$="T"
1875  PRINT  USING "#,A";TAB(J1+V[C1,I]-A[C2]),W$
1880  NEXT I
1885  PRINT 
1890  RETURN 
1900  REM2 *SHOW SETTINGS*
1905  PRINT "CONTROL="TAB(12);
1910  GOTO A[24]+C1 OF 1735,1745
1915  PRINT "HYPHENATION=";
1920  GOTO A[25]+C1 OF 1735,1745
1925  PRINT "//-COMMANDS="TAB(12);
1930  GOTO A[D0]+C1 OF 1735,1745
1935  I=A[C5]
1940  GOSUB 1200
1945  PRINT "FROM="TAB(11);I
1950  RETURN 
1955  I=A[C6]
1960  GOSUB 1200
1965  PRINT "INCREMENT="TAB(11);I
1970  RETURN 
1975  PRINT "WIDTH="TAB(11);A[C9]
1980  RETURN 
1985  PRINT "PAGE="TAB(11);A[11]
1990  RETURN 
1995  PRINT "PAUSE="TAB(11);
2000  IF  NOT A[12] THEN 1735
2005  PRINT A[12]
2010  RETURN 
2015  PRINT "FACING="TAB(12);
2020  IF  NOT A[17] THEN 1735
2025  PRINT A[17]
2030  RETURN 
2035  PRINT "HEADING="TAB(12);
2040  GOTO A[14] OF 2050,2060,2070,2080
2045  GOTO 1735
2050  PRINT "LEFT,";
2055  GOTO 2085
2060  PRINT "CENTER,";
2065  GOTO 2085
2070  PRINT "RIGHT,";
2075  GOTO 2085
2080  PRINT "FACING,";
2085  IF LEN(H0$)<49 THEN 2105
2090  PRINT TAB(20);"'"H0$[C1,49]
2095  PRINT TAB(21);H0$[50]"'"
2100  RETURN 
2105  PRINT TAB(20);"'"H0$"'"
2110  RETURN 
2115  PRINT "PAGING="TAB(12);
2120  IF A[15] THEN 2140
2125  GOTO 2130
2130  PRINT "TOP, ";
2135  GOTO 2145
2140  PRINT "BOTTOM, ";
2145  GOTO A[16] OF 2155,2165,2175,2185
2150  GOTO 9998
2155  PRINT "LEFT,";
2160  GOTO 2190
2165  PRINT "CENTER,";
2170  GOTO 2190
2175  PRINT "RIGHT,";
2180  GOTO 2190
2185  PRINT "FACING,";
2190  IF LEN(H1$)<40 THEN 2210
2195  PRINT TAB(28);"'"H1$[C1,40]
2200  PRINT TAB(29);H1$[41]"'"
2205  RETURN 
2210  PRINT TAB(28);"'"H1$"'"
2215  RETURN 
2220  PRINT "TOPSPACE="TAB(12);
2225  PRINT  USING 2230;A[18],A[19]
2230  IMAGE D,",",D
2235  RETURN 
2240  PRINT "BOTTOMSPACE="TAB(12);
2245  PRINT  USING 2230;A[20],A[21]
2250  RETURN 
2255  PRINT "FILLER="TAB(12);
2260  IF A[22] THEN 2270
2265  GOTO 1735
2270  PRINT "'"F0$"'"
2275  RETURN 
2280  PRINT "NONPRINT="TAB(12);
2285  IF A[23] THEN 2295
2290  GOTO 1735
2295  PRINT "'"N0$"'"
2300  RETURN 
2305  PRINT "TABS="TAB(12);
2310  IF  NOT A[13] THEN 1735
2315  FOR I=C1 TO A[13]-C1
2320  PRINT  USING 2335;V[C1,I]
2325  NEXT I
2330  PRINT  USING "DD";V[C1,I]
2335  IMAGE #,DD,","
2340  IF V3 THEN 2350
2345  PRINT "Manual tabulation required; use CTRL I for tab."
2350  RETURN 
2355  PRINT "ENVIRONMENT="TAB(12);
2360  GOTO A[C1] OF 2365,2375,2385
2365  PRINT "TEXT"
2370  RETURN 
2375  PRINT "BASIC"
2380  RETURN 
2385  PRINT "COBOL"
2390  RETURN 
2395  PRINT "ECHO="TAB(12);
2400  GOTO A[C8]+C1 OF 1735,1745
2405  PRINT "DEFINITIONS:"TAB(12);
2410  IF LEN(D0$) THEN 2425
2415  PRINT "NONE"
2420  RETURN 
2425  PRINT 
2430  J=C0
2435  I=POS(D0$[J+C1],'254)+J
2440  IF I=J THEN 2420
2445  PRINT TAB(C5);D0$[J+C1,I-C1];" <= ";
2450  J=POS(D0$[I+C1],'255)+I
2455  PRINT D0$[I+C1,J-C1]
2460  GOTO 2435
2465  PRINT "LINES="TAB(11);M5
2470  RETURN 
6900  REM <SUBP>
6910  J4=POS(A$,",")
6920  IF J4<C2 OR J4=LEN(A$) THEN 6960
6930  A1$=A$[C1,J4-C1]
6940  A$=A$[J4+C1]
6950  RETURN 
6960  A1$=A$
6970  A$=""
6980  RETURN 
9300  REM <KEY>
9310  READ J
9320  FOR K2=C1 TO J
9330  READ J1,K1$
9340  IF LEN(A1$)<J1 THEN 9360
9350  IF A1$=K1$[C1,LEN(A1$)] THEN 9380
9360  NEXT K2
9370  K2=C0
9380  RETURN 
9700  REM <ERROR>
9710  E=C1
9720  Z$=""
9730  IF V2#C2 OR W1 THEN 9760
9740  PRINT "USE file abandoned."
9750  V0=V2=W3=C1
9760  RETURN 
9990  REM <ERR>
9991  M4=SYS(C0)
9992  N4=SYS(C1)
9993  A1$="EDIT31"
9994  A1$[C7]=B0$
9995  CHAIN J,A1$,100
9996  PRINT A1$" is missing.  ERROR"
9997  STOP 
9998  GOTO 9991
9999  END 
