home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / alpha / alpha.hlp (.txt) < prev    next >
Encoding:
OS/2 Help File  |  1993-12-14  |  32.4 KB  |  700 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Overview ΓòÉΓòÉΓòÉ
  3.  
  4. *******************************************************************
  5. *                                                                 *
  6. * (C) Copyright International Business Machines Corporation 1993. *
  7. *                 All rights Reserved.                            *
  8. *                                                                 *
  9. *******************************************************************
  10.  
  11.  
  12.           Lionel de Lambert - Iunius MMDCCXLIII AUC
  13.  
  14.  
  15.               IBM United Kingdom Laboratories Ltd.
  16.  
  17. This program may be of interest to those people who examine 370, 386 assembler, 
  18. PASCAL(Ada), PL/AS(PL/I, REXX), C and FORTRAN etc. under OS/2. It was developed 
  19. along with the CMS programme ANALYSE as part of the CICS restructure project to 
  20. help understand convoluted 370 assemble programmes. 
  21.  
  22. This programme will provide basic browse functions for all files with a record 
  23. size =<256 as well as highlighting specified keywords and allowing user defined 
  24. Marker references and flow lines, and for language files such as 370 & 386 
  25. Assemble, PASCAL, PL/AS, C, and FORTRAN etc. ALPHA will also draw branch flow 
  26. lines from 'Jump/GOTO' instructions to labels in the same window, will display 
  27. the programme call structure, and expand the procedure call in a secondary 
  28. window. 
  29.  
  30. The programme is written in PASCAL and MASM for OS/2 using Presentation Manager 
  31. calls. 
  32.  
  33.  
  34. ΓòÉΓòÉΓòÉ 2. Installation ΓòÉΓòÉΓòÉ
  35.  
  36. The minimum requirement is to transfer the binary file 'ALPHA EXEBIN' to a 
  37. directory on your PS/2 as 'ALPHA.EXE'. 
  38.  
  39. If you want different colours, fonts etc. you can copy the text file 'ALPHA 
  40. PRF' to the PS/2 as 'ALPHA.PRF' and edit the file. You can also install the 
  41. 'Alpha' fonts by transferring the binary file 'ALPHA FONBIN' to the PS/2 as 
  42. 'ALPHA.FON' and using the 'Add font' command of the Installation menu on the 
  43. 'Control Panel' of OS2 V1.3. On OS/2 V2.x select 'System Setup' from 'OS/2 
  44. System' and use 'Add' in the 'Edit font' of the 'Font Palette'. 
  45.  
  46. If you wish to access files from the host then you should also install a 
  47. Transfer_pgm such as ALMCOPY from the OS2TOOLS disk. You can send commands to 
  48. the host if you also install a Command_pgm such as OS2CMD. 
  49.  
  50. If you wish to access the OS/2 help file, ALPHA.HLP, it must be installed in 
  51. the HELP path. 
  52.  
  53.  
  54. ΓòÉΓòÉΓòÉ 3. Starting up Alpha ΓòÉΓòÉΓòÉ
  55.  
  56. The syntax for starting up the Alpha programme is :- 
  57.  
  58. [C:\]<START> ALPHA <file name> </p <profile name>> </m>
  59.  
  60. Where the option /m may be specified to cause the programme to be started 
  61. minimised. This is intended for use in the 'STARTUP.CMD' file as an alternative 
  62. to having the programme in the "Group - main" window, e.g. START ALPHA /p /m 
  63.  
  64. The option /p may be specified to cause the file of initial values of colours, 
  65. font etc. to be read. The default file name for this profile is 'ALPHA.PRF'. 
  66. This file may be used to set alternative start up values such as the keyword 
  67. colours, see Profile. If a file name is not supplied on the OS/2 command line 
  68. then the first display will ask for the file name to be browsed. The Enter key 
  69. or Enter button should be used to terminate the string, e.g. 
  70.  
  71.     C:\WORK\TEST.A37<Enter_key>
  72.  
  73. On OS/2 V1.3 if  is minimised or active with or without a file allocated and 
  74. the file manager window is active then a selected file may be moved from the 
  75. file manager window by dragging mouse button 2 and releasing it over the  icon 
  76. or main window. This will cause the new file to be allocated. 
  77.  
  78. Note:  If the window fails to appear the error, WinGetLastError, is written to 
  79.        the OUTPUT device. 
  80.  
  81. This should be directed to a printer or file e.g. ALPHA >PRN | >file_name 
  82.  
  83.  
  84. ΓòÉΓòÉΓòÉ 4. Description ΓòÉΓòÉΓòÉ
  85.  
  86. This programme may be used to browse any file with a record size =<256 and may 
  87. also be used with language files such as :- 370, 386 assembler, PASCAL(Ada), 
  88. PLS C, or PL/AS(PL/I, REXX) programmes etc. on a PS/2 under OS/2 to help in 
  89. analysing their structure. 
  90.  
  91. The basic browse functions are :- 
  92.  
  93.  1. Home - Move to top of file 
  94.  
  95.  2. End - Move to end of file 
  96.  
  97.  3. Page_up - scroll up 1 screen 
  98.  
  99.  4. Page_down - scroll down 1 screen 
  100.  
  101.  5. F7 - scroll up 1/2 screen 
  102.  
  103.  6. F8 - scroll down 1/2 screen 
  104.  
  105.  7. F19 (Shift+F7) - scroll left 1/2 screen 
  106.  
  107.  8. F20 (Shift+F8) - scroll right 1/2 screen 
  108.  
  109.  9. The Horizontal and Vertical scroll bars. 
  110.  
  111. The mouse button 1 when pressed will isolate the addressed string using ' ', 
  112. ',', '+' etc. as separators, and highlight it and all references in the window 
  113. or as the file is browsed. 
  114.  
  115. In Locate mode if mouse button 1 is pressed twice (double clicked) then the 
  116. isolated string will become a search argument. If mouse button 2 is pressed 
  117. once (clicked) then the next occurrence of the search argument will be located. 
  118. If mouse button 2 is double clicked then the search will start at the top of 
  119. the file. 
  120.  
  121. In Expand mode if mouse button 1 is double clicked then the search string is 
  122. assumed to be a label or procedure name and a second window is opened with the 
  123. procedure code provided the label/routine name can be found see Expand. 
  124.  
  125. Search commands may be issued from the command window see Command window, which 
  126. may be invoked by the F6 key or the system menu icon 
  127.  
  128. When the main window is displayed keywords which are associated with the file 
  129. extension will be highlighted using the colours specified in the profile. 
  130.  
  131. With Flow on for language files branch flow lines will be drawn from 
  132. 'Branch/GOTO' instructions to labels in the same window. 
  133.  
  134. If the profile specifies Read_file=Yes, the default, then the the file may be 
  135. browsed as soon as the window is opened, performance then improves once the 
  136. file is read in. If the profile specifies Read_file=No then only 120 records 
  137. from the file are read in to storage and scrolling takes place within this 
  138. buffer unless F4+Ctrl is pressed when the whole file is read in to memory 
  139. asynchronously. As the file is scrolled up/down extra pages are read in to the 
  140. buffer. The affect is that on scrolling upwards, after the window is displayed, 
  141. there may be a pause (hour glass symbol) while extra data is read in. 
  142.  
  143. Small parts (=<window size) of the file may be remembered and redisplayed by 
  144. using the Clipboard function. Drag the mouse with button 1 down over the lines 
  145. to be saved and press Ctrl+Insert to save the highlighted lines. To redisplay 
  146. the saved lines press Shift+Insert. The lines are displayed from the cursor 
  147. position onwards. The highlighted records may be printed on LPT1 by pressing 
  148. Insert+Alt. 
  149.  
  150.  
  151. ΓòÉΓòÉΓòÉ 4.1. Function keys ΓòÉΓòÉΓòÉ
  152.  
  153.  
  154. The following keys are effective for the programme:- Mouse button 1 will 
  155. isolate and highlight the text. If button 1 is pressed twice then the 
  156. highlighted string may then be used as a search argument by button 2. 
  157. Mouse button 2 will scan from the current position to the end of file for the 
  158. locate string, i.e. the string isolated by button 1 or by use of a locate 
  159. command from the command window (F6). If the mouse button 2 is pressed twice 
  160. then the scan will start from the top of the file. 
  161.  
  162. F1 is the help key see Help window. 
  163.  
  164.  F1+Alt will display/hide the current status of the programme.
  165.  
  166. F2 will change the font. The System Monospaced font is the default font, unless 
  167. the Alpha font is installed. 
  168. F3 will terminate programme 
  169. F4 will allocate a new file see Allocate window 
  170.  
  171.  F4+Ctrl will read the currently assigned file in to memory.
  172.  
  173. F5 will repeat the previous command 
  174. F6 will issue a command 
  175. F7 scroll up 1/2 screen. 
  176. F8 scroll down 1/2 screen. 
  177. F9 switch on/off comment suppression. A sequence of blank or comment lines will 
  178.      be compressed to a single line of  provided that the file is read in. The 
  179.      comment lines must begin with characters specified in Comment_start and 
  180.      terminate with the characters specified in Comment_end. 
  181.  F10 not used. 
  182.  F11 not used. 
  183.  F12 will move the mouse button 1 focus line to the centre of screen. 
  184.  
  185.     F12+Ctrl will switch on/off the scale line in the centre of the window.
  186.  
  187.  F13 (shift+F1) will display the programme structure. 
  188.  F14 (shift+F2) will change the text colours. 
  189.  F17 (shift+F5) will locate the next Marker. 
  190.  F19 (Shift+F7) will scroll left 1/2 line. 
  191.  F20 (shift+F8) will scroll right 1/2 line. 
  192.  F24 (shift+F12) will reset the horizontal scroll, clear line markers etc. 
  193.  Page_Up will scroll up one page. 
  194.  Page_Down will scroll down one page. 
  195.  Home key will move to top of file. cruise xb1 End  key will move to end of 
  196.  file. 
  197.  Insert+Ctrl will place mouse Button 1 drag area in Clipboard. 
  198.  Insert+Shift will copy Clipboard text to mouse Button 1 position - cursor. 
  199.  Insert+Alt will write the highlighted records to LPT1. 
  200.  Ctrl+Delete will remove the highlighted records, mouse button 1 drag area, 
  201.  from the window display. 
  202.  Shift+Delete will restore the deleted records to the window display. 
  203.   and  keys will move the cursor. 
  204.  The scroll arrows, slider etc. and Page up or Page down keys may be used for 
  205.  browsing. 
  206.  Enter key will terminate an input string or refresh the screen. 
  207.  
  208.  
  209. ΓòÉΓòÉΓòÉ 4.2. Help window ΓòÉΓòÉΓòÉ
  210.  
  211. This window may be invoked by the F1 key or the Help button on the command 
  212. window. The window may be scrolled by :- 
  213.  
  214.   1. Page_up - scroll up 1 screen 
  215.  
  216.   2. Page_down - scroll down 1 screen 
  217.  
  218.   3. Home - scroll to the top of the Help data 
  219.  
  220.   4. End - scroll to the end of the Help data 
  221.  
  222.   5. F7 - scroll up 1/2 screen 
  223.  
  224.   6. F8 - scroll down 1/2 screen 
  225.  
  226.   7. The Page_Up key word at the bottom of the window will scroll up 1 screen 
  227.      if selected by mouse button 1. 
  228.  
  229.   8. The Page_Down key word at the bottom of the window will scroll down 1 
  230.      screen if selected by mouse button 1. 
  231.  
  232.   9. Access to the OS/2 help file ALPHA.HLP is provided by selecting the ? from 
  233.      the system menu. 
  234.  
  235.  The Help window may be cancelled by F3, the Cancel button or by Enter. 
  236.  
  237.  
  238. ΓòÉΓòÉΓòÉ 4.3. Allocate window ΓòÉΓòÉΓòÉ
  239.  
  240. The File Allocate window will be created by the F4 key or from the Allocate 
  241. menu item of the command window. The file may be selected from the List box or 
  242. typed in to the Entry box. The drive may be changed by selecting [a:] from the 
  243. List box or typing the drive letter followed by a ':' e.g. 'a:' in the Entry 
  244. box. The Path may be changed by selecting a directory name from the List box or 
  245. by typing the path name in the Entry box e.g. 'C:\WORK'. The COMBO box will 
  246. hold the last three allocate texts which have been entered. 
  247.  
  248. A host file may be received and allocated by entering 
  249.  
  250. >H:fn ft fm PC_file_name
  251.  
  252. this string is passed to Transfer_pgm (ALMCOPY) {without the '>' and with '/Q' 
  253. appended} which must be installed on the PS/2. If Transfer_pgm fails the return 
  254. code is displayed in red and the Entry text is left to be edited. If the 
  255. requested file can not be allocated then the allocate window together with an 
  256. error message will be displayed. 
  257.  
  258. A host command may be executed by entering '<host command'; this string is 
  259. passed to Command_pgm (OS2CMD) {without the '<'} which must be installed on the 
  260. PS/2. 
  261.  
  262. If the DosExecPgm call fails for either Transfer_pgm or Command_pgm then the 
  263. error code is displayed in black. 
  264.  
  265. Note:  If the Allocate window can not be contained in the main window then it 
  266.        will be made sysmodal; i.e. it must be closed before other windows can 
  267.        be used. The programme has been tested on an 8513 screen and the default 
  268.        Window and Default_chr values may not be suitable for 8515 & 8514 
  269.        screens. For 8515 type screens more suitable values for the Window & 
  270.        Default_chr keywords in the profile might be Window=(0,60,800,600) and 
  271.        Default_chr=(14,20), for example. 
  272.  
  273.  
  274. ΓòÉΓòÉΓòÉ 4.4. Command window ΓòÉΓòÉΓòÉ
  275.  
  276. This window may be invoked by the F6 key or the system menu icon The following 
  277. commands may be issued :- 
  278.  
  279.   1. +n - scroll down n lines 
  280.  
  281.   2. -n - scroll up n lines 
  282.  
  283.   3. <n - scroll left n characters 
  284.  
  285.   4. >n - scroll right n characters 
  286.  
  287.   5. :n - go to record n 
  288.  
  289.   6. / - Search for string, not case dependent, from the current position in 
  290.      the file 
  291.  
  292.   7. " - Search for string, as typed, from the current position in the file 
  293.  
  294.   8. ' - Search for string, as typed, from the current position in the file but 
  295.      only in column 1 
  296.  
  297.   9. (s-e)>file_name - will copy records from the current file starting at s 
  298.      and ending with e to the file file_name; file_name may be 'LPT2' etc., an 
  299.      existing file or a new file. If the end record number is '*' then the file 
  300.      is copied to end-of-file. 
  301.  
  302.  10. (s-e)- - will remove the records from the window. 
  303.  
  304.  11.  &  will cycle through the last 6 commands. 
  305.  
  306.  12. The Delete|Backspace key will delete a character from the input text. 
  307.  If the first character is invalid then the line will be filled red until it is 
  308.  deleted. F3 or ENTER will close the window and enter the command. The cancel 
  309.  button will remove the window; only this child window will receive input until 
  310.  it is terminated. 
  311.  
  312.  The Help button will start the Help summary widow or access the OS/2 help file 
  313.  ALPHA.HLP. 
  314.  
  315.  The Flow button will switch on/off the drawing of flow lines. These lines are 
  316.  drawn for language files from 'Branch/GOTO' instructions to labels within the 
  317.  window. 
  318.  
  319.  The Expand/Locate button will switch on/off the label expansion. The isolated 
  320.  label is expanded by locating the routine and opening a second window 
  321.  containing the code. The mouse button 1 must be pressed twice (double clicked) 
  322.  to cause the label to be located. A depth of 8 expand windows is allowed, and 
  323.  each window may be scrolled using the scroll bar, Page_Up, Page_Down, etc. The 
  324.  file must be read in to storage to use this facility. The Expand window may be 
  325.  closed by F3 or the CALL menu item when the main window will remain at the 
  326.  CALL. If the Routine menu is clicked then the main window will scroll to the 
  327.  expand text, i.e. the called code line may be passed back to the higher level 
  328.  window. The Locate menu or F6 will perform a case sensitive forward search 
  329.  from the current line+1. F5 will repeat the previous locate. If Button 2 is 
  330.  double clicked after moving to the expanded label then the window will be 
  331.  moved back to the previous line, i.e. return to point of call. The label 
  332.  searched for is succeeded by ":" for PLS and preceded by "FUNCTION" or 
  333.  "PROCEDURE" in PASCAL. The label searched for is preceded by "char", "extern", 
  334.  "far", "int", "long", "pascal", "pointer", "short",  "static" or "void" if the 
  335.  language type is C The label searched for is preceded by "FUNCTION" or 
  336.  "SUBROUTINE" if the language is FORTRAN. 
  337.  
  338.  The operators for langauages other than the C-language may be specified by the 
  339.  Language_operator  keyword in the profile. 
  340.  
  341.  The Mark button will switch on/off the drawing of user flow lines defined by 
  342.  the mouse button 1, or the setting of a marker. Up to 16 user lines or markers 
  343.  may be associated with the file. If mouse button 1 is double clicked then a 
  344.  marker will be associated with the line. If mouse button 1 is pressed once 
  345.  then it will delimit the ends of a flow line. The markers or flow lines remain 
  346.  associated with the record until F24 (Shift+F12) is pressed. The markers 
  347.  enable places within the file to be remembered and recalled by (Shift+F5). 
  348.  
  349.  The Options menu may be selected to change the state of the following options 
  350.  
  351.   1. Transient Options - reset when a new file is allocated. 
  352.  
  353.      a. Comment Suppression - replace a block of comment lines by one 
  354.         highlighted line of . 
  355.  
  356.      b. Statement # - will display the current line number in the TITLE bar. 
  357.  
  358.      c. Scale - place a scale line in the middle of the window. 
  359.  
  360.      d. Status - indicate in the top left of the window the current status of 
  361.         file reading etc. 
  362.  
  363.   2. Permanent Options - remain set when a new file is allocated. 
  364.  
  365.      a. Quiet - suppress the beep which indicates that the file is read in to 
  366.         storage. 
  367.  
  368.      b. Read_file_when_allocated - when the file has been allocated read it in 
  369.         to storage by attaching a subtask. The file may be browsed whilst this 
  370.         is in progress but the reading of the file in to storage will be 
  371.         slower. 
  372.  
  373.      c. Record_structure - for language files this will cause the calling 
  374.         structure to be recorded when the file has been read in. 
  375.  
  376.      d. Tab - recognize tab characters, X'09', and skip to n*8. 
  377.  
  378.      e. Proportional - use the font spacing for writing the characters rather 
  379.         than the character size; this will allow proportional fonts to be used 
  380.         however these are not suitable for displaying code. 
  381.  
  382.      f. Keyword - allow or suppress the keyword highlighting. 
  383.  The Allocate menu will create the Allocate window, see Allocate window. 
  384.  
  385.  The Structure menu may be used to display the call structure for 370, 386 
  386.  assembler, PASCAL, PL/AS, C and FORTRAN programmes provided that the 
  387.  Record_structure option is effective when the file is read in. For 370 
  388.  assembler the structure is based on BAL, BAS, DFHSTACK, for 386 assembler 
  389.  CALL, PROC instructions, for PASCAL PROCEDURE, FUNCTION , keywords, for C 
  390.  char, extern, far, int, long, pascal, pointer, short, static or void keywords, 
  391.  for PL/AS PROC, CALL, keywords, for FORTRAN FUNCTION, SUBROUTINE, CALL, 
  392.  keywords {Labels >=27 characters are ignored}. If an entry is selected from 
  393.  the Programme Structure List Box then the main window is scrolled to that 
  394.  line. The Print button may be used to print the contents of the List box on 
  395.  LPT1. 
  396.  
  397.  The Font menu may be used to dynamically change the font and character size; 
  398.  the change is not saved in the profile, see FONTs. 
  399.  
  400.  The Colour menu may be used to dynamically change the text colours. The 
  401.  language keyword colours must be specified in the profile. 
  402.  
  403.  
  404. ΓòÉΓòÉΓòÉ 4.5. FONTs ΓòÉΓòÉΓòÉ
  405.  
  406. You can specify the initial/default font in the profile by using the Font 
  407. keyword in the profile, or you can change the font dynamically by invoking the 
  408. Font window. 
  409.  
  410. You can use the System Monospaced, Helvetica, Roman and Courier fonts but the 
  411. Courier font and the System Monospaced are the only monospaced fonts supplied 
  412. with OS/2. A monospaced font with point sizes 8,9,10,11,16 & 20 is supplied 
  413. with the ALPHA PACKAGE, which may also be used. See Installation for the 
  414. installation of the Alpha Fonts. The fonts are then requested by specifying 
  415. Font="Alpha",(10) etc. in the profile. The font type or face_name and size may 
  416. be selected by the Font and Character_size keywords in the profile. If a 
  417. profile is not supplied then the "Alpha",(10) {(16) for 8515/8516 screens} font 
  418. will be used if it is installed and a character_size of (8,14) else the "System 
  419. Monospaced",(10) font will be used and a character_size of (8,16). Outline 
  420. fonts are not selectable. 
  421.  
  422. If the point size is not specified then the font is selected by using the 
  423. Character_size. Point sizes (1/72") are :- Courier (8,10,12), Roman 
  424. (8,10,12,14,18,24), Helvetica (8,10,12,14,18,24), System (8,10,12, {8x8, 8x16, 
  425. 9x20}), "Alpha" (8{8x12}, 9{9x10}, 10{8x14}, 11{11x12}, 16{12x16}, 20{12x20}). 
  426. If the point size is specified but an image font does not exist for this 
  427. nominal point size then the outline font, if available, will be used and scaled 
  428. by the Character_size. The font may be requested by face_name, e.g. 
  429. Font="Alpha",(8). 
  430.  
  431.  
  432. ΓòÉΓòÉΓòÉ 4.6. Profile ΓòÉΓòÉΓòÉ
  433.  
  434. A profile may be specified defining the following keyword values :- 
  435.  
  436.  
  437. {Colours may take the values :- BLUE, DARKCYAN, BLACK, DARKBLUE, DARKPINK, 
  438. DARKGRAY, DARKRED, DARKGREEN, BROWN, CYAN, RED, GREEN ,PINK, YELLOW, PALEGRAY, 
  439. DEFAULT, WHITE} 
  440.  
  441.  
  442. Text_colour specifies the colour of the window text. 
  443. Highlight_colour is used for the isolate function of mouse button 1. 
  444. Locate_colour is used for the argument for the locate function 
  445. Comment_colour The first comment_colour is used for comment line beginning :- 
  446.  
  447. /*, {, *, ;, C
  448.  
  449. and for the 'scale' background. The second comment_colour is  used for the 
  450. compressed comment line and for the Clipboard highlight. 
  451. Branch_colour is used for 370, 386 branch instructions. 
  452. Expand_colour is used for the text in the label expansion window 
  453. Back_ground is use to specify the main window background colour. 
  454. File_type specifies the File types to be recognized. The string must be =<64 
  455. characters and terminated by a comma. The first 6 types are used for :- 
  456.  
  457.   1 370 assembler
  458.   2 386 assembler
  459.   3 PASCAL, (Ada)
  460.   4 PL/S, PL/AS, PL/I  etc., (REXX)
  461.   5 C
  462.   6 FORTRAN
  463.  For REXX files use :- "A37,ASM,PAS,CMD,C,FOR," and replace the PLS entries
  464.  For Ada  files use :- "A37,ASM,ADA,PLS,C,FOR," and replace the PAS entries
  465.  
  466. Comment_start specifies the first two characters of the start of a comment. The 
  467. string must be =<12 characters.  The 6 pairs are used for :- 
  468.  
  469.   1 370 assembler
  470.   2 386 assembler
  471.   3 PASCAL, for Ada specify Comment_start="* ; --/*/*C "
  472.   4 PL/S, PL/AS etc.
  473.   5 C
  474.   6 FORTRAN
  475.  
  476. Comment_end specifies the last two characters of the end of a comment. The 
  477. string must be =<12 characters.  The 6 pairs are as in Comment_start. 
  478. Precedent_C specifies the C language procedure keywords. The string must be 
  479. <=64 characters and terminated by a comma. 
  480. Precedent_C="char,extern,far,int,long,pascal,pointer,short,static,void," 
  481. Language_colour  defines the highlight colours for key words. Up to 128 entries 
  482. may be defined as follows :- 
  483.  
  484.  file_type,key_word,colour,scan_length
  485. and are terminated by .END, invalid entries are ignored. The key words must be 
  486. =<12 characters. 
  487. Language_operator defines the operator keywords for each language. The second 
  488. value indicates how to process the keyword, viz. '<' or '>' indicate the scan 
  489. direction from the keyword to locate the label 'P' or 'C' indicates that the 
  490. keyword specifies an entry point or call, ':' indicates that the label will be 
  491. followed by a colon, '2' indicates that the second label following a , is to be 
  492. used. Up to 32 entries may be defined as follows :- 
  493. file_type,<|>C|P[:][2],keyword and are terminated by '.END', invalid entries 
  494. are ignored. The keywords must be <=12 characters. {The C-language procedure 
  495. values are supplied on the Precedent_C keyword.} 
  496. Font  may take the values :- 
  497. Courier|System|Helvetica|Roman|Alpha<,Bold|Italic><,(Point_size)> or a face 
  498. name may be specified e.g. Font="Alpha",(10) 
  499. Character_size specifies the (width,height) of the characters The character 
  500. width is used to select the size of the font if the  point size is not 
  501. specified on the "Font" keyword. 
  502. Read_file takes the value Yes|No and specifies whether the file is to be read 
  503. in after allocation. 
  504. Flow takes the value On|Off and specifies whether to draw flow lines from 
  505. branch statements to labels. 
  506. Expand takes the value On|Off and specifies that Expand mode will be effective 
  507. once the file is read in. 
  508. Marker takes the value On|Off  and specifies whether mouse button 1 will define 
  509. marker values. 
  510. Language takes the values :- 
  511.  
  512.  *<,Language> - determine the language from the file suffix.
  513. If a Language is all so given then this will be the default if the file type 
  514. can not be found in "File_type", e.g. Language=*,PAS.  For PL/I use 
  515. Language=PLS etc. 
  516.  
  517.  A37 - 370 assemble
  518.  ASM - 386 macro assemble
  519.  PAS - Pascal
  520.  PLS - PL/S or PL/AS etc.
  521.  C  - C language
  522.  FOR - FORTRAN
  523.  
  524. Default_chr specifies the default character width and height used for scaling 
  525. the Allocate and Command dialogue boxes. The default value is (10,16) {(14,20) 
  526. for 8515/8516 screens}. 
  527. Window specifies the initial window position. If no profile is specified then 
  528. Window=(0,4h,63.5w,26h) {(0,120,1020,650) - for 8515/8516 screens} is assumed 
  529. where w and h are the Default_chr  width & height. 
  530. Quiet will suppress the beep on completion of file read. 
  531. Record_structure will record the CALL structure for 370 & 386 assembler, 
  532. PASCAL, PL/AS, C and FORTRAN programmes, as the file is read in to memory. 
  533. Tab will use X'09' as the tab character to move to column n*8 when file is 
  534. read. 
  535. Proportional will use the Font character spacing rather than the Character 
  536. width to place the characters. 
  537. Keyword will highlight the specified keywords. 
  538. Statement_number sets the display of the statement number On|Off 
  539. Command_pgm specifies the programme name invoked by <. 
  540. Transfer_pgm specifies the programme name invoked by >. Alpha has within it 
  541. (hard coded) routines which understand certain language features e.g. 370 
  542. Assembler labels start in start in column 1, procedures are invoked by BAL, BAS 
  543. etc. and PASCAL procedures are preceded by FUNCTION or PROCEDURE etc.. There 
  544. are 6 languages understood by Alpha, viz. :- 
  545.  
  546.  
  547.  1 370 Assembler
  548.  2 386 Assembler
  549.  3 PASCAL (Ada)
  550.  4 PL/AS (PL/I, REXX)
  551.  5 C
  552.  6 FORTRAN
  553.  
  554. Because Ada is similar to PASCAL and PL/I & REXX are similar to PL/AS, in 
  555. respect to procedure calls etc., you can also analyse these languages by 
  556. pretending they are type 3 & 4 respectively. 
  557.  
  558.  
  559. However, you can interpret any language/file type (use the highlighting 
  560. facility) by suppling extra definitions in a profile which is specified as a 
  561. parameter to Alpha e.g. 
  562.  
  563.  
  564.  START ALPHA /p profile_name
  565.  
  566. A sample profile (ALPHA.PRF) is provided in the package, which includes 
  567. comments explaining the use of the keywords. This may be edited to change/add a 
  568. file extension, highlighting and programme structure by modifying the following 
  569. keywords :- 
  570.  
  571.  
  572.  File_type - list of file extensions up to 64 characters
  573.  Comment_start - list of comment start character pairs
  574.               (blank is ignored) up to 12 characters
  575.  Comment_end - list of comment end character pairs
  576.               (blank is ignored) up to 12 characters
  577.  Language_colour - list of keyword definitions
  578.           file_type,keyword,colour,maximum scan length
  579.  Language_operator - list of operator definitions
  580.           file_type,attributes,keyword
  581.  
  582. e.g. to add language XYZ with a routine call 'ICALL routine_name' with a 
  583. structure similar to PLS. 
  584.  
  585.  
  586. File_type="A37,ASM,PAS,XYZ,C,FOR," 
  587. Language_colour 
  588. XYZ,ICALL,GREEN,72 
  589. XYZ,Next_key ,RED,72 
  590.  
  591. Language_operator 
  592. XYZ,>C,ICALL 
  593.  
  594. Only the first 6 language types will allow the Expand, Flow and Structure 
  595. operations to be effective. This implies that you could not use all the 
  596. features of Alpha for a new language which did not have the call/label syntax 
  597. of one of the existing languages. 
  598.  
  599.  
  600. The Alpha programme scans the keyword table in the order specified in the 
  601. profile to the comment start in the record for a maximum of 16 found entries. A 
  602. keyword_found array is created and the text is written by running down the 
  603. array from the last to the first so if the entries in the profile were in the 
  604. order :- 
  605.  
  606.  
  607. PLS, END LOOP,GREEN,72 
  608. PLS, END,DARKCYAN,72 
  609.  
  610.  
  611. Then the 'END LOOP' would overwrite the 'END'; spaces are significant. The 
  612. following is the sample profile which may be edited to change the startup 
  613. values :- ALPHA.PRF 
  614.  
  615.  
  616. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  617.  
  618. Specify Language=PLS in the profile for PL/S, PL/AS etc. or use a file type of 
  619. ".PLS". Because PL/I is similar to PL/AS you can use this file type for PL/I 
  620. files. For REXX files, extension ".CMD", replace PLS by CMD in the File_type 
  621. and replace the PLS entries in the Language_colour by the CMD entries. {Only 
  622. "CALL" or "call" subroutine calls will be recognized.} For Ada files, extension 
  623. ".ADA", replace PAS by ADA in the File_type and replace the PAS entries by the 
  624. ADA entries in the profile. Also specify Comment_start="* ; --/*/*C " for the 
  625. Ada comment start characters. 
  626.  
  627.  
  628. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  629.  
  630. Up to 128 language keywords may be specified with their corresponding colour 
  631. and the length of the record to be scanned. Only the first 16 key words on the 
  632. line will be highlighted and the search order is the order specified in the 
  633. profile. The keyword must be =<12 characters. The File_type keyword in the 
  634. profile may be used to introduce extra file types but the first 6 types are 
  635. assumed to refer to :- 370 assembler, 386 assembler, PASCAL, PL/AS, C and 
  636. FORTRAN in that order. 
  637.  
  638.  
  639. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  640.  
  641. Only the first 256 characters of a record are read. Once the file is read in 
  642. there is an internal switch over. If a locate etc. was in progress at the time 
  643. of the switch over the window may not display the line found; it may be 
  644. necessary to repeat the command e.g. F5. 
  645.  
  646.  
  647. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  648.  
  649. This function may be selected from the Command window which may be brought up 
  650. from the system menu icon 
  651.  
  652.  
  653. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  654.  
  655. The statement number is displayed in the TITLE bar. R indicates that the file 
  656. is being read in to memory, S indicates that the programme structure is being 
  657. recorded. 
  658.  
  659.  
  660. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  661.  
  662. A separate thread is attached to read in the file whilst the file may continue 
  663. to be browsed within the 120 record buffer. The scrolling of the file will be 
  664. much faster but there may be some degradation of performance while the file is 
  665. read in to store. A maximum of 21,844 records can be read in if there is enough 
  666. memory available. When the file is read in there is a beep of 1760HZ and then 
  667. one of 880HZ to indicate that recording of the programme structure is complete, 
  668. provided that "Quiet=No" is specified in the profile. 
  669.  
  670.  
  671. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  672.  
  673. This window may also be created from the system menu icon A child window is 
  674. created in to which may be typed the command. 
  675.  
  676.  
  677. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  678.  
  679. The line on which mouse button 1 was last pressed. 
  680.  
  681.  
  682. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  683.  
  684. If the mouse button 1 is kept depressed then the lines or characters will 
  685. scroll at 1 per second until the button is released. If the file is not read in 
  686. then the file size is estimated by adding 1000 every time the internal array is 
  687. filled. In this case the slider may be move to the end of the vertical scroll 
  688. bar before end_of_file is reached and then move up. 
  689.  
  690.  
  691. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  692.  
  693. The file ALPHA.HLP must be installed in the help path. 
  694.  
  695.  
  696. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  697.  
  698. The C language keywords may be specified by the Precedent_C keyword in the 
  699. profile, and the operators for the other languages by the Language_operator 
  700. keyword.