home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / alphal.txt < prev    next >
Text File  |  1998-01-22  |  40KB  |  1,014 lines

  1.  
  2.     *******************************************************************
  3.     *                                                                 *
  4.     * (C) Copyright International Business Machines Corporation 1993. *
  5.     *                 All rights Reserved.                            *
  6.     *                                                                 *
  7.     *******************************************************************
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.                            ALPHA V3.1
  15.  
  16.              Lionel de Lambert - Iunius MMDCCXLIII AUC
  17.  
  18.                 IBM United Kingdom Laboratories Ltd.
  19.  
  20.                           06 August 1997
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. This document describes the installation, function and commands
  28. of the ALPHA software analysis programme which runs under
  29. the OS/2 v2.0 or later operating system. 
  30.  
  31. The languages supported are :-
  32.  
  33. 370 and 386 assembler, PASCAL(Ada), PL/X(PL/I, REXX), C(C++), and
  34. FORTRAN.
  35.  
  36.  
  37. Description
  38. ===========
  39. This is a simple 32-bit, configurable, multi-document, highlighting editor
  40. version of the alpha software analysis programmes which were written
  41. together with the CMS programme ANALYSE in order to establish the praecognita 
  42. for the CICS restructure project and may be of interest to those people who
  43. examine 370, 386 assembler, PASCAL(Ada), PL/X(PL/I, REXX), C(C++),
  44. FORTRAN etc. under OS/2 V2.0 or later. 
  45.  
  46.  
  47.  
  48. This programme will provide basic browse and edit functions for all files
  49. with arbitrarily long records, {records >= 256 will be split for display
  50. and rejoined when saved} as well as highlighting specified
  51. keywords for language files such as 370 & 386 Assemble, PASCAL,
  52. PL/AS, C(CPP), FORTRAN etc. ALPHA will also display the programme
  53. call structure, and expand the procedure calls in a secondary
  54. window.
  55.  
  56. This version of Alpha was written in C-Set/2 and MASM V6.0 and will run
  57. on OS/2 V2.0 or later.
  58.  
  59.  
  60.  
  61. Highlighting of keywords has been provided for the following
  62. language types :-  A37,ASM,PAS,(PLS,PLX,PLI),(C,CPP,H),FOR,IPF.PRF
  63. [Other languages may be defined].
  64.  
  65.  
  66. The syntax of the Alpha programme is :-
  67.  
  68.  
  69.  
  70.    START ALPHA [file] [file] .. [/p [profile name - default ALPHA.PRF]]
  71.  
  72.  
  73.  
  74. The Extension, Case, CommentPos, Language, Comment, String, 
  75. and TransferPgm(1) are the only ones which are recognised from the profile.
  76. {The file name may contain a wild character, e.g. '*'.}
  77.  
  78.  
  79.  
  80. Installation
  81. ============
  82. The minimum requirement is to copy the file ALPHA.EXE to a
  83. directory under OS/2 v2.x. If you want to access the Extended
  84. help you must copy the file ALPHA.HLP in to the HELP path. If
  85. you wish to use the Alpha fonts you should copy the files
  86. ALPHA.FON, 'ALPHAA__.AFM', 'ALPHAA__.PFB', and 'ALPHAA__.PFM'
  87. to a directory under OS/2 v2.x and select 'System Setup'
  88. from 'OS/2 System' and use 'Add' in the 'Edit font' of  the
  89. 'Font Palette'. If you wish to access files from the host then
  90. you should also install a file transfer programme such as
  91. ALMCOPY.
  92.  
  93.  
  94. Features
  95. ========
  96. This version of Alpha provides the following features :-
  97.           
  98.  - Basic browse and edit functions. 
  99.    + Copy, cut and paste.
  100.    + Box mode {column mode} select as well as line mode.
  101.    + Special character insert for diagrams etc..   
  102.    + Display characters at the current cursor position in 
  103.      Hex and instructions.   
  104.  - Invokes the appropriate compiler.
  105.  - Cross-references labels.                                        
  106.  - Searches files in a directory for a string.                     
  107.  - Displays the program call structure.                            
  108.  - Highlights keywords, comments etc..                                            
  109.  - Suppression of selected lines.    
  110.  - Suppression of comments.   
  111.  - Matches BEGIN/END pairs.                                        
  112.  - Record/playback key strokes.                                    
  113.  - Expands the procedure call in a secondary window. 
  114.  - Search of compiler include paths.
  115.  - Conversion to upper or lower case.
  116.  - Clearing selected areas to blanks.
  117.  - Tab expansion.
  118.  - Customization for highlighting and language support.            
  119.  - Bookmark support.
  120.  - Analyse 32-bit ".EXE" and ".DLL" files and dis-assemble the code object.
  121.  - Display a file in hexadecimal and characters.
  122.  - Automatically save a file after n changes.
  123.  - Automatically indent new lines.
  124.  - Compare two files and create a composite file.
  125.  - Edit/analyse an arbitrary number of files at a time with 
  126.    arbitrary record size. 
  127.  - A simple Hex/Dec. calculator.
  128.  
  129.  
  130. Menu  
  131. ====
  132. The Allocate dialogue box is used to request a file to be read,
  133. or create a new file. The Create button uses the contents of the Combo box
  134. to set the default file name when creating a new file.    
  135. The SetDir button will set the current directory from the Combo box.
  136. If the drive letter is changed then the OK button should be used
  137. to refresh the List boxes. A file may also be allocated by
  138. dragging mouse button 2 with the Ctrl key pressed from a Drives
  139. window and releasing it over the Alpha window. {The maximum
  140. number of child windows is limited to the storage available.
  141. If the file size is greater than 8Mbytes then a prompt will 
  142. be issued to allow a part of the file to be read.}
  143.  
  144. The Transfer button will pass the contents of the Combo box to the
  145. Transfer_pgm. 
  146.  
  147. The Command dialogue box(2) may be used to issue a search command
  148. e.g.
  149.  
  150.  
  151. Non-case sensitive search for a string.
  152.  
  153. Case sensitive search for a string.
  154.  
  155. Case sensitive search for a string in column one.
  156. {Specify a pattern character (wild) e.g. 'TCT*EI' as  a search
  157.  argument for a forward search and specify '*' in the 
  158.  'Pattern Chr.' entry box.}
  159.  
  160. Set the search mode to backwards.
  161.  
  162. (The string search starts from the current cursor position +1.)
  163.  
  164. Move to a specified line number.
  165.  
  166. Replace the text at the current cursor position with the text from
  167.      the Replacement Text Entry Box.
  168.  
  169. Replace all - repeat to end-of-file replacing the
  170.      text at the current cursor position with the text from
  171.      the Replacement Text Entry Box and locate the next string.
  172.  
  173. Options
  174. =======
  175. The Options menu may be used to set the following options :-
  176.  
  177.  Status bar - display the status bar at the base of the main window.
  178.  
  179.  Tab - expand the record by using X'09' characters to round to
  180.        columns n*(Tab interval).
  181.                         
  182.  Line No. - display the line No. at the left of the record. 
  183.  Keyword - highlight the keywords.
  184.  
  185.  Include - For the file types of MASM, PASCAL, PL/S {PL/I etc.}
  186.         and C read the include files specified by :-
  187.  
  188.         include file_name, {$INCLUDE : 'file_name' }, %INCLUDE
  189.         first_part_of_file_name;, #include <file_name>, respectively
  190.         when expanding a call etc.
  191.  
  192.         {The current directory together with the paths defined by the
  193.         INCLUDE environment variable will be searched. The total number
  194.         of open files/windows is limited to the available storage
  195.         so the include nesting level is limited to the storage of the
  196.         machine.  For language 4, PL/S, the file extension is appended
  197.         to the first_part_of_file_name.}
  198.  
  199. Grid - Draw vertical grid lines through every tenth character in
  200.        the Grid colour and flag lines greater than 80 characters long. 
  201.        Records greater than 256 characters, continued, will be flagged 
  202.        with the highlight colour. 
  203.  
  204. Box - Switch the select mode to box format. In box mode the "Paste" function 
  205.       will overwrite the text at the cursor position with the box area.
  206.  
  207. Tool bar - Display the "Tool bar"; which makes toggling of some options
  208.          easy.
  209.  
  210. Configure
  211. =========
  212. This will invoke the Configure notebook with the following pages :-
  213. C - Colour - Set the text colour
  214. F - Font - Set the text font.      
  215. P - Preferences - Set the autosave values.
  216. T - Configure the Tool bar.
  217.  
  218.  
  219. Font
  220. ----
  221. The Font  dialogue box may be used to change and remember the
  222. font of the text, comments etc.
  223.  
  224. You can use the System Monospaced, Helvetica, Roman and Courier
  225. fonts but the Courier, System VIO and the System Monospaced fonts are the
  226. only monospaced fonts supplied with OS/2 V2.x. A monospaced font
  227. with point sizes 8,9,10,11,16 & 20 is supplied with the ALPHA
  228. PACKAGE, which may also be used. 
  229. Outline fonts are not selectable.
  230.  
  231.  
  232.  
  233. Point sizes (1/72") are :- Courier
  234. (8,10,12), Roman (8,10,12,14,18,24), Helvetica
  235. (8,10,12,14,18,24), System (8,10,12, {8x8, 8x16,9x20}), "Alpha"
  236. (8{8x12},9{9x10},10{8x14},11{11x12},16{12x16},20{12x20}). The
  237. Alpha font point size 10 is suitable for 8513 screens and the
  238. point size 20 for 8515/8516. 
  239.  
  240.  
  241. Colour
  242. ------
  243. The Colour dialogue box may be used to change and remember the
  244. colours(3) of the text, comments etc. The following colours may be
  245. changed with this dialogue box :-
  246.  
  247. 1) Text - The main text colour and
  248.    Structure List box calls.
  249. 2) Comment - The Comment colour.  
  250. 3) Select - The mouse button 1 drag area text colour.
  251. 4) String - The string text colour.
  252. 5) Highlight - The mouse button 1 isolate keyword colour and the 
  253.    Structure List box
  254.    procedures.    
  255. 6) Highlight1 - The first mouse button 1 isolate keyword colour
  256.    from the Popup menu.
  257. 7) Highlight2:ehp1. - The second mouse button 1 isolate keyword colour
  258.    from the Popup menu.
  259. 8) Locate - The mouse button 2 locate string. 
  260. 9) Branch - The Branch/Jump instruction colour.
  261. 10) Grid - The vertical grid line colour.
  262. 11) Help balloon - The Tool bar   
  263.    Help balloon background colour.
  264. 12) Line number - The colour for line numbers. 
  265. 13) Modified - The text of modified lines.
  266. 14) File one - The unique text of the first file compared. 
  267. 15) File two - The unique text of the second file compared. 
  268. 16) Indent area - The background colour of the line indent
  269.    area before the record.
  270.  
  271. The Foreground radio button should be checked to set the 
  272. foreground colour.
  273. The Background radio button should be checked to set the 
  274. background colour.  
  275. The Underline check box should be set to specify the underline
  276. font.                                           
  277.  
  278. The values for COLOUR1 etc. are set by selecting the colour
  279. and adjusting the sliders. The value is remembered when the Set
  280. button is pressed.  
  281. The sliders are active for the particular COLOURn selected.      
  282.                                  
  283.  
  284. Preferences
  285. -----------
  286. Set the autosave values for backing up the files.
  287.  
  288.  - The 'Autosave extension' entry box
  289.    specifies the file extension for the automatic save of files.
  290.  - The 'No. changes before autosave' entry box 
  291.    specifies number of changes to be made to a file before the backup file
  292.    is written.         
  293.  - The Maximum backout level specifies the maximum number of changes
  294.    which may be backed out. Memory is reserved for each backout level,
  295.    and some operations require two backout actions.  
  296.  - The Cursor width specifies the width of the insert
  297.    cursor. The default is 0 which uses SV_CYBORDER.   
  298.  - The Indent area width specifies the indent area size on the left of the
  299.    record. If <6 then (Character width)*2/3 is used. 
  300.  - The Default language entry box specifies the language extension
  301.    to be assumed if the file does not have an extension.
  302.  - The Default extension entry box specifies the language extension
  303.    to be assumed if the file has an extension but it has not been
  304.    specified in File_type.          
  305.  - The Tab interval entry box may be used to change the tab spacing value.
  306.  - The Automatic indent check box will cause the cursor to be set to the
  307.    character position of the start of the previous line when a new line
  308.    character is entered past the end of the text.
  309.  - The Insert tabs check box will cause the tab key to insert tab characters
  310.    rather than a sequence of spaces.
  311.  - The Move select area check box will allow a select area to be moved by
  312.    dragging the mouse with button 1 down. 
  313.  - The Bookmark text check box will cause a prompt for text to be
  314.    associated with the bookmark number when Alt+n is pressed, the default
  315.    is the line number. 
  316.  - The Read line break will specify how the file
  317.    will be broken into records; by examining the first record (auto),
  318.    by carriage return line feed, line feed or by record size.  
  319.  - The Save line break will specify how the file records
  320.    will be written back; by appending
  321.    carriage return line feed, line feed or by record size.  
  322.  - The 'Edit' button will edit the Profile and remember it 
  323.    as the profile for subsequent invocations. This will obviate the need
  324.    for the '/p' option and allow the dropping of files on the
  325.    unstarted programme. A null file name will remove the saved profile name. 
  326.  - The 'Set' button will accept the values and save them in OS2.INI
  327.    except for the line break values.
  328.  - The 'Cancel' button will dismiss the notebook without
  329.    saving the changes.
  330.  
  331. Configure Tool bar
  332. ------------------
  333. This Dialogue box may be used to Delete or Add buttons to the Tool bar
  334. and to change its size and orientation.
  335.  
  336.  - The Buttons List box contains the available buttons; one should be 
  337.    selected and the Add button pressed to add it to the Tool bar.
  338.  - The Tool bar List box shows the current list of buttons in the 
  339.    Tool bar; one should be selected and the Delete
  340.    button pressed to remove it.
  341.  - The Entry box displays the current button size which may be changed.
  342.    Three bitmap sizes are provided, viz. 
  343.    22x22, 32x32 and 64x64; intermediate
  344.    values are created by stretching the bitmap.  
  345.    After setting the size Alpha should be restarted to load the 
  346.    correct bitmaps.
  347.  - The Horizontal and vertical Radio buttons will read the Entry box
  348.    and reconstruct the Tool bar.
  349.  - The menu Radio button will cause the Tool bar to be placed in the menu
  350.    when Alpha is restarted. 
  351.  - The Configure button will cause the changes to be applied.
  352.  
  353. The new Tool bar structure will be remembered when the Configure button
  354. is pressed. If the Tool bar is changed from menu to floating then 
  355. Alpha should be closed and restarted.
  356.  
  357.  
  358. The Print menu item may be used to print the whole file or a 
  359. selected range of records either unformatted (Print) or  
  360. formatted to a printer. The unformatted text may be written to 
  361. one of :- LPT1, LPT2, LPT3. If a range of records has been 
  362. selected by dragging the mouse with button one down then this 
  363. range will be used in the print dialogue box. The default record 
  364. range is the whole file. The formatted option allows the printer 
  365. font to be selected and the printer to be set up for printing the 
  366. coloured highlighted text to a selected printer.  
  367. For formatted printing invoke the Setup option before the Print.
  368.  
  369. The Window menu may be used to close all child windows or to
  370. arrange them so that the title text is visible, Cascade, or so
  371. that a partial view of each child may be seen, Tile. The Select
  372. window option will create a dialogue box from which a child
  373. window may be selected to become the active widow. The first sixteen
  374. windows may be selected by file name from this menu.
  375.  
  376. The Edit dialogue box may be used to edit the current line :-     
  377.     ----
  378.  
  379.  - The Multi-Line Entry box may be used to modify the current line
  380.    or add new lines. The number of lines added is the No. 
  381.    of lines in the MLE.
  382.  - The Modify button will replace the current line
  383.    with the contents of the MLE.
  384.  - The Undo button will undo the changes to the MLE.
  385.  - The Cancel button will leave the current line unchanged.
  386.  - The number on the left shows
  387.    the current cursor position in the MLE.
  388.  - The number on the right shows
  389.    the current pointer, mouse, position in the MLE.
  390.  
  391. The current line is the top line in the window unless button 1 has
  392. been pressed when the cursor will indicate the line.
  393.  
  394. If major modifications,
  395. {The Multi-line Entry field will only accept 64 lines at a time}, 
  396. are to be made to the file then a purpose built editor should be used.
  397. The records >= 256 characters will be split for display and
  398. rejoined when saved.
  399.  
  400. The Select character character dialogue box
  401.     ----------------  
  402. will allow one of the 256 characters from
  403. the current font to be inserted at the current cursor position. 
  404. Select one character by pressing mouse button 1 on the required
  405. character of the array. Use the System menu to dismiss the dialogue
  406. box.  
  407. This may be used to draw diagrams etc.
  408.  
  409.     ╔══╦══╗ 
  410.     ╠╦═╬══╣ 
  411.     ╠╬═╬══╣ 
  412.     ╚╩═╩══╝ 
  413.  
  414. The Calculator dialogue box
  415.     ----------
  416. is a simple hexadecimal/decimal calculator.
  417. Acc - The accumulator - answer.
  418. Mem - The memory value.
  419. Ent - The current entry value.
  420. CA - Clear accumulator.
  421. CE - Clear entry field.
  422. CM - Clear memory.
  423. MR - Recall memory value to entry field.
  424. Min - Copy entry value to memory.
  425. = - Copy entry value to accumulator.
  426. - - Subtract entry value from accumulator.
  427. + - Add entry value to accumulator.
  428. * - Multiply accumulator by entry value.
  429. / - Divide accumulator be entry value. 
  430.  
  431. Help                                                       
  432. ----
  433. The Help menu may be used to display the About window, the Help
  434. summary window or access the OS/2 help file ALPHA.HLP(5).
  435.  
  436. The Help summary window may be scrolled by :-
  437.  
  438. Page_up - scroll up 1 screen
  439.  
  440. Page_down - scroll down 1 screen 
  441.  
  442. Home - scroll to the top of the Help data 
  443.  
  444. End - scroll to the end of the Help data 
  445.  
  446. Up_arrow - scroll up 1 line. 
  447.  
  448. Down_arrow  - scroll down 1 line.
  449.  
  450. Mouse buttons
  451. -------------
  452. 1) Mouse button 1
  453.  a) single click    
  454.   i) No other key pressed  
  455.     - Outside a select area set the cursor position and repaint window.
  456.     - Within the select area move the select area by dragging the mouse
  457.       with button 1 down.                                         
  458.   ii) With Ctrl key down  
  459.      A Pop-up menu will be displayed which will allow either, 
  460.      the string to be highlighted 
  461.      (alternate highlight colours Highlight1 or Highlight2),
  462.      the next five instructions 
  463.      to be displayed, the highlighted label to be expanded,  
  464.      set the grid column using the grid background colour,
  465.      the record to be marked as continued from the previous,
  466.      display the Select character or Edit dialogue box. 
  467.   iii) With Shift key down
  468.      Extend the current select area to the new cursor (mouse) position.
  469.  b) Double click
  470.   i) No other key pressed  
  471.     Highlight the string under the cursor and select the string.  
  472.     If mouse button 1 is clicked twice on BEGIN for PASCAL, {  for C
  473.     or DO for PL/S then the following records up to the matching END
  474.     etc. will not be displayed. 
  475.     If the mouse button 1 is double
  476.     clicked on the suppressed message line or F12 is pressed then
  477.     the records will be re-displayed. If the Include option is
  478.     effective and mouse button 1 is double clicked on an Include
  479.     statement then a second window containing the include file will
  480.     be created.    
  481.   ii) Before start of record will select whole line.
  482.   iii) With Shift key down 
  483.     Only make the string highlighted.
  484.  
  485. 2) Mouse button 2
  486.  a) single click    
  487.   i) No other key pressed  
  488.     Will cause a case sensitive search for this string from the 
  489.     current cursor position +1. The direction is set from the
  490.     Command dialogue box.
  491.   ii) With Ctrl key down 
  492.      Will cause a non-case sensitive search for this string from the 
  493.      current cursor position +1
  494.   iii) With Shift key down
  495.      A search from  
  496.      the top of the file is made for the label definition or procedure 
  497.      entry and a secondary window is opened, Expand.
  498.      {The language structure tables are searched first so if you have
  499.       specified some structure keywords via. Language_operator then
  500.       you will have to record the structure first, Ctrl+s.}
  501.  
  502. If mouse button 1 is held down whilst the mouse is dragged to the bottom
  503. or top of the window the area will be shaded
  504. in the Select area colour.   
  505. A complete line will be selected if the start position precedes the first
  506. character of a line and the end position precedes the start of the 
  507. following line. 
  508. The highlighted area may then be deleted, copied to the Clipboard etc.. 
  509. If the mouse pointer is held at the bottom or top
  510. of the screen then the window will scroll until the mouse button
  511. is released or the pointer moved back within the window.
  512.  
  513.  
  514. The following keys are effective for the programme -
  515.               ----
  516. F1 will open the Help window. 
  517.  
  518. F2 will open the Configure Notebook. 
  519.  
  520. F3 will close the programme. 
  521.  
  522. F4 will open the Allocate file dialogue box.
  523.  
  524. F5 will repeat the previous command. 
  525.  
  526. F6 will open the Command dialogue box. 
  527.  
  528. F7 will scroll the window up 1/2 a screen.       
  529.  
  530. F7+Shift will scroll the window left 1/2 a screen. 
  531.  
  532. F8 will scroll the window down 1/2 a screen.     
  533.  
  534. F8+Shift will scroll the window right 1/2 a screen. 
  535.  
  536. F12 will reset the collapse of the BEGIN/END pairs etc.
  537.  
  538. F12+Shift will clear the bookmarks.   
  539.  
  540. Page_Up will scroll up 1 screen. 
  541.  
  542. Page_Down will scroll down 1 screen. 
  543.  
  544. The Home+Ctrl key will scroll to the top of the file.
  545.  
  546. The End+Ctrl key will scroll to the end of the file.
  547.  
  548. The End key will position the cursor to end of line.   
  549.  
  550. The Backspace key will delete one character to the left of the cursor.
  551.  
  552. Up_arrow - scroll up 1 line. 
  553.  {+Ctrl will scroll to the next bookmark or difference in composite files,
  554.   +Alt will move a line mode select area block up.} 
  555.  
  556. Down_arrow - scroll down 1 line.        
  557.  {+Ctrl will scroll to the next bookmark or difference in composite files,
  558.   +Alt will move a line mode select area block down.} 
  559.  
  560. Left_arrow - scroll left 1 column.
  561. {+Alt will move a Box mode select area.} 
  562.  
  563. Right_arrow - scroll right 1 column.
  564. {+Alt will move a Box mode select area.} 
  565.  
  566. (Hold down the Shift key to highlight an area of the window.)
  567.  
  568. The Tab key will advance the cursor to the next tab position, 
  569.  (n(Tab interval)).  
  570. The Tab+Shift keys will reset the cursor to the leftmost 
  571. position; before the start of the line. 
  572. The Tab+Ctrl keys will select the next child window,
  573.  
  574. The Insert key will toggle the Insert/Overwrite 
  575. mode for character Edit in the Child window at the
  576. current cursor position.
  577.  
  578. The Insert+Shift keys will insert the lines from the Clipboard at the
  579. current cursor position.
  580.  
  581. The Insert+Ctrl keys will copy the lines highlighted by the
  582. button(4) 1 drag area from the display to the Clipboard.
  583.  
  584. The Delete key will delete the character or select area 
  585. at the current cursor position in the child window.
  586.  
  587. The Delete+Shift keys will copy the selected area to the Clipboard and 
  588. delete the text.
  589.  
  590. The Space+Ctrl keys will clear the selected area to blanks.
  591.  
  592. The Ctrl+b keys will will restore the previous
  593. text; may require two operations. 
  594.  
  595. The Ctrl+Shift+c keys will compile the last active file using the
  596. command displayed in the Compile dialogue box which will be scanned 
  597. and 
  598.  1) the %  replaced by the full path name from the file entry box.
  599.  2) the %e replaced by the file extension.
  600.  3) the %n replaced by the file name.
  601.  4) the %p replaced by the path name from the file entry box.
  602. The resultant command will be executed when the Execute button is pressed.
  603. The Standard Output for the Child process will be
  604. written to the "Output" MLE.
  605. The programme name is formed by appending ".EXE" to the first name of
  606. the command line.
  607. If the command line is modified then it will be remembered
  608. when Alpha is closed.   
  609. The maximum text size for the command is 128 characters. Other programmes
  610. could be executed e.g. GREP -y -l "%" *.C    
  611.  
  612. The Ctrl+d keys will create a new child window
  613. containing the dis-assembled code object of a 32-bit "EXE" or "DLL" 
  614. file which has an LX header record.
  615.  
  616. The Ctrl+e keys will expand the highlighted label.
  617. See Mouse button 2 with Shift key down.
  618.  
  619. The Ctrl+Shift+e keys will edit the current line. The current line will
  620. be the top line in the window unless button 1 has been pressed when
  621. the cursor will indicate the the line.
  622.  
  623. The Ctrl+f keys will compare two files and create a composite file.
  624.  
  625. The Ctrl+g keys will search the current directory for a string.
  626.  
  627. The Ctrl+h keys will hide/restore the selected lines. 
  628.  
  629. The Ctrl+i keys will highlight the keyword at the cursor. 
  630.  
  631. The Ctrl+Shift+i keys will make a locate argument from the highlighted string. 
  632.  
  633. The Ctrl+k keys will invoke the calculator.
  634.  
  635. The Ctrl+l keys will switch to/from Box/line mode select. 
  636.                                                       
  637. The Ctrl+m keys will move the cursor to the end matching bracket.
  638.  
  639. The Ctrl+p keys will playback previously recorded keystrokes.
  640.  
  641. The Ctrl+r keys will switch on/off recording of keystrokes.
  642.  
  643. The Ctrl+shift+s keys will save the current file.  
  644. Select Hexadecimal convert to save the file and translate columns 8-42 
  645. inclusive from hexadecimal characters. This allows the back translation of 
  646. the Ctr+z file conversion after modification. Invalid hexadecimal
  647. characters are ignored, so some degree of free format is possible. 
  648. The Composite check box will cause a blank, '1' or '2' character
  649. to precede each line to indicate which lines of a composite file
  650. are common, belong solely to file 1 or to file 2. This enables
  651. delta files to be created.
  652. The file is written to a temporary file '$$$Alpha.tmp'
  653. which is then renamed. If it is not possible to write out the file
  654. the original file should still be intact.
  655.  
  656. The Ctrl+s keys will record or display the programme structure.
  657. {The programme calling structure will be recorded if this has
  658. not already been done and then the Structure dialogue box will be displayed.
  659. If an entry from the List box is selected then the last active 
  660. window will be scrolled to that line. The Print button may be used 
  661. to print the contents of the List box on LPT1.  
  662. The CpyClp button will copy the contents of the list box to the Clipboard.
  663. The calling structure is based on the profile keywords :- 
  664. Keywords and Operator.
  665. If the file contains tab characters then Tab expansion must be active 
  666. before the structure is recorded.} 
  667.  
  668. The Ctrl+u will convert the select area to upper or lower case.
  669. If the first character of the selected area is upper case then the area
  670. is converted to lower case otherwise the area is converted to upper case.  
  671.  
  672. The Ctrl+x keys will display the record references to the 
  673.     highlighted label, XREF.
  674.  
  675. The Ctrl+z keys will convert the last active 
  676.     child window to hexadecimal and display as a new window.    
  677.  
  678. The Ctrl+c keys will suppress/display the comments in a language file.
  679.     If a single line is scrolled then the comment suppression will 
  680.     be disabled.
  681.  
  682. The Alt+n keys will record a bookmark, where n is a numeric key
  683. 0-9.  {These will be displayed when the Grid option is chosen.}
  684.  
  685. The Ctrl+n keys will move to the bookmark.
  686.  
  687. Search
  688. ======
  689. The Search dialogue box may be used to search the current directory for a 
  690. string. 
  691.  - The Search argument Entry box specifies the search string, 
  692.    the default is the highlight string.             
  693.  - The Search directory Entry box specifies the current directory
  694.    to be searched. This may be altered to set a new search directory.
  695.  - The File type Entry box specifies the file extension, 
  696.    the default is the first extension for the language of the last active 
  697.    window or 'C'. The files searched are of the type 
  698.    '*.file_extension' in the current directory.
  699.  - If the Subdirectories check box 
  700.    is checked then any directories below the current one
  701.    will also be searched.
  702.  - If the Case sensitive check box
  703.    is checked then the string search will be case sensitive. 
  704.  - The List box displays the found lines. If one is selected 
  705.    and the GoTo button pressed then a child window will be created for
  706.    the file from the current directory. 
  707.  - The Locate button will search the current directory for the
  708.    Argument string and fill the List box.        
  709.  - The CpyClp button will copy the contents of the List box to the Clipboard.
  710.  - The Cancel button will dismiss the Dialogue box.      
  711.  - The Case sensitive Check box specifies whether the search is to be
  712.    case sensitive or not.    
  713.  
  714. XREF
  715. ====
  716. The XREF dialogue box may be used to search the records of the last active
  717. window for a string. 
  718.  - The Argument Entry box specifies the search string, 
  719.    the default argument is the 'or' of the highlight strings.
  720.    The argument may contain several strings separated by a blank,
  721.    '¬' or '&'; where a blank implies 'or', '¬' implies not this
  722.    string and '&' is the logical and, e.g.
  723.    "SUBRTINE_1 & ¬ call"
  724.  - The List box displays the found lines. If one is selected 
  725.    and the Go to button pressed then the last active child window will be 
  726.    scrolled to that line.
  727.  - The Locate button will search the last active child window's records for the
  728.    Argument string and fill the List box.     
  729.  - The CpyClp button will copy the contents of the list box to the Clipboard.
  730.  - The Cancel button will dismiss the Dialogue box.      
  731.  - The Case sensitive Check box specifies whether the search is to be
  732.    case sensitive or not.   
  733.  - The Search all children Check box causes all the data of the children 
  734.    to be searched.
  735.  - The Keyword Check box specifies whether the string should be terminated
  736.    by a non-alphanumeric character. 
  737.  - The Include records Check box indicates whether the argument string
  738.    is used to include or exclude records.
  739.  
  740.  
  741. Profile
  742. =======
  743. A profile(6) may be specified defining the following keyword
  744. values, these are the only ones recognized by the Alpha programme:-
  745.  
  746. Extension, Case, CommentPos, Language, Comment, String, Keywords, 
  747. Operator, Keys and TransferPgm.
  748.  
  749. Extension specifies the File types to be recognized. The string
  750. must be <=128 characters and terminated by a comma.
  751.  
  752. There then follows sections of language definitions starting
  753. with the file extension extension :- 
  754.  
  755.  [C]                            
  756.  Case=Yes                    ;; The language is case sensitive   
  757.  CommentPos=0                ;; 0, 1-n
  758.  Language=C                  ;; FORTRAN, A37, ASM, C, none, default
  759.  Comment="/*//*/  "          ;; start and end character pairs
  760.  String="" ' " ' ",\         ;; start and end character pairs, escape chr.   
  761.  Tab=10,16,40,72             ;; up to eight fixed tab positions 
  762.  Keywords                    ;; The following is a list of keywords
  763.  if,(GREEN,YELLOW,UNDERLINE) ;; sample keyword
  764.  .END                        ;; End of list of keywords 
  765.  
  766. Case - specifies whether the language is case sensitive. If the language
  767. is not case sensitive then the keywords should be specified in
  768. upper case.
  769.  
  770. CommentPos - specifies the column position of the fixed comment or 0.
  771.  
  772. Language - specifies the language type and is one of :-
  773. default  - Free format comment and strings etc. (Algol).
  774. none     - No comment or string analysis to be performed.
  775. A37      - 370 assembler.
  776. ASM      - MASM 386 assembler.
  777. C        - C language.
  778. FORTRAN  - FORTRAN language.
  779.  
  780. Comment - two pairs of start characters followed by two pairs of end
  781.           characters. A blank implies not used.
  782. String  - two pairs of start characters followed by two pairs of end
  783.           characters. A blank implies not used.                     
  784. Tab     - specify up to eight fixed tab positions separated by commas.
  785.           Further tab characters are interpreted as multiples of
  786.           the Tab interval from the Preference page.
  787. Keywords - Starts a list of keyword definitions terminated by '.END'.
  788.  
  789.  keyword,colour 
  790.  
  791. The colour may be a single colour or an expression viz. :-
  792.   (<text_colour>,<background_colour>,<UNDERLINE>)
  793.                    
  794. The case and spaces within the keyword are significant,
  795. {the first character is used for the initial scan so a space would
  796. reduce the performance}.
  797. The keywords must be <=128 characters.
  798. {Colours may take the values :BLUE, DARKCYAN, BLACK, DARKBLUE,
  799. DARKPINK, DARKGRAY, DARKRED, DARKGREEN, BROWN, CYAN, RED, GREEN
  800. ,PINK, YELLOW, PALEGRAY, DEFAULT, WHITE (ORANGE, PURPLE, PALEGREEN, 
  801. PALEBLUE,PALEYELLOW,PALERED,COLOUR1,..,COLOUR8)}
  802.  
  803.  
  804. Operator defines the operator keywords for each language.
  805. The second value indicates how to process the keyword, viz.
  806. < or > indicate the scan direction from the keyword to locate the label,
  807. 'P' or 'C' indicates that the keyword specifies an entry point or call,
  808. ':' indicates that the label will be followed by a colon,
  809. '2' indicates that the second label following a ',' is to be used.
  810. The entries may be defined as follows :-
  811. file_type,<║>C║P[:][2],keyword
  812. and are terminated by '.END', invalid entries are ignored.
  813. The keywords must be <=128 characters. 
  814.  
  815. Keys specifies a list of functions which may be assigned
  816. to alternate keyboard keys. The values may be 'Ctrl+a' or 'Ctrl+Shift+A'
  817. where 'a' is a character. The list is terminated by '.END', e.g.
  818. Keys                           ;; Accelerator keys
  819. Backout=Ctrl+z                 ;; Backout
  820. BoxLine=Ctrl+l                 ;; Toggle Box/Line mode select
  821. Bracket=Ctrl+m                 ;; Match brackets
  822. Calculator=Ctrl+k              ;; Invoke calculator
  823. CommentSup=Ctrl+Shift+H        ;; Suppress comments
  824. Compare=Ctrl+Shift+F           ;; Compare files
  825. Compile=Ctrl+c                 ;; Compile
  826. ConvertCase=Ctrl+u             ;; Convert to/from upper/lower case
  827. DisAsm=Ctrl+d                  ;; Disassemble EXE & DLL
  828. Edit=Ctrl+Shift+E              ;; Edit line
  829. Expand=Ctrl+e                  ;; Expand label
  830. Hex=Ctrl+h                     ;; Display original file in Hex
  831. Highlight=Ctrl+i               ;; Highlight label under cursor
  832. HighlightSup=Ctrl+y            ;; Suppress highlighted lines
  833. LocateHigh=Ctrl+Shift+I        ;; Make locate argument of highlighted label
  834. Playback=Ctrl+p                ;; Playback
  835. Record=Ctrl+r                  ;; Record
  836. SaveFile=Ctrl+Shift+S          ;; Save File
  837. Search=Ctrl+g                  ;; Search directories
  838. Structure=Ctrl+s               ;; Display structure
  839. XREF=Ctrl+x                    ;; Search children for strings
  840. .END                           ;;  
  841.  
  842. TransferPgm specifies the programme name invoked 
  843. from the Allocate widow. The data from the COMBO box is passed
  844. without modification to the TransferPgm when the Transfer button is
  845. selected.
  846.  
  847. Tool bar
  848. ========
  849. The Tool bar may be used to set an option etc. quickly.  
  850. The following buttons are available :-
  851.  
  852.  - Hide/re-instate highlighted records from display.
  853.  - Display/Create structure List box.
  854.  - Toggle Line No. display.
  855.  - Copy highlighted records to Clipboard.
  856.  - Cascade Child windows.
  857.  - Tile Child windows.
  858.  - Toggle Tab expansion.
  859.  - Toggle Include option.
  860.  - Repeat last Locate command.
  861.  - display the record references to the highlighted label.
  862.  - suppress/display the comments in a language file.
  863.    If a single line is scrolled then the comment suppression will be disabled.
  864.  - Expand the highlighted label.
  865.  - Save the file.
  866.  - Compile file
  867.  - Copy the selected records to the Clipboard and erase from from memory.
  868.  - Overwrite the current line with records from the Clipboard.
  869.  - Delete records from memory.
  870.  - Re-insert the last deleted records.
  871.  - Clear select area.  
  872.  - Switch to/from box mode select.
  873.  - Convert select area to upper/lower case.
  874.  - Search current directory for string.
  875.  - Compare two files and create a composite file.
  876.  - Playback previously recorded keystrokes.
  877.  - Switch on/off recording of keystrokes.     
  878.  - Select the next child and make it active.
  879.  
  880.  
  881.  
  882. If mouse button 2 is held down on a button then a small help
  883. balloon will be displayed. The structure of the Tool bar may be modified
  884. by using the "T" page of the Configure notebook. If the Tool bar is in the
  885. menu then if button 2 is held down and moved to a new position the button 
  886. will be moved.
  887.  
  888.  
  889.  
  890. Add/Modify a language
  891. =====================
  892. Alpha has within it (hard coded) routines which understand
  893. certain language features e.g. 370 Assembler 
  894. procedures are invoked by BAL, BAS etc.     
  895.   
  896.  
  897. START ALPHA /p profile_name          
  898.  
  899.  
  900. A sample profile (ALPHA.PRF) is provided in the package, which
  901. includes comments explaining the use of the keywords. This may
  902. be edited to change/add a file extension i.e.
  903. by modifying the following keywords :-     
  904.  
  905. Extension - list of file extensions up to 128 characters         
  906.              
  907.  
  908. Case - case sensitivity.
  909. CommentPos - For Fixed comments
  910. Comment - Comment delimiters
  911. String - string delimiters and escape character
  912. Language - language structure
  913. Keywords - list of keyword definitions                   
  914. i.e.                               
  915. keyword,colour      
  916.  
  917. Operator - list of language operator values and
  918.            attributes
  919.  
  920. file_type,attributes,keyword     
  921.  
  922.                                                                 
  923.                 
  924.  
  925. e.g. to add language XYZ with a routine call 'ICALL
  926. routine_name'  with similar structure to PL/S the profile would
  927. include the following statements :-          
  928.  
  929.                                                                 
  930.                                                            
  931. Extension="A37,ASM,PAS,XYZ,C,FOR,"                              
  932.                
  933. [XYZ]
  934. Case=No
  935. Language=default
  936. CommentPos=0
  937. String="" ' " ' "
  938. Comment="/*  */  "
  939. Keywords
  940. ICALL,DARKGREEN                                          
  941. Next_key ,RED                                            
  942. .END   
  943.  
  944. Operator
  945. XYZ,>C,ICALL
  946. .END                     
  947.  
  948.  
  949.  
  950. The ALPHA programme scans the keyword table in the order
  951. specified in the profile, so a later entry may replace a former
  952. entry.
  953.  
  954.  
  955.  
  956. Writing a parser exit DLL
  957. =========================
  958. If the DLL, ALPHAE.DLL, has been provided in the LIBPATH then the procedure
  959. Alpha_parse_exit will be called from the WM_PAINT child window procedure.
  960. A sample source module ALPHAE.C is provided which may be used to create
  961. a DLL with a parser exit procedure. This module may be used to write the records
  962. to the child window.
  963.  
  964.  
  965.  
  966. Recent changes to the ALPHA package.
  967. ==================================== 
  968.  
  969. 1) Separate threads to read Compiler output & search directory.                      
  970. 2) Improved bracket matching.
  971. 3) Adobe Type 1 fixed pitch font with hexadecimal and alphanumeric characters.
  972. 4) Ctrl+e/Shift+mouse button 2 now expand a label.
  973. 5) Set current directory from the search dialogue box.
  974.  
  975. Notes
  976. =====
  977. 1 The data in the Allocate COMBO will be passed without
  978. modification to the Transfer_pgm.
  979.  
  980. 2 The COMBO box will hold the previous three search strings
  981. entered.
  982.  
  983.  
  984.  
  985. 3 The colours may take the values :BLUE, DARKCYAN, BLACK,
  986. DARKBLUE, DARKPINK, DARKGRAY, DARKRED, DARKGREEN, BROWN, CYAN,
  987. RED, GREEN ,PINK, YELLOW, PALEGRAY, DEFAULT, WHITE, 
  988. ORANGE, PURPLE, PALEGREEN, PALEBLUE, PALEYELLOW, PALERED,
  989. COLOUR1,..,COLOUR8.
  990. {The last nine colours will not be available on VGA screens.
  991. The COLOURn value may be set by the sliders and will be remembered
  992. when the Enter button is pressed.}
  993.  
  994.  
  995.  
  996.  
  997.  
  998. 4 If mouse button 1 is held down and moved to the bottom or top
  999. of the window the window will continue to scroll until the
  1000. button is released or the mouse is moved back within the window.
  1001.  
  1002. 5 The ALPHA2.HLP file must be installed in the HELP path.
  1003.  
  1004. 6 A sample profile is supplied with the name ALPHA.PRF. This
  1005. file may be edited to alter the programme defaults. The profile
  1006. is read by specifying /p as a parameter to the programme. 
  1007.  
  1008.  
  1009.  
  1010. 7 These keywords and attributes may be specified by the
  1011. Language_operator keyword in the profile.
  1012.  
  1013. =============== End of Alpha text file =============================
  1014.