home *** CD-ROM | disk | FTP | other *** search
/ The Developer Connection…ice Driver Kit for OS/2 3 / DEV3-D1.ISO / devtools / alpha2 / alpha.scr < prev    next >
Encoding:
Text File  |  1993-05-25  |  84.3 KB  |  2,467 lines

  1. .**************************** cover Page *****************************
  2. .* Use BOOMASTER - PROCM
  3. .* set T = 'CPTOOLS' for CICS users and set T = 'TOOLS' for
  4. .* general users
  5. .se T = 'TOOLS'
  6. .se date '13 May 1993'
  7. .se version 'V1.7'
  8. :gdoc.
  9. :prolog.
  10. :docprof duplex=no
  11.          ldrdots=yes.
  12. :title stitle='Status &date'.
  13. .* ALPHA
  14. &Alpha.&lambda.&phi.&alpha.
  15. :etitle.
  16. :date.
  17. :author.Lionel de Lambert
  18. :docnum.ALPHA &version
  19. :address.
  20. :aline.CICS Development
  21. :aline.IBM United Kingdom Laboratories Ltd.
  22. :aline.Hursley Park, Winchester
  23. :aline.Hampshire SO21 2JN
  24. :eaddress.
  25. :docprof duplex=no.
  26. :eprolog.
  27. :frontm.
  28. :tipage.
  29. :synopsis
  30. :p.This document describes the installation,
  31. function and commands
  32. of the ALPHA code analysis and browse programme
  33. which runs under the OS/2 operating system.
  34. The languages supported are :-
  35. 370 and 386 assembler, PASCAL(Ada), PL/AS(PL/I, REXX),
  36. C and FORTRAN.
  37. :p.
  38. .ce 1
  39. :hp2.(C) Copyright IBM Corp. 1992:ehp2.
  40. :esynopsis
  41. :toc.
  42. :body.
  43. .**************************** ALPHA      *****************************
  44. :xmp scale='4'.
  45. .in 35
  46. :hp2.&Alpha.&lambda.&phi.&alpha.:ehp2.
  47. .in 0
  48. :exmp.
  49. :i1.Alpha
  50. :h2.Introduction.
  51. :p.
  52. This program may be of
  53. :hp1.
  54. interest to those people who examine
  55. 370, 386 assembler, PASCAL(Ada), PL/AS(PL/I, REXX),
  56. C and FORTRAN etc.
  57. under OS/2.
  58. :i1.PL/S
  59. :i1.PL/AS
  60. :i1.PL/I
  61. :i1.REXX
  62. :i1.370 Assembler
  63. :i1.386 Assembler
  64. :i1.C
  65. :i1.PASCAL
  66. :i1.Ada
  67. :i1.FORTRAN
  68. :ehp1.
  69. It was developed along with the CMS programme :hp2.ANALYSE:ehp2.
  70. as part of the CICS restructure project to help understand
  71. convoluted 370 assemble programmes.
  72. :p.This programme will provide basic
  73. browse functions for all files with a record size &le.256
  74. as well as highlighting specified keywords
  75. and allowing user defined :hp1.Marker:ehp1. references
  76. and flow lines,
  77. and for language files such as
  78. 370 & 386 Assemble,
  79. PASCAL, PL/AS, C, and FORTRAN etc. ALPHA will also
  80. draw branch flow lines from 'Jump/GOTO' instructions to
  81. labels in the same window, will
  82. display the programme call
  83. structure, and expand the procedure call in a
  84. :i1.Expand
  85. secondary window.
  86. :p.
  87. The programme is written in PASCAL and MASM for OS/2 using
  88. Presentation Manager calls.
  89. :h2 id=instal.Installation
  90. The minimum requirement is to transfer the binary file
  91. 'ALPHA EXEBIN' to a directory on your PS/2 as 'ALPHA.EXE'.
  92. :p.
  93. If you want different colours, fonts etc. you can copy
  94. the text file 'ALPHA PRF' to the PS/2 as 'ALPHA.PRF'
  95. and edit the file.
  96. You can also install the 'Alpha' fonts by transferring the
  97. binary file 'ALPHA FONBIN' to the PS/2 as 'ALPHA.FON' and
  98. using the 'Add font' command of the Installation menu on
  99. the 'Control Panel'.
  100. On OS/2 V2.0 select
  101. 'System Setup' from 'OS/2 System' and use 'Add' in the
  102. 'Edit font' of  the
  103. 'Font Palette'.
  104. :p.If you wish to access files from the host then
  105. you should also install ALMCOPY from the OS2TOOLS disk.
  106. You can send commands to the host if you also install
  107. OS2CMD.
  108. .if &T ne CPTOOLS .go lab3
  109. :nt.For CICS users the module is also on the CPTOOLS disk:-
  110. .br
  111. SPLINK CPTOOLS
  112. .br
  113. ACCEXT 29B T/T * *
  114. :p.
  115. CICS users may browse/analyse CICS code by using CRUISE
  116. on VM to access the correct level of CICS
  117. and saying 'CRUISE ( NOMENU O212' etc.
  118. &lbrc.or saying '<CRUISE ( NOMENU O212'
  119. in the Allocate window&rbrc.
  120. to leave the 'E' disk etc. accessed.
  121. Then from the ALPHA Allocate window issue :-
  122. :i1.allocate
  123. .br
  124. <HSXMOVE DFHZRAC O212-AC E TEMP A Z ( UNPACK &lbrc.to unpack the
  125. file &rbrc.
  126. .br
  127. >H&colon.TEMP
  128. A Z TEMP.A37 &lbrc.to copy the file on to the PS/2&rbrc.
  129. :p.
  130. If you have an :hp2.HSXUPROF:ehp2.
  131. :i1.installation
  132. or :hp2.HSXPROF:ehp2.
  133. on your A-disk
  134. &lbrc.there is a default one on the Y-disk&rbrc.
  135. with an entry for ALMCOPY e.g.
  136. .br
  137. hsx 'SET ACXFR56A ON '
  138. .br
  139. hsx 'SET ACXFR54B ON '
  140. :p.
  141. Then issue 'HSXPROF ON' to load HSX on CMS,
  142. and ALMCOPY will unpack the file when transferring it to the PS/2 so
  143. you can :hp1.omit:ehp1.
  144. the HSXMOVE step.
  145. The ISPCTOOL-200 disk should be accessed for ALMCOPY5
  146. &lbrc.the CMS side of ALMCOPY&rbrc..
  147. From &alpha. you would only need to type :-
  148. .br
  149. >H&colon.DFHZRAC
  150. *C * TEMP.A37 etc.
  151. :ent.
  152. ...lab3
  153. :h2.Starting up Alpha
  154. The syntax for starting up the Alpha programme is :-
  155. .sk
  156. &lbrk.C:\&rbrk.<START> ALPHA <file name> </p <profile name>> </m>
  157. :p.
  158. Where
  159. the option :hp2./m:ehp2.
  160. may be specified to cause the programme to be started minimised.
  161. This is intended for use in the 'STARTUP.CMD' file as
  162. an alternative to having the programme in the "Group - main"
  163. window,
  164. e.g.
  165. .sk
  166. START ALPHA /p /m
  167. :p.The option :hp2./p:ehp2. may be specified to cause the
  168. file of initial values of colours, font etc. to be read.
  169. The default file name for this profile is 'ALPHA.PRF'.
  170. This file may be used to set alternative start up values
  171. such as the keyword colours, see :hdref refid=PROF..
  172. If a file name is not supplied on the OS/2
  173. command line then
  174. the first display will ask for the file name to be browsed.
  175. The Enter key or
  176. :hp2.Enter:ehp2.
  177. button
  178. should be used to terminate the string, e.g.
  179. .sk
  180.         C:\WORK\TEST.A37<Enter_key>
  181. :p.If &alpha. is minimised or active with or without a file
  182. allocated and the file manager window is active then
  183. a selected file may be moved from the file manager window
  184. by dragging mouse button 2 and releasing it over the
  185. &alpha. icon or main window.
  186. This will cause the new file to be allocated.
  187. :nt id=invoke.
  188. If the window
  189. :hp1.fails to appear:ehp1.
  190. the error, WinGetLastError, is written
  191. to the OUTPUT device. This should be directed to a printer or file
  192. e.g. ALPHA >PRN | >file_name
  193. :ent
  194. :h2.Description
  195. :p.
  196. This programme may be used to browse
  197. any file with a record size &le.256
  198. and may also be used with language files such as :-
  199. 370, 386 assembler,
  200. PASCAL(Ada),
  201. :fnref refid=PLS.
  202. :fn id=PLS.
  203. Specify :hp2.Language=PLS:ehp2. in the profile for PL/S, PL/AS etc.
  204. :i1.profile
  205. :i1.PL/S
  206. :i1.PL/AS
  207. or use a file type of ".PLS".
  208. Because PL/I is similar to PL/AS you can use this file type for PL/I
  209. :i1.PL/I
  210. files.
  211. For REXX files, extension ".CMD",
  212. :i1.REXX
  213. replace PLS by CMD in the
  214. :hp2.File_type:ehp2. and replace the PLS
  215. entries in the
  216. :hp2.Language_colour:ehp2. by the CMD entries.
  217. &lbrc.Only "CALL" or "call" subroutine calls will be recognized.&rbrc.
  218. For Ada
  219. :i1.Ada
  220. files, extension ".ADA",
  221. replace PAS by ADA in the
  222. :hp2.File_type:ehp2.
  223. and replace the PAS entries
  224. by the ADA entries in the profile.
  225. Also specify
  226. :hp2.Comment_start="* ; --/*/*C ":ehp2.
  227. for the Ada comment
  228. start characters.
  229. :efn.
  230. .*
  231. C, or PL/AS(PL/I, REXX)
  232. :fnref refid=PLS.
  233. programmes etc.
  234. on a PS/2 under OS/2 to help in analysing their structure.
  235. :p.The basic browse functions are :-
  236. :ol.
  237. :li.Home - Move to top of file
  238. :li.End - Move to end of file
  239. :li.Page_up - scroll up 1 screen
  240. :li.Page_down - scroll down 1 screen
  241. :li.F7 - scroll up ½. screen
  242. :li.F8 - scroll down ½. screen
  243. :li.F19 (Shift+F7) - scroll left ½. screen
  244. :li.F20 (Shift+F8) - scroll right ½. screen
  245. :li.The Horizontal and Vertical scroll bars.
  246. :eol.
  247. :p.The mouse button 1 when pressed will isolate the addressed string
  248. using ' ', ',', '+' etc. as separators,
  249. and highlight it and all references in the window or as the file is
  250. browsed.
  251. :p.
  252. In :hp2.Locate:ehp2. mode if
  253. mouse button 1 is pressed twice (double clicked) then
  254. the isolated string will become a search argument.
  255. If mouse button 2 is pressed once (clicked)
  256. then the next occurrence of the search argument will be located.
  257. If mouse button 2 is double clicked then the search will start
  258. at the top of the file.
  259. :p.In :hp2.Expand:ehp2. mode if mouse button 1 is double
  260. :i1.Expand
  261. clicked then the search string is assumed to be a label
  262. or procedure name and a second window is opened with
  263. the procedure code provided the label/routine name can be found
  264. see :spotref refid=EXPAND..
  265. :p.Search commands may be issued from the command window
  266. see :hdref refid=COMM.,
  267. which may be invoked by the F6 key or the
  268. system menu icon :hp2.&alpha.:ehp2.
  269. &lbrc.Code Page 437; the icon will be &Oa.
  270. for Code Page 850 etc.&rbrc..
  271. :p.
  272. When the main window is displayed keywords
  273. which are associated with the file extension
  274. will be highlighted
  275. using the colours specified in the profile.
  276. :fnref refid=lan.
  277. :fn id=lan.
  278. Up to 128 language keywords may be specified with
  279. their corresponding colour and the length of the record to be scanned.
  280. Only the first 16 key words on the line will be
  281. highlighted and the search order is the order specified
  282. in the profile.
  283. :i1.profile
  284. The keyword must be &le.12 characters.
  285. The
  286. :hp2.File_type:ehp2. keyword in the profile
  287. :i1.File_type
  288. :i1.Language
  289. may be used to introduce extra file types but the first 6 types
  290. are assumed to refer to :- 370 assembler, 386 assembler,
  291. PASCAL, PL/AS, C and FORTRAN in that order.
  292. :efn
  293. .*
  294. :p.
  295. With :hp2.Flow:ehp2. on for language files branch flow lines will
  296. be drawn from 'Branch/GOTO' instructions to labels in the
  297. same window.
  298. :p.
  299. If the profile specifies
  300. :hp2.Read_file=Yes:ehp2., the default,
  301. then the
  302. the file may be browsed as soon as the window is opened,
  303. performance then improves once the file is read in.
  304. :fnref refid=filerd.
  305. :fn id=filerd.
  306. Only the first 256 characters of a record are read.
  307. Once the file is read in there is an internal switch over.
  308. If a locate etc. was in progress at the time of the switch over
  309. the window may not display the line found; it may be necessary
  310. to repeat the command e.g. :hp2.F5:ehp2..
  311. :i1.command
  312. :efn
  313. If the profile specifies
  314. :i1.profile
  315. :hp2.Read_file=No:ehp2. then
  316. only 120 records from the file are read in to storage and scrolling
  317. takes place within this buffer
  318. unless F4+Ctrl is pressed when the whole file is read in to
  319. memory asynchronously.
  320. As the file is scrolled up/down extra pages are
  321. read in to the buffer.
  322. The affect is that on scrolling
  323. upwards, after the window is displayed, there may be a pause
  324. (hour glass symbol)
  325. while extra data is read in.
  326. :p.Small parts (&le.window size) of the file may be remembered
  327. and redisplayed by using the Clipboard function.
  328. Drag the mouse with button 1 down over the lines to be saved
  329. and press Ctrl+Insert to save the highlighted lines.
  330. To redisplay the saved lines press Shift+Insert. The lines
  331. are displayed from the cursor position onwards.
  332. The highlighted records may be printed on LPT1 by pressing
  333. Insert+Alt.
  334. :h2.Function keys
  335. .br
  336. The following keys are effective for the programme:-
  337. .sk
  338. Mouse button 1 will isolate and
  339. highlight the text.
  340. If button 1 is pressed twice then the highlighted string
  341. may then be used as a search argument by button 2.
  342. .br
  343. Mouse button 2 will scan from the current position to the end
  344. of file for the
  345. locate string, i.e. the string isolated by button 1 or
  346. by use of a locate command from the command window (F6).
  347. :i1.command
  348. If the mouse button 2 is pressed twice then the scan will start from
  349. the top of the file.
  350. .br
  351. F1 is the help
  352. :fnref refid=Sysmen.
  353. :fn id=Sysmen.
  354. This function may be selected from the
  355. Command window which may be brought up from the
  356. system menu icon :hp2.&alpha.:ehp2.
  357. &lbrc.Code Page 437, the icon will be &Oa. for Code Page 850 etc.&rbrc..
  358. :efn.
  359. key
  360. see :hdref refid=HELP..
  361.   F1+Alt will display/hide the current status
  362. :fnref refid=F1a.
  363. :fn id=F1a.
  364. The statement number is displayed in the MINMAX menu.
  365. :hp2.R:ehp2. indicates that the file is being read in to memory,
  366. :hp2.S:ehp2. indicates that the programme structure is being recorded.
  367. :efn.
  368. of the programme.
  369. .br
  370. F2 will change the font.
  371. :i1.font
  372. The System Monospaced
  373. font is the default font, unless the Alpha font
  374. is installed.
  375. .br
  376. F3 will terminate programme
  377. .br
  378. F4 will allocate
  379. :i1.allocate
  380. :fnref refid=Sysmen.
  381. a new file
  382. see :hdref refid=ALLOC.
  383.   F4+Ctrl will read the currently assigned file in to memory.
  384. :fnref refid=F4.
  385. :fn id=F4.
  386. A separate thread is attached to read in the file whilst
  387. the file may continue to be
  388. browsed within the 120 record buffer.
  389. The scrolling of the file will be much faster but there may
  390. be some degradation of performance while the file is read in to store.
  391. A maximum of 21,844 records can be read in if there is enough
  392. memory available.
  393. The start
  394. of the process is signalled by a 130HZ beep and when the
  395. file is read in there is a beep of 1760HZ and 880HZ, provided
  396. that
  397. "Quiet=No" is specified in the profile.
  398. :i1.profile
  399. :efn
  400. .br
  401. F5 will repeat the previous command
  402. :i1.command
  403. .br
  404. F6
  405. will issue a command
  406. :fnref refid=F6
  407. :fn id=F6.
  408. This window may also be created from the system menu
  409. icon :hp2.&alpha.:ehp2..
  410. A child window is created in to which may be typed the command.
  411. :efn
  412. .br
  413. F7 scroll up ½ screen.
  414. .br
  415. F8 scroll down ½ screen.
  416. .br
  417. F9 switch on/off comment suppression.
  418. .in 4
  419. A sequence of blank or comment lines will be compressed to a single
  420. line of &lrarrow. provided that the file is read in.
  421. The comment lines must begin with characters specified in
  422. :hp2.Comment_start:ehp2..
  423. .in 0
  424. .br
  425. F10 not used.
  426. .br
  427. F11 not used.
  428. .br
  429. F12 will move the mouse button 1 focus line
  430. :fnref refid=focus.
  431. :fn id=focus.
  432. The line on which mouse button 1 was last pressed.
  433. :efn
  434. to the centre of screen.
  435. .br
  436.   F12+Ctrl will switch on/off the scale line in the centre of
  437. the window.
  438. .br
  439. F13 (shift+F1) will display the programme structure.
  440. .br
  441. F14 (shift+F2) will change the text colours.
  442. .br
  443. F17 (shift+F5) will locate the next Marker.
  444. .br
  445. F19 (Shift+F7) will scroll left ½. line.
  446. .br
  447. F20 (shift+F8) will scroll right ½. line.
  448. .br
  449. F24 (shift+F12) will reset the horizontal scroll, clear line
  450. markers etc.
  451. .br
  452. Page_Up will scroll up one page.
  453. .br
  454. Page_Down will scroll down one page.
  455. .br
  456. Home key will move to top of file.
  457. cruise xb1
  458. End  key will move to end of file.
  459. .br
  460. Insert+Ctrl will place mouse Button 1 drag area in Clipboard.
  461. .br
  462. Insert+Shift will copy Clipboard text to mouse Button 1
  463. position - cursor.
  464. .br
  465. Insert+Alt will write the highlighted records to LPT1.
  466. .br
  467. Ctrl+Delete will remove the highlighted records,
  468. mouse button 1 drag area,
  469. from the window display.
  470. .br
  471. Shift+Delete will restore the deleted records
  472. to the window display.
  473. .br
  474. &uarrow and &darrow keys will move the cursor.
  475. .br
  476. The scroll arrows, slider etc.
  477. and Page up or Page down keys may be
  478. used for browsing.
  479. :fnref refid=scroll
  480. :fn id=scroll.
  481. If the mouse button 1 is kept depressed then the lines or
  482. characters will scroll at 1 per second until the button is released.
  483. If the file is not read in then the file size is estimated
  484. by adding 1000 every time the internal array is filled.
  485. In this case the slider may be move to the end of the vertical
  486. scroll bar before end_of_file is reached and then move up.
  487. :efn
  488. .br
  489. Enter key will terminate an input string or refresh the screen.
  490. :h2 id=HELP.Help window
  491. This window may be invoked by the F1 key or the
  492. Help button on the command window.
  493. The window may be scrolled by :-
  494. :ol.
  495. :li.Page_up - scroll up 1 screen
  496. :li.Page_down - scroll down 1 screen
  497. :li.Home - scroll to the top of the Help data
  498. :li.End - scroll to the end of the Help data
  499. :li.F7 - scroll up ½. screen
  500. :li.F8 - scroll down ½. screen
  501. :li.The :hp2.Page_Up:ehp2. key word at the bottom of the window
  502. will scroll up 1 screen if selected by mouse button 1.
  503. :li.The :hp2.Page_Down:ehp2. key word at the bottom of the window
  504. will scroll down 1 screen if selected by mouse button 1.
  505. :eol.
  506. :p.The Help window may be cancelled by F3, the Cancel button
  507. or by Enter.
  508. :h2 id=ALLOC.Allocate window
  509. The File Allocate window will be created by the F4 key
  510. or from the Allocate menu item of the command window.
  511. The file may be selected from the List box or typed
  512. in to the Entry box.
  513. The drive may be changed by selecting &lbrk.a:&rbrk.
  514. from the List box or typing the drive letter followed
  515. by a '&colon.' e.g. 'a:' in the Entry box.
  516. The Path may be changed by selecting a directory name
  517. from the List box or by typing the path name in the
  518. Entry box e.g. 'C:\WORK'.
  519. The COMBO box will hold the last three allocate texts which have been
  520. entered.
  521. :p.
  522. A host file may be received and allocated by entering
  523. '>H&colon.fn ft fm PC_file_name';
  524. this string is passed to :hp2.Transfer_pgm:ehp2. (ALMCOPY)
  525. :i1.Transfer_pgm
  526. :i1.ALMCOPY
  527. &lbrc.without the '>' and with '/Q' appended&rbrc.
  528. which must be installed on the PS/2.
  529. If :hp2.Transfer_pgm:ehp2. fails the return code is displayed in
  530. red and the Entry text
  531. is left to be edited.
  532. If the requested file can not be allocated then
  533. the allocate window together with an error message will be displayed.
  534. :p.
  535. A host command may be executed by entering '<host command';
  536. this string is passed to :hp2.Command_pgm:ehp2.
  537. :i1.Command_pgm
  538. (OS2CMD) &lbrc.without the '<'&rbrc.
  539. :i1.OS2CMD
  540. which must be installed on the PS/2.
  541. :p.
  542. If the DosExecPgm call fails for either Transfer_pgm or
  543. Command_pgm then
  544. the error code is displayed in black.
  545. :nt
  546. If the Allocate window can not be contained in the main window
  547. then it will be made sysmodal; i.e. it must be closed before
  548. other windows can be used.
  549. The programme has been tested on an 8513
  550. :i1.8513
  551. screen and the default Window and Default_chr values
  552. may not be suitable for 8515 & 8514 screens.
  553. :i1.8514
  554. For 8515
  555. :i1.8515
  556. type screens a more suitable values for
  557. the Window & Default_chr keywords in the profile might be
  558. Window=(0,60,800,600) and Default_chr=(14,20),
  559. for example.
  560. :ent
  561. :h2 id=COMM.Command window
  562. This window may be invoked by the F6 key or the
  563. system menu icon :hp2.&alpha.:ehp2.
  564. &lbrc.Code Page 437; the icon will be &Oa.
  565. for Code Page 850 etc.&rbrc..
  566. The following commands may be issued :-
  567. :ol
  568. :li.+n - scroll down n lines
  569. :li.-n - scroll up n lines
  570. :li.<n - scroll left n characters
  571. :li.>n - scroll right n characters
  572. :li.&colon.n - go to record n
  573. :li./ - Search for string, not case dependent, from
  574. the current position in the file
  575. :li." - Search for string, as typed, from
  576. the current position in the file
  577. :li.' - Search for string, as typed, from
  578. the current position in the file but only in column 1
  579. :li.(s-e)>file_name - will copy records from the current
  580. file starting at s and ending with e to the file :hp1.file_name:ehp1.;
  581. :hp1.file_name:ehp1.
  582. may be 'LPT2' etc.,
  583. an existing file or a new file.
  584. If the end record number
  585. is '*' then the file is copied to end-of-file.
  586. :li.(s-e)- - will remove the records
  587. from the window.
  588. :li.&uarrow & &darrow. will cycle through the last
  589. 6 commands.
  590. :li.The
  591. Delete|Backspace key will delete a character from the input text.
  592. :eol.
  593. If the first character is invalid then the line will be filled
  594. red until it is deleted.
  595. F3 or ENTER will close the window and enter the command.
  596. The cancel button will remove the window;
  597. only this child window will receive input until it is terminated.
  598. :p.The :hp2.Flow:ehp2. button will switch
  599. on/off the drawing of flow lines.
  600. These lines are drawn for language files from 'Branch/GOTO'
  601. instructions to labels within the window.
  602. :p.
  603. The :hp2.Expand/Locate:ehp2.
  604. :spot XREFTEXT=Expand id=EXPAND.
  605. button will switch on/off the label expansion.
  606. The isolated label is expanded by locating
  607. the routine and opening a second
  608. window containing the code.
  609. The mouse button 1 must be pressed twice
  610. (double clicked)
  611. to cause the
  612. label to be located.
  613. A depth of 8 expand windows is allowed, and
  614. each window may be scrolled using the scroll bar,
  615. Page_Up, Page_Down,
  616. etc.
  617. The file must be read in to storage to use this facility.
  618. The Expand window may be closed by F3 or
  619. the :hp2.CALL:ehp2.
  620. menu item when the main window will remain at the CALL.
  621. If the :hp2.Routine:ehp2.
  622. menu is clicked then the main window will scroll to the
  623. expand text,
  624. i.e. the called code line may be passed back to the
  625. higher level window.
  626. The :hp2.Locate:ehp2.
  627. menu or F6
  628. will perform a case sensitive forward search
  629. from the current line+1.
  630. F5 will repeat the previous locate.
  631. If Button 2 is double clicked after moving to the expanded
  632. label then the window will be moved back to the previous
  633. line, i.e. return to point of call.
  634. The label searched for is succeeded by ":" for PLS and preceded
  635. by "FUNCTION" or "PROCEDURE" in PASCAL.
  636. The label searched for is preceded
  637. by "char", "extern", "far",
  638. "int",
  639. "long", "pascal", "pointer",
  640. "short",  "static" or
  641. "void"
  642. if the language type is C.
  643. The label searched for is preceded by "FUNCTION" or "SUBROUTINE"
  644. if the language is FORTRAN.
  645. :p.
  646. The :hp2.Mark:ehp2.
  647. button will switch on/off the drawing of user flow lines
  648. defined by the mouse button 1, or the setting of
  649. a marker.
  650. Up to 16 user lines or markers may be associated with the file.
  651. If mouse button 1 is double clicked then a marker will be
  652. associated with the line. If mouse button 1 is pressed once
  653. then it will delimit the ends of a flow line.
  654. The markers or flow lines remain associated with the
  655. record until F24 (Shift+F12) is pressed.
  656. The markers enable places within the file to be remembered
  657. and recalled by (Shift+F5).
  658. :p.The :hp2.Options:ehp2. menu may be selected to change the
  659. state of the following options
  660. :ol.
  661. :li.Transient Options - reset when a new file is allocated.
  662. :ol.
  663. :li.Comment Suppression - replace a block of comment lines by
  664. one highlighted line of &lrarrow..
  665. :li.Statement # - will display the current line number in the
  666. MINMAX menue.
  667. :li.Scale - place a scale line in the middle of the window.
  668. :li.Status - indicate in the top left of the window
  669. the current status of file reading etc.
  670. :eol.
  671. :li.Permanent Options - remain set when a new file is allocated.
  672. :ol.
  673. :li.Quiet - suppress the beep which indicates that the file
  674. is read in to storage.
  675. :li.Read_file_when_allocated - when the file has been allocated
  676. read it in to storage by attaching a subtask.
  677. The file may be browsed whilst this is in progress but the
  678. reading of the file in to storage will be slower.
  679. :li.Record_structure - for language files this will cause
  680. the calling structure to be recorded when the file has been
  681. read in.
  682. :li.Tab - recognize tab characters, X'09', and skip to n*8.
  683. :li.Proportional - use the font spacing for writing the
  684. characters rather than the character size; this will allow
  685. proportional fonts to be used however these are not suitable
  686. for displaying code.
  687. :li.Keyword - allow or suppress the keyword highlighting.
  688. :eol.
  689. :eol.
  690. The :hp2.Allocate:ehp2.
  691. menu will create the Allocate window, see :hdref refid=ALLOC..
  692. :p.
  693. The :hp2.Structure:ehp2.
  694. :i1.structure
  695. menu may be used to display the call structure for 370, 386
  696. assembler,
  697. PASCAL, PL/AS, C and FORTRAN
  698. programmes provided that the
  699. :hp2.Record_structure:ehp2.
  700. option
  701. is effective when the file is read in.
  702. For 370 assembler the structure is based on
  703. :hp1.BAL, BAS, DFHSTACK:ehp1.,
  704. for 386 assembler
  705. :hp1.CALL, PROC:ehp1.
  706. instructions,
  707. for PASCAL
  708. :hp1.PROCEDURE, FUNCTION:ehp1. ,
  709. keywords,
  710. for C
  711. :hp1.char, extern, far, int, long,
  712. pascal, pointer,
  713. short, static or void
  714. :ehp1.
  715. keywords,
  716. for PL/AS
  717. :hp1.PROC, CALL:ehp1.,
  718. keywords,
  719. for FORTRAN
  720. :hp1.FUNCTION, SUBROUTINE, CALL:ehp1., keywords
  721. &lbrc.Labels &ge.27 characters are ignored&rbrc..
  722. If an entry
  723. is selected from the :hp1.Programme Structure:ehp1
  724. List Box then the main window is scrolled to that line.
  725. The :hp1.Print:ehp1. button may be used to print the contents
  726. of the List box on LPT1.
  727. :i1.LPT1
  728. :p.
  729. The :hp2.Font:ehp2.
  730. :i1.Font
  731. menu may be used to dynamically change the font and
  732. character size; the change is not saved in the profile, see
  733. :hdref refid=FONT..
  734. .in 0
  735. :p.
  736. The :hp2.Colour:ehp2.
  737. :i1.Colour
  738. menu may be used to dynamically change the text colours.
  739. The language keyword colours must be specified in the profile.
  740. :h2 id=FONT.FONTs
  741. You can specify the initial/default font in the profile
  742. by using the :hp2.Font:ehp2. keyword in the profile,
  743. or you can change the font dynamically by invoking the Font window.
  744. :p.You can use the System Monospaced, Helvetica, Roman
  745. and Courier fonts
  746. but the Courier font and the System Monospaced
  747. are the only monospaced
  748. fonts supplied with OS/2.
  749. A monospaced font with point sizes 8,9,10 & 11 is supplied
  750. :ih1.font
  751. :i2.Point size
  752. with the ALPHA PACKAGE, which may also be used.
  753. See :hdref refid=instal. for the installation of the Alpha Fonts.
  754. :ih1.font
  755. :i2.Alpha
  756. The fonts are then requested by specifying
  757. :hp2.Font="Alpha",(10):ehp2. etc. in the profile.
  758. The font type or face_name and size
  759. may be selected by the :hp2.Font:ehp2.
  760. and :hp2.Character_size:ehp2. keywords in the profile.
  761. :i1.profile
  762. If a profile is not supplied then the "Alpha",(10)
  763. &lbrc.(16) for 8515/8516 screens&rbrc.
  764. font will be
  765. :i1.defaults
  766. used if it is installed and a character_size of (8,14)
  767. else the "System Monospaced",(10)
  768. font will be used
  769. and a character_size of (8,16).
  770. Outline fonts are not selectable.
  771. :p.
  772. If the point size is not specified then the font
  773. :ih1.font
  774. :i2.Point size
  775. is selected by using the :hp2.Character_size:ehp2..
  776. Point sizes (1/72") are :-
  777. Courier (8,10,12), Roman (8,10,12,14,18,24),
  778. Helvetica (8,10,12,14,18,24),
  779. System (8,10,12,
  780. &lbrc.8x8, 8x16,
  781. 9x20&rbrc.),
  782. "Alpha" (8&lbrc.8x12&rbrc.,
  783. 9&lbrc.9x10&rbrc.,
  784. 10&lbrc.8x14&rbrc.,
  785. 11&lbrc.11x12&rbrc.,
  786. 16&lbrc.12x16&rbrc.,
  787. 20&lbrc.12x20&rbrc.).
  788. :ih1.font
  789. :i2.Alpha
  790. If the point size is specified but an image font does not exist
  791. for this nominal point size then the outline font, if available,
  792. will be used and scaled by the Character_size.
  793. The font may be requested by face_name, e.g.
  794. Font="Alpha",(8).
  795. :i1.font
  796. :h2 id=PROF.Profile
  797. A profile may be specified defining the following keyword values :-
  798.  
  799. {Colours may take the values :-
  800. BLUE, DARKCYAN, BLACK, DARKBLUE, DARKPINK, DARKGRAY, DARKRED, DARKGREEN, BROWN,
  801. CYAN, RED, GREEN ,PINK, YELLOW, PALEGRAY, DEFAULT, WHITE}
  802.  
  803. :hp2.Text_colour:ehp2. specifies the colour of the window text.
  804. .br
  805. :hp2.Highlight_colour:ehp2 is used for the isolate function of
  806. mouse button 1.
  807. .br
  808. :hp2.Locate_colour:ehp2 is used for the argument for the locate function
  809. .br
  810. :hp2.Comment_colour:ehp2. The first comment_colour is used for
  811. comment line
  812. beginning, /*,
  813.  {, *, ;, C  and for the 'scale' background. The second
  814. comment_colour is  used
  815. for the compressed comment line and for the Clipboard highlight.
  816. .br
  817. :hp2.Branch_colour:ehp2. is used for 370, 386 branch instructions.
  818. .br
  819. :hp2.Expand_colour:ehp2. is used for the text in the label
  820. expansion window
  821. .br
  822. :hp2.Back_ground:ehp2. is use to specify the main window background
  823. colour.
  824. .br
  825. :hp2.File_type:ehp2. specifies the File types to be recognized.
  826. The string
  827. must be &le.64 characters
  828. and terminated by a comma. The first 6 types are used for :-
  829.    1 370 assembler
  830.    2 386 assembler
  831.    3 PASCAL, (Ada)
  832.    4 PL/S, PL/AS, PL/I  etc., (REXX)
  833.    5 C
  834.    6 FORTRAN
  835.   For REXX files use :- "A37,ASM,PAS,CMD,C,FOR," and replace the PLS entries
  836.   For Ada  files use :- "A37,ASM,ADA,PLS,C,FOR," and replace the PAS entries
  837. .br
  838. :hp2.Comment_start:ehp2. specifies the first two characters
  839. of the start
  840. of a comment. The
  841. string must be &le.12 characters.  The 6 pairs are used for :-
  842.    1 370 assembler
  843.    2 386 assembler
  844.    3 PASCAL, for Ada specify Comment_start="* ; --/*/*C "
  845.    4 PL/S, PL/AS etc.
  846.    5 C
  847.    6 FORTRAN
  848. .br
  849. :hp2.Precedent_C:ehp2. specifies the C language procedure keywords.
  850. The string
  851. must be <=64 characters and terminated by a comma.
  852. .br
  853. Precedent_C="char,extern,far,int,long,pascal,pointer,short,static,void,"
  854. .br
  855. :hp2.Language_colour:ehp2.  defines the highlight colours for key words.
  856. Up to 128 entries
  857. may be defined as follows :-
  858.  file_type,key_word,colour,scan_length
  859. and are terminated by .END, invalid entries are ignored.
  860. The key words must be
  861. &le.12 characters.
  862. .br
  863. :hp2.Font:ehp2.  may take the values :-
  864. Courier|System|Helvetica|Roman|Alpha<,Bold|Italic><,(Point_size)> or
  865. a face name
  866. may be specified e.g. Font="Alpha",(10)
  867. .br
  868. :hp2.Character_size:ehp2. specifies the (width,height) of the characters
  869. The character width is used to select the size of the Font
  870. if the  point size is
  871. not specified on the "Font" keyword.
  872. .br
  873. :hp2.Read_file:ehp2. takes the value Yes|No and specifies
  874. whether the file
  875. is to be read in after allocation.
  876. .br
  877. :hp2.Flow:ehp2. takes the value On|Off and specifies whether to
  878. draw flow
  879. lines from branch
  880. statements to labels.
  881. .br
  882. :hp2.Expand:ehp2. takes the value On|Off and specifies that
  883. Expand mode
  884. will  be effective
  885. once the file is read in.
  886. .br
  887. :hp2.Marker:ehp2. takes the value On|Off  and specifies whether mouse
  888. button 1 will define
  889. marker values.
  890. .br
  891. :hp2.Language:ehp2. takes the values :-
  892.  *<,Language> - determine the language from the file suffix.
  893. If a Language is all so given then this will be the default
  894. if the file type can not be found in "File_type", e.g. Language=*,PAS.  For PL/I use
  895. Language=PLS etc.
  896.  A37 - 370 assemble
  897.  ASM - 386 macro assemble
  898.  PAS - Pascal
  899.  PLS - PL/S or PL/AS etc.
  900.  C   - C language
  901.  FOR - FORTRAN
  902. .br
  903. :hp2.Default_chr:ehp2. specifies the default character width and height
  904. used for scaling the
  905. Allocate and Command dialogue boxes. The default value is
  906. (10,16)
  907. &lbrc.(14,20) for 8515/8516 screens&rbrc..
  908. :i1.8516
  909. :i1.8515
  910. .br
  911. :hp2.Window:ehp2. specifies the initial window position.
  912. If no profile is specified then
  913. Window=(0,4h,63.5w,26h)
  914. &lbrc.(0,120,1020,650) - for 8515/8516 screens&rbrc.
  915. is assumed where w and h are the Default_chr  width & height.
  916. .br
  917. :hp2.Quiet:ehp2. will suppress the beep on completion of file read.
  918. .br
  919. :hp2.Record_structure:ehp2. will record the CALL structure for 370 &
  920. 386 assembler, PASCAL,
  921. PL/AS, C and FORTRAN programmes, as the file is read in
  922. to memory.
  923. .br
  924. :hp2.Tab:ehp2. will use X'09' as the tab character to move to column n*8
  925. when file is read.
  926. .br
  927. :hp2.Proportional:ehp2. will use the Font character spacing rather than
  928. the Character width
  929. to place the characters.
  930. .br
  931. :hp2.Keyword:ehp2. will highlight the specified keywords.
  932. .br
  933. :hp2.Statement_number:ehp2. sets the display of the statement
  934. number On|Off
  935. .br
  936. :hp2.Command_pgm:ehp2. specifies the programme name invoked by <.
  937. .br
  938. :hp2.Transfer_pgm:ehp2. specifies the programme name invoked by >.
  939. .sk 2
  940. Alpha has within it (hard coded) routines which understand certain
  941. language
  942. features e.g. 370 Assembler labels start in start in column 1, procedures are
  943. invoked by BAL, BAS etc. and PASCAL procedures are preceded by FUNCTION
  944. or PROCEDURE etc..
  945. There are 6 languages :hp1.understood:ehp1.
  946. by Alpha, viz. :-
  947.  
  948.  1 370 Assembler
  949.  2 386 Assembler
  950.  3 PASCAL (Ada)
  951.  4 PL/AS (PL/I, REXX)
  952.  5 C
  953.  6 FORTRAN
  954.  
  955. Because Ada is similar to PASCAL and PL/I & REXX are similar to PL/AS,
  956. in respect to procedure calls etc., you can also analyse these languages
  957. by pretending they are type 3 & 4 respectively.
  958.  
  959. However, you can interpret any language/file type (use the
  960. highlighting
  961. facility) by suppling extra definitions in a profile which is specified as a
  962. parameter to Alpha e.g.
  963.  
  964.   START ALPHA /p profile_name
  965.  
  966. A sample profile (ALPHA.PRF) is provided in the package, which includes
  967. comments explaining the use of the keywords. This may be edited to
  968. change/add
  969. a file extension and highlighting by modifying the following keywords :-
  970.  
  971.  :hp2.File_type:ehp2. - list of file extensions up to 64 characters
  972.  :hp2.Comment_start:ehp2. - list of comment start character pairs
  973.                             (blank is ignore) up to 12 characters
  974.  :hp2.Language_colour:ehp2. - list of keyword definitions
  975.                    file_type,keyword,colour,maximum scan length
  976.  
  977. e.g. to add language XYZ
  978.  
  979. File_type="A37,ASM,PAS,PLS,C,FOR,XYZ,"
  980. .br
  981. Language_colour
  982. .br
  983. XYZ,FIRST_keywd,GREEN,72
  984. .br
  985. XYZ,Next_key ,RED,72
  986. .br
  987. .li
  988. .END
  989.  
  990. Only the first 6 language types will allow the Expand, Flow and
  991. Structure
  992. operations to be effective. This implies that you could not use all the
  993. features of Alpha for a new language which did not have the call/label
  994. syntax of one of the existing languages.
  995.  
  996. The Alpha programme scans the keyword table in the order specified in
  997. the
  998. profile to the comment start in the record for a maximum of 16 found
  999. entries. A keyword_found array is created and the text is written by
  1000. running down the array from the last to the first so if the entries
  1001. in the profile were in the order :-
  1002.  
  1003. PLS, END LOOP,GREEN,72
  1004. .br
  1005. PLS, END,DARKCYAN,72
  1006.  
  1007. Then the 'END LOOP' would overwrite the 'END'; spaces are significant.
  1008. .pa
  1009. The following is the sample profile which may be edited
  1010. to change the startup values
  1011. :- :hp2.ALPHA.PRF:ehp2.
  1012. :i1.changing programme defaults
  1013. :i1.profile
  1014. .* imbed of ALPHA.PRF
  1015. :xmp keep=10.
  1016. * This is the default profile, ALPHA.PRF,  for the ALPHA programme V1.7.
  1017. *
  1018. *  ###################################################################
  1019. *  # (C) Copyright International Business Machines Corporation 1993. #
  1020. *  #                    All rights Reserved.                         #
  1021. *  ###################################################################
  1022. *
  1023. * The case is significant. Invalid records are ignored.
  1024. *
  1025. * Lionel de Lambert, 12 Dec. 1990
  1026. *
  1027. * The colours are :-
  1028. * BLUE,DARKCYAN,BLACK,DARKBLUE,DARKPINK,DARKGRAY,DARKRED,DARKGREEN,
  1029. * BROWN,CYAN,RED,GREEN,PINK,YELLOW,PALEGRAY,DEFAULT,WHITE
  1030. Text_colour=BLUE
  1031. * Highlight_colour is used for the isolate function of mouse button 1.
  1032. * Default - RED.
  1033. Highlight_colour=DARKRED
  1034. * Locate_colour is used for the argument for the locate function
  1035. * which may be used by mouse button 2.
  1036. * Default - GREEN.
  1037. Locate_colour=GREEN
  1038. * The first comment_colour is used for comment lines beginning, /*, {, *, ;, C
  1039. * and for the 'scale' background. The second comment_colour is
  1040. * used for the compressed comment line and for the Clipboard highlight
  1041. * Default - DARKCYAN,PALEGRAY
  1042. Comment_colour=DARKCYAN,PALEGRAY
  1043. * Branch_colour is used for 370, 386 branch instructions
  1044. * Default - BROWN.
  1045. Branch_colour=BROWN
  1046. * Expand_colour is used for the text in the label expansion window.
  1047. * Default - DARKBLUE.
  1048. Expand_colour=DARKBLUE
  1049. * Back_ground colour - default - BACKGROUND
  1050. Back_ground=BACKGROUND
  1051. *
  1052. * File_type specifies the File types to be recognized.
  1053. * The string must be <=64 characters and terminated by a comma.
  1054. * The first 6 types are used for :-
  1055. *   1 370 assembler
  1056. *   2 386 assembler
  1057. *   3 PASCAL, (Ada)
  1058. *   4 PL/S, PL/AS, PL/I  etc., (REXX)
  1059. *   5 C
  1060. *   6 FORTRAN
  1061. * For REXX files use :- "A37,ASM,PAS,CMD,C,FOR," and replace the PLS entries
  1062. * For Ada  files use :- "A37,ASM,ADA,PLS,C,FOR," and replace the PAS entries
  1063. * The default is :- "A37,ASM,PAS,PLS,C,FOR,LST,DOC,"
  1064. File_type="A37,ASM,PAS,PLS,C,FOR,LST,DOC,..,"
  1065. *
  1066. * Comment_start specifies the first two characters of the start of
  1067. * a comment. The string must be <=12 characters.
  1068. * The 6 pairs are used for :-
  1069. *   1 370 assembler
  1070. *   2 386 assembler
  1071. *   3 PASCAL, for Ada specify Comment_start="* ; --/*/*"
  1072. *   4 PL/S, PL/AS etc.
  1073. *   5 C
  1074. *   6 FORTRAN
  1075. * The default is :- "* ; { /*/*C "
  1076. Comment_start="* ; { /*/*C "
  1077. *
  1078. * Precedent_C specifies the C language procedure keywords. The string
  1079. * must be <=64 characters and terminated by a comma.
  1080. Precedent_C="char,extern,far,int,long,pascal,pointer,short,static,void,"
  1081. *
  1082. * Language_colour - defines the highlight colours for key words
  1083. * Up to 128 entries may be defined as follows :-
  1084. * file_type,key_word,colour,scan_length
  1085. * and are terminated by '.END', invalid entries are ignored.
  1086. * The key words must be <=12 characters.
  1087. Language_colour
  1088. A37, DFHSTACK ,CYAN,32
  1089. A37, USING ,DARKPINK,32
  1090. A37, DROP ,DARKPINK,32
  1091. A37, SPACE ,PALEGRAY,32
  1092. ASM, PROC ,CYAN,32
  1093. ASM, SEGMENT ,CYAN,32
  1094. ASM, CALL ,PINK,32
  1095. ASM, call ,PINK,32
  1096. PAS,PROCEDURE ,CYAN,72
  1097. PAS,FUNCTION ,CYAN,72
  1098. PAS, DO ,DARKCYAN,72
  1099. PAS, BEGIN ,DARKCYAN,72
  1100. PAS, END,DARKCYAN,72
  1101. PAS, FOR ,CYAN,72
  1102. PAS, REPEAT ,CYAN,72
  1103. PAS, UNTIL ,CYAN,72
  1104. PAS, WHILE ,CYAN,72
  1105. PAS, CASE ,CYAN,72
  1106. PAS, IF ,DARKPINK,72
  1107. PAS, THEN ,DARKPINK,72
  1108. PAS, ELSE ,DARKPINK,72
  1109. PAS, GOTO ,BROWN,72
  1110. PAS, OR ,BLACK,72
  1111. PAS, AND ,BLACK,72
  1112. PAS, RETURN,BROWN,72
  1113. PAS, BREAK,BROWN,72
  1114. PAS, CYCLE,BROWN,72
  1115. * For Ada (.ADA) files replace the PAS entries by the ADA entries
  1116. * ADA,procedure ,CYAN,72
  1117. * ADA,function ,CYAN,72
  1118. * ADA,declare ,PINK,72
  1119. * ADA,delay ,GREEN,72
  1120. * ADA,subtype ,PINK,72
  1121. * ADA,range ,PINK,72
  1122. * ADA,case ,PINK,72
  1123. * ADA,select ,DARKPINK,72
  1124. * ADA,record ,PINK,72
  1125. * ADA,begin ,DARKCYAN,72
  1126. * ADA,do ,DARKCYAN,72
  1127. * ADA,end loop,CYAN,72
  1128. * ADA,end if,DARKRED,72
  1129. * ADA,end case,PINK,72
  1130. * ADA,end select,DARKPINK,72
  1131. * ADA,end record,PINK,72
  1132. * ADA,end,DARKCYAN,72
  1133. * ADA, elsif ,DARKRED,72
  1134. * ADA, else ,DARKRED,72
  1135. * ADA, if ,DARKRED,72
  1136. * ADA,when others ,DARKGREEN,72
  1137. * ADA,when ,CYAN,72
  1138. * ADA,with ,DARKRED,72
  1139. * ADA,for ,CYAN,72
  1140. * ADA,loop ,CYAN,72
  1141. * ADA,return ,BROWN,72
  1142. * ADA,exit when ,BROWN,72
  1143. * ADA,exit ,BROWN,72
  1144. * ADA,goto ,BROWN,72
  1145. * ADA,private ,DARKRED,72
  1146. * ADA,type ,DARKRED,72
  1147. * ADA,generic ,DARKRED,72
  1148. PLS,PROC ,CYAN,72
  1149. PLS, BEGIN ,DARKCYAN,72
  1150. PLS, END,DARKCYAN,72
  1151. PLS, DO ,DARKCYAN,72
  1152. PLS, DO;,DARKCYAN,72
  1153. PLS, IF ,DARKPINK,72
  1154. PLS, THEN ,DARKPINK,72
  1155. PLS, ELSE ,DARKPINK,72
  1156. PLS, SELECT,CYAN,72
  1157. PLS, WHEN,CYAN,72
  1158. PLS, UNTIL,CYAN,72
  1159. PLS, WHILE,CYAN,72
  1160. PLS, RETURN,BROWN,72
  1161. PLS, GOTO ,BROWN,72
  1162. PLS, GO TO ,BROWN,72
  1163. PLS, RETURN,BROWN,72
  1164. PLS, LEAVE,BROWN,72
  1165. PLS, CALL ,PINK,72
  1166. * For REXX (.CMD) files replace the PLS entries by the CMD entries
  1167. * CMD,SAY ,DARKCYAN,72
  1168. * CMD,PULL ,DARKCYAN,72
  1169. * CMD,PARSE ,DARKCYAN,72
  1170. * CMD,EXIT ,DARKCYAN,72
  1171. * CMD,END,DARKCYAN,72
  1172. * CMD,DO ,DARKCYAN,72
  1173. * CMD,IF ,DARKPINK,72
  1174. * CMD,THEN ,DARKPINK,72
  1175. * CMD,ELSE ,DARKPINK,72
  1176. * CMD,SELECT,CYAN,72
  1177. * CMD,WHEN,CYAN,72
  1178. * CMD,UNTIL,CYAN,72
  1179. * CMD,WHILE,CYAN,72
  1180. * CMD,RETURN,BROWN,72
  1181. * CMD,GOTO ,BROWN,72
  1182. * CMD,RETURN,BROWN,72
  1183. * CMD,LEAVE,BROWN,72
  1184. * CMD,CALL ,PINK,72
  1185. * CMD,say ,DARKCYAN,72
  1186. * CMD,pull ,DARKCYAN,72
  1187. * CMD,parse ,DARKCYAN,72
  1188. * CMD,exit ,DARKCYAN,72
  1189. * CMD,end,DARKCYAN,72
  1190. * CMD,do ,DARKCYAN,72
  1191. * CMD,if ,DARKPINK,72
  1192. * CMD,then ,DARKPINK,72
  1193. * CMD,else ,DARKPINK,72
  1194. * CMD,select,CYAN,72
  1195. * CMD,when,CYAN,72
  1196. * CMD,until,CYAN,72
  1197. * CMD,while,CYAN,72
  1198. * CMD,return,BROWN,72
  1199. * CMD,goto ,BROWN,72
  1200. * CMD,return,BROWN,72
  1201. * CMD,leave,BROWN,72
  1202. * CMD,call ,PINK,72
  1203. C, if ,DARKCYAN,72
  1204. C, else ,DARKCYAN,72
  1205. C, while,CYAN,72
  1206. C, for ,CYAN,72
  1207. C, do ,CYAN,72
  1208. C, switch,CYAN,72
  1209. C, case,DARKPINK,72
  1210. C, goto ,BROWN,72
  1211. C, break,BROWN,72
  1212. C, continue,BROWN,72
  1213. C, return,BROWN,72
  1214. FOR,SUBROUTINE ,PINK,72
  1215. FOR,FUNCTION ,PINK,72
  1216. FOR,RETURN ,BROWN,72
  1217. FOR,GO TO ,BROWN,72
  1218. FOR,CALL ,PINK,72
  1219. FOR,STOP ,RED,72
  1220. FOR,END ,BLACK,72
  1221. FOR,DO ,DARKGREEN,72
  1222. FOR,CONTINUE ,DARKGREEN,72
  1223. LST, ALPHA,RED,80
  1224. DOC, Alpha,DARKRED,80
  1225. .li
  1226. .END
  1227. *
  1228. * The Font may take the values :-
  1229. * Font=Courier|System|Helvetica|Roman|Alpha<,Bold|Italic><,(Point_size)>
  1230. * or a face name may be specified e.g. Font="Alpha",(10)
  1231. * The default font is 'System Monospaced' unless the
  1232. * "Alpha" font is installed.
  1233. * The font point sizes (1/72") are :-.
  1234. * "Alpha"   - 8,9,10,11,16,20
  1235. * Courier   - 8,10,12
  1236. * Helvetica - 8,10,12,14,18,24
  1237. * Roman     - 8,10,12,14,18,24
  1238. * System    - 8,10,12
  1239. Font=System,(10)
  1240. *
  1241. * The character size specifies the (width,height) of the characters.
  1242. * The character width is used to select the size of the Font if the
  1243. * point size is not specified on the "Font" keyword.
  1244. * The default is (8,14) for the Alpha font and (8,16) for the System.
  1245. Character_size=(8,16)
  1246. *
  1247. * Read_file takes the value Yes|No and specifies whether the file
  1248. * is to be read in after allocation - default - Yes.
  1249. Read_file=Yes
  1250. *
  1251. * Flow takes the value On|Off - default - On.
  1252. Flow=On
  1253. *
  1254. * Expand takes the value On|Off and specifies that Expand mode will
  1255. * be effective once the file is read in.
  1256. * Default - Off.
  1257. Expand=Off
  1258. *
  1259. * Marker takes the value On|Off - default - Off.
  1260. Marker=Off
  1261. *
  1262. * Language takes the values :-
  1263. * *<,Language> - determine the language from the file suffix.
  1264. *    If a Language is also given then this will be the default if the
  1265. *    file type can not be found in "File_type", e.g. Language=*,PAS.
  1266. * For PL/I use Language=PLS etc.
  1267. * A37 - 370 assemble
  1268. * ASM - 386 macro assemble
  1269. * PAS - Pascal
  1270. * PLS - PL/S or PL/AS etc.
  1271. * C   - C language
  1272. * FOR - FORTRAN
  1273. * default - *,LST
  1274. Language=*,DOC
  1275. *
  1276. * Default_chr=(w,h) - specifies the default character width and height
  1277. * used for scaling the Allocate and Command dialogue boxes -
  1278. * the default value is (10,16), for 8515/8516 screens the default value
  1279. * is (14,20)
  1280. Default_chr=(10,16)
  1281. *
  1282. * Window=(x,y,cx,cy) - specifies the initial window position.
  1283. * A suitable value for 8515/8516 screens may be - (0,60,800,600).
  1284. * If no profile is specified then Window=(0,4h,63.5w,26h) is assumed for
  1285. * 8513 screens where w and h are the 'Default_chr' width & height.
  1286. * default - (0,60,635,420) for 8513 and (0,120,1020,650) for 8515 screens.
  1287. Window=(0,60,635,420)
  1288. *
  1289. * Quiet=Yes|No - will suppress the beep on completion of file read
  1290. * default - Yes.
  1291. Quiet=Yes
  1292. *
  1293. * Record_structure=On|Off - will record the CALL structure for 370
  1294. * & 386 assembler, PASCAL PL/AS, C and FORTRAN programmes, as the file is
  1295. * read in to memory.
  1296. * Default - On.
  1297. Record_structure=Off
  1298. *
  1299. * Tab=On|Off - will use X'09' as tab to n*8 when file is read, default - On
  1300. Tab=Off
  1301. *
  1302. * Proportional=On|Off - will use the Font character spacing rather
  1303. * than the Character width to place the characters, default - On
  1304. Proportional=On
  1305. *
  1306. * Keyword=On|Off - will highlight the specified keywords - default - On
  1307. Keyword=On
  1308. *
  1309. * Statement_number sets the display of the statement number On|Off
  1310. * default Statement_number=On
  1311. Statement_number=Off
  1312. *
  1313. * Command_pgm specifies the programme name invoked by '<' - default OS2CMD
  1314. Command_pgm="OS2CMD"
  1315. *
  1316. * Transfer_pgm specifies the programme name invoked by '>' -
  1317. * default ALMCOPY
  1318. Transfer_pgm="ALMCOPY"
  1319. *
  1320. * End of profile for ALPHA programme
  1321. :exmp.
  1322. .***************** end of ALPHA ********************************
  1323. .if &T ne CPTOOLS .go lab2
  1324. .pa
  1325. :h2.OS2PRT
  1326. For those people
  1327. who would like to print their OS/2 compiler listing files on the
  1328. 370 main frame printers I have put a CMS programme,
  1329. OS2PRT, on the CPTOOLS disk which will reformat the
  1330. listing file using tab characters etc.
  1331. The file should be transferred from the PS/2 to CMS
  1332. using the communications manager file transfer
  1333. with default LRECL, EBCDIC translation and no CR/LF
  1334. splitting.
  1335. .sk
  1336. :hp0.Syntax:-:ehp0.
  1337. .sk
  1338.  OS2PRT In It Im <On Ot Om> | ?
  1339. .sk
  1340. Where 'In It Im' is the input file and 'On Ot Om' is
  1341. the output file to be printed on the 370 (LRECL 133) with
  1342. carriage control characters.
  1343. The default output file is
  1344. 'In OS2PRT Z'.
  1345. ...lab2
  1346. .sk 2
  1347. :hp3.
  1348. Lionel de Lambert - WINVMC(HPWY) -
  1349. &date.
  1350. :ehp3.
  1351. .*
  1352. :APPENDIX
  1353. :h1.OS/2 V2.0 Multi-document browse
  1354. :i1.ALPHA2
  1355. :i1.Multi-document browse
  1356. :i1.OS/2 V2.0
  1357. A simple 32 bit multi-document browse version of Alpha
  1358. has been written using
  1359. :hp2.C Set/2:ehp2. and :hp2.MASM V6.0:ehp2..
  1360. The programme 'ALPHA2 EXEBIN' should be copied to an OS/2 V2.0
  1361. directory as ALPHA2.EXE. This is a simple
  1362. multiple document file browse with highlighting of keywords
  1363. for language types :- A37,ASM,PAS,PLS,C,FOR,..
  1364. :i1.FORTRAN
  1365. :p.The syntax of Alpha2 is :-
  1366. .sk
  1367.   START ALPHA2 &lbrk.file&rbrk. /p &lbrk.profile name - default ALPHA.PRF&rbrk
  1368. .sk
  1369. The :hp2.Language_colour:ehp2.,
  1370. :hp2.File_type:ehp2. and :hp2.Window:ehp2.
  1371. keywords are the only ones
  1372. which are recognized from the profile.
  1373. :p.The :hp2.Allocate:ehp2. dialogue box is used to request
  1374. a file to be read. If the drive letter is changed then the
  1375. OK button should be used to refresh the List boxes.
  1376. &lbrc.The maximum number of child windows is 16.&rbrc.
  1377. :p.The :hp2.Command:ehp2. dialogue box may be used to issue a search
  1378. command e.g.
  1379. :ul.
  1380. :li./s - search for string s - not case sensitive.
  1381. :li."s - search for string s asis.
  1382. :li.&colon.n - go to line n.
  1383. :eul
  1384. The COMBO box will hold the previous three commands entered.
  1385. :p.The :hp2.Options:ehp2. menue may be used to set the following
  1386. options :-
  1387. :ul.
  1388. :li.Statement No. - display the statement number in the MINMAX
  1389. menue.
  1390. :li.Tab - expand the record by using X'09' characters to round
  1391. to columns n*8.
  1392. :li.Keyword - highlight the keywords.
  1393. :li.Include - For the files MASM, PAS, C read the include
  1394. files specified by :-
  1395. include file_name, {&dollar.INCLUDE : 'file_name' },
  1396. #include <file_name>, respectively when expanding a call etc.
  1397. &lbrc.:hp1.The current directory together with the paths
  1398. defined by the :hp2.INCLUDE:ehp2. environment variable
  1399. will be searched. The total number of open files/windows
  1400. is limited to 16
  1401. so the include nesting can not exceed 16-the number of open windows.
  1402. :ehp1.&rbrc.
  1403. :eul.
  1404. :p.The :hp2.Font:ehp2. and the :hp2.Colour:ehp2.
  1405. dialogue boxes may be used to change and remember the font
  1406. and colours of the text, comments etc.
  1407. :p.The :hp2.Print:ehp2. dialogue box will allow you to
  1408. print the specified record range to one of :-
  1409. .br
  1410. LPT1, LPT2, LPT3.
  1411. .br
  1412. The default record range is the whole file.
  1413. :p.The :hp2.Window:ehp2. menu may be used to close all child
  1414. windows or to arrange them so that the title text is visible,
  1415. :hp1.Cascade:ehp1., or so that a partial view of each child may
  1416. be seen, :hp1.Tile:ehp1..
  1417. :p.The mouse button 1 will highlight a string and mouse button 2
  1418. will cause a search for this string from the current line +1.
  1419. If mouse button 1 is clicked twice on a label then a search
  1420. from the top of the file is made for the label definition or
  1421. procedure entry and a secondary window is opened, :hp1.Expand:ehp1..
  1422. :i1.Expand
  1423. :P.:hp2.F1:ehp2. will open the Help window.
  1424. :P.:hp2.F2:ehp2. will open the Font dialogue box.
  1425. :P.:hp2.F3:ehp2. will terminate the programme.
  1426. :P.:hp2.F4:ehp2. will open the Allocate file dialogue box.
  1427. :P.:hp2.F5:ehp2. will repeat the previous command.
  1428. :P.:hp2.F6:ehp2. will open the Command dialogue box.
  1429. :p.:hp2.F7:ehp2. will scroll the window up 1/2 a screen.
  1430. :p.:hp2.F8:ehp2. will scroll the window down 1/2 a screen.
  1431. :p.:hp2.F14:ehp2. (F2+Shift) will open the Colour dialogue box.
  1432. :p.:hp2.Page_Up:ehp2. will scroll up 1 screen.
  1433. :p.:hp2.Page_Down:ehp2. will scroll down 1 screen.
  1434. :p.:hp2.Home:ehp2. will scroll to the top of the file.
  1435. :p.:hp2.End:ehp2. will scroll to the end of the file.
  1436. :p.The :hp2.Delete+Ctrl:ehp2. keys will suppress the lines
  1437. highlighted by the button 1 drag area from the display.
  1438. :p.The :hp2.Delete+Shift:ehp2. keys will restore the lines
  1439. previously hidden.
  1440. :p.A file may be allocated by dragging mouse button 2 with
  1441. the Ctrl key pressed on to the Alpha window.
  1442. .* end of ALPHA2 OS/2 V2.0
  1443. .*
  1444. .if &T ne CPTOOLS .go lab7
  1445. .*    ### Windows V3.1 support ###
  1446. :h1.Windows V3.1
  1447. A version of Alpha has been written using Borland's
  1448. TURBO PASCAL for Windows.
  1449. The programme 'ALPHAW EXEBIN' should be copied to a WINDOWS V3.1
  1450. directory as ALPHA.EXE. This is a simple version of Alpha which
  1451. is a multiple document file browse with highlighting of keywords
  1452. for language types :- a37,asm,pas,pls,c.
  1453. :p.The mouse button 1 will highlight a string and mouse button 2
  1454. will cause a search for this string from the current line +1.
  1455. :p.
  1456. Files may be :hp2.Drag/Drop:ehp2.ed from the file manager.
  1457. :p.The font :hp2.Alphaf:ehp2. may be installed by
  1458. using the Windows control
  1459. panel.
  1460. The file 'ALPHAF FONBIN' should be copied to a Windows
  1461. directory as 'ALPHAF.FON' and installed by use of the Control panel.
  1462. If this font is installed it will be used instead of the
  1463. system fixed font.
  1464. :p.
  1465. The following menu items may be used :-
  1466. :dl
  1467. :dt.File
  1468. :dd.
  1469. This will allocate a new file or exit the programme.
  1470. :dt.Search
  1471. :dd.Will locate for the specified string in the currently active child
  1472. window.
  1473. :dt.Printer
  1474. :dd.This will print a range of records to LPT1 from the currently active
  1475. window. Also for the IBM Proprinter III the condensed internal font
  1476. may be set by
  1477. :hp2.Configure:ehp2., or for the HP 550C deskjet printer the
  1478. internal fonts may be selected.
  1479. :dt.Window
  1480. :dd.This will allow the
  1481. child windows to be tiled, cascaded or closed.
  1482. :edl.
  1483. .*
  1484. .* end of Windows V3.1 version of ALPHA
  1485. .*
  1486. :h1.ALPHA modules and routines
  1487. :UL.
  1488. :LI.ALPHA - PASCAL main programme
  1489. :UL.
  1490. :LI.Main programme - analyse profile
  1491. :LI.Anal_parm - analayse parameter information
  1492. :LI.Reset_val - reset the global variables
  1493. :EUL.
  1494. :LI.ALPHA.INC - MASM language include
  1495. :LI.ALPHAB - PASCAL routines
  1496. :UL.
  1497. :LI.Read_in_file - read records in separate thread
  1498. :LI.fill_array - fill the 200 record browse array
  1499. :LI.top_file - move to top of file
  1500. :LI.scrolldown - scroll down n lines
  1501. :LI.scrollup - scroll up n lines
  1502. :LI.scrollleft - scroll left n characters
  1503. :LI.scrollright - scroll right n characters
  1504. :LI.Assign_file - allocate a file
  1505. :LI.Locate_from - scan file for string
  1506. :EUL.
  1507. :LI.ALPHAC - C language procedures
  1508. :UL.
  1509. :LI.Clipbrd_Get - Get data from the clip board
  1510. :LI.Clipbrd_Set - pass data to the clip board
  1511. :EUL.
  1512. :LI.ALPHAI - PASCAL language include
  1513. :LI.ALPHAP - PASCAL main window procedure
  1514. :UL.
  1515. :LI.Anal_cmd - analyse a command from the command window
  1516. :LI.Goto_line - go to line n in file
  1517. :LI.Cmd_win - Create a command window
  1518. :LI.File_win - Create the allocate window
  1519. :LI.ALPHAP - main window procedure
  1520. :EUL.
  1521. :LI.ALPHAS - PASCAL main window handler
  1522. :UL.
  1523. :LI.Branch - Find Branch instruction start
  1524. :LI.Cmt_pos - find start of comment in record
  1525. :LI.Draw_flow - draw the flow lines from branches to labels
  1526. :LI.SCREEN - write the main window text etc.
  1527. :LI.help_panel - Create the help panel
  1528. :EUL.
  1529. :LI.ALPHAT - MASM - Change colour dialogue code
  1530. :UL.
  1531. :LI.Colour_proc - Procedure for colour dialogue window.
  1532. :LI.Create_colour - Create the colour dialogue window.
  1533. :EUL.
  1534. :LI.ALPHAU - MASM - Expand window procedures
  1535. :UL.
  1536. :LI.Add_stmt - Add menu item to MINMAX menu
  1537. :LI.Del_stmt - remove menu item in MINMAX menu
  1538. :LI.E_FUNC - Expand window function
  1539. :LI.Expand_Code - Create Expand window
  1540. :LI.Find_label - search record vector for requested label
  1541. :LI.L_Func - Locate Dialog procedure for Expand window
  1542. :LI.Set_stmt - update item in MINMAX menu
  1543. :EUL.
  1544. :LI.ALPHAV - MASM - Read file routines
  1545. :UL.
  1546. :LI.Get_file - Read file into storage and build record vector
  1547. :LI.Get_record - copy record from storage block using vector
  1548. :LI.Print_rec - write records to LPT1
  1549. :EUL.
  1550. :LI.ALPHAW - MASM - PM interfaces
  1551. :UL.
  1552. :LI.ALPHAW - main PM-PASCAL interface
  1553. :LI.WNDFUNC - main window PASCAL interface
  1554. :LI.C_FUNC - command window function
  1555. :LI.A_FUNC - Allocate window procedure
  1556. :i1.allocate
  1557. :LI.H_FUNC - Help window procedure
  1558. :LI.Select_font - select a font
  1559. :i1.font
  1560. :EUL.
  1561. :LI.ALPHAX - MASM non-PM routines
  1562. :UL.
  1563. :LI.Alphabet - check for alphabetic character
  1564. :LI.Cmt_start - return the start position of the comment in a record
  1565. :LI.Commnt - check for a comment records
  1566. :LI.Compare_string - Compare string against list of key words
  1567. :LI.Convert - convert an integer to a string
  1568. :LI.Copy_str - copy string and make upper case
  1569. :LI.End_cmt - Find end of comment on record
  1570. :LI.find_key - search key word tables for key
  1571. :LI.find_string - scan record for string
  1572. :LI.Hex_string - convert data to hex characters
  1573. :LI.Host_cmd - invoke OS2CMD
  1574. :LI.Host_file - invoke ALMCOPY
  1575. :LI.Inquire_key - get data from Lex array of key words
  1576. :LI.Insert_string - insert a string in another string
  1577. :LI.Isolate - pick out an alphabetic string
  1578. :LI.Number - convert a string to an integer
  1579. :LI.Rotate_double - re-order bytes in double word
  1580. :LI.Set_key - set data for Lex array
  1581. :LI.Set_ptr - set the record_ptr to the records array
  1582. :LI.Tab_copy - If Tab=TRUE then copy using tab characters
  1583. :EUL.
  1584. :LI.ALPHAY - MASM structure routines
  1585. :i1.structure
  1586. :UL
  1587. :LI.Add_label - add a label in to memory
  1588. :LI.Display_Struc - Create the Structure window
  1589. :LI.Find_label_S - search string for label and call Add_label
  1590. :LI.Reset_Struc - reset memory, i.e. clear storage
  1591. :LI.Search_Label - scan record for label
  1592. :LI.S_Func - Structure window procedure
  1593. :LI.Thread_term - Thread termination routine
  1594. :EUL.
  1595. :LI.ALPHAZ - MASM Font procedures
  1596. :i1.Font
  1597. :UL
  1598. :LI.Font_Proc - Dialogue font window procedure
  1599. :LI.Select_font - Internal select a font procedure
  1600. :LI.Set_Font - Create Font Dialogue window
  1601. :EUL.
  1602. :EUL.
  1603. .***************** Routines in ALPHA2 *****************
  1604. :h1.ALPHA2 modules and routines
  1605. :UL.
  1606. :li.ALPHA1.C
  1607. :ul
  1608. :li.MyWindowProc
  1609. :li.PrintError
  1610. :li.AbortAlpha
  1611. :li.FileDialog
  1612. :li.CommandDialog
  1613. :li.FONTDialog
  1614. :li.COLOURDialog
  1615. :li.Fill_file_lst
  1616. :eul
  1617. :li.ALPHA2.C
  1618. :ul
  1619. :li.Create_ExpChild
  1620. :li.Find_Exp_label
  1621. :li.Get_Include
  1622. :li.Profile
  1623. :li.Create_child
  1624. :li.ChildProc
  1625. :eul
  1626. :li.ALPHA3.ASM
  1627. :ul
  1628. :li.Cmt_pos
  1629. :li.Compare_string
  1630. :li.file_record
  1631. :li.Find_Include
  1632. :li.Find_string
  1633. :li.fnd_nonblk
  1634. :li.fnd_blk
  1635. :li.Isolate
  1636. :li.Prev_lab
  1637. :li.Tab_copy
  1638. :li.Upper_case
  1639. :eul
  1640. :li.ALPHA4.C
  1641. :ul
  1642. :li.Create_Help
  1643. :li.HelpProc
  1644. :eul
  1645. :eul.
  1646. .***************** Map of the Alpha module ************
  1647. :h1.ALPHA MAP (OS/2 V1.3)
  1648. :xmp keep=10
  1649.  
  1650.   ALPHA
  1651.  
  1652.   Start     Length     Name                   Class
  1653.   0001:0000 02CDDH     ALPHA_TEXT             CODE
  1654.   0001:2CDE 0104CH     ALPHA_B_TEXT           CODE
  1655.   0001:3D2A 00288H     ALPHAC_TEXT            CODE
  1656.   0001:3FB2 0526CH     ALPHA_P_TEXT           CODE
  1657.   0001:921E 03FF2H     ALPHA_S_TEXT           CODE
  1658.   0001:D210 0035FH     CODET                  CODE
  1659.   0001:D570 0177CH     CODEU                  CODE
  1660.   0001:ECEC 003B5H     CODEV                  CODE
  1661.   0002:0000 034BCH     CODEW                  CODE
  1662.   0002:34BC 00875H     CODEX                  CODE
  1663.   0002:3D32 012E4H     CODEY                  CODE
  1664.   0002:5016 007CDH     CODEZ                  CODE
  1665.   0002:57E4 00185H     DUMP                   CODE
  1666.   0002:596A 05419H     _TEXT                  CODE
  1667.   0002:AD84 00000H     C_ETEXT                ENDCODE
  1668.   0003:0000 00000H     __FBSS                 FAR_BSS
  1669.   0003:0000 09A71H     H_DATA                 H_DAT
  1670.   0004:0000 0F16EH     S_DATA                 S_DAT
  1671.   0005:0000 00042H     NULL                   BEGDATA
  1672.   0005:0042 01F24H     _DATA                  DATA
  1673.   0005:1F66 00000H     COMADS                 DATA
  1674.   0005:1F66 01972H     DATA                   DATA
  1675.   0005:38D8 00000H     XIB                    DATA
  1676.   0005:38D8 00004H     XI                     DATA
  1677.   0005:38DC 00000H     XIE                    DATA
  1678.   0005:38DC 00000H     XCB                    DATA
  1679.   0005:38DC 00004H     XC                     DATA
  1680.   0005:38E0 00000H     XCE                    DATA
  1681.   0005:38E0 00000H     P1IB                   DATA
  1682.   0005:38E0 00004H     P1I                    DATA
  1683.   0005:38E4 00000H     P1IE                   DATA
  1684.   0005:38E4 00000H     P2IB                   DATA
  1685.   0005:38E4 00000H     P2I                    DATA
  1686.   0005:38E4 00000H     P2IE                   DATA
  1687.   0005:38E4 00000H     P3IB                   DATA
  1688.   0005:38E4 00004H     P3I                    DATA
  1689.   0005:38E8 00000H     P3IE                   DATA
  1690.   0005:38E8 00000H     P1CB                   DATA
  1691.   0005:38E8 00004H     P1C                    DATA
  1692.   0005:38EC 00000H     P1CE                   DATA
  1693.   0005:38EC 00000H     P2CB                   DATA
  1694.   0005:38EC 00000H     P2C                    DATA
  1695.   0005:38EC 00000H     P2CE                   DATA
  1696.   0005:38EC 00000H     P3CB                   DATA
  1697.   0005:38EC 00004H     P3C                    DATA
  1698.   0005:38F0 00000H     P3CE                   DATA
  1699.   0005:38F0 0000EH     CDATA                  DATA
  1700.   0005:38FE 00000H     XPB                    DATA
  1701.   0005:38FE 00000H     XP                     DATA
  1702.   0005:38FE 00000H     XPE                    DATA
  1703.   0005:38FE 00ACAH     CONST                  CONST
  1704.   0005:43C8 00000H     EDATA                  ENDDATA
  1705.   0005:43C8 00000H     EEND                   ENDBSS
  1706.   0005:43C8 00008H     HDR                    MSG
  1707.   0005:43D0 000FAH     MSG                    MSG
  1708.   0005:44CA 00002H     PAD                    MSG
  1709.   0005:44CC 00001H     EPAD                   MSG
  1710.   0005:44CE 00004H     _BSS                   BSS
  1711.   0005:44D2 00000H     XOB                    BSS
  1712.   0005:44D2 00000H     XO                     BSS
  1713.   0005:44D2 00000H     XOE                    BSS
  1714.   0005:44E0 01000H     STACK                  STACK
  1715.  
  1716.   Origin   Group
  1717.   0005:0   DGROUP
  1718.   0004:0   EGROUP
  1719.   0003:0   HGROUP
  1720.  
  1721.   Address   Export                  Alias
  1722.  
  1723.   0002:1ACD WNDFUNC                 WNDFUNC
  1724.  
  1725.  Program entry point at 0002:A82E
  1726. :exmp
  1727. :h1.ALPHA2 MAP (OS/2 V2.0)
  1728. :xmp keep=10
  1729.  
  1730.   Alpha
  1731.  
  1732.   Start         Length     Name                   Class
  1733.   0001:00000000 000010C48H CODE32                 CODE 32-bit
  1734.   0001:00010C48 000000030H _MSGSEG32              CODE 32-bit
  1735.   0002:00000000 000002A58H DATA32                 DATA 32-bit
  1736.   0002:00002A58 000000268H CONST32                CONST 32-bit
  1737.   0002:00002CC0 00000000CH EDC1                   EDC_CLASS 32-bit
  1738.   0002:00002CCC 000000384H EDC2                   EDC_CLASS 32-bit
  1739.   0002:00003050 000000004H EDC3                   EDC_CLASS 32-bit
  1740.   0002:00003054 000000000H BSS32                  BSS 32-bit
  1741.   0002:00003054 000000588H c_common               BSS 32-bit
  1742.   0002:000035E0 000012000H STACK32                STACK 32-bit
  1743.  
  1744.   Origin   Group
  1745.   0002:0   DGROUP
  1746.   0000:0   FLAT
  1747.  
  1748.    Address         Publics by Name
  1749.  
  1750.   0002:00003488       @BSSEDCINIT.C
  1751.   0002:0000305C       @BSSN_EXCEPT.C
  1752.   0002:00003570       @BSSPRTEMSG.C
  1753.   0001:00001F5C       AbortAlpha
  1754.   0002:00003498       Ahwnd
  1755.   0002:00003058       Allocate_init
  1756.   0001:00008FB0       atoi
  1757.   0002:00003514       Back_colour
  1758.   0002:00003480       Base
  1759.   0002:0000347C       Bold
  1760.   0002:0000004C       Branch_colour
  1761.   0001:0000FFB4       calloc
  1762.   0002:00003558       case_sen
  1763.   0001:000052EC       ChildProc
  1764.   0002:000030BC       children
  1765.   0002:00000010       Child_h
  1766.   0002:0000308C       Child_i
  1767.   0002:0000000C       Child_w
  1768.   0002:0000352C       Child_x
  1769.   0002:00003534       Child_y
  1770.   0002:000034AC       Chrh
  1771.   0002:000034BC       Chrw
  1772.   0002:00000044       Cmmt_colour
  1773.   0001:00007F30       Cmt_pos
  1774.   0001:00002F10       COLOURDialog
  1775.   0002:00000114       Colour_tab
  1776.   0002:000034A0       comm
  1777.   0001:000024A0       CommandDialog
  1778.   0002:0000351C       comm_len
  1779.   0002:00003094       comm_str
  1780.   0001:00007FD4       Compare_string
  1781.   0001:00004F18       Create_Child
  1782.   0001:00003C90       Create_ExpChild
  1783.   0001:00008490       Create_Help
  1784.   0000:00000000  Imp  DevCloseDC           (PMGPI.604)
  1785.   0000:00000000  Imp  DevOpenDC            (PMGPI.610)
  1786.   0002:00000D64       dop
  1787.   0000:00000000  Imp  DOS32FLATTOSEL       (DOSCALLS.425)
  1788.   0001:00010C5A       Dos32GetMessage
  1789.   0001:00010C5A       DOS32GETMESSAGE
  1790.   0000:00000000  Imp  DOS32IQUERYMESSAGECP (MSG.8)
  1791.   0000:00000000  Imp  DOS32SELTOFLAT       (DOSCALLS.426)
  1792.   0000:00000000  Imp  DOS32TRUEGETMESSAGE  (MSG.6)
  1793.   0000:00000000  Imp  DosAllocMem          (DOSCALLS.299)
  1794.   0000:00000000  Imp  DosBeep              (DOSCALLS.286)
  1795.   0000:00000000  Imp  DosClose             (DOSCALLS.257)
  1796.   0000:00000000  Imp  DosCloseEventSem     (DOSCALLS.326)
  1797.   0000:00000000  Imp  DosCloseMutexSem     (DOSCALLS.333)
  1798.   0000:00000000  Imp  DosCreateEventSem    (DOSCALLS.324)
  1799.   0000:00000000  Imp  DosCreateMutexSem    (DOSCALLS.331)
  1800.   0000:00000000  Imp  DosCreateThread      (DOSCALLS.311)
  1801.   0000:00000000  Imp  DosExit              (DOSCALLS.234)
  1802.   0000:00000000  Imp  DosExitList          (DOSCALLS.296)
  1803.   0000:00000000  Imp  DosFindClose         (DOSCALLS.263)
  1804.   0000:00000000  Imp  DosFindFirst         (DOSCALLS.264)
  1805.   0000:00000000  Imp  DosFindNext          (DOSCALLS.265)
  1806.   0000:00000000  Imp  DosForceDelete       (DOSCALLS.110)
  1807.   0000:00000000  Imp  DosFreeMem           (DOSCALLS.304)
  1808.   0000:00000000  Imp  DosGetInfoBlocks     (DOSCALLS.312)
  1809.   0001:00010C5A       DOSGETMESSAGE
  1810.   0001:00010C5A       DosGetMessage
  1811.   0000:00000000  Imp  DosOpen              (DOSCALLS.273)
  1812.   0000:00000000  Imp  DOSPOSTEVENTSEM      (DOSCALLS.328)
  1813.   0000:00000000  Imp  DosQueryCurrentDir   (DOSCALLS.274)
  1814.   0000:00000000  Imp  DosQueryCurrentDisk  (DOSCALLS.275)
  1815.   0000:00000000  Imp  DosQueryDBCSEnv      (NLS.6)
  1816.   0000:00000000  Imp  DosQueryFileInfo     (DOSCALLS.279)
  1817.   0000:00000000  Imp  DosQueryHType        (DOSCALLS.224)
  1818.   0000:00000000  Imp  DosQueryPathInfo     (DOSCALLS.223)
  1819.   0000:00000000  Imp  DosQuerySysInfo      (DOSCALLS.348)
  1820.   0000:00000000  Imp  DosRaiseException    (DOSCALLS.356)
  1821.   0000:00000000  Imp  DosRead              (DOSCALLS.281)
  1822.   0000:00000000  Imp  DOSRELEASEMUTEXSEM   (DOSCALLS.335)
  1823.   0000:00000000  Imp  DOSREQUESTMUTEXSEM   (DOSCALLS.334)
  1824.   0000:00000000  Imp  DOSRESETEVENTSEM     (DOSCALLS.327)
  1825.   0000:00000000  Imp  DosSearchPath        (DOSCALLS.228)
  1826.   0000:00000000  Imp  DosSetCurrentDir     (DOSCALLS.255)
  1827.   0000:00000000  Imp  DosSetDefaultDisk    (DOSCALLS.220)
  1828.   0000:00000000  Imp  DosSetExceptionHandler (DOSCALLS.354)
  1829.   0000:00000000  Imp  DosSetFilePtr        (DOSCALLS.256)
  1830.   0000:00000000  Imp  DosSetFileSize       (DOSCALLS.272)
  1831.   0000:00000000  Imp  DosSetRelMaxFH       (DOSCALLS.382)
  1832.   0000:00000000  Imp  DosSetSignalExceptionFocus (DOSCALLS.378)
  1833.   0000:00000000  Imp  DOSWAITEVENTSEM      (DOSCALLS.329)
  1834.   0000:00000000  Imp  DosWrite             (DOSCALLS.282)
  1835.   0000:00000000  Imp  DrgAccessDraginfo    (PMDRAG.32)
  1836.   0000:00000000  Imp  DrgFreeDraginfo      (PMDRAG.39)
  1837.   0000:00000000  Imp  DrgQueryDragitemPtr  (PMDRAG.46)
  1838.   0000:00000000  Imp  DrgQueryStrName      (PMDRAG.49)
  1839.   0001:0000803C       End_cmt
  1840.   0002:0000356C       ERR_File
  1841.   0002:0000356A       ERR_INV_PARM
  1842.   0001:0000B6FC       exit
  1843.   0002:0000357C       fat
  1844.   0001:00009138       fclose
  1845.   0001:0000E0EC       fflush
  1846.   0001:00009234       fgets
  1847.   0001:00002018       FileDialog
  1848.   0001:000080B4       file_record
  1849.   0002:000000D4       File_type
  1850.   0001:00003950       Fill_file_lst
  1851.   0001:00004044       Find_Exp_label
  1852.   0001:00008138       Find_Include
  1853.   0001:00008274       Find_string
  1854.   0001:00008308       Fnd_blk
  1855.   0001:000082DC       Fnd_nonblk
  1856.   0001:00002700       FONTDialog
  1857.   0001:000098EC       fopen
  1858.   0001:0000E3F0       free
  1859.   0001:0000E778       getenv
  1860.   0001:000044E0       Get_Include
  1861.   0000:00000000  Imp  GpiCharStringAt      (PMGPI.359)
  1862.   0000:00000000  Imp  GpiCreateLogFont     (PMGPI.368)
  1863.   0000:00000000  Imp  GpiCreatePS          (PMGPI.369)
  1864.   0000:00000000  Imp  GpiDestroyPS         (PMGPI.379)
  1865.   0000:00000000  Imp  GpiQueryCharStringPosAt (PMGPI.585)
  1866.   0000:00000000  Imp  GpiQueryFonts        (PMGPI.586)
  1867.   0000:00000000  Imp  GpiSetBackColor      (PMGPI.504)
  1868.   0000:00000000  Imp  GpiSetBackMix        (PMGPI.505)
  1869.   0000:00000000  Imp  GpiSetCharSet        (PMGPI.513)
  1870.   0000:00000000  Imp  GpiSetColor          (PMGPI.517)
  1871.   0002:000034B0       hab
  1872.   0002:0000350C       hdc
  1873.   0001:0000854C       HelpProc
  1874.   0002:000016C0       Help_array
  1875.   0002:00003578       Help_Chwnd
  1876.   0002:000035B4       Help_Fhwnd
  1877.   0002:00003564       Help_start
  1878.   0002:00000040       High_colour
  1879.   0002:000034A8       High_len
  1880.   0002:000035B8       High_str
  1881.   0002:000016BC       Hlp
  1882.   0002:00003088       hps
  1883.   0002:0000349C       hwndClient
  1884.   0002:000034A4       hwndFrame
  1885.   0002:00003074       Incl
  1886.   0002:00000018       Init_file
  1887.   0001:00008330       Isolate
  1888.   0002:00003508       Italic
  1889.   0002:00000014       key
  1890.   0002:000000D0       Language
  1891.   0002:00003574       len
  1892.   0002:0000015C       lex_array
  1893.   0002:00000158       lex_size
  1894.   0002:00000048       Locate_colour
  1895.   0002:00003504       Locate_len
  1896.   0002:00003538       Locate_str
  1897.   0001:00000000       main
  1898.   0002:00000004       Main_h
  1899.   0002:00000008       Main_w
  1900.   0002:000035D8       Main_x
  1901.   0002:00000000       Main_y
  1902.   0001:0000EF64       malloc
  1903.   0001:000099E8       memcpy
  1904.   0001:000007C0       MyWindowProc
  1905.   0002:00000038       No_Children
  1906.   0002:00003530       No_fonts
  1907.   0002:00000DE8       prev_cmmd
  1908.   0002:00003484       prev_c_index
  1909.   0002:00000D88       prev_files
  1910.   0002:000034B8       prev_index
  1911.   0001:000083BC       Prev_lab
  1912.   0000:00000000  Imp  PrfQueryProfileData  (PMSHAPI.117)
  1913.   0000:00000000  Imp  PrfQueryProfileString (PMSHAPI.115)
  1914.   0000:00000000  Imp  PrfWriteProfileData  (PMSHAPI.118)
  1915.   0000:00000000  Imp  PrfWriteProfileString (PMSHAPI.116)
  1916.   0001:000036A0       PrintDialog
  1917.   0001:00001EF8       Print_error
  1918.   0001:00004B64       Profile
  1919.   0002:000030B4       pszErrMsg
  1920.   0002:000030B8       ptr
  1921.   0002:000034C0       rc
  1922.   0002:000034B4       reqf
  1923.   0002:00003518       ResultPointer
  1924.   0001:00010C48       sig32
  1925.   0002:00000D5C       siz
  1926.   0002:00000E48       status
  1927.   0002:00002100       stderr
  1928.   0002:000020F8       stdin
  1929.   0002:000020FC       stdout
  1930.   0002:00003568       stmt_No
  1931.   0001:00009A28       strcat
  1932.   0001:00009A6C       strchr
  1933.   0001:00009A9C       strcmp
  1934.   0001:00009AD0       strcpy
  1935.   0001:00010844       strdup
  1936.   0001:00009B0C       strlen
  1937.   0001:00009B30       strncat
  1938.   0001:00009B78       strncmp
  1939.   0001:00009BA8       strncpy
  1940.   0001:0000FA2C       strnicmp
  1941.   0001:0000FADC       strspn
  1942.   0001:0000FB18       strtoul
  1943.   0001:0000FC10       strupr
  1944.   0002:00003510       tab
  1945.   0001:00008408       Tab_copy
  1946.   0002:0000003C       Text_colour
  1947.   0002:00000050       Tile_vect
  1948.   0001:00008458       Upper_case
  1949.   0001:0000FC80       wcstombs
  1950.   0001:0000FE00       wctomb
  1951.   0000:00000000  Imp  WinBeginPaint        (PMWIN.703)
  1952.   0000:00000000  Imp  WinCreateMsgQueue    (PMWIN.716)
  1953.   0000:00000000  Imp  WinCreateStdWindow   (PMWIN.908)
  1954.   0000:00000000  Imp  WinDefDlgProc        (PMWIN.910)
  1955.   0000:00000000  Imp  WinDefWindowProc     (PMWIN.911)
  1956.   0000:00000000  Imp  WinDestroyMsgQueue   (PMWIN.726)
  1957.   0000:00000000  Imp  WinDestroyWindow     (PMWIN.728)
  1958.   0000:00000000  Imp  WinDismissDlg        (PMWIN.729)
  1959.   0000:00000000  Imp  WinDispatchMsg       (PMWIN.912)
  1960.   0000:00000000  Imp  WinEndPaint          (PMWIN.738)
  1961.   0000:00000000  Imp  WinFillRect          (PMWIN.743)
  1962.   0000:00000000  Imp  WinFreeErrorInfo     (PMWIN.748)
  1963.   0000:00000000  Imp  WinGetErrorInfo      (PMWIN.751)
  1964.   0000:00000000  Imp  WinGetMsg            (PMWIN.915)
  1965.   0000:00000000  Imp  WinInitialize        (PMWIN.763)
  1966.   0000:00000000  Imp  WinInvalidateRect    (PMWIN.765)
  1967.   0000:00000000  Imp  WinLoadDlg           (PMWIN.924)
  1968.   0000:00000000  Imp  WinMessageBox        (PMWIN.789)
  1969.   0000:00000000  Imp  WinPostMsg           (PMWIN.919)
  1970.   0000:00000000  Imp  WinQueryDlgItemText  (PMWIN.815)
  1971.   0000:00000000  Imp  WinQuerySysPointer   (PMWIN.828)
  1972.   0000:00000000  Imp  WinQuerySysValue     (PMWIN.829)
  1973.   0000:00000000  Imp  WinQueryWindow       (PMWIN.834)
  1974.   0000:00000000  Imp  WinQueryWindowPos    (PMWIN.837)
  1975.   0000:00000000  Imp  WinQueryWindowRect   (PMWIN.840)
  1976.   0000:00000000  Imp  WinQueryWindowText   (PMWIN.841)
  1977.   0000:00000000  Imp  WinRegisterClass     (PMWIN.926)
  1978.   0000:00000000  Imp  WinScrollWindow      (PMWIN.849)
  1979.   0000:00000000  Imp  WinSendDlgItemMsg    (PMWIN.903)
  1980.   0000:00000000  Imp  WinSendMsg           (PMWIN.920)
  1981.   0000:00000000  Imp  WinSetActiveWindow   (PMWIN.851)
  1982.   0000:00000000  Imp  WinSetDlgItemText    (PMWIN.859)
  1983.   0000:00000000  Imp  WinSetFocus          (PMWIN.860)
  1984.   0000:00000000  Imp  WinSetPointer        (PMWIN.866)
  1985.   0000:00000000  Imp  WinSetWindowPos      (PMWIN.875)
  1986.   0000:00000000  Imp  WinSetWindowText     (PMWIN.877)
  1987.   0000:00000000  Imp  WinTerminate         (PMWIN.888)
  1988.   0000:00000000  Imp  WinWindowFromID      (PMWIN.899)
  1989.   0001:0000FF20       _AllocSpace
  1990.   0002:00002064       _argc
  1991.   0002:00002068       _argv
  1992.   0001:0000DC3C       _beginthread
  1993.   0001:0000DE98       _bit_test_set
  1994.   0001:0000DEAC       _bufprint
  1995.   0001:0000F2CC       _callback_opt_sys
  1996.   0001:0000DFA4       _CheckIfMem
  1997.   0001:0000E018       _CloseSem
  1998.   0001:00009BE4       _CloseStream
  1999.   0001:00009E70       _convert
  2000.   0001:0000E060       _CreateSem
  2001.   0001:0000CC34       _critlib_except
  2002.   0001:0000DCE8       _CrtGetLocalData
  2003.   0001:0000DCA4       _CrtInitThread
  2004.   0001:0000B05C       _CRT_init
  2005.   0001:0000B57C       _CRT_term
  2006.   0002:00002108       _ctable
  2007.   0002:00003078       _ctype
  2008.   0002:0000220C       _daylight
  2009.   0001:00009A20       _DosFlatToSel
  2010.   0001:00009A18       _DosSelToFlat
  2011.   0002:00003054       _edata
  2012.   0001:0001007C       _edcGetMessage
  2013.   0002:000035E0       _end
  2014.   0001:000100A0       _endthread
  2015.   0002:00003054       _environ
  2016.   0001:0000D7B8       _errno
  2017.   0001:0000F2A8       _Exception
  2018.   0001:0000C1B0       _exception_dllinit
  2019.   0001:0000C17C       _exception_procinit
  2020.   0002:00002060       _exeentry
  2021.   0001:0000CE58       _EXE_Exception
  2022.   0001:0000B850       _fcloseall
  2023.   0001:0000E0D8       _fcloseall_weak
  2024.   0001:000101C4       _fillb
  2025.   0002:00002CC0       _firsteib
  2026.   0001:0000E230       _Flush
  2027.   0001:00010418       _flushb
  2028.   0001:0000B93C       _Fmprs
  2029.   0002:0000274C       _fopenused
  2030.   0001:0001082C       _fpreset
  2031.   0001:0000E4D8       _FreeFCB
  2032.   0001:0000E5B8       _freeThreadStorage
  2033.   0001:0000E65C       _fullpath
  2034.   0001:0000F2E4       _get_seglim
  2035.   0001:0000E9D4       _heapmin
  2036.   0001:0001083C       _ilog2
  2037.   0001:0000EC68       _InitBuf
  2038.   0001:0000ECEC       _InitFCB
  2039.   0001:0000C088       _internal_err
  2040.   0002:00003050       _lasteib
  2041.   0001:0000CACC       _Lib_excpt
  2042.   0001:0000EECC       _ltoa
  2043.   0001:0000C0DC       _matherr
  2044.   0002:0000275C       _matherr_ptr
  2045.   0001:0000E004       _Math_Exception_Def
  2046.   0002:0000307C       _memory_sem
  2047.   0001:0000F690       _MesgServ
  2048.   0001:0000C110       _mig_eib_store
  2049.   0001:0000F320       _noddprs
  2050.   0001:0000F40C       _OpenMemory
  2051.   0001:0000CF44       _OpenStream
  2052.   0002:00003076       _osmajor
  2053.   0002:00003090       _osminor
  2054.   0002:00002214       _osmode
  2055.   0002:000034C4       _pBucketArr
  2056.   0002:00002104       _PGLOBAL_PTR
  2057.   0001:0000F860       _PrintErrMsg
  2058.   0001:00008EF0       _printfieee
  2059.   0001:00008EC8       _printf_ansi
  2060.   0001:0000D8A0       _readbSync
  2061.   0001:0000CD50       _recreate_exception
  2062.   0001:0000F2D8       _Regen_exception
  2063.   0001:0000B838       _ReleaseSem
  2064.   0001:0000F8C0       _RemoveMem
  2065.   0001:0000B7B8       _RequestSem
  2066.   0001:0000D5C0       _setuparg
  2067.   0001:0000F948       _setupenv
  2068.   0001:0000EFF0       _split_chunk
  2069.   0001:00008F64       _sprintfieee
  2070.   0001:00008F44       _sprintf_ansi
  2071.   0001:0000FC60       _terminate
  2072.   0001:0000F2C0       _Test_and_reset
  2073.   0001:0000B520       _test_handle
  2074.   0002:00002210       _timezone
  2075.   0002:00003520       _tmemory_sem
  2076.   0001:000108DC       _toint
  2077.   0002:0000355C       _tzname
  2078.   0001:00010AD0       _uwrite
  2079.   0001:0000FEE4       _wcputs
  2080.   0001:0000FEF8       _wfloatfmt
  2081.   0001:0000F8B8       _w_raise
  2082.   0001:0000C0F0       __Async_exception_flag
  2083.   0001:0000D808       __broken_time_ptr
  2084.   0001:0000D818       __cvt_buf_ptr
  2085.   0001:0000A080       __dofmto
  2086.   0001:0000D7C8       __doserrno
  2087.   0001:0000D7D8       __dttm_ptr
  2088.   0001:0000C1E0       __Exception
  2089.   0001:0000D7F8       __flags
  2090.   0001:0000E460       __free
  2091.   0001:0000D838       __internal_buf_ptr
  2092.   0001:0000D828       __lcvt_buf_ptr
  2093.   0001:0000F0E0       __malloc
  2094.   0001:0000D848       __perror_msg_ptr
  2095.   0001:0000D884       __random_seed
  2096.   0001:00009084       __RunExitList
  2097.   0001:0000C100       __Saved_return_address
  2098.   0001:0000D7E8       __strerror_msg_ptr
  2099.   0001:0000D868       __strtok_pos
  2100.   0001:0000D858       __tempname_ptr
  2101.   0001:000108B0       __threadid
  2102.   0001:0000D878       __version
  2103.  
  2104.    Address         Publics by Value
  2105.  
  2106.   0000:00000000  Imp  DevOpenDC            (PMGPI.610)
  2107.   0000:00000000  Imp  WinInitialize        (PMWIN.763)
  2108.   0000:00000000  Imp  WinSetPointer        (PMWIN.866)
  2109.   0000:00000000  Imp  WinQueryWindowPos    (PMWIN.837)
  2110.   0000:00000000  Imp  WinWindowFromID      (PMWIN.899)
  2111.   0000:00000000  Imp  GpiCreateLogFont     (PMGPI.368)
  2112.   0000:00000000  Imp  WinGetMsg            (PMWIN.915)
  2113.   0000:00000000  Imp  DosRead              (DOSCALLS.281)
  2114.   0000:00000000  Imp  WinQueryWindowRect   (PMWIN.840)
  2115.   0000:00000000  Imp  DOS32TRUEGETMESSAGE  (MSG.6)
  2116.   0000:00000000  Imp  WinCreateMsgQueue    (PMWIN.716)
  2117.   0000:00000000  Imp  DOSREQUESTMUTEXSEM   (DOSCALLS.334)
  2118.   0000:00000000  Imp  WinRegisterClass     (PMWIN.926)
  2119.   0000:00000000  Imp  WinScrollWindow      (PMWIN.849)
  2120.   0000:00000000  Imp  DosCreateEventSem    (DOSCALLS.324)
  2121.   0000:00000000  Imp  GpiSetBackColor      (PMGPI.504)
  2122.   0000:00000000  Imp  DosCreateMutexSem    (DOSCALLS.331)
  2123.   0000:00000000  Imp  DosBeep              (DOSCALLS.286)
  2124.   0000:00000000  Imp  DosQueryPathInfo     (DOSCALLS.223)
  2125.   0000:00000000  Imp  GpiCharStringAt      (PMGPI.359)
  2126.   0000:00000000  Imp  WinSendMsg           (PMWIN.920)
  2127.   0000:00000000  Imp  PrfQueryProfileData  (PMSHAPI.117)
  2128.   0000:00000000  Imp  WinQuerySysValue     (PMWIN.829)
  2129.   0000:00000000  Imp  WinSetWindowPos      (PMWIN.875)
  2130.   0000:00000000  Imp  DosSetFilePtr        (DOSCALLS.256)
  2131.   0000:00000000  Imp  WinSetDlgItemText    (PMWIN.859)
  2132.   0000:00000000  Imp  DosFreeMem           (DOSCALLS.304)
  2133.   0000:00000000  Imp  DosRaiseException    (DOSCALLS.356)
  2134.   0000:00000000  Imp  WinDefDlgProc        (PMWIN.910)
  2135.   0000:00000000  Imp  DosClose             (DOSCALLS.257)
  2136.   0000:00000000  Imp  DosSetSignalExceptionFocus (DOSCALLS.378)
  2137.   0000:00000000  Imp  DosCloseEventSem     (DOSCALLS.326)
  2138.   0000:00000000  Imp  DrgAccessDraginfo    (PMDRAG.32)
  2139.   0000:00000000  Imp  DOSWAITEVENTSEM      (DOSCALLS.329)
  2140.   0000:00000000  Imp  DOS32SELTOFLAT       (DOSCALLS.426)
  2141.   0000:00000000  Imp  DosGetInfoBlocks     (DOSCALLS.312)
  2142.   0000:00000000  Imp  WinQueryWindowText   (PMWIN.841)
  2143.   0000:00000000  Imp  PrfWriteProfileData  (PMSHAPI.118)
  2144.   0000:00000000  Imp  DosSearchPath        (DOSCALLS.228)
  2145.   0000:00000000  Imp  DosFindNext          (DOSCALLS.265)
  2146.   0000:00000000  Imp  DosOpen              (DOSCALLS.273)
  2147.   0000:00000000  Imp  DosExit              (DOSCALLS.234)
  2148.   0000:00000000  Imp  WinDismissDlg        (PMWIN.729)
  2149.   0000:00000000  Imp  DrgQueryStrName      (PMDRAG.49)
  2150.   0000:00000000  Imp  GpiSetColor          (PMGPI.517)
  2151.   0000:00000000  Imp  DOSPOSTEVENTSEM      (DOSCALLS.328)
  2152.   0000:00000000  Imp  DosCloseMutexSem     (DOSCALLS.333)
  2153.   0000:00000000  Imp  GpiDestroyPS         (PMGPI.379)
  2154.   0000:00000000  Imp  WinSetFocus          (PMWIN.860)
  2155.   0000:00000000  Imp  WinBeginPaint        (PMWIN.703)
  2156.   0000:00000000  Imp  WinCreateStdWindow   (PMWIN.908)
  2157.   0000:00000000  Imp  DrgQueryDragitemPtr  (PMDRAG.46)
  2158.   0000:00000000  Imp  DOSRELEASEMUTEXSEM   (DOSCALLS.335)
  2159.   0000:00000000  Imp  WinQueryWindow       (PMWIN.834)
  2160.   0000:00000000  Imp  DosWrite             (DOSCALLS.282)
  2161.   0000:00000000  Imp  DosSetExceptionHandler (DOSCALLS.354)
  2162.   0000:00000000  Imp  DevCloseDC           (PMGPI.604)
  2163.   0000:00000000  Imp  WinEndPaint          (PMWIN.738)
  2164.   0000:00000000  Imp  DosSetRelMaxFH       (DOSCALLS.382)
  2165.   0000:00000000  Imp  PrfQueryProfileString (PMSHAPI.115)
  2166.   0000:00000000  Imp  DosFindClose         (DOSCALLS.263)
  2167.   0000:00000000  Imp  DosSetDefaultDisk    (DOSCALLS.220)
  2168.   0000:00000000  Imp  GpiQueryCharStringPosAt (PMGPI.585)
  2169.   0000:00000000  Imp  GpiQueryFonts        (PMGPI.586)
  2170.   0000:00000000  Imp  WinSendDlgItemMsg    (PMWIN.903)
  2171.   0000:00000000  Imp  WinFillRect          (PMWIN.743)
  2172.   0000:00000000  Imp  DosQueryCurrentDir   (DOSCALLS.274)
  2173.   0000:00000000  Imp  WinDestroyWindow     (PMWIN.728)
  2174.   0000:00000000  Imp  WinInvalidateRect    (PMWIN.765)
  2175.   0000:00000000  Imp  DosQueryDBCSEnv      (NLS.6)
  2176.   0000:00000000  Imp  GpiSetCharSet        (PMGPI.513)
  2177.   0000:00000000  Imp  WinGetErrorInfo      (PMWIN.751)
  2178.   0000:00000000  Imp  PrfWriteProfileString (PMSHAPI.116)
  2179.   0000:00000000  Imp  DOSRESETEVENTSEM     (DOSCALLS.327)
  2180.   0000:00000000  Imp  GpiSetBackMix        (PMGPI.505)
  2181.   0000:00000000  Imp  WinQueryDlgItemText  (PMWIN.815)
  2182.   0000:00000000  Imp  DrgFreeDraginfo      (PMDRAG.39)
  2183.   0000:00000000  Imp  DosForceDelete       (DOSCALLS.110)
  2184.   0000:00000000  Imp  WinDispatchMsg       (PMWIN.912)
  2185.   0000:00000000  Imp  DOS32FLATTOSEL       (DOSCALLS.425)
  2186.   0000:00000000  Imp  DosQueryHType        (DOSCALLS.224)
  2187.   0000:00000000  Imp  DosSetCurrentDir     (DOSCALLS.255)
  2188.   0000:00000000  Imp  DosAllocMem          (DOSCALLS.299)
  2189.   0000:00000000  Imp  WinMessageBox        (PMWIN.789)
  2190.   0000:00000000  Imp  WinDestroyMsgQueue   (PMWIN.726)
  2191.   0000:00000000  Imp  DosCreateThread      (DOSCALLS.311)
  2192.   0000:00000000  Imp  DosSetFileSize       (DOSCALLS.272)
  2193.   0000:00000000  Imp  WinFreeErrorInfo     (PMWIN.748)
  2194.   0000:00000000  Imp  DosQuerySysInfo      (DOSCALLS.348)
  2195.   0000:00000000  Imp  DOS32IQUERYMESSAGECP (MSG.8)
  2196.   0000:00000000  Imp  WinPostMsg           (PMWIN.919)
  2197.   0000:00000000  Imp  WinDefWindowProc     (PMWIN.911)
  2198.   0000:00000000  Imp  WinQuerySysPointer   (PMWIN.828)
  2199.   0000:00000000  Imp  DosQueryCurrentDisk  (DOSCALLS.275)
  2200.   0000:00000000  Imp  DosQueryFileInfo     (DOSCALLS.279)
  2201.   0000:00000000  Imp  GpiCreatePS          (PMGPI.369)
  2202.   0000:00000000  Imp  WinSetActiveWindow   (PMWIN.851)
  2203.   0000:00000000  Imp  DosExitList          (DOSCALLS.296)
  2204.   0000:00000000  Imp  WinSetWindowText     (PMWIN.877)
  2205.   0000:00000000  Imp  WinLoadDlg           (PMWIN.924)
  2206.   0000:00000000  Imp  DosFindFirst         (DOSCALLS.264)
  2207.   0000:00000000  Imp  WinTerminate         (PMWIN.888)
  2208.   0001:00000000       main
  2209.   0001:000007C0       MyWindowProc
  2210.   0001:00001EF8       Print_error
  2211.   0001:00001F5C       AbortAlpha
  2212.   0001:00002018       FileDialog
  2213.   0001:000024A0       CommandDialog
  2214.   0001:00002700       FONTDialog
  2215.   0001:00002F10       COLOURDialog
  2216.   0001:000036A0       PrintDialog
  2217.   0001:00003950       Fill_file_lst
  2218.   0001:00003C90       Create_ExpChild
  2219.   0001:00004044       Find_Exp_label
  2220.   0001:000044E0       Get_Include
  2221.   0001:00004B64       Profile
  2222.   0001:00004F18       Create_Child
  2223.   0001:000052EC       ChildProc
  2224.   0001:00007F30       Cmt_pos
  2225.   0001:00007FD4       Compare_string
  2226.   0001:0000803C       End_cmt
  2227.   0001:000080B4       file_record
  2228.   0001:00008138       Find_Include
  2229.   0001:00008274       Find_string
  2230.   0001:000082DC       Fnd_nonblk
  2231.   0001:00008308       Fnd_blk
  2232.   0001:00008330       Isolate
  2233.   0001:000083BC       Prev_lab
  2234.   0001:00008408       Tab_copy
  2235.   0001:00008458       Upper_case
  2236.   0001:00008490       Create_Help
  2237.   0001:0000854C       HelpProc
  2238.   0001:00008EC8       _printf_ansi
  2239.   0001:00008EF0       _printfieee
  2240.   0001:00008F44       _sprintf_ansi
  2241.   0001:00008F64       _sprintfieee
  2242.   0001:00008FB0       atoi
  2243.   0001:00009084       __RunExitList
  2244.   0001:00009138       fclose
  2245.   0001:00009234       fgets
  2246.   0001:000098EC       fopen
  2247.   0001:000099E8       memcpy
  2248.   0001:00009A18       _DosSelToFlat
  2249.   0001:00009A20       _DosFlatToSel
  2250.   0001:00009A28       strcat
  2251.   0001:00009A6C       strchr
  2252.   0001:00009A9C       strcmp
  2253.   0001:00009AD0       strcpy
  2254.   0001:00009B0C       strlen
  2255.   0001:00009B30       strncat
  2256.   0001:00009B78       strncmp
  2257.   0001:00009BA8       strncpy
  2258.   0001:00009BE4       _CloseStream
  2259.   0001:00009E70       _convert
  2260.   0001:0000A080       __dofmto
  2261.   0001:0000B05C       _CRT_init
  2262.   0001:0000B520       _test_handle
  2263.   0001:0000B57C       _CRT_term
  2264.   0001:0000B6FC       exit
  2265.   0001:0000B7B8       _RequestSem
  2266.   0001:0000B838       _ReleaseSem
  2267.   0001:0000B850       _fcloseall
  2268.   0001:0000B93C       _Fmprs
  2269.   0001:0000C088       _internal_err
  2270.   0001:0000C0DC       _matherr
  2271.   0001:0000C0F0       __Async_exception_flag
  2272.   0001:0000C100       __Saved_return_address
  2273.   0001:0000C110       _mig_eib_store
  2274.   0001:0000C17C       _exception_procinit
  2275.   0001:0000C1B0       _exception_dllinit
  2276.   0001:0000C1E0       __Exception
  2277.   0001:0000CACC       _Lib_excpt
  2278.   0001:0000CC34       _critlib_except
  2279.   0001:0000CD50       _recreate_exception
  2280.   0001:0000CE58       _EXE_Exception
  2281.   0001:0000CF44       _OpenStream
  2282.   0001:0000D5C0       _setuparg
  2283.   0001:0000D7B8       _errno
  2284.   0001:0000D7C8       __doserrno
  2285.   0001:0000D7D8       __dttm_ptr
  2286.   0001:0000D7E8       __strerror_msg_ptr
  2287.   0001:0000D7F8       __flags
  2288.   0001:0000D808       __broken_time_ptr
  2289.   0001:0000D818       __cvt_buf_ptr
  2290.   0001:0000D828       __lcvt_buf_ptr
  2291.   0001:0000D838       __internal_buf_ptr
  2292.   0001:0000D848       __perror_msg_ptr
  2293.   0001:0000D858       __tempname_ptr
  2294.   0001:0000D868       __strtok_pos
  2295.   0001:0000D878       __version
  2296.   0001:0000D884       __random_seed
  2297.   0001:0000D8A0       _readbSync
  2298.   0001:0000DC3C       _beginthread
  2299.   0001:0000DCA4       _CrtInitThread
  2300.   0001:0000DCE8       _CrtGetLocalData
  2301.   0001:0000DE98       _bit_test_set
  2302.   0001:0000DEAC       _bufprint
  2303.   0001:0000DFA4       _CheckIfMem
  2304.   0001:0000E004       _Math_Exception_Def
  2305.   0001:0000E018       _CloseSem
  2306.   0001:0000E060       _CreateSem
  2307.   0001:0000E0D8       _fcloseall_weak
  2308.   0001:0000E0EC       fflush
  2309.   0001:0000E230       _Flush
  2310.   0001:0000E3F0       free
  2311.   0001:0000E460       __free
  2312.   0001:0000E4D8       _FreeFCB
  2313.   0001:0000E5B8       _freeThreadStorage
  2314.   0001:0000E65C       _fullpath
  2315.   0001:0000E778       getenv
  2316.   0001:0000E9D4       _heapmin
  2317.   0001:0000EC68       _InitBuf
  2318.   0001:0000ECEC       _InitFCB
  2319.   0001:0000EECC       _ltoa
  2320.   0001:0000EF64       malloc
  2321.   0001:0000EFF0       _split_chunk
  2322.   0001:0000F0E0       __malloc
  2323.   0001:0000F2A8       _Exception
  2324.   0001:0000F2C0       _Test_and_reset
  2325.   0001:0000F2CC       _callback_opt_sys
  2326.   0001:0000F2D8       _Regen_exception
  2327.   0001:0000F2E4       _get_seglim
  2328.   0001:0000F320       _noddprs
  2329.   0001:0000F40C       _OpenMemory
  2330.   0001:0000F690       _MesgServ
  2331.   0001:0000F860       _PrintErrMsg
  2332.   0001:0000F8B8       _w_raise
  2333.   0001:0000F8C0       _RemoveMem
  2334.   0001:0000F948       _setupenv
  2335.   0001:0000FA2C       strnicmp
  2336.   0001:0000FADC       strspn
  2337.   0001:0000FB18       strtoul
  2338.   0001:0000FC10       strupr
  2339.   0001:0000FC60       _terminate
  2340.   0001:0000FC80       wcstombs
  2341.   0001:0000FE00       wctomb
  2342.   0001:0000FEE4       _wcputs
  2343.   0001:0000FEF8       _wfloatfmt
  2344.   0001:0000FF20       _AllocSpace
  2345.   0001:0000FFB4       calloc
  2346.   0001:0001007C       _edcGetMessage
  2347.   0001:000100A0       _endthread
  2348.   0001:000101C4       _fillb
  2349.   0001:00010418       _flushb
  2350.   0001:0001082C       _fpreset
  2351.   0001:0001083C       _ilog2
  2352.   0001:00010844       strdup
  2353.   0001:000108B0       __threadid
  2354.   0001:000108DC       _toint
  2355.   0001:00010AD0       _uwrite
  2356.   0001:00010C48       sig32
  2357.   0001:00010C5A       Dos32GetMessage
  2358.   0001:00010C5A       DOSGETMESSAGE
  2359.   0001:00010C5A       DosGetMessage
  2360.   0001:00010C5A       DOS32GETMESSAGE
  2361.   0002:00000000       Main_y
  2362.   0002:00000004       Main_h
  2363.   0002:00000008       Main_w
  2364.   0002:0000000C       Child_w
  2365.   0002:00000010       Child_h
  2366.   0002:00000014       key
  2367.   0002:00000018       Init_file
  2368.   0002:00000038       No_Children
  2369.   0002:0000003C       Text_colour
  2370.   0002:00000040       High_colour
  2371.   0002:00000044       Cmmt_colour
  2372.   0002:00000048       Locate_colour
  2373.   0002:0000004C       Branch_colour
  2374.   0002:00000050       Tile_vect
  2375.   0002:000000D0       Language
  2376.   0002:000000D4       File_type
  2377.   0002:00000114       Colour_tab
  2378.   0002:00000158       lex_size
  2379.   0002:0000015C       lex_array
  2380.   0002:00000D5C       siz
  2381.   0002:00000D64       dop
  2382.   0002:00000D88       prev_files
  2383.   0002:00000DE8       prev_cmmd
  2384.   0002:00000E48       status
  2385.   0002:000016BC       Hlp
  2386.   0002:000016C0       Help_array
  2387.   0002:00002060       _exeentry
  2388.   0002:00002064       _argc
  2389.   0002:00002068       _argv
  2390.   0002:000020F8       stdin
  2391.   0002:000020FC       stdout
  2392.   0002:00002100       stderr
  2393.   0002:00002104       _PGLOBAL_PTR
  2394.   0002:00002108       _ctable
  2395.   0002:0000220C       _daylight
  2396.   0002:00002210       _timezone
  2397.   0002:00002214       _osmode
  2398.   0002:0000274C       _fopenused
  2399.   0002:0000275C       _matherr_ptr
  2400.   0002:00002CC0       _firsteib
  2401.   0002:00003050       _lasteib
  2402.   0002:00003054       _edata
  2403.   0002:00003054       _environ
  2404.   0002:00003058       Allocate_init
  2405.   0002:0000305C       @BSSN_EXCEPT.C
  2406.   0002:00003074       Incl
  2407.   0002:00003076       _osmajor
  2408.   0002:00003078       _ctype
  2409.   0002:0000307C       _memory_sem
  2410.   0002:00003088       hps
  2411.   0002:0000308C       Child_i
  2412.   0002:00003090       _osminor
  2413.   0002:00003094       comm_str
  2414.   0002:000030B4       pszErrMsg
  2415.   0002:000030B8       ptr
  2416.   0002:000030BC       children
  2417.   0002:0000347C       Bold
  2418.   0002:00003480       Base
  2419.   0002:00003484       prev_c_index
  2420.   0002:00003488       @BSSEDCINIT.C
  2421.   0002:00003498       Ahwnd
  2422.   0002:0000349C       hwndClient
  2423.   0002:000034A0       comm
  2424.   0002:000034A4       hwndFrame
  2425.   0002:000034A8       High_len
  2426.   0002:000034AC       Chrh
  2427.   0002:000034B0       hab
  2428.   0002:000034B4       reqf
  2429.   0002:000034B8       prev_index
  2430.   0002:000034BC       Chrw
  2431.   0002:000034C0       rc
  2432.   0002:000034C4       _pBucketArr
  2433.   0002:00003504       Locate_len
  2434.   0002:00003508       Italic
  2435.   0002:0000350C       hdc
  2436.   0002:00003510       tab
  2437.   0002:00003514       Back_colour
  2438.   0002:00003518       ResultPointer
  2439.   0002:0000351C       comm_len
  2440.   0002:00003520       _tmemory_sem
  2441.   0002:0000352C       Child_x
  2442.   0002:00003530       No_fonts
  2443.   0002:00003534       Child_y
  2444.   0002:00003538       Locate_str
  2445.   0002:00003558       case_sen
  2446.   0002:0000355C       _tzname
  2447.   0002:00003564       Help_start
  2448.   0002:00003568       stmt_No
  2449.   0002:0000356A       ERR_INV_PARM
  2450.   0002:0000356C       ERR_File
  2451.   0002:00003570       @BSSPRTEMSG.C
  2452.   0002:00003574       len
  2453.   0002:00003578       Help_Chwnd
  2454.   0002:0000357C       fat
  2455.   0002:000035B4       Help_Fhwnd
  2456.   0002:000035B8       High_str
  2457.   0002:000035D8       Main_x
  2458.   0002:000035E0       _end
  2459.  
  2460.  Program entry point at 0001:90A8
  2461. :exmp
  2462. ...lab7
  2463. :BACKM
  2464. :INDEX.
  2465. .****************** End of ALPHA   ********************
  2466. :egdoc.
  2467.