C COPYRIGHT (C) 1983 GLENN EVERHART
C PERMISSION IS GIVEN TO ANYONE TO USE, DISTRIBUTE, OR COPY THIS
C PROGRAM FREELY BUT NOT TO SELL IT COMMERICALLY.
C PCHELP.FTN INCLUDE FILE (INCLUDED IN ROUTINE HELP)
C FOR LEVEL 1, RETURN AND DISPLAY OLD HELP SCREEN.
C FOR OTHER LEVELS (IN LVL VARIABLE) DO HELP DISPLAY. AT ENTRY
C CURSOR IS POSITIONED AT 1,1. ON PASSING TO 9000, CURSOR IS
C POSITIONED AT 24,1
C	CALL UVT100(CUP,7,1)
	IF(LVL.LT.0.OR.LVL.GT.9)GOTO 1100
	LVLL=LVL+1
	GOTO (1000,1100,1200,1300,1400,1500,1600,1700,1800,
     1  1900)LVLL
1000	CONTINUE
C HELP 0
	CALL UVT100(CUP,1,1)
	WRITE(6,201)
	CALL UVT100(CUP,2,1)
	WRITE(6,202)
	CALL UVT100(CUP,3,1)
	WRITE(6,203)
	CALL UVT100(CUP,4,1)
	WRITE(6,204)
	CALL UVT100(CUP,5,1)
	WRITE(6,205)
	CALL UVT100(CUP,6,1)
	WRITE(6,206)
	CALL UVT100(CUP,7,1)
	WRITE(6,207)
	CALL UVT100(CUP,8,1)
	WRITE(6,208)
	CALL UVT100(CUP,9,1)
	WRITE(6,209)
	CALL UVT100(CUP,10,1)
	WRITE(6,210)
	CALL UVT100(CUP,11,1)
	WRITE(6,211)
D	CALL UVT100(CUP,12,1)
D	WRITE(6,212)
	GOTO 9500
1200	CONTINUE
C HELP 2
	CALL UVT100(CUP,1,1)
	WRITE(6,213)
	CALL UVT100(CUP,2,1)
	WRITE(6,214)
	CALL UVT100(CUP,3,1)
	WRITE(6,215)
	CALL UVT100(CUP,4,1)
	WRITE(6,216)
	CALL UVT100(CUP,5,1)
	WRITE(6,217)
	CALL UVT100(CUP,6,1)
	WRITE(6,218)
	CALL UVT100(CUP,7,1)
	WRITE(6,219)
	CALL UVT100(CUP,8,1)
	WRITE(6,220)
	CALL UVT100(CUP,9,1)
	WRITE(6,221)
	CALL UVT100(CUP,10,1)
	WRITE(6,222)
	CALL UVT100(CUP,11,1)
	WRITE(6,223)
	CALL UVT100(CUP,12,1)
	WRITE(6,224)
	CALL UVT100(CUP,13,1)
	WRITE(6,225)
	CALL UVT100(CUP,14,1)
	WRITE(6,226)
	CALL UVT100(CUP,15,1)
	WRITE(6,227)
	CALL UVT100(CUP,16,1)
	WRITE(6,228)
	CALL UVT100(CUP,17,1)
	WRITE(6,229)
	CALL UVT100(CUP,18,1)
	WRITE(6,230)
	CALL UVT100(CUP,19,1)
	WRITE(6,231)
	CALL UVT100(CUP,20,1)
	WRITE(6,232)
	CALL UVT100(CUP,21,1)
	WRITE(6,233)
	CALL UVT100(CUP,22,1)
	WRITE(6,234)
	CALL UVT100(CUP,23,1)
	WRITE(6,235)
	GOTO 9500
1300	CONTINUE
C HELP 3
	CALL UVT100(CUP,1,1)
	WRITE(6,236)
	CALL UVT100(CUP,2,1)
	WRITE(6,237)
	CALL UVT100(CUP,3,1)
	WRITE(6,238)
	CALL UVT100(CUP,4,1)
	WRITE(6,239)
	CALL UVT100(CUP,5,1)
	WRITE(6,240)
	CALL UVT100(CUP,6,1)
	WRITE(6,241)
	CALL UVT100(CUP,7,1)
	WRITE(6,242)
	CALL UVT100(CUP,8,1)
	WRITE(6,243)
	CALL UVT100(CUP,9,1)
	WRITE(6,244)
	CALL UVT100(CUP,10,1)
	WRITE(6,245)
	CALL UVT100(CUP,11,1)
	WRITE(6,246)
	CALL UVT100(CUP,12,1)
	WRITE(6,247)
	CALL UVT100(CUP,13,1)
	WRITE(6,248)
	CALL UVT100(CUP,14,1)
	WRITE(6,249)
	CALL UVT100(CUP,15,1)
	WRITE(6,250)
	CALL UVT100(CUP,16,1)
	WRITE(6,251)
	CALL UVT100(CUP,17,1)
	WRITE(6,252)
	CALL UVT100(CUP,18,1)
	WRITE(6,253)
	CALL UVT100(CUP,19,1)
	WRITE(6,254)
	GOTO 9500
1400	CONTINUE
C HELP 4
	CALL UVT100(CUP,1,1)
	WRITE(6,255)
	CALL UVT100(CUP,2,1)
	WRITE(6,256)
	CALL UVT100(CUP,3,1)
	WRITE(6,257)
	CALL UVT100(CUP,4,1)
	WRITE(6,258)
	CALL UVT100(CUP,5,1)
	WRITE(6,259)
	CALL UVT100(CUP,6,1)
	WRITE(6,260)
	CALL UVT100(CUP,7,1)
	WRITE(6,261)
	CALL UVT100(CUP,8,1)
	WRITE(6,262)
	CALL UVT100(CUP,9,1)
	WRITE(6,263)
	CALL UVT100(CUP,10,1)
	WRITE(6,264)
	CALL UVT100(CUP,11,1)
	WRITE(6,265)
	CALL UVT100(CUP,12,1)
	WRITE(6,266)
	CALL UVT100(CUP,13,1)
	WRITE(6,267)
	CALL UVT100(CUP,14,1)
	WRITE(6,268)
	CALL UVT100(CUP,15,1)
	WRITE(6,269)
	CALL UVT100(CUP,16,1)
	WRITE(6,270)
	CALL UVT100(CUP,17,1)
	WRITE(6,271)
	CALL UVT100(CUP,18,1)
	WRITE(6,272)
	CALL UVT100(CUP,19,1)
	WRITE(6,273)
	CALL UVT100(CUP,20,1)
	WRITE(6,274)
	CALL UVT100(CUP,21,1)
	WRITE(6,275)
	CALL UVT100(CUP,22,1)
	WRITE(6,276)
	CALL UVT100(CUP,23,1)
	WRITE(6,277)
	GOTO 9500
1500	CONTINUE
C HELP 5
	CALL UVT100(CUP,1,1)
	WRITE(6,278)
	CALL UVT100(CUP,2,1)
	WRITE(6,279)
	CALL UVT100(CUP,3,1)
	WRITE(6,280)
	CALL UVT100(CUP,4,1)
	WRITE(6,281)
	CALL UVT100(CUP,5,1)
	WRITE(6,282)
	CALL UVT100(CUP,6,1)
	WRITE(6,283)
	CALL UVT100(CUP,7,1)
	WRITE(6,284)
	CALL UVT100(CUP,8,1)
	WRITE(6,285)
	CALL UVT100(CUP,9,1)
	WRITE(6,286)
	CALL UVT100(CUP,10,1)
	WRITE(6,287)
	CALL UVT100(CUP,11,1)
	WRITE(6,288)
	CALL UVT100(CUP,12,1)
	WRITE(6,289)
	CALL UVT100(CUP,13,1)
	WRITE(6,290)
	GOTO 9500
1600	CONTINUE
C HELP 6
	CALL UVT100(CUP,1,1)
	WRITE(6,291)
	CALL UVT100(CUP,2,1)
	WRITE(6,292)
	CALL UVT100(CUP,3,1)
	WRITE(6,293)
	CALL UVT100(CUP,4,1)
	WRITE(6,294)
	CALL UVT100(CUP,5,1)
	WRITE(6,295)
	CALL UVT100(CUP,6,1)
	WRITE(6,296)
	CALL UVT100(CUP,7,1)
	WRITE(6,297)
	CALL UVT100(CUP,8,1)
	WRITE(6,298)
	CALL UVT100(CUP,9,1)
	WRITE(6,299)
	CALL UVT100(CUP,10,1)
	WRITE(6,300)
	CALL UVT100(CUP,11,1)
	WRITE(6,301)
	CALL UVT100(CUP,12,1)
	WRITE(6,302)
	CALL UVT100(CUP,13,1)
	WRITE(6,303)
	CALL UVT100(CUP,14,1)
	WRITE(6,304)
	CALL UVT100(CUP,15,1)
	WRITE(6,305)
	CALL UVT100(CUP,16,1)
	WRITE(6,306)
	CALL UVT100(CUP,17,1)
	WRITE(6,307)
	GOTO 9500
1700	CONTINUE
C HELP 7
	CALL UVT100(CUP,1,1)
	WRITE(6,308)
	CALL UVT100(CUP,2,1)
	WRITE(6,309)
	CALL UVT100(CUP,3,1)
	WRITE(6,310)
	CALL UVT100(CUP,4,1)
	WRITE(6,311)
	CALL UVT100(CUP,5,1)
	WRITE(6,312)
	CALL UVT100(CUP,6,1)
	WRITE(6,313)
	CALL UVT100(CUP,7,1)
	WRITE(6,314)
	CALL UVT100(CUP,8,1)
	WRITE(6,315)
	CALL UVT100(CUP,9,1)
	WRITE(6,316)
	CALL UVT100(CUP,10,1)
	WRITE(6,317)
	CALL UVT100(CUP,11,1)
	WRITE(6,318)
	CALL UVT100(CUP,12,1)
	WRITE(6,319)
	CALL UVT100(CUP,13,1)
	WRITE(6,320)
	CALL UVT100(CUP,14,1)
	WRITE(6,321)
	CALL UVT100(CUP,15,1)
	WRITE(6,322)
	CALL UVT100(CUP,16,1)
	WRITE(6,323)
	CALL UVT100(CUP,17,1)
	WRITE(6,324)
	GOTO 9500
1800	CONTINUE
C HELP 8
	CALL UVT100(CUP,1,1)
	WRITE(6,325)
	CALL UVT100(CUP,2,1)
	WRITE(6,326)
	CALL UVT100(CUP,3,1)
	WRITE(6,327)
	CALL UVT100(CUP,4,1)
	WRITE(6,328)
	CALL UVT100(CUP,5,1)
	WRITE(6,329)
	CALL UVT100(CUP,6,1)
	WRITE(6,330)
	CALL UVT100(CUP,7,1)
	WRITE(6,331)
	CALL UVT100(CUP,8,1)
	WRITE(6,332)
	CALL UVT100(CUP,9,1)
	WRITE(6,333)
	CALL UVT100(CUP,10,1)
	WRITE(6,334)
	CALL UVT100(CUP,11,1)
	WRITE(6,335)
	CALL UVT100(CUP,12,1)
	WRITE(6,336)
	CALL UVT100(CUP,13,1)
	WRITE(6,337)
	CALL UVT100(CUP,14,1)
	WRITE(6,338)
	GOTO 9500
1900	CONTINUE
C HELP 9
C USE UNIT 9 FOR KEYPAD PICTURE ON VAX TO AVOID
C CONFLICT WITH W COMMAND.
D	CLOSE(UNIT=9)
C COMMENT OUT THE FDBSET CALL IF IT DOESN'T DO ANY GOOD OR IS ILLEGAL
CD	CALL FDBSET(9,'READONLY','SHARE')
D	CALL ASSIGN(9,'DK:KEYPAD.PIC')
D	DO 1903 JJ=1,23
D	READ(9,1901,END=1902,ERR=1902)FORM
D1901	FORMAT(80A1)
D	CALL UVT100(CUP,JJ,1)
D	WRITE(6,1901)FORM
D1903	CONTINUE
D1902	CONTINUE
D	CLOSE(UNIT=9)
C (NO HELP 9 YET... JUST RETURN
C SKIP OUT PAST DISPLAY OF SCREEN 1
9500	GOTO 9000
1100	GOTO 9100
201   FORMAT('To get HELP use the command Hn where n is 0 thru 8 for H',
     1 'ELP 0')
202   FORMAT('  through HELP 8.')
203   FORMAT('HELP 0 - This screen')
204   FORMAT('HELP 1 - Summary of many PortaCalc commands (terse)')
205   FORMAT('HELP 2 - Data Entry / Editing')
206   FORMAT('HELP 3 - Calculation Control')
207   FORMAT('HELP 4 - Cursor Motion and Positioning')
208   FORMAT('HELP 5 - Cell Copy')
209   FORMAT('HELP 6 - Add/Subtract Absolute Rows/Cols')
210   FORMAT('HELP 7 - Add/Subtract Relocting, Rows or Cols.')
211   FORMAT('HELP 8 - Change Display Size, Col Size, Load Data')
D212   FORMAT('HELP 9 - Keypad Diagram for VT100')
C
213   FORMAT('HELP 2 - Data Entry / Editing')
214   FORMAT('E expression    Enter expression into cell.')
215   FORMAT('Formulas available (+ SQRT,SIN,COS,LOG,EXP,ATAN)')
216   FORMAT('SUM[variables]          Sum of all arguments')
217   FORMAT('MAX[variables]          Max of arguments')
218   FORMAT('MIN[variables]          Min of arguments')
219   FORMAT('AVG[variables]          Average of arguments')
220   FORMAT('STD[variables]          Standard deviation squared')
221   FORMAT('IF [V1.rel.V2] statement | else-statement')
222   FORMAT('In the first 5 cases, arguments are variable names separ',
     1 'ated by')
223   FORMAT('commas, or variable ranges, or mixtures separaged by col',
     1 'umns.')
224   FORMAT('".REL." is any of the 6 forms:')
225   FORMAT('.EQ.    Equal')
226   FORMAT('.NE.    Not Equal')
227   FORMAT('.GT.    Greater than (V1 greater than V2)')
228   FORMAT('.LT.    Less than (V1 less than V2)')
229   FORMAT('.GE.    Greater than or Equal to (V1 >= V2)')
230   FORMAT('.LE.    Less than or Equal to (V1 =< V2)')
231   FORMAT('*XV filename V1         Extract value at cell V1 in save',
     1 'd')
232   FORMAT('                        sheet stored in filename.')
233   FORMAT('ED `string1`string2`    Replace string1 with string2')
234   FORMAT('                        in current cell formula. Either'
     1 )
235   FORMAT('                        string may be null if desired.')
C
236   FORMAT('HELP 3 - Calculation Control')
237   FORMAT('R       Recalculate all of the sheet.')
238   FORMAT('RM      Recalculate manually only until R command given'
     1 )
239   FORMAT('RAF     Recalculate sheet, without constant recalculatio',
     1 'n')
240   FORMAT('K               Drop into Calc program straight. *E retu',
     1 'rns to sheet')
241   FORMAT('X               Exit to operating system.')
242   FORMAT('V               Redraw screen with normal formats')
243   FORMAT('VF              Redraw screen showing all formulas')
244   FORMAT('VM              Dont redraw screen until a V or VF is gi',
     1 'ven')
245   FORMAT('ZA              Zero whole sheet')
246   FORMAT('ZE V1:V2        Zero variables in a row or column in ran',
     1 'ge from')
247   FORMAT('                        cell V1 to cell V2 (V1,V2 = name',
     1 's of cells)')
248   FORMAT('@filespec       Read filespec and execute commands as th',
     1 'ough')
249   FORMAT('                typed in.')
250   FORMAT('PD              Put out current Display sheet (Formulas)'
     1 )
251   FORMAT('PP              Put out current Physical sheet (Formulas',
     1 ')')
252   FORMAT('PDN             Put out current Display sheet (Numbers)'
     1 )
253   FORMAT('PPN             Put out current Physical sheet (Numbers)'
     1 )
254   FORMAT('W               Write screen to hardcopy file.')
C
255   FORMAT('HELP 4 - Cursor Motion and Positioning')
256   FORMAT('L variable-name         Position cursor at variable-name'
     1 )
257   FORMAT('M1              (Move up after Enter)')
258   FORMAT('M2              (Move down after Enter)')
259   FORMAT('M3              (Move left after Enter)')
260   FORMAT('M4              (Move right after Enter)')
261   FORMAT('1               (Move up)')
262   FORMAT('2               (Move down)')
263   FORMAT('3               (Move left)')
264   FORMAT('4               (Move right)')
265   FORMAT('OA variable     Reset origin of display to variable')
266   FORMAT('OR variable     Reset display down and right to start wi',
     1 'th variable,')
267   FORMAT('                changing only region down and right of c',
     1 'ursor')
268   FORMAT('DL V1:V2 Rn:m   point at display coordinates (n,m) (col,',
     1 'row)')
269   FORMAT('                and, going left to right along a Row, co',
     1 'py in')
270   FORMAT('                variables V1 through V2 (actually, point',
     1 ' those')
271   FORMAT('                display sheet cells at variables V1 thru',
     1 ' V2).')
272   FORMAT('DL V1:V2 Cn:m   point at display coordinates (n,m) (col,',
     1 'row)')
273   FORMAT('                and, going top to bottom along a Column,',
     1 ' copy in')
274   FORMAT('                variables V1 through V2 (actually, point',
     1 ' those')
275   FORMAT('                display sheet cells at variables V1 thru',
     1 ' V2).')
276   FORMAT('DF V1:V2 [format]       Set display format of range V1:V',
     1 '2 to format')
277   FORMAT('                        (format A means display formula.',
     1 ')')
C
278   FORMAT('HELP 5 - Cell Copy')
279   FORMAT('CA V1:V2 V3:V4          Copy all cell attributes from V1',
     1 ':V2')
280   FORMAT('                        to V3:V4.')
281   FORMAT('CV V1:V2 V3:V4          Copy numeric values only')
282   FORMAT('CD V1:V2 V3:V4          Copy Display Formats only')
283   FORMAT('CF V1:V2 V3:V4          Copy Formulas only (no relocatio',
     1 'n)')
284   FORMAT('CR V1:V2 V3:V4          Copy all cell attributes as in C',
     1 'A but')
285   FORMAT('                        relocate cell names to new locat',
     1 'ion')
286   FORMAT('                        from old one. Only relocate name',
     1 's right')
287   FORMAT('                        of or below the cursor or on sam',
     1 'e row/col')
288   FORMAT('                        with cursor (cells above or left',
     1 ' of cursor')
289   FORMAT('                        are NOT relocated).')
290   FORMAT('   If V2 is missing, V1 is replicated to V3:V4 range.')
C
291   FORMAT('HELP 6 - Add/Subtract Absolute Rows/Cols')
292   FORMAT('AA number R     Add "number" rows ahead of the current')
293   FORMAT('                physical position, moving all cells belo',
     1 'w')
294   FORMAT('                the current cell down by "number" rows a',
     1 'nd')
295   FORMAT('                losing the physical sheet`s bottom "numb',
     1 'er"')
296   FORMAT('                rows` contents, NOT adjusting variable r',
     1 'eferences')
297   FORMAT('                where the variables are in the moved ran',
     1 'ge')
298   FORMAT('                and are not the position independent (P#',
     1 '# or D##')
299   FORMAT('                forms) type.')
300   FORMAT('AA number C     Add "number" columns ahead of the curren',
     1 't')
301   FORMAT('                physical position, moving all cells righ',
     1 't of')
302   FORMAT('                the current cell right by "number" colum',
     1 'ns and')
303   FORMAT('                losing the physical sheet`s bottom "numb',
     1 'er"')
304   FORMAT('                columns` contents, NOT adjusting variabl',
     1 'e references')
305   FORMAT('                where the variables are in the moved ran',
     1 'ge')
306   FORMAT('                and are not the position independent (P#',
     1 '# or D##')
307   FORMAT('                forms) type.')
C
308   FORMAT('HELP 7 - Add/Subtract Relocting, Rows or Cols.')
309   FORMAT('AR number R     Add "number" rows ahead of the current')
310   FORMAT('                physical position, moving all cells belo',
     1 'w')
311   FORMAT('                the current cell down by "number" rows a',
     1 'nd')
312   FORMAT('                losing the physical sheet`s bottom "numb',
     1 'er"')
313   FORMAT('                rows` contents, adjusting variable refer',
     1 'ences')
314   FORMAT('                where the variables are in the moved ran',
     1 'ge')
315   FORMAT('                and are not the position independent (P#',
     1 '# or D##')
316   FORMAT('                forms) type.')
317   FORMAT('AR number C     Add "number" columns ahead of the curren',
     1 't')
318   FORMAT('                physical position, moving all cells righ',
     1 't of')
319   FORMAT('                the current cell right by "number" colum',
     1 'ns and')
320   FORMAT('                losing the physical sheet`s bottom "numb',
     1 'er"')
321   FORMAT('                columns` contents, adjusting variable re',
     1 'ferences')
322   FORMAT('                where the variables are in the moved ran',
     1 'ge')
323   FORMAT('                and are not the position independent (P#',
     1 '# or D##')
324   FORMAT('                forms) type.')
C
325   FORMAT('HELP 8 - Change Display Size, Col Size, Load Data')
326   FORMAT('DW N,M          Set column N on display to be M characte',
     1 'rs wide')
327   FORMAT('DB n,m          Set number of columns displayed on scree',
     1 'n')
328   FORMAT('                        to n, number of rows displayed t',
     1 'o m.')
329   FORMAT('GD              Reload sheet down/right onto display coo',
     1 'rds.')
330   FORMAT('GP              Reload sheet down/right onto physical co',
     1 'ords.')
331   FORMAT('<               Rewind the current Portacalc input file'
     1 )
332   FORMAT('* any text      Comment. (For command files.)')
333   FORMAT('Hn       Display a screen of help. n may be 0 to 9, defa',
     1 'ult 0.')
334   FORMAT('F filename/nnnn         Read filename, skipping nnnn lin',
     1 'es')
335   FORMAT('                        if the "/nnnn" is there, and loa',
     1 'd')
336   FORMAT('                        contents onto the currently disp',
     1 'layed')
337   FORMAT('                        screen, broken into columns as t',
     1 'he')
338   FORMAT('                        current screen is set up.')
9100	CONTINUE
