home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / PROG / PASCAL / OPROSM.ZIP / PROCFUNC.ASC next >
Encoding:
Text File  |  1990-01-04  |  274.7 KB  |  4,871 lines

  1. Extracted from the Object Professional manual, 1/4/90.
  2. Contents Copyright (c) 1989, by TurboPower Software. All rights reserved.
  3.  
  4. Procedure and Function Reference
  5. ==============================================================================
  6. This section provides a complete list of all documented procedures, functions, and
  7. methods in the entire Object Professional library. The entry for each routine is
  8. of the following form:
  9.  
  10. (v) c-ppp     procedure ProcedureName(parameters);
  11.                 {-Brief description}
  12. The first column shows the volume (v), chapter (c), and page (ppp) where the routine
  13. is documented in the manual. The second column shows the name of the routine and the
  14. parameters it takes, followed by a brief description of the routine. In a very few
  15. cases, you will see an entry like this
  16.  
  17. (v) c-ppp     procedure ProcedureName(...);
  18.                 {-Brief description}
  19. where the parameters are shown as '...'. This is done (to save space) in a few cases
  20. where a routine has a lengthy parameter list that is identical to that of the
  21. previous routine.
  22.  
  23. The individual entries are grouped according to unit and object name. For example,
  24. the entries for OPCRT are arranged into two groups, one for regular procedures and
  25. functions, and one for the methods for the ColorSet object. A dividing line precedes
  26. each section, and just above the line is the name of the unit and, if the routines in
  27. the group are methods, the name of the object they belong to.
  28.  
  29. The arrangement of the entries within each group is not alphabetical; rather, it is
  30. based on the order in which the routines are declared in the source code for the
  31. unit/object. This order was chosen because it usually results in a series of smaller
  32. groups of related routines, making it easier to find a routine when you have a
  33. general idea of what you're looking for (a unit and a category, such as cursor
  34. manipulation), but you don't know if such a routine exists, or you know that it does
  35. but can't remember the name. The header at the top of the page shows the name of the
  36. unit in which the entries at the top of the page appear. The main purpose of the
  37. header is to make it easier to find the entries for a particular unit.
  38.  
  39.  
  40. OpCrt   Procedures and Functions
  41. ==============================================================================
  42.  
  43. (1) 3-27      function MakeHiddenAttr(A : Byte) : Byte;
  44.                 {-Make foreground and background colors the same}
  45. (1) 3-23      function GetCrtMode : Byte;
  46.                 {-Get the current video mode. Also reinitializes internal
  47.                   variables. May reset: CurrentMode, ScreenWidth, ScreenHeight,
  48.                   CurrentPage, and VideoSegment.}
  49. (1) 3-24      procedure GotoXYAbs(X, Y : Byte);
  50.                 {-Move cursor to column X, row Y. No error checking done.}
  51. (1) 3-42      function WhereXY : Word;
  52.                 {-Return absolute row and column coordinates of cursor. High byte
  53.                   has current row (Y), low byte has current column (X).}
  54. (1) 3-43      function WhereYAbs : Byte;
  55.                 {-Return absolute row coordinate of cursor}
  56. (1) 3-42      function WhereXAbs : Byte;
  57.                 {-Return absolute column coordinate of cursor}
  58. (1) 3-43      procedure WhereXYdirect(var X, Y : Byte);
  59.                 {-Read the current position of the cursor directly from the CRT
  60.                   controller}
  61. (1) 3-39      procedure SetVisiblePage(PageNum : Byte);
  62.                 {-Set current video page}
  63. (1) 3-36      procedure SetActivePage(PageNo : Byte);
  64.                 {-Selects the video page that will be written to with subsequent
  65.                   operations on the screen. Does not affect Write/Ln or Read/Ln.}
  66. (1) 3-24      function GetPageSegment(PageNo : Byte) : Word;
  67.                 {-Get the video segment corresponding to the specified video page}
  68. (1) 3-24      function GetPagePointer(PageNo : Byte) : Pointer;
  69.                 {-Get a pointer to the start of the specified video page}
  70. (1) 3-14      procedure ClearPage(PageNo : Byte);
  71.                 {-Clear the specified video page with TextChar and TextAttr}
  72. (1) 3-34      procedure ScrollWindowUp(XLo, YLo, XHi, YHi, Lines : Byte);
  73.                 {-Scrolls the designated window up the specified number of lines.}
  74. (1) 3-34      procedure ScrollWindowDown(XLo, YLo, XHi, YHi, Lines : Byte);
  75.                 {-Scrolls the designated window down the specified number of
  76.                   lines.}
  77. (1) 3-15      function CursorTypeSL : Word;
  78.                 {-Returns a word. High byte has starting scan line, low byte has
  79.                   ending.}
  80. (1) 3-15      function CursorStartLine : Byte;
  81.                 {-Returns the starting scan line of the cursor}
  82. (1) 3-15      function CursorEndLine : Byte;
  83.                 {-Returns the ending scan line of the cursor.}
  84. (1) 3-37      procedure SetCursorSize(Startline, EndLine : Byte);
  85.                 {-Sets the cursor's starting and ending scan lines.}
  86. (1) 3-29      procedure NormalCursor;
  87.                 {-Set normal scan lines for cursor based on current video mode}
  88. (1) 3-20      procedure FatCursor;
  89.                 {-Set larger scan lines for cursor based on current video mode}
  90. (1) 3-12      procedure BlockCursor;
  91.                 {-Set scan lines for a block cursor}
  92. (1) 3-26      procedure HiddenCursor;
  93.                 {-Hide the cursor}
  94. (1) 3-38      procedure SetCursorType(CT : CursorType);
  95.                 {-Sets the cursor shape to the specified type}
  96. (1) 3-13      function ClassifyCursorType : CursorType;
  97.                 {-Classify cursor type based on scan lines}
  98. (1) 3-31      function ReadCharAtCursor : Char;
  99.                 {-Returns character at the current cursor location on the selected
  100.                   page.}
  101. (1) 3-30      function ReadAttrAtCursor : Byte;
  102.                 {-Returns attribute at the current cursor location on the selected
  103.                   page.}
  104. (1) 3-23      procedure GetCursorState(var XY, ScanLines : Word);
  105.                 {-Return the current position and size of the cursor}
  106. (1) 3-32      procedure RestoreCursorState(XY, ScanLines : Word);
  107.                 {-Reset the cursor to a position and size saved with
  108.                   GetCursorState}
  109. (1) 3-19      procedure FastWrite(St : string; Row, Col : Word; Attr : Byte);
  110.                 {-Write St at Row,Col in Attr (video attribute) without snow}
  111. (1) 3-18      procedure FastText(St : string; Row, Col : Word);
  112.                 {-Write St at Row,Col without changing the underlying video
  113.                   attribute.}
  114. (1) 3-18      procedure FastVert(St : string; Row, Col : Word; Attr : Byte);
  115.                 {-Write St vertically at Row,Col in Attr (video attribute)}
  116. (1) 3-17      procedure FastFill(Number : Word; Ch : Char; Row, Col : Word;
  117.                                  Attr : Byte);
  118.                 {-Fill Number chs at Row,Col in Attr (video attribute) without
  119.                   snow}
  120. (1) 3-16      procedure FastCenter(St : string; Row, Attr : Byte);
  121.                 {-Write St centered on window Row in Attr (video attribute)
  122.                   without snow}
  123. (1) 3-17      procedure FastFlush(St : string; Row, Attr : Byte);
  124.                 {-Write St flush right on window Row in Attr (video attribute)
  125.                   without snow}
  126. (1) 3-17      procedure FastRead(Number : Byte; Row, Col : Word; var St : string);
  127.                 {-Read Number characters from the screen into St starting at
  128.                   Row, Col}
  129. (1) 3-30      procedure ReadAttribute(Number : Byte; Row, Col : Word;
  130.                                       var St : string);
  131.                 {-Read Number attributes from the screen into St starting at
  132.                   Row, Col}
  133. (1) 3-44      procedure WriteAttribute(St : String; Row, Col : Word);
  134.                 {-Write string of attributes St at Row,Col without changing
  135.                   characters}
  136. (1) 3-12      procedure ChangeAttribute(Number : Word; Row, Col : Word;
  137.                                         Attr : Byte);
  138.                 {-Change Number video attributes to Attr starting at Row,Col}
  139. (1) 3-29      procedure MoveScreen(var Source, Dest; Length : Word);
  140.                 {-Move Length words from Source to Dest without snow}
  141. (1) 3-19      procedure FastWriteAttr(St : String; Row, Col : Word;
  142.                                       AttrSt : String);
  143.                 {-Write St at Row,Col using attributes in AttrSt}
  144. (1) 3-21      procedure FlexWrite(St : string; Row, Col : Word;
  145.                                   var FAttrs : FlexAttrs);
  146.                 {-Write St at Row,Col with flexible color handling}
  147. (1) 3-21      function FlexLen(S : string) : Byte;
  148.                 {-Return actual (visible) length of a flex string}
  149. (1) 3-20      procedure FastWriteCtrl(St : String; Row, Col : Word;
  150.                                       Attr, Ctrl : Byte);
  151.                 {-Write St at Row,Col in Attr (video attribute) without snow.
  152.                   Control characters displayed in Ctrl as upper-case letters}
  153. (1) 3-33      function SaveWindow(XLow, YLow, XHigh, YHigh : Byte;
  154.                                   Allocate : Boolean;
  155.                                   var Covers : Pointer) : Boolean;
  156.                 {-Allocate buffer space if requested and save window contents}
  157. (1) 3-32      procedure RestoreWindow(XLow, YLow, XHigh, YHigh : Byte;
  158.                                       Deallocate : Boolean; var Covers : Pointer);
  159.                 {-Restore screen contents and deallocate buffer space if
  160.                   requested}
  161. (1) 3-14      procedure ClearWindow(XLow, YLow, XHigh, YHigh : Word; Ch : Char;
  162.                                     A : Byte);
  163.                 {-Clear a window using the specified character and attribute}
  164. (1) 3-22      procedure FrameWindow(LeftCol, TopRow, RightCol, BotRow : Word;
  165.                                     FAttr, HAttr : Byte; Header : string);
  166.                 {-Draws a frame around a window}
  167. (1) 3-39      procedure StoreWindowCoordinates(var WC : WindowCoordinates);
  168.                 {-Store the window coordinates for the active window}
  169. (1) 3-33      procedure RestoreWindowCoordinates(WC : WindowCoordinates);
  170.                 {-Restore previously saved window coordinates}
  171. (1) 3-28      function MapColor(C : Byte) : Byte;
  172.                 {-Map a video attribute for visibility on mono/bw displays}
  173. (1) 3-41      function UseColor : Boolean;
  174.                 {-Returns True if color video attributes should be used}
  175. (1) 3-14      function ColorMono(Color, Mono : Byte) : Byte;
  176.                 {-Choose between a color and a monochrome video attribute}
  177. (1) 3-28      function MapMono(Color, Mono : Byte) : Byte;
  178.                 {-Return a mapped color video attribute if Mono = $FF}
  179. (1) 3-36      procedure SetBlink(On : Boolean);
  180.                 {-Enable text mode attribute blinking if On is True}
  181. (1) 3-37      procedure SetCrtBorder(Attr : Byte);
  182.                 {-Set border to background color if card type and mode allow}
  183. (1) 3-22      function Font8x8Selected : Boolean;
  184.                 {-Return True if EGA or VGA is active and in 8x8 font}
  185. (1) 3-35      procedure SelectFont8x8(On : Boolean);
  186.                 {-Toggle 8x8 font on or off}
  187. (1) 3-26      function HercPresent : Boolean;
  188.                 {-Return true if a Hercules graphics card is present}
  189. (1) 3-41      procedure SwitchInColorCard(ColorOn : Boolean);
  190.                 {-Activate or deactivate colors on a Hercules InColor card}
  191. (1) 3-25      function HercGraphicsMode : Boolean;
  192.                 {-Return True if a Hercules card is in graphics mode}
  193. (1) 3-25      function HercModeTestWorks : Boolean;
  194.                 {-Return True if HercGraphicsMode will work}
  195. (1) 3-38      procedure SetHercMode(GraphMode : Boolean; GraphPage : Byte);
  196.                 {-Set Hercules card to graphics mode or text mode, and activate
  197.                   specified graphics page (if switching to graphics mode).}
  198. (1) 3-31      function ReadKeyWord : Word;
  199.                 {-Waits for keypress, then returns scan and character codes
  200.                   together}
  201. (1) 3-13      function CheckKbd(var KeyCode : Word) : Boolean;
  202.                 {-Returns True (and the key codes) if a keystroke is waiting}
  203. (1) 3-27      function KbdFlags : Byte;
  204.                 {-Returns keyboard status flags as a bit-coded byte}
  205. (1) 3-16      function EnhancedKbdInstalled : Boolean;
  206.                 {-Returns True if an enhanced keyboard is installed}
  207. (1) 3-40      procedure StuffKey(W : Word);
  208.                 {-Stuff one key into the keyboard buffer}
  209. (1) 3-40      procedure StuffString(S : string);
  210.                 {-Stuff the contents of S into the keyboard buffer}
  211. (1) 3-32      procedure ReInitCrt;
  212.                 {-Reinitialize CRT unit's internal variables}
  213.  
  214. OpCrt   ColorSet
  215. ==============================================================================
  216.  
  217. (1) 3-48      procedure SetTextAttr(Color, Mono : Byte);
  218.                 {-Set attributes for ordinary text}
  219. (1) 3-48      procedure SetCtrlAttr(Color, Mono : Byte);
  220.                 {-Set attributes for control characters}
  221. (1) 3-48      procedure SetFrameAttr(Color, Mono : Byte);
  222.                 {-Set attributes for window frames}
  223. (1) 3-48      procedure SetHeaderAttr(Color, Mono : Byte);
  224.                 {-Set attributes for window headers}
  225. (1) 3-48      procedure SetShadowAttr(Color, Mono : Byte);
  226.                 {-Set attributes for window shadows}
  227. (1) 3-48      procedure SetHighlightAttr(Color, Mono : Byte);
  228.                 {-Set attributes used to highlight found text}
  229. (1) 3-48      procedure SetPromptAttr(Color, Mono : Byte);
  230.                 {-Set attributes for entry field prompts}
  231. (1) 3-48      procedure SetSelectedPromptAttr(Color, Mono : Byte);
  232.                 {-Set attributes for selected entry field prompts}
  233. (1) 3-48      procedure SetProtectedPromptAttr(Color, Mono : Byte);
  234.                 {-Set attributes for protected entry field prompts}
  235. (1) 3-48      procedure SetFieldAttr(Color, Mono : Byte);
  236.                 {-Set attributes for unselected entry fields}
  237. (1) 3-48      procedure SetSelectedFieldAttr(Color, Mono : Byte);
  238.                 {-Set attributes for selected entry field fields}
  239. (1) 3-48      procedure SetProtectedFieldAttr(Color, Mono : Byte);
  240.                 {-Set attributes for protected entry fields}
  241. (1) 3-48      procedure SetScrollBarAttr(Color, Mono : Byte);
  242.                 {-Set attributes for scroll bars}
  243. (1) 3-48      procedure SetSliderAttr(Color, Mono : Byte);
  244.                 {-Set attributes for sliders in scroll bars}
  245. (1) 3-48      procedure SetHotSpotAttr(Color, Mono : Byte);
  246.                 {-Sets attributes for mouse hot spots}
  247. (1) 3-48      procedure SetBlockAttr(Color, Mono : Byte);
  248.                 {-Set attributes for marked blocks}
  249. (1) 3-48      procedure SetMarkerAttr(Color, Mono : Byte);
  250.                 {-Set attributes for text markers}
  251. (1) 3-48      procedure SetDelimAttr(Color, Mono : Byte);
  252.                 {-Set attributes for unselected entry field delimiters}
  253. (1) 3-48      procedure SetSelectedDelimAttr(Color, Mono : Byte);
  254.                 {-Set attributes for selected entry field delimiters}
  255. (1) 3-48      procedure SetProtectedDelimAttr(Color, Mono : Byte);
  256.                 {-Set attributes for protected entry field delimiters}
  257. (1) 3-48      procedure SetSelectedItemAttr(Color, Mono : Byte);
  258.                 {-Set attributes for selected pick and menu items}
  259. (1) 3-48      procedure SetProtectedItemAttr(Color, Mono : Byte);
  260.                 {-Set attributes for protected pick and menu items}
  261. (1) 3-48      procedure SetHighlightItemAttr(Color, Mono : Byte);
  262.                 {-Set attributes for highlighted selection characters for menu
  263.                  items}
  264. (1) 3-48      procedure SetFlexAHelpAttr(Color, Mono : Byte);
  265.                 {-Set attributes for help text surrounded by ^A}
  266. (1) 3-48      procedure SetFlexBHelpAttr(Color, Mono : Byte);
  267.                 {-Set attributes for help text surrounded by ^B}
  268. (1) 3-48      procedure SetFlexCHelpAttr(Color, Mono : Byte);
  269.                 {-Set attributes for help text surrounded by ^C}
  270. (1) 3-48      procedure SetUnselXrefAttr(Color, Mono : Byte);
  271.                 {-Set attributes for unselected cross-references in help text}
  272. (1) 3-48      procedure SetSelXrefAttr(Color, Mono : Byte);
  273.                 {-Set attributes for selected cross-references in help text}
  274. (1) 3-48      procedure SetMouseAttr(Color, Mono : Byte);
  275.                 {-Set attributes for mouse cursor}
  276.  
  277. OpMouse Procedures and Functions
  278. ==============================================================================
  279.  
  280. (1) 3-71      function MousePressed : Boolean;
  281.                 {-Return True if a mouse button is currently being pressed}
  282. (1) 3-71      function MouseKeyWord : Word;
  283.                 {-Return a pseudo-scan code based on which mouse button is being
  284.                   pressed}
  285. (1) 3-68      function KeyOrButtonPressed : Boolean;
  286.                 {-Return True if a key or mouse button has been pressed}
  287. (1) 3-76      function ReadKeyOrButton : Word;
  288.                 {-Return next key or mouse button}
  289. (1) 3-64      procedure EnableEventHandling;
  290.                 {-Enable the event handler needed for MousePressed and
  291.                   MouseKeyWord}
  292. (1) 3-63      procedure DisableEventHandling;
  293.                 {-Disable the event handler installed by EnableEventHandling}
  294. (1) 3-68      procedure InitializeMouse;
  295.                 {-Reinitializes mouse and sets MouseInstalled}
  296. (1) 3-80      procedure ShowMouse;
  297.                 {-Show the mouse cursor}
  298. (1) 3-67      procedure HideMouse;
  299.                 {-Hide the mouse cursor}
  300. (1) 3-73      procedure MouseWhereXY(var MouseX, MouseY : Byte;
  301.                                      var Status : ButtonStatus);
  302.                 {-Return mouse position and button status}
  303. (1) 3-72      function MouseWhereX : Byte;
  304.                 {-Return current X coordinate for mouse}
  305. (1) 3-74      function MouseWhereY : Byte;
  306.                 {-Return current Y coordinate for mouse}
  307. (1) 3-74      procedure MouseWhereXYabs(var MouseX, MouseY : Byte;
  308.                                         var Status : ButtonStatus);
  309.                 {-Return mouse position (absolute) and button status}
  310. (1) 3-73      function MouseWhereXabs : Byte;
  311.                 {-Return current X coordinate (absolute) for mouse}
  312. (1) 3-75      function MouseWhereYabs : Byte;
  313.                 {-Return current Y coordinate (absolute) for mouse}
  314. (1) 3-70      procedure MouseGotoXY(MouseX, MouseY : Byte);
  315.                 {-Set mouse position}
  316. (1) 3-69      function MouseButtonPressed(Button : ButtonStatus; var Count : Word;
  317.                                           var LastX, LastY : Byte) : Boolean;
  318.                 {-Returns True if the Button to check has been pressed. If so,
  319.                   Count has the number of times it has been pressed, and
  320.                   LastX/LastY have its position the last time it was pressed.}
  321. (1) 3-69      function MouseButtonReleased(Button : ButtonStatus; var Count : Word;
  322.                                            var LastX, LastY : Byte) : Boolean;
  323.                 {-Returns True if the Button to check has been released. If so,
  324.                   Count has the number of times it has been released, and
  325.                   LastX/LastY have its position the last time it was released.}
  326. (1) 3-75      procedure MouseWindow(XLow, YLow, XHigh, YHigh : Byte);
  327.                 {-Sets window coordinates to be observed by the mouse}
  328. (1) 3-65      procedure FullMouseWindow;
  329.                 {-Sets mouse window coordinates to full screen}
  330. (1) 3-81      procedure StoreMouseCoordinates(var WC : WindowCoordinates);
  331.                 {-Store the mouse window coordinates in WC}
  332. (1) 3-77      procedure RestoreMouseCoordinates(WC : WindowCoordinates);
  333.                 {-Restore previously saved mouse window coordinates}
  334. (1) 3-70      function MouseInWindow(XLo, YLo, XHi, YHi : Byte) : Boolean;
  335.                 {-Return True if mouse is within the specified window}
  336. (1) 3-81      procedure SoftMouseCursor(ScreenMask, CursorMask : Word);
  337.                 {-Set mouse to use a software cursor}
  338. (1) 3-66      procedure HardMouseCursor(StartLine, EndLine : Word);
  339.                 {-Set mouse to use the hardware cursor. StartLine and EndLine
  340.                   specify the shape of the cursor.}
  341. (1) 3-76      procedure NormalMouseCursor;
  342.                 {-Set normal scan lines for mouse cursor based on current video
  343.                   mode}
  344. (1) 3-64      procedure FatMouseCursor;
  345.                 {-Set larger scan lines for mouse cursor based on current video
  346.                   mode}
  347. (1) 3-63      procedure BlockMouseCursor;
  348.                 {-Set scan lines for a block mouse cursor}
  349. (1) 3-67      procedure HiddenMouseCursor;
  350.                 {-Hide the mouse cursor}
  351. (1) 3-65      procedure GetMickeyCount(var Horizontal, Vertical : Integer);
  352.                 {-Returns the horizontal and vertical mickey count since the last
  353.                   call to this function. Negative numbers indicate movement up or
  354.                   to the left; positive numbers indicate movement down or to the
  355.                   right.}
  356. (1) 3-78      procedure SetMickeyToPixelRatio(Horizontal, Vertical : Integer);
  357.                 {-Sets the mickey-to-pixel ratio. Default setting is 8,16. A
  358.                   setting of 16,32 slows down the mouse considerably. A setting of
  359.                   4,8 makes the mouse fly.}
  360. (1) 3-79      procedure SetMouseEventHandler(EventMask : MouseEventType;
  361.                                              UserRoutine : Pointer);
  362.                 {-Sets the address of a routine to be called when the specified
  363.                   mouse events occur}
  364. (1) 3-66      function GetMousePage : Byte;
  365.                 {-Returns the video page where the mouse is being displayed}
  366. (1) 3-79      procedure SetMousePage(Page : Byte);
  367.                 {-Sets the video page where the mouse will be displayed}
  368. (1) 3-72      function MouseStateBufferSize : Word;
  369.                 {-Returns amount of memory needed to save the state of the mouse
  370.                   driver}
  371. (1) 3-78      procedure SaveMouseState(var MSP : MouseStatePtr;
  372.                                        Allocate : Boolean);
  373.                 {-Save the state of the mouse driver, allocating the buffer if
  374.                   requested.}
  375. (1) 3-77      procedure RestoreMouseState(var MSP : MouseStatePtr;
  376.                                           Deallocate : Boolean);
  377.                 {-Restore the state of the mouse driver and Deallocate the buffer
  378.                   if requested}
  379. (1) 3-67      procedure HideMousePrim(var MouseState : Boolean);
  380.                 {-Save state of mouse cursor in MouseState and hide it}
  381. (1) 3-80      procedure ShowMousePrim(MouseState : Boolean);
  382.                 {-Hide or unhide the mouse cursor}
  383.  
  384. OpCmd   CommandProcessor
  385. ==============================================================================
  386.  
  387. (1) 3-105     constructor Init(KeysPtr : CmdTablePtr; MaxIndex : Word);
  388.                 {-Initialize a command processor with only one command table}
  389. (1) 3-105     constructor InitCustom(PrimaryKeys : CmdTablePtr;
  390.                                      PrimaryMaxIndex : Word;
  391.                                      SecondaryKeys : CmdTablePtr;
  392.                                      SecondaryMaxIndex : Word; Options : Word);
  393.                 {-Initialize a command processor with custom options}
  394. (1) 3-100     destructor Done; virtual;
  395.                 {-Dispose of any memory that was allocated by the command
  396.                   processor}
  397. (1) 3-102     function GetCommand(var Key : Word) : Word;
  398.                 {-Get next command or character}
  399. (1) 3-95      procedure AddCommand(Cmd : Word; NumKeys : Byte; Key1, Key2 : Word);
  400.                 {-Add a new primary command key assignment or change an existing
  401.                   one}
  402. (1) 3-96      procedure AddSecondaryCommand(Cmd : Word; NumKeys : Byte;
  403.                                             Key1, Key2 : Word);
  404.                 {-Add a new secondary command key assignment or change an existing
  405.                   one}
  406. (1) 3-104     function GetLastError : Word;
  407.                 {-Returns last error code and clears it}
  408. (1) 3-108     procedure SetGetKeyProc(GKP : GetKeyProc);
  409.                 {-Change the cpGetKey routine}
  410. (1) 3-109     procedure SetKeyPressedProc(KPP : KeyPressedProc);
  411.                 {-Change the cpKeyPressed routine}
  412. (1) 3-108     procedure SetHelpProc(GHP : GetHelpProc);
  413.                 {-Change the HelpProc field}
  414. (1) 3-110     procedure SetUserHookProc(UHP : UserHookProc);
  415.                 {-Specify a routine to be called each time a keystroke is
  416.                   evaluated}
  417. (1) 3-99      procedure cpOptionsOn(OptionFlags : Word);
  418.                 {-Activate multiple options}
  419. (1) 3-99      procedure cpOptionsOff(OptionFlags : Word);
  420.                 {-Deactivate multiple options}
  421. (1) 3-99      function cpOptionsAreOn(OptionFlags : Word) : Boolean;
  422.                 {-Return true if all specified options are on}
  423. (1) 3-98      function cpGetKey : Word; virtual;
  424.                 {-Called to get next keystroke}
  425. (1) 3-98      function cpKeyPressed : Boolean; virtual;
  426.                 {-Called to determine if a key has been pressed}
  427. (1) 3-98      procedure cpGetHelp(UnitCode : Byte; IdPtr : Pointer;
  428.                                   HelpIndex : Word); virtual;
  429.                 {-Called when help is requested}
  430. (1) 3-100     procedure cpUserHook(MT : MatchType; Key : Word); virtual;
  431.                 {-Called each time a keystroke is processed}
  432. (1) 3-109     procedure SetKeyPtr(KeysPtr : CmdTablePtr; MaxIndex : Word);
  433.                 {-Change the primary command table}
  434. (1) 3-103     function GetKeyPtr(var MaxIndex : Word) : CmdTablePtr;
  435.                 {-Return a pointer to the primary command table}
  436. (1) 3-110     procedure SetSecondaryKeyPtr(KeysPtr : CmdTablePtr; MaxIndex : Word);
  437.                 {-Change the secondary command table}
  438. (1) 3-104     function GetSecondaryKeyPtr(var MaxIndex : Word) : CmdTablePtr;
  439.                 {-Return a pointer to the secondary command table}
  440. (1) 3-103     procedure GetKeyAssignment(Cmd : Word; var NumKeys : Byte;
  441.                                          var Key1, Key2 : Word);
  442.                 {-Return one set of key(s) assigned to the specified command.
  443.                   NumKeys = 0 if none found.}
  444. (1) 3-101     function GetCmdAssignment(NumKeys : Byte; Key1, Key2 : Word;
  445.                                         var Primary : Boolean) : Word;
  446.                 {-Return command associated with specified key combination, or
  447.                   ccNone if none found. Primary is False only if match found in
  448.                   secondary key set.}
  449. (1) 3-96      function CheckForConflict(NumKeys : Byte;
  450.                                         Key1, Key2 : Word) : MatchType;
  451.                 {-Check to see if the specified key combination conflicts with an
  452.                   existing one}
  453. (1) 3-107     procedure SetCommandList(CmdList : Pointer; NumCmds : Word);
  454.                 {-Specify a list of commands to be auto-executed}
  455. (1) 3-97      function CommandStringPending : Boolean;
  456.                 {-Returns True if a text string is pending in the list of
  457.                   auto-executed commands}
  458. (1) 3-102     function GetCommandString : string;
  459.                 {-Returns a text string when CommandStringPending is True}
  460. (1) 3-106     constructor Load(var S : IdStream);
  461.                 {-Load a command processor from a stream}
  462. (1) 3-111     procedure Store(var S : IdStream);
  463.                 {-Store a command processor in a stream}
  464. (1) 3-107     function MouseEnabled : Boolean;
  465.                 {-Return True if mouse support enabled}
  466.  
  467. OpCmd   CommandPacker
  468. ==============================================================================
  469.  
  470. (1) 3-116     constructor Init(PKeys : CmdTablePtr; MaxCmd, MaxIndex : Word;
  471.                                UKeys : UnpackedCmdPtr; Columns : Byte;
  472.                                CmdsAreWords : Boolean);
  473.                 {-Initialize pointers to packed/unpacked command tables}
  474. (1) 3-116     function PackKeys : Boolean;
  475.                 {-Convert unpacked array into a packed list of keys again. Returns
  476.                   False if keys won't all fit.}
  477. (1) 3-116     function SizeKeys : Word;
  478.                 {-Return number of bytes in packed version of UnpackedKeys}
  479. (1) 3-115     function GetKeyRecPtr(Cmd : Word; Col : Byte) : KeyRecPtr;
  480.                 {-Returns a pointer to the KeyRec for the Col'th instance of Cmd}
  481. (1) 3-115     function ConflictsFound : Boolean;
  482.                 {-Check unpacked commands for conflicts. Returns True if conflicts
  483.                   found}
  484.  
  485. OpCmd   Procedures and Functions
  486. ==============================================================================
  487.  
  488. (1) 3-118     procedure SetBell(Pitch, Duration : Word);
  489.                 {-Set pitch and duration for bell}
  490. (1) 3-118     procedure RingBell;
  491.                 {-Ring the bell}
  492. (1) 3-118     procedure DefaultErrorProc(UnitCode : Byte; var ErrorCode : Word;
  493.                                          ErrorMsg : string);
  494.                 {-Default error handler--just beeps}
  495.  
  496. OpFrame AbstractFrame
  497. ==============================================================================
  498.  
  499. (1) 4-42      procedure ClearErrors;
  500.                 {-Clear all pending errors}
  501.  
  502. OpFrame ScreenRect
  503. ==============================================================================
  504.  
  505. (1) 4-11      constructor Alloc(X1, Y1, X2, Y2 : Byte);
  506.                 {-Initialize coordinates and allocate a screen buffer}
  507. (1) 4-15      constructor Init(X1, Y1, X2, Y2 : Byte; BufPtr : Pointer);
  508.                 {-Initialize coordinates and assign a preallocated buffer}
  509. (1) 4-14      destructor Done; virtual;
  510.                 {-Deallocate buffer}
  511. (1) 4-12      function BufSize : Word;
  512.                 {-Return required size of buffer in bytes}
  513. (1) 4-12      procedure Clear(FChar : Char; FAttr : Byte);
  514.                 {-Clear with character and attribute}
  515. (1) 4-13      procedure CopyFromScreen;
  516.                 {-Copy from screen to buffer}
  517. (1) 4-14      procedure CopyToScreen;
  518.                 {-Copy buffer to screen}
  519. (1) 4-13      procedure CopyPartToScreen(X1, Y1, X2, Y2 : Byte);
  520.                 {-Copy part of the buffer to the screen}
  521. (1) 4-10      procedure Adjust(X1, Y1, X2, Y2 : Byte);
  522.                 {-Adjust buffer coordinates to X1, Y1, X2, Y2}
  523. (1) 4-19      procedure Transfer(X1, Y1, X2, Y2 : Byte;
  524.                                  FChar : Char; FAttr : Byte);
  525.                 {-Transfer buffer to new buffer at coordinates X1, Y1, X2, Y2}
  526. (1) 4-17      function srResult : Word;
  527.                 {-Return most recent status code}
  528. (1) 4-19      procedure StoreContents(On : Boolean);
  529.                 {-Specify whether Store writes contents of screen buffer}
  530. (1) 4-15      function HaveContents : Boolean;
  531.                 {-Return True if contents were loaded by Load}
  532. (1) 4-12      procedure Coordinates(var X1, Y1, X2, Y2 : Byte);
  533.                 {-Return coordinates of screen rectangle}
  534. (1) 4-16      constructor Load(var S : IdStream);
  535.                 {-Load from stream}
  536. (1) 4-18      procedure Store(var S : IdStream);
  537.                 {-Store to stream}
  538.  
  539. OpFrame Frame
  540. ==============================================================================
  541.  
  542. (1) 4-48      constructor Init(X1, Y1, X2, Y2 : Byte; FA : FrameArray;
  543.                                var Colors : ColorSet);
  544.                 {-Initialize frame coordinates and all fields}
  545. (1) 4-46      constructor fCopy(var F : Frame);
  546.                 {-Initialize a frame from another, making a unique copy of all
  547.                   dynamic structures}
  548. (1) 4-44      destructor Done; virtual;
  549.                 {-Destroy a frame}
  550. (1) 4-50      procedure SetFrameType(FA : FrameArray);
  551.                 {-Change the frame type}
  552. (1) 4-50      procedure SetFrameAttr(Color, Mono : Byte); virtual;
  553.                 {-Set attributes for frame characters}
  554. (1) 4-51      procedure SetHeaderAttr(Color, Mono : Byte; ChangeAll : Boolean);
  555.                 {-Set attributes for header characters}
  556. (1) 4-51      procedure SetShadowAttr(Color, Mono : Byte; ChangeAll : Boolean);
  557.                 {-Set attributes for shadow characters}
  558. (1) 4-34      procedure AddHeader(S : string; Posn : HeaderPosType);
  559.                 {-Add a standard header}
  560. (1) 4-34      procedure AddHeaderColor(S : string; Posn : HeaderPosType;
  561.                                        AttrColor, AttrMono : Byte);
  562.                 {-Add a standard header with custom color}
  563. (1) 4-31      procedure AddCustomHeader(S : string; Posn : FrameCornerType;
  564.                                         DX, DY : Integer;
  565.                                         AttrColor, AttrMono : Byte);
  566.                 {-Add a custom header}
  567. (1) 4-39      procedure AddSpanHeader(FirstChar, SpanChar, LastChar : Char;
  568.                                       Dpos : Integer; Posn : FrameEdgeType);
  569.                 {-Add a header spanning the frame}
  570. (1) 4-39      procedure AddSpanHeaderColor(FirstChar, SpanChar, LastChar : Char;
  571.                                            Dpos : Integer; Posn : FrameEdgeType;
  572.                                            AttrColor, AttrMono : Byte);
  573.                 {-Add a header spanning the frame with custom color}
  574. (1) 4-47      function GetLastHeaderIndex : Byte;
  575.                 {-Return index of last header added}
  576. (1) 4-41      procedure ChangeHeaderString(Index : Byte; S : string;
  577.                                            var Redraw : Boolean);
  578.                 {-Change existing header string and update position}
  579. (1) 4-40      procedure ChangeHeaderAttr(Index : Byte; Color, Mono : Byte);
  580.                 {-Change existing header colors}
  581. (1) 4-45      procedure DrawHeader(Index : Byte);
  582.                 {-Draw specified header}
  583. (1) 4-44      procedure DisableHeader(Index : Byte; On : Boolean);
  584.                 {-Disable or enable specified header}
  585. (1) 4-37      procedure AddShadow(Posn : ShadowPosType; DrawType : ShadowDrawType);
  586.                 {-Add a standard shadow}
  587. (1) 4-38      procedure AddShadowColor(Posn : ShadowPosType;
  588.                                        DrawType : ShadowDrawType;
  589.                                        AttrColor, AttrMono : Byte);
  590.                 {-Add a standard shadow with custom color}
  591. (1) 4-33      procedure AddCustomShadow(ShChar : Char; Edge : FrameEdgeType;
  592.                                         DX, DY : Integer; W, H : Byte;
  593.                                         AttrColor, AttrMono : Byte);
  594.                 {-Add a custom shadow rectangle}
  595. (1) 4-37      procedure AddScrollBar(Posn : FrameEdgeType;
  596.                                      MinUser, MaxUser : LongInt;
  597.                                      var Colors : ColorSet);
  598.                 {-Add a standard scroll bar}
  599. (1) 4-33      procedure AddCustomScrollBar(Posn : FrameEdgeType;
  600.                                            MinUser, MaxUser : LongInt;
  601.                                            DecOffset, IncOffset : Byte;
  602.                                            SliChar, BarChar : Char;
  603.                                            var Colors : ColorSet);
  604.                 {-Add a custom scroll bar}
  605. (1) 4-36      procedure AddHotSpot(Posn : FrameCornerType; HotChar : Char;
  606.                                    var Colors : ColorSet);
  607.                 {-Add a hot spot in a frame corner}
  608. (1) 4-35      procedure AddHotBar(Posn : FrameEdgeType; Code : Byte);
  609.                 {-Add a hot region covering an entire frame edge}
  610. (1) 4-36      procedure AddHotRegion(Posn : FrameCharType; Code : Byte;
  611.                                      DX, DY : Integer; Width, Height : Byte);
  612.                 {-Add a fixed size hot region relative to the frame corner}
  613. (1) 4-35      procedure AddHotHeader(hType : HeaderPosType; Code : Byte;
  614.                                      Len : Byte);
  615.                 {-Add a hot region to coincide with a header}
  616. (1) 4-48      function GetLastHotIndex : Byte;
  617.                 {-Return index of last hot region}
  618. (1) 4-42      procedure ChangeHotHeader(Index : Byte; Len : Byte);
  619.                 {-Change the length (and position) of a hot header}
  620. (1) 4-52      procedure SetSizeLimits(MinW, MinH, MaxW, MaxH : Byte);
  621.                 {-Set limits for sizing of frame}
  622. (1) 4-50      procedure SetClipLimits(MinXL, MinYL, MaxXH, MaxYH : Byte);
  623.                 {-Set limits for drawing frame (shadows get clipped)}
  624. (1) 4-52      procedure SetSliderValue(Posn : FrameEdgeType; UserVal : LongInt);
  625.                 {-Change the user value without drawing it}
  626. (1) 4-43      function CurUserValue(Posn : FrameEdgeType) : LongInt;
  627.                 {-Return the current user value for specified scroll bar}
  628. (1) 4-45      procedure Draw; virtual;
  629.                 {-Draw the frame, scrollbars, headers, and shadows}
  630. (1) 4-53      procedure UpdateFrame; virtual;
  631.                 {-Draw the frame, scrollbars, and headers (no shadows)}
  632. (1) 4-49      function IsFramed : Boolean;
  633.                 {-Return True if any of the FrameChars are not NoFrameChar}
  634. (1) 4-43      procedure Coordinates(var X1, Y1, X2, Y2 : Byte);
  635.                 {-Return the coordinates of the frame}
  636. (1) 4-54      procedure WithinFrameCoords(var X1, Y1, X2, Y2 : Byte);
  637.                 {-Return the coordinates of region within, not including, the
  638.                   border}
  639. (1) 4-40      procedure AdjustFrame(X1, Y1, X2, Y2 : Byte);
  640.                 {-Set new coordinates and adjust related structures}
  641. (1) 4-46      procedure Error(Code : Word); virtual;
  642.                 {-Report that an error occurred}
  643. (1) 4-47      function GetLastError : Word; virtual;
  644.                 {-Return and clear the last error code, 0 if none}
  645. (1) 4-49      constructor Load(var S : IdStream);
  646.                 {-Load from stream}
  647. (1) 4-53      procedure Store(var S : IdStream);
  648.                 {-Store to stream}
  649.  
  650. OpWindow  AbstractWindow
  651. ==============================================================================
  652.  
  653. (1) 4-107     function Width : Word;
  654.                 {-Return the active width of the window}
  655. (1) 4-84      function Height : Word;
  656.                 {-Return the active height of the window}
  657. (1) 4-69      procedure ClearErrors;
  658.                 {-Clear all pending errors}
  659.  
  660. OpWindow  RawWindow
  661. ==============================================================================
  662.  
  663. (1) 4-85      constructor Init(X1, Y1, X2, Y2 : Byte);
  664.                 {-Create a window with default options and colors}
  665. (1) 4-85      constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  666.                                      Options : LongInt);
  667.                 {-Create a window with custom options}
  668. (1) 4-106     constructor wCopy(var W : RawWindow);
  669.                 {-Initialize a window from another one, making a unique copy of
  670.                   all dynamic structures}
  671. (1) 4-71      destructor Done; virtual;
  672.                 {-Destroy a window}
  673. (1) 4-63      procedure AdjustFrameCoords(X1, Y1, X2, Y2 : Byte);
  674.                 {-Change frame coordinates of an inactive window.
  675.                   Completely clears existing frame definition}
  676. (1) 4-71      procedure DeltaAdjustFrame(dX1, dY1, dX2, dY2 : Integer);
  677.                 {-Change frame coordinates of an inactive window.
  678.                   Reallocates wCovers buffer but changes nothing else}
  679. (1) 4-97      procedure SetSizeLimits(MinW, MinH, MaxW, MaxH : Byte);
  680.                 {-Set limits for sizing of active window}
  681. (1) 4-96      procedure SetPosLimits(MinX, MinY, MaxX, MaxY : Byte);
  682.                 {-Set limits for moving and drawing (generally limited by frame)}
  683. (1) 4-96      procedure SetFrameLimits(MinW, MinH, MaxW, MaxH : Byte);
  684.                 {-Set limits for sizing of frame}
  685. (1) 4-103     procedure UpdateScreenSize;
  686.                 {-Update window size, position, and limits for current screen
  687.                   size}
  688. (1) 4-77      procedure EnableExplosions(StageDelay : Word);
  689.                 {-Enable exploding windows with StageDelay milliseconds per stage}
  690. (1) 4-75      procedure EnableAlternateOpen(OpenProc, CloseProc : RawWindowProc;
  691.                                             StageDelay : Word);
  692.                 {-Enable alternate draw and erase routines}
  693. (1) 4-77      procedure EnableNormalOpen;
  694.                 {-Disable exploding windows or alternate draw routines}
  695. (1) 4-109     procedure wOptionsOn(OptionCodes : LongInt);
  696.                 {-Turn options on}
  697. (1) 4-108     procedure wOptionsOff(OptionCodes : LongInt);
  698.                 {-Turn options off}
  699. (1) 4-107     function wOptionsAreOn(OptionCodes : LongInt) : Boolean;
  700.                 {-Return true if all specified options are on}
  701. (1) 4-97      procedure SetTextAttr(Color, Mono : Byte); virtual;
  702.                 {-Set attributes for normal window text}
  703. (1) 4-95      procedure SetBackChar(BackChar : Char); virtual;
  704.                 {-Set background character}
  705. (1) 4-106     procedure wGotoXY(X, Y : Integer); virtual;
  706.                 {-Move cursor to window-relative coordinates}
  707. (1) 4-110     procedure wWhereXY(var X, Y : Integer); virtual;
  708.                 {-Return window-relative coordinates of cursor}
  709. (1) 4-110     procedure wWhereXYAbs(var X, Y : Byte);
  710.                 {-Return absolute coordinates of cursor}
  711. (1) 4-95      procedure SetCursor(CT : CursorType);
  712.                 {-Set cursor shape}
  713. (1) 4-83      function GetCursor : CursorType;
  714.                 {-Return current cursor shape}
  715. (1) 4-67      procedure ChangeHeader(Index : Byte; S : string);
  716.                 {-Change header string, and if window is current, update screen}
  717. (1) 4-86      function InWindow(AX, AY : Byte) : Boolean;
  718.                 {-Return true if specified absolute position is within active
  719.                   window}
  720. (1) 4-70      function CursorInWindow : Boolean;
  721.                 {-Return true if cursor is currently within active window}
  722. (1) 4-80      procedure EvaluatePos(X, Y : Byte);
  723.                 {-Evaluate specified absolute position relative to window,
  724.                   hotspots, and scrollbars. Access returned values using
  725.                   PosResults}
  726. (1) 4-79      procedure EvaluateMousePos;
  727.                 {-Evaluate current mouse position as with EvaluatePos}
  728. (1) 4-91      function PosResults(var FramePos : FramePosType;
  729.                                   var HotCode : Byte) : LongInt;
  730.                 {-Return values from most recent call to EvaluatePos or
  731.                   EvaluateMousePos}
  732. (1) 4-79      procedure Error(Code : Word); virtual;
  733.                 {-Report that an error occurred}
  734. (1) 4-84      function GetLastError : Word; virtual;
  735.                 {-Return and clear the last error code, 0 if none}
  736. (1) 4-86      function IsActive : Boolean; virtual;
  737.                 {-Return True if window is on-screen}
  738. (1) 4-86      function IsCurrent : Boolean; virtual;
  739.                 {-Return True if window is the current one}
  740. (1) 4-87      function IsZoomed : Boolean; virtual;
  741.                 {-Return True if window is currently zoomed}
  742. (1) 4-89      function MainFramePtr : AbstractFramePtr; virtual;
  743.                 {-Return a pointer to frame used when window is current}
  744. (1) 4-65      function AltFramePtr : AbstractFramePtr; virtual;
  745.                 {-Return a pointer to frame used when window is active but not
  746.                   current}
  747. (1) 4-62      function ActiveFramePtr : AbstractFramePtr; virtual;
  748.                 {-Return a pointer to frame the window is currently displaying,
  749.                   nil if none}
  750. (1) 4-70      procedure Coordinates(var X1, Y1, X2, Y2 : Byte);
  751.                 {-Return the active coordinates of the window}
  752. (1) 4-81      procedure Extent(var X1, Y1, X2, Y2 : Byte;
  753.                                IncludeShadows : Boolean);
  754.                 {-Return the complete extent of the window, counting shadows if
  755.                   requested}
  756. (1) 4-72      procedure Draw; virtual;
  757.                 {-Draw or update a window}
  758. (1) 4-102     procedure UpdateContents; virtual;
  759.                 {-Update the contents of the currently displayed window}
  760. (1) 4-78      procedure Erase; virtual;
  761.                 {-Erase a window}
  762. (1) 4-93      procedure SaveContents; virtual;
  763.                 {-Save current window contents in the contents buffer}
  764. (1) 4-74      procedure DrawSlider(Posn : FrameEdgeType; UserVal : LongInt);
  765.                 {-Draw or update the slider}
  766. (1) 4-78      procedure EraseSlider(Posn : FrameEdgeType);
  767.                 {-Erase the slider}
  768. (1) 4-100     function TweakSlider(Posn : FrameEdgeType; MousePosn : Byte;
  769.                                    UserVal : LongInt; Step : LongInt) : LongInt;
  770.                 {-Adjust user value until slider exactly matches mouse position}
  771. (1) 4-68      procedure ChangeScrollBar(Posn : FrameEdgeType;
  772.                                         MinUser, MaxUser : LongInt);
  773.                 {-Change user range of existing scroll bar}
  774. (1) 4-66      procedure ChangeAllScrollBars(MinHoriz, MaxHoriz : LongInt;
  775.                                             MinVert, MaxVert : LongInt); virtual;
  776.                 {-Change user ranges of existing scroll bars. Erases sliders}
  777. (1) 4-73      procedure DrawAllSliders(HorizVal, VertVal : LongInt); virtual;
  778.                 {-Draw or update all sliders}
  779. (1) 4-68      procedure Clear; virtual;
  780.                 {-Clear active window area with wTextXXXX and wBackChar}
  781. (1) 4-69      procedure ClearContents;
  782.                 {-Clear region within frame with wTextXXXX and wBackChar}
  783. (1) 4-90      procedure MoveWindow(DX, DY : Integer); virtual;
  784.                 {-Move a window}
  785. (1) 4-92      procedure ResizeWindow(DX, DY : Integer); virtual;
  786.                 {-Resize a window}
  787. (1) 4-64      procedure AdjustWindow(X1, Y1, X2, Y2 : Word); virtual;
  788.                 {-Set new coordinates and adjust all related structures}
  789. (1) 4-111     procedure Zoom; virtual;
  790.                 {-Increase window size to maximum limits temporarily}
  791. (1) 4-101     procedure Unzoom; virtual;
  792.                 {-Return zoomed window to pre-zoomed size}
  793. (1) 4-94      procedure ScrollHoriz(Cols : Integer); virtual;
  794.                 {-Scroll contents horizontally}
  795. (1) 4-94      procedure ScrollVert(Rows : Integer); virtual;
  796.                 {-Scroll contents vertically}
  797. (1) 4-89      procedure MarkCurrent; virtual;
  798.                 {-Called when window is made current}
  799. (1) 4-89      procedure MarkNotCurrent; virtual;
  800.                 {-Called when window is deselected}
  801. (1) 4-104     procedure wFastWrite(St : string; Row, Col, Attr : Byte);
  802.                 {-Write a string}
  803. (1) 4-104     procedure wFastText(St : string; Row, Col : Byte);
  804.                 {-Write St at Row,Col without changing the underlying video
  805.                   attribute}
  806. (1) 4-104     procedure wFastVert(St : string; Row, Col, Attr : Byte);
  807.                 {-Write a string vertically}
  808. (1) 4-104     procedure wFastFill(Number : Word; Ch : Char; Row, Col, Attr : Byte);
  809.                 {-Fill Number chars at Row,Col in Attr}
  810. (1) 4-104     procedure wChangeAttribute(Number : Word; Row, Col, Attr : Byte);
  811.                 {-Change Number video attributes to Attr starting at Row,Col}
  812. (1) 4-104     procedure wFastCenter(St : string; Row, Attr : Byte);
  813.                 {-Write St centered on Row in Attr}
  814. (1) 4-104     procedure wFastFlush(St : string; Row, Attr : Byte);
  815.                 {-Write St flush right on Row in Attr}
  816. (1) 4-104     procedure wFastRead(Number, Row, Col : Byte; var St : string);
  817.                 {-Read Number characters from the screen into St starting at
  818.                   Row, Col}
  819. (1) 4-104     procedure wReadAttribute(Number, Row, Col : Byte; var St : string);
  820.                 {-Read Number attributes from the screen into St starting at
  821.                   Row, Col}
  822. (1) 4-104     procedure wWriteAttribute(St : String; Row, Col : Byte);
  823.                 {-Write string of attributes St at Row,Col without changing
  824.                   characters}
  825. (1) 4-104     procedure wFlexWrite(St : string; Row, Col : Byte;
  826.                                    var FAttrs : FlexAttrs);
  827.                 {-Write a string flexibly using window-relative coordinates}
  828. (1) 4-104     procedure wFastWriteCtrl(St : String; Row, Col, Attr, Ctrl : Byte);
  829.                 {-Write St at Row,Col in Attr (video attribute) without snow.
  830.                   Control characters displayed in Ctrl as upper-case letters}
  831. (1) 4-82      procedure fFastWrite(St : string; Row, Col, Attr : Byte);
  832.                 {-Write a string}
  833. (1) 4-82      procedure fFastText(St : string; Row, Col : Byte);
  834.                 {-Write St at Row,Col without changing the underlying video
  835.                   attribute}
  836. (1) 4-82      procedure fFastVert(St : string; Row, Col, Attr : Byte);
  837.                 {-Write a string vertically}
  838. (1) 4-82      procedure fFastFill(Number : Word; Ch : Char; Row, Col, Attr : Byte);
  839.                 {-Fill Number chars at Row,Col in Attr}
  840. (1) 4-82      procedure fChangeAttribute(Number : Word; Row, Col, Attr : Byte);
  841.                 {-Change Number video attributes to Attr starting at Row,Col}
  842. (1) 4-82      procedure fFastCenter(St : string; Row, Attr : Byte);
  843.                 {-Write St centered on Row in Attr}
  844. (1) 4-82      procedure fFastFlush(St : string; Row, Attr : Byte);
  845.                 {-Write St flush right on Row in Attr}
  846. (1) 4-82      procedure fFastRead(Number, Row, Col : Byte; var St : string);
  847.                 {-Read Number characters from the screen into St starting at
  848.                   Row, Col}
  849. (1) 4-82      procedure fReadAttribute(Number, Row, Col : Byte; var St : string);
  850.                 {-Read Number attributes from the screen into St starting at
  851.                   Row, Col}
  852. (1) 4-82      procedure fWriteAttribute(St : String; Row, Col : Byte);
  853.                 {-Write string of attributes St at Row,Col without changing
  854.                   characters}
  855. (1) 4-82      procedure fFlexWrite(St : string; Row, Col : Byte;
  856.                                    var FAttrs : FlexAttrs);
  857.                 {-Write a string flexibly using window-relative coordinates}
  858. (1) 4-82      procedure fFastWriteCtrl(St : String; Row, Col, Attr, Ctrl : Byte);
  859.                 {-Write St at Row,Col in Attr (video attribute) without snow.
  860.                   Control characters displayed in Ctrl as upper-case letters}
  861. (1) 4-88      constructor Load(var S : IdStream);
  862.                 {-Load from stream}
  863. (1) 4-98      procedure Store(var S : IdStream);
  864.                 {-Store to stream}
  865.  
  866. OpWindow  StackWindow
  867. ==============================================================================
  868.  
  869. (1) 4-122     constructor Init(X1, Y1, X2, Y2 : Byte);
  870.                 {-Create a stacked window with default options and colors}
  871. (1) 4-122     constructor InitCustom(X1, Y1, X2, Y2 : Byte;
  872.                                      var Colors : ColorSet; Options : LongInt);
  873.                 {-Create a window with custom options}
  874. (1) 4-129     constructor wCopy(var S : StackWindow);
  875.                 {-Initialize a window from another one, making a unique copy of
  876.                   all dynamic structures}
  877. (1) 4-126     procedure SetStackProc(SP : StackWindowProc);
  878.                 {-Set window stack proc}
  879. (1) 4-129     function WindowNumber : Word;
  880.                 {-Return window number. 0 if inactive, else 1 or greater}
  881. (1) 4-119     procedure AssignNumber; virtual;
  882.                 {-Called to assign window number}
  883. (1) 4-120     procedure Draw; virtual;
  884.                 {-Draw or update a window and push it on stack}
  885. (1) 4-121     procedure Erase; virtual;
  886.                 {-Erase a window and pop from stack}
  887. (1) 4-125     procedure Select; virtual;
  888.                 {-Make a window the current one by pulling to the top of stack}
  889. (1) 4-120     procedure DrawHidden(var Under : StackWindow);
  890.                 {-Draw a window, inserting it in the stack underneath window Under}
  891. (1) 4-121     procedure EraseHidden;
  892.                 {-Erase a window even if it's hidden on the window stack}
  893. (1) 4-125     function OnStack : Boolean;
  894.                 {-Return True if window is displayed on the window stack}
  895. (1) 4-118     procedure ActivateWrite;
  896.                 {-Activate fastwriting to a hidden window}
  897. (1) 4-119     procedure DeactivateWrite;
  898.                 {-Deactivate fastwriting and display changes}
  899. (1) 4-123     constructor Load(var S : IdStream);
  900.                 {-Load from stream}
  901. (1) 4-127     procedure Store(var S : IdStream);
  902.                 {-Store to stream}
  903.  
  904. OpWindow  CommandWindow
  905. ==============================================================================
  906.  
  907. (1) 4-148     constructor Init(X1, Y1, X2, Y2 : Byte; var CP : CommandProcessor;
  908.                                UnitCode : Byte);
  909.                 {-Create a command window with default options and colors}
  910. (1) 4-148     constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  911.                                      Options : LongInt; var CP : CommandProcessor;
  912.                                      UnitCode : Byte);
  913.                 {-Create a command window with custom options}
  914. (1) 4-152     procedure Process; virtual;
  915.                 {-Process commands}
  916. (1) 4-154     procedure ProcessAutoPilot(var CmdList; NumCmds : Word);
  917.                 {-Process commands, starting with those in CmdList}
  918. (1) 4-147     procedure GetNextCommand; virtual;
  919.                 {-Called by Process to get next command from user}
  920. (1) 4-155     procedure RequestHelp(HelpIndex : Word); virtual;
  921.                 {-Called by Process to request context-sensitive help}
  922. (1) 4-155     procedure SetCommandProcessor(var CP : CommandProcessor);
  923.                 {-Set command processor to use}
  924. (1) 4-143     function GetCommandProcessor : CommandProcessorPtr;
  925.                 {-Return pointer to window's command processor}
  926. (1) 4-145     function GetLastCommand : Word;
  927.                 {-Return last command entered by user}
  928. (1) 4-158     procedure SetLastCommand(Cmd : Word);
  929.                 {-Change last command}
  930. (1) 4-146     function GetLastKey : Word;
  931.                 {-Return last keystroke entered by user}
  932. (1) 4-158     procedure SetHelpIndex(Index : Word);
  933.                 {-Set help topic number for this window}
  934. (1) 4-144     function GetHelpIndex : Word;
  935.                 {-Return the help topic number for this window}
  936. (1) 4-156     procedure SetErrorProc(EP : ErrorProc);
  937.                 {-Set error handler}
  938. (1) 4-147     procedure GotError(ErrorCode : Word; ErrorMsg : string);
  939.                 {-To be called when an error occurs}
  940. (1) 4-145     function GetLastError : Word; virtual;
  941.                 {-Return last I/O error code}
  942. (1) 4-151     function PeekLastError : Word;
  943.                 {-Return last I/O error code without resetting internal variable}
  944. (1) 4-143     function ClassifyError(ErrorCode : Word) : Byte;
  945.                 {-Return the class of the specified error code}
  946. (1) 4-157     procedure SetExitCommands(ExitSetPtr : ByteSetPtr);
  947.                 {-Specify set of special exit commands}
  948. (1) 4-144     function GetExitCommandPtr : ByteSetPtr;
  949.                 {-Return pointer to set of special exit commands}
  950. (1) 4-149     constructor Load(var S : IdStream);
  951.                 {-Load from stream}
  952. (1) 4-159     procedure Store(var S : IdStream);
  953.                 {-Store to stream}
  954.  
  955. OpWindow VirtScreen
  956. ==============================================================================
  957.  
  958. (1) 4-176     constructor Alloc(Height, Width : Word);
  959.                 {-Create a virtual screen of the specified dimensions}
  960. (1) 4-180     constructor Init(Height, Width : Word; BufSeg : Word);
  961.                 {-Initialize a virtual screen with a preallocated buffer}
  962. (1) 4-179     destructor Done; virtual;
  963.                 {-Deallocate a virtual screen}
  964. (1) 4-175     procedure Activate;
  965.                 {-Activate fast write and read routines on virtual screen}
  966. (1) 4-179     procedure Deactivate;
  967.                 {-Deactivate fast access to virtual screen}
  968. (1) 4-176     procedure Clear(Attr : Byte; Fill : Char);
  969.                 {-Clear virtual screen}
  970. (1) 4-185     procedure WriteTo(S : string; Row, Col : Word; Attr : Byte);
  971.                 {-Write a string to virtual screen}
  972. (1) 4-182     procedure ReadFrom(Number : Byte; Row, Col : Word; var S : string);
  973.                 {-Read number characters from the virtual screen starting at
  974.                   Row, Col}
  975. (1) 4-182     procedure ScrollHoriz(Cols : Integer; Attr : Byte; Fill : Char);
  976.                 {-Scroll contents horizontally}
  977. (1) 4-183     procedure ScrollVert(Rows : Integer; Attr : Byte; Fill : Char);
  978.                 {-Scroll contents vertically}
  979. (1) 4-177     procedure CopyFromWindow(Row, Col : Word);
  980.                 {-Copy current window to position <Row,Col> on virtual screen}
  981. (1) 4-178     procedure CopyToWindow(Row, Col : Word);
  982.                 {-Copy from position <Row,Col> on virtual screen to current window}
  983. (1) 4-177     procedure CopyFromScreen(Row, Col : Word);
  984.                 {-Copy physical screen to position <Row,Col> on virtual screen}
  985. (1) 4-178     procedure CopyToScreen(Row, Col : Word);
  986.                 {-Copy from position <Row,Col> on virtual screen to physical
  987.                   screen}
  988. (1) 4-185     function vRows : Word;
  989.                 {-Return number of rows in virtual screen}
  990. (1) 4-184     function vCols : Word;
  991.                 {-Return number of columns in virtual screen}
  992. (1) 4-181     constructor Load(var S : IdStream);
  993.                 {-Load from stream}
  994. (1) 4-184     procedure Store(var S : IdStream);
  995.                 {-Store to stream}
  996.  
  997. OpWindow  WindowStack
  998. ==============================================================================
  999.  
  1000. (1) 4-133     constructor Init(Max : Word);
  1001.                 {-Allocate stack and initialize}
  1002. (1) 4-132     destructor Done; virtual;
  1003.                 {-Clean up and dispose}
  1004. (1) 4-137     function UnstackTop : WindowPtr;
  1005.                 {-Erase and unstack window at top of stack}
  1006. (1) 4-137     function TopWindow : WindowPtr;
  1007.                 {-Return a pointer to the window at top of stack}
  1008. (1) 4-133     function EvaluateStackPos(X, Y : Byte) : WindowPtr;
  1009.                 {-Evaluate position and return pointer to indicated window, if any}
  1010. (1) 4-132     function EvaluateStackMousePos : WindowPtr;
  1011.                 {-Evaluate mouse position using EvaluatePos}
  1012. (1) 4-134     constructor Load(var S : IdStream);
  1013.                 {-Load from stream}
  1014. (1) 4-135     procedure Store(var S : IdStream);
  1015.                 {-Store to stream. Stores all currently stacked windows}
  1016.  
  1017. OpWindow  LoadableColorSet
  1018. ==============================================================================
  1019.  
  1020. (1) 4-162     constructor Init(var Colors : ColorSet);
  1021.                 {-Initialize this color set from another one}
  1022. (1) 4-162     constructor Load(var S : IdStream);
  1023.                 {-Load a color set from a stream}
  1024. (1) 4-163     procedure Store(var S : IdStream);
  1025.                 {-Store a color set in a stream}
  1026.  
  1027. OpWindow  PackedWindow
  1028. ==============================================================================
  1029.  
  1030. (1) 4-167     constructor Init(XL, YL, XH, YH : Byte);
  1031.                 {-Create a packed window}
  1032. (1) 4-168     constructor InitFromMemory(P : Pointer);
  1033.                 {-Initialize a packed window from one stored to disk with Write
  1034.                   and bound into the EXE file with BINOBJ}
  1035. (1) 4-167     destructor Done; virtual;
  1036.                 {-Deallocate the packed screen}
  1037. (1) 4-170     constructor Read(FName : string);
  1038.                 {-Read the packed window stored in FName into memory}
  1039. (1) 4-172     function Write(FName : string) : Word;
  1040.                 {-Store the packed window in FName}
  1041. (1) 4-169     constructor Load(var S : IdStream);
  1042.                 {-Load a packed window from a stream}
  1043. (1) 4-171     procedure Store(var S : IdStream);
  1044.                 {-Store a packed window in a stream}
  1045. (1) 4-166     procedure Display;
  1046.                 {-Display the packed window}
  1047. (1) 4-166     procedure DisplayAt(Row, Col : Word);
  1048.                 {-Display the packed window at Row,Col. If necessary, the
  1049.                   coordinates are adjusted to allow it to fit on the screen.}
  1050. (1) 4-170     procedure MapColors;
  1051.                 {-Map the colors of the packed window for improved appearance on
  1052.                   mono/B&W displays}
  1053.  
  1054. OpPick  PickList
  1055. ==============================================================================
  1056.  
  1057. (1) 4-218     constructor Init(X1, Y1, X2, Y2 : Byte; ItemWidth : Byte;
  1058.                                NumItems : Word; StringProc : pkStringProc;
  1059.                                Orientation : pkGenlProc;
  1060.                                CommandHandler : pkGenlProc);
  1061.                 {-Initialize a pick window}
  1062. (1) 4-220     constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  1063.                                      Options : LongInt; ItemWidth : Byte;
  1064.                                      NumItems : Word; StringProc : pkStringProc;
  1065.                                      Orientation : pkGenlProc;
  1066.                                      CommandHandler : pkGenlProc);
  1067.                 {-Initialize a pick window with custom window options}
  1068. (1) 4-219     constructor InitAbstract(X1, Y1, X2, Y2 : Byte;
  1069.                                        var Colors : ColorSet; Options : LongInt;
  1070.                                        ItemWidth : Byte; NumItems : Word;
  1071.                                        Orientation : pkGenlProc;
  1072.                                        CommandHandler : pkGenlProc);
  1073.                  {-Constructor to be called by derived types that override
  1074.                    the ItemString method}
  1075. (1) 4-221     constructor InitDeluxe(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  1076.                                      Options : LongInt; ItemWidth : Byte;
  1077.                                      NumItems : Word; StringProc : pkStringProc;
  1078.                                      Orientation : pkGenlProc;
  1079.                                      CommandHandler : pkGenlProc;
  1080.                                      PickOptions : Word);
  1081.                 {-Initialize a pick window with custom window and pick options}
  1082. (1) 4-219     constructor InitAbstractDeluxe(X1, Y1, X2, Y2 : Byte;
  1083.                                              var Colors : ColorSet;
  1084.                                              Options : LongInt; ItemWidth : Byte;
  1085.                                              NumItems : Word;
  1086.                                              Orientation : pkGenlProc;
  1087.                                              CommandHandler : pkGenlProc;
  1088.                                              PickOptions : Word);
  1089.                  {-Constructor to be called by derived types that override the
  1090.                    ItemString method, with custom pick options}
  1091. (1) 4-214     destructor Done; virtual;
  1092.                 {-Dispose of PickList}
  1093. (1) 4-208     procedure AddMoreHeader(PromptStr : String80;
  1094.                                       Posn : HeaderPosType;
  1095.                                       UpStr, DnStr, SepStr : String10;
  1096.                                       UpPos, DnPos, SepPos : Byte);
  1097.                 {-Add a specialized more header to indicate more pick items}
  1098. (1) 4-209     procedure AddSearchHeader(MaxLen : Byte; Posn : HeaderPosType);
  1099.                 {-Add a specialized search string header}
  1100. (1) 4-240     procedure UpdateContents; virtual;
  1101.                 {-Redraw the complete pick window}
  1102. (1) 4-230     procedure Process; virtual;
  1103.                 {-Process pick commands leading to a choice}
  1104. (1) 4-224     procedure ItemString(Item : Word; Mode : pkMode;
  1105.                                    var IType : pkItemType;
  1106.                                    var IString : String); virtual;
  1107.                 {-Supplies each item string when the list is displayed or searched}
  1108. (1) 4-213     procedure CompleteItemString(Item : Word; Mode : pkMode;
  1109.                                            var IType : pkItemType;
  1110.                                            var IString : String); virtual;
  1111.                 {-Supplies, marks, and pads item string}
  1112. (1) 4-230     procedure PreMove; virtual;
  1113.                 {-Called just prior to getting each keyboard command}
  1114. (1) 4-224     function ItemSearch : Boolean; virtual;
  1115.                 {-Called to search list each time an alphanumeric character is
  1116.                   entered}
  1117. (1) 4-232     procedure SetInitialChoice(Choice : Word);
  1118.                 {-Set initial choice without scrolling if possible}
  1119. (1) 4-231     procedure SetChoice(Choice, FirstChoice : Word);
  1120.                 {-Set initial choice with scrolling control}
  1121. (1) 4-232     procedure SetDefaultChoice(Choice : Word);
  1122.                 {-Set the default choice number returned by GetDefaultChoice}
  1123. (1) 4-214     function GetDefaultChoice : Word;
  1124.                 {-Return default choice number}
  1125. (1) 4-216     function GetLastChoice : Word;
  1126.                 {-Return last selected item number}
  1127. (1) 4-215     function GetItemString(Item : Word) : string;
  1128.                 {-Return specified item string in search format}
  1129. (1) 4-216     function GetLastChoiceString : string;
  1130.                 {-Return last choice in search format}
  1131. (1) 4-240     procedure WhereSelect(var X, Y : Byte);
  1132.                 {-Return window-relative coordinates of selected item}
  1133. (1) 4-240     procedure WhereSelectAbs(var X, Y : Byte);
  1134.                 {-Return absolute coordinates of selected item}
  1135. (1) 4-217     function GetOrientation : Byte;
  1136.                 {-Return the orientation code}
  1137. (1) 4-215     function GetItemCols : Byte;
  1138.                 {-Return number of visible item columns}
  1139. (1) 4-216     function GetNumItems : Word;
  1140.                 {-Return number of pick items}
  1141. (1) 4-229     procedure pkOptionsOn(OptionFlags : Word);
  1142.                 {-Activate multiple options}
  1143. (1) 4-229     procedure pkOptionsOff(OptionFlags : Word);
  1144.                 {-Deactivate multiple options}
  1145. (1) 4-229     function pkOptionsAreOn(OptionFlags : Word) : Boolean;
  1146.                 {-Return True if all specified options are on}
  1147. (1) 4-236     procedure SetRowLimits(MinRows, MaxRows : Word);
  1148.                 {-Set values for min and max rows}
  1149. (1) 4-233     procedure SetPadSize(LeftPad, RightPad : Byte);
  1150.                 {-Set number of characters for padding of pick items}
  1151. (1) 4-233     procedure SetMoveProc(MP : pkGenlProc);
  1152.                 {-Set user move procedure}
  1153. (1) 4-236     procedure SetSearchMode(SF : pkSearchFunc);
  1154.                 {-Set a different search mode}
  1155. (1) 4-236     procedure SetSearchStart(SStart : Byte);
  1156.                 {-Set start offset for string searching}
  1157. (1) 4-211     procedure ChangeNumItems(NumItems : Word);
  1158.                 {-Change the number of items to display}
  1159. (1) 4-210     procedure ChangeItemWidth(ItemWidth : Byte);
  1160.                 {-Change the item width}
  1161. (1) 4-212     procedure ChangeStringProc(StringProc : pkStringProc);
  1162.                 {-Change the string function}
  1163. (1) 4-211     procedure ChangeOrientation(Orientation : pkGenlProc);
  1164.                 {-Change the orientation}
  1165. (1) 4-210     procedure ChangeCommandHandler(CommandHandler : pkGenlProc);
  1166.                 {-Change between single and multiple choice}
  1167. (1) 4-228     procedure OptimizeSize;
  1168.                 {-Resize window to surround items}
  1169. (1) 4-234     procedure SetPickAttr(ItemType : pkItemType; Selected : Boolean;
  1170.                                     Color, Mono : Byte);
  1171.                 {-Set one group of colors -- disables flexwriting}
  1172. (1) 4-235     procedure SetPickFlex(ItemType : pkItemType; Selected : Boolean;
  1173.                                     var Color, Mono : FlexAttrs);
  1174.                 {-Set one group of colors for flexwriting}
  1175. (1) 4-237     procedure SetSelectMarker(Left, Right : String);
  1176.                 {-Define strings to mark selected items}
  1177. (1) 4-209     procedure AllocateSelectSet(MaxItems : Word);
  1178.                 {-Allocate the select set for the maximum items}
  1179. (1) 4-212     procedure ClearSelected;
  1180.                 {-Clear selected items}
  1181. (1) 4-226     procedure MarkAllSelected;
  1182.                 {-Mark all items selected}
  1183. (1) 4-231     procedure SelectItem(Item : Word); virtual;
  1184.                 {-Select an item}
  1185. (1) 4-213     procedure DeselectItem(Item : Word); virtual;
  1186.                 {-Deselect an item}
  1187. (1) 4-224     function ItemIsSelected(Item : Word) : Boolean;
  1188.                 {-Return True if item is selected}
  1189. (1) 4-217     function GetSelectedCount : Word;
  1190.                 {-Return number of items selected}
  1191. (1) 4-223     procedure InitSequence(var Item : Word);
  1192.                 {-Prepare to get first selected item}
  1193. (1) 4-218     function HaveSelected(Item : Word) : Boolean;
  1194.                 {-Return True if there is a selected item}
  1195. (1) 4-226     procedure NextSelected(var Item : Word);
  1196.                 {-Position Item at the next selected item}
  1197. (1) 4-223     function IsProtected(Item : Word) : Boolean;
  1198.                 {-Return True if item is protected from selection}
  1199. (1) 4-227     function NumSelectableItems : Word;
  1200.                 {-Return number of items that are not protected}
  1201. (1) 4-225     constructor Load(var S : IdStream);
  1202.                 {-Load a pick list from a stream}
  1203. (1) 4-238     procedure Store(var S : IdStream);
  1204.                 {-Store a pick list in a stream}
  1205.  
  1206. OpPick  Procedures and Functions
  1207. ==============================================================================
  1208.  
  1209. (1) 4-199     function PickNoSearch(P : PickListPtr) : Boolean;
  1210.                 {-No searching mode}
  1211. (1) 4-199     function PickStringSearch(P : PickListPtr) : Boolean;
  1212.                 {-String searching mode}
  1213. (1) 4-199     function PickAltStringSearch(P : PickListPtr) : Boolean;
  1214.                 {-Alternate string searching mode}
  1215. (1) 4-199     function PickCharSearch(P : PickListPtr) : Boolean;
  1216.                 {-Character searching mode}
  1217. (1) 4-199     function PickCharExit(P : PickListPtr) : Boolean;
  1218.                 {-Character searching with exit on match}
  1219. (1) 4-199     function PickAnyCharExit(P : PickListPtr) : Boolean;
  1220.                 {-Exit on any alpha character. No highlight repositioning}
  1221. (1) 4-194     procedure PickVertical(P : PickListPtr);
  1222.                 {-Initialize pick for items arranged vertically}
  1223. (1) 4-194     procedure PickHorizontal(P : PickListPtr);
  1224.                 {-Initialize pick for items arranged horizontally}
  1225. (1) 4-194     procedure PickSnaking(P : PickListPtr);
  1226.                 {-Initialize pick for items arranged vertically, snaking}
  1227. (1) 4-188     procedure SingleChoice(P : PickListPtr);
  1228.                 {-Initialize for a single choice picklist}
  1229. (1) 4-188     procedure MultipleChoice(P : PickListPtr);
  1230.                 {-Initialize for a multiple choice picklist}
  1231. (1) 4-233     procedure NoMoveAction(P : PickListPtr);
  1232.                 {-User hook routine called just before getting each pick command}
  1233.  
  1234. OpDir   DirList
  1235. ==============================================================================
  1236.  
  1237. (1) 4-265     constructor Init(X1, Y1, X2, Y2 : Byte; HeapToUse : Word;
  1238.                                PickOrientation : pkGenlProc;
  1239.                                CommandInit : diInitCommandProc);
  1240.                 {-Initialize a directory list}
  1241. (1) 4-266     constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  1242.                                      Options : LongInt; HeapToUse : Word;
  1243.                                      PickOrientation : pkGenlProc;
  1244.                                      CommandInit : diInitCommandProc);
  1245.                 {-Initialize a directory list with custom window options}
  1246. (1) 4-256     destructor Done; virtual;
  1247.                 {-Dispose of directory list}
  1248. (1) 4-251     procedure AddMaskHeader(FullPath : Boolean; PadSize : Byte;
  1249.                                       MaxLen : Byte; Posn : HeaderPosType);
  1250.                 {-Add a header to display the search mask}
  1251. (1) 4-274     procedure SetMask(Mask : String; FileAttr : Byte);
  1252.                 {-Set search mask and attribute and reset list}
  1253. (1) 4-271     procedure ResetList;
  1254.                 {-Force reread of directory when it may have changed}
  1255. (1) 4-268     procedure PreloadDirList;
  1256.                 {-Read directory in advance, in order to optimize size before
  1257.                   drawing}
  1258. (1) 4-268     procedure Process; virtual;
  1259.                 {-Process pick commands leading to a file choice}
  1260. (1) 4-281     procedure UpdateContents; virtual;
  1261.                 {-Redraw the contents of the directory window}
  1262. (1) 4-278     procedure SortList; virtual;
  1263.                 {-Sort the list of directory entries}
  1264. (1) 4-269     function Reject(var X : DirRec) : Boolean; virtual;
  1265.                 {-Return True to exclude a particular entry from pick}
  1266. (1) 4-257     procedure Format(var X : DirRec; var pkCat : Byte;
  1267.                                var S : String); virtual;
  1268.                 {-Return a formatted string and category for a directory entry}
  1269. (1) 4-258     function GetFileName(Mask : String; FileAttr : Byte;
  1270.                                    var Name : PathStr) : Word;
  1271.                 {-Set a new mask, pick a name and return. Returns status}
  1272. (1) 4-253     procedure ChangeDirectory(Mask : String; ChangeCode : Byte);
  1273.                 {-Change to specified directory, or let user browse around to do
  1274.                   so}
  1275. (1) 4-260     function GetMatchingFileCount : Word;
  1276.                 {-Return number of files matched in last directory}
  1277. (1) 4-260     function GetMatchingSize(ClusterSize : Word) : LongInt;
  1278.                 {-Return number of bytes in all matched files}
  1279. (1) 4-264     function GetSelectedFile : FileStr;
  1280.                 {-Return 12-character name of selected file}
  1281. (1) 4-264     function GetSelectedPath : PathStr;
  1282.                 {-Return full pathname of selected file}
  1283. (1) 4-263     function GetSelectedDir : DirStr;
  1284.                 {-Return directory of selected file}
  1285. (1) 4-263     procedure GetSelectedDirRec(var D : DirRec);
  1286.                 {-Return full DirRec for selected file}
  1287. (1) 4-272     function SelectedFileInCurDir : Boolean;
  1288.                 {-Return true if selected file is in current directory}
  1289. (1) 4-270     procedure RemoveSelectedFile;
  1290.                 {-Remove current file from pick list}
  1291. (1) 4-255     procedure diOptionsOn(OptionFlags : Word);
  1292.                 {-Activate multiple options}
  1293. (1) 4-255     procedure diOptionsOff(OptionFlags : Word);
  1294.                 {-Deactivate multiple options}
  1295. (1) 4-254     function diOptionsAreOn(OptionFlags : Word) : Boolean;
  1296.                 {-Return True if all specified options are on}
  1297. (1) 4-256     function FileCapacity : Word;
  1298.                 {-Return the maximum number of files list can hold}
  1299. (1) 4-278     procedure SetNameFormat;
  1300.                 {-Initialize for compact nnnnnnnn.xxx format}
  1301. (1) 4-278     procedure SetNameSizeFormat(DirStr : String);
  1302.                 {-Initialize for nnnnnnn.xxx sssssssss format}
  1303. (1) 4-278     procedure SetNameSizeKFormat(DirStr : String);
  1304.                 {-Initialize for nnnnnnn.xxx ssssssk format}
  1305. (1) 4-278     procedure SetNameTimeFormat(DatePicture, TimePicture : String);
  1306.                 {-Initialize for name date time format}
  1307. (1) 4-278     procedure SetNameSizeTimeFormat(DirStr,
  1308.                                               DatePicture, TimePicture : String);
  1309.                 {-Initialize for name size date time format}
  1310. (1) 4-278     procedure SetNameSizeKTimeFormat(DirStr,
  1311.                                                DatePicture, TimePicture : String);
  1312.                 {-Initialize for name size date time format}
  1313. (1) 4-278     procedure SetAllFormat(DirStr, DatePicture, TimePicture : String);
  1314.                 {-Initialize for name size date time attr format}
  1315. (1) 4-278     procedure SetUserFormat(MaxFmatLen : Byte; FF : diFormatProc);
  1316.                 {-Set up for a user-defined format function}
  1317. (1) 4-273     procedure SetFileAttr(Color, Mono : Byte);
  1318.                 {-Set video attributes for files}
  1319. (1) 4-273     procedure SetDirAttr(Color, Mono : Byte);
  1320.                 {-Set video attributes for directories}
  1321. (1) 4-276     procedure SetSelectFileAttr(Color, Mono : Byte);
  1322.                 {-Set video attributes for selected file}
  1323. (1) 4-276     procedure SetSelectDirAttr(Color, Mono : Byte);
  1324.                 {-Set video attributes for selected directory}
  1325. (1) 4-277     procedure SetSortOrder(SP : diSortProc);
  1326.                 {-Set alternate routine for sorting}
  1327. (1) 4-275     procedure SetRejectFunc(RF : diRejectFunc);
  1328.                 {-Set alternate reject function for file selection}
  1329. (1) 4-252     procedure AddRejectString(S : String);
  1330.                 {-Add a string to the set to reject}
  1331. (1) 4-254     procedure ClearRejectStrings;
  1332.                 {-Clear the set of strings to reject}
  1333. (1) 4-262     function GetMultiFile(N : Word) : FileStr;
  1334.                 {-Return 12-character name of specified file}
  1335. (1) 4-262     function GetMultiPath(N : Word) : PathStr;
  1336.                 {-Return full pathname of specified file}
  1337. (1) 4-261     procedure GetMultiDirRec(N : Word; var D : DirRec);
  1338.                 {-Return full DirRec for specified file}
  1339. (1) 4-265     function GetSelectedSize(ClusterSize : Word) : LongInt;
  1340.                 {-Return total size of all selected files}
  1341. (1) 4-269     procedure RemoveMultiFile(N : Word);
  1342.                 {-Remove specified file from list}
  1343. (1) 4-270     procedure RemoveSelectedFiles;
  1344.                 {-Remove all selected files from list}
  1345. (1) 4-261     function GetMultiDirPtr(N : Word) : DirRecPtr;
  1346.                 {-Return pointer to DirRec for specified file}
  1347. (1) 4-257     procedure FormatMultiFile(N : Word);
  1348.                 {-Rebuild the format string for specified file}
  1349. (1) 4-272     procedure SelectItem(N : Word); virtual;
  1350.                 {-Select an item. Overrides PickList.SelectItem to avoid
  1351.                   selecting directories}
  1352. (1) 4-267     constructor Load(var S : IdStream);
  1353.                 {-Load a list from a stream}
  1354. (1) 4-279     procedure Store(var S : IdStream);
  1355.                 {-Store a list in a stream}
  1356.  
  1357. OpDir   PathList
  1358. ==============================================================================
  1359.  
  1360. (1) 4-287     constructor Init(X1, Y1, X2, Y2 : Byte; HeapToUse : Word;
  1361.                                PickOrientation : pkGenlProc;
  1362.                                CommandInit : paInitCommandProc);
  1363.                 {-Initialize a path list}
  1364. (1) 4-288     constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  1365.                                      Options : LongInt; HeapToUse : Word;
  1366.                                      PickOrientation : pkGenlProc;
  1367.                                      CommandInit : paInitCommandProc);
  1368.                 {-Initialize a path list with custom window options}
  1369. (1) 4-285     destructor Done; virtual;
  1370.                 {-Dispose of path list}
  1371. (1) 4-293     procedure SetDrive(Drive : Char);
  1372.                 {-Specify drive for path list}
  1373. (1) 4-292     procedure ResetList;
  1374.                 {-Force reread of directories when they may have changed}
  1375. (1) 4-296     procedure UpdateContents; virtual;
  1376.                 {-Redraw the complete pick window}
  1377. (1) 4-291     procedure Process; virtual;
  1378.                 {-Display list if any, get one selection}
  1379. (1) 4-291     procedure PreloadPathList;
  1380.                 {-Read paths in advance, in order to optimize size before drawing}
  1381. (1) 4-286     function GetPathName(Drive : Char) : PathStr;
  1382.                 {-Set drive, pick a path, and return it. Returns empty string if
  1383.                   error.}
  1384. (1) 4-287     function GetSelectedPath : PathStr;
  1385.                 {-Return selected pathname}
  1386. (1) 4-290     procedure paOptionsOn(OptionFlags : Word);
  1387.                 {-Activate multiple options}
  1388. (1) 4-290     procedure paOptionsOff(OptionFlags : Word);
  1389.                 {-Deactivate multiple options}
  1390. (1) 4-290     function paOptionsAreOn(OptionFlags : Word) : Boolean;
  1391.                 {-Return True if all specified options are on}
  1392. (1) 4-292     procedure SetClusterSize(Size : Word);
  1393.                 {-Set cluster size for adjusting files to DOS boundaries}
  1394. (1) 4-293     procedure SetDrawingChars(P : PathDrawArray);
  1395.                 {-Set the characters used for line graphics}
  1396. (1) 4-294     procedure SetLineDrawMode;
  1397.                 {-Display hierarchy with line draw characters (default)}
  1398. (1) 4-294     procedure SetFullPathMode;
  1399.                 {-Display hierarchy with full path names}
  1400. (1) 4-295     procedure SetPathAttr(Color, Mono : Byte);
  1401.                 {-Set video attributes for paths}
  1402. (1) 4-295     procedure SetSelectPathAttr(Color, Mono : Byte);
  1403.                 {-Set video attributes for selected path}
  1404. (1) 4-285     function GetMultiPath(N : Word) : PathStr;
  1405.                 {-Return pathname of specified path}
  1406. (1) 4-289     constructor Load(var S : IdStream);
  1407.                 {-Load a list from a stream}
  1408. (1) 4-296     procedure Store(var S : IdStream);
  1409.                 {-Store a list in a stream}
  1410.  
  1411. OpDir   Procedures and Functions
  1412. ==============================================================================
  1413.  
  1414. (1) 4-242     procedure SingleFile(DirPtr : DirListPtr;
  1415.                                    var StringProc : pkStringProc;
  1416.                                    var CommandInitProc : pkGenlProc);
  1417.                 {-Initialize for picking single files}
  1418. (1) 4-242     procedure MultipleFile(DirPtr : DirListPtr;
  1419.                                      var StringProc : pkStringProc;
  1420.                                      var CommandInitProc : pkGenlProc);
  1421.                 {-Initialize for picking multiple files}
  1422. (1) 4-246     procedure SortNone(DirPtr : DirListPtr);
  1423.                 {-No sort}
  1424. (1) 4-246     procedure SortName(DirPtr : DirListPtr);
  1425.                 {-Sort alphabetically by name, then by extension}
  1426. (1) 4-246     procedure SortDirName(DirPtr : DirListPtr);
  1427.                 {-Sort directories first, then alphabetically by name and
  1428.                   extension}
  1429. (1) 4-246     procedure SortSize(DirPtr : DirListPtr);
  1430.                 {-Sort by size, then by name and extension}
  1431. (1) 4-246     procedure SortTime(DirPtr : DirListPtr);
  1432.                 {-Sort by date, then by name/extension}
  1433. (1) 4-247     procedure NameFormat(var D : DirRec; var pkCat : Byte;
  1434.                                    var S : String; DirPtr : DirListPtr);
  1435.                 {-Simple default format for directory lists}
  1436. (1) 4-247     procedure NameSizeKFormat(var D : DirRec; var pkCat : Byte;
  1437.                                         var S : String; DirPtr : DirListPtr);
  1438.                 {-Show name and size in Kilobytes}
  1439. (1) 4-247     procedure NameSizeFormat(var D : DirRec; var pkCat : Byte;
  1440.                                        var S : String; DirPtr : DirListPtr);
  1441.                 {-Show name and size in bytes}
  1442. (1) 4-247     procedure NameTimeFormat(var D : DirRec; var pkCat : Byte;
  1443.                                        var S : String; DirPtr : DirListPtr);
  1444.                 {-Show name and date/time}
  1445. (1) 4-247     procedure NameSizeKTimeFormat(var D : DirRec; var pkCat : Byte;
  1446.                                             var S : String; DirPtr : DirListPtr);
  1447.                 {-Show name, size(K), time}
  1448. (1) 4-247     procedure NameSizeTimeFormat(var D : DirRec; var pkCat : Byte;
  1449.                                            var S : String; DirPtr : DirListPtr);
  1450.                 {-Show name, size, time}
  1451. (1) 4-247     procedure AllFormat(var D : DirRec; var pkCat : Byte;
  1452.                                   var S : String; DirPtr : DirListPtr);
  1453.                 {-Show name, size, time, attr}
  1454. (1) 4-245     function RejectNone(var D : DirRec; DirPtr : DirListPtr) : Boolean;
  1455.                 {-Don't reject any files}
  1456. (1) 4-245     function RejectExtensions(var D : DirRec;
  1457.                                         DirPtr : DirListPtr) : Boolean;
  1458.                 {-Reject files with extensions in RejectSet}
  1459. (1) 4-245     function RejectFiles(var D : DirRec; DirPtr : DirListPtr) : Boolean;
  1460.                 {-Reject all but subdirectories}
  1461. (1) 4-283     procedure SinglePath(PathPtr : PathListPtr;
  1462.                                    var StringProc : pkStringProc;
  1463.                                    var CommandInitProc : pkGenlProc);
  1464.                 {-Initialize for picking single paths}
  1465. (1) 4-283     procedure MultiplePath(PathPtr : PathListPtr;
  1466.                                      var StringProc : pkStringProc;
  1467.                                      var CommandInitProc : pkGenlProc);
  1468.                 {-Initialize for picking multiple paths}
  1469.  
  1470. OpMenu  MenuItemNode
  1471. ==============================================================================
  1472.  
  1473. (1) 4-318     procedure Protect;
  1474.                 {-Protect item}
  1475. (1) 4-319     procedure Unprotect;
  1476.                 {-Unprotect item}
  1477. (1) 4-315     function ChangeName(Name : String) : Boolean;
  1478.                 {-Change the name of item}
  1479. (1) 4-315     procedure ChangeKey(Key : LongInt);
  1480.                 {-Change the item key}
  1481. (1) 4-314     function ChangeHelp(Help : String) : Boolean;
  1482.                 {-Change the help string}
  1483. (1) 4-315     procedure ChangeSelectPos(SelectPos : Byte);
  1484.                 {-Change the select character offset}
  1485. (1) 4-314     procedure ChangeDisplayPos(DisplayPos : Byte);
  1486.                 {-Change the display offset}
  1487. (1) 4-316     procedure ChangeSubPtr(SPtr : SubMenuPtr);
  1488.                 {-Change submenu pointer of item}
  1489. (1) 4-316     procedure DisplayInfo(var DisplayPos, SelectPos : Byte;
  1490.                                     var S : String);
  1491.                 {-Return string and display offsets for item}
  1492. (1) 4-317     function HelpString : String;
  1493.                 {-Return help string for item}
  1494. (1) 4-318     function ItemKey : LongInt;
  1495.                 {-Return menu key for item}
  1496. (1) 4-319     function SubPtr : SubMenuPtr;
  1497.                 {-Return submenu pointer for item}
  1498. (1) 4-317     function IsProtected : Boolean;
  1499.                 {-Return True if item is protected}
  1500. (1) 4-318     function SelectChar : Char;
  1501.                 {-Return alpha selection char (uppercase)}
  1502. (1) 4-317     function GetDisplayPos : Byte;
  1503.                 {-Return just the display offset}
  1504.  
  1505. OpMenu  Menu
  1506. ==============================================================================
  1507.  
  1508. (1) 4-338     constructor Init(X1, Y1, X2, Y2 : Byte; Orient : mnOrientation);
  1509.                 {-Create a menu with default options and colors}
  1510. (1) 4-339     constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  1511.                                      Options : LongInt; Orient : mnOrientation);
  1512.                 {-Create a menu with custom window options}
  1513. (1) 4-344     procedure mnOptionsOn(OptionFlags : Word);
  1514.                 {-Activate multiple options}
  1515. (1) 4-344     procedure mnOptionsOff(OptionFlags : Word);
  1516.                 {-Deactivate multiple options}
  1517. (1) 4-344     function mnOptionsAreOn(OptionFlags : Word) : Boolean;
  1518.                 {-Return True if all specified options are on}
  1519. (1) 4-325     procedure AddItem(Name : String; DisplayPos, SelectPos : Byte;
  1520.                                 Key : LongInt);
  1521.                 {-Add item to current item list, allocating string space on heap}
  1522. (1) 4-325     procedure AddItemPtr(var Name : String; DisplayPos, SelectPos : Byte;
  1523.                                    Key : LongInt);
  1524.                 {-Add item to current item list, not allocating string space on
  1525.                   heap}
  1526. (1) 4-325     procedure AddItemHelp(Name : String; DisplayPos, SelectPos : Byte;
  1527.                                     Key : LongInt; Help : String);
  1528.                 {-Add item to current item list, allocating string space on heap}
  1529. (1) 4-325     procedure AddItemHelpPtr(var Name : String;
  1530.                                        DisplayPos, SelectPos : Byte;
  1531.                                        Key : LongInt; var Help : String);
  1532.                 {-Add item to current item list, not allocating string space on
  1533.                   heap}
  1534. (1) 4-328     procedure AddSeparator(FirstChar, SpanChar, LastChar : Char;
  1535.                                      DisplayPos : Byte);
  1536.                 {-Add a separator bar at offset DisplayPos within the window}
  1537. (1) 4-328     procedure AddSeparatorColor(FirstChar, SpanChar, LastChar : Char;
  1538.                                           DisplayPos : Byte;
  1539.                                           AttrColor, AttrMono : Byte);
  1540.                 {-Add a separator bar at offset DisplayPos within the window with
  1541.                   specified colors}
  1542. (1) 4-329     procedure AddSubMenu(X1, Y1, X2, Y2 : Byte; Orient : mnOrientation);
  1543.                 {-Add an unframed submenu with options and colors cloned from main
  1544.                   menu}
  1545. (1) 4-324     procedure AddFramedSubMenu(X1, Y1, X2, Y2 : Byte;
  1546.                                          Orient : mnOrientation; FA : FrameArray);
  1547.                 {-Add a framed submenu with options and colors cloned from main
  1548.                   menu}
  1549. (1) 4-330     procedure AddSubMenuCustom(X1, Y1, X2, Y2 : Byte;
  1550.                                          var Colors : ColorSet; Options : LongInt;
  1551.                                          Orient : mnOrientation; FA : FrameArray);
  1552.                 {-Add a submenu with custom window options}
  1553. (1) 4-341     procedure ItemsDone;
  1554.                 {-Terminate the current item list. Set first item as default.}
  1555. (1) 4-342     procedure ItemsDoneCustom(OptimizeSize : Boolean;
  1556.                                         DefaultKey : LongInt);
  1557.                 {-Terminate the current item list and customize size and default
  1558.                   key}
  1559. (1) 4-353     procedure SetNormAttr(Color, Mono : Byte);
  1560.                 {-Set attributes for normal item text}
  1561. (1) 4-353     procedure SetSelectAttr(Color, Mono : Byte);
  1562.                 {-Set attributes for selected item text}
  1563. (1) 4-353     procedure SetHighAttr(Color, Mono : Byte);
  1564.                 {-Set attributes for pick highlight text}
  1565. (1) 4-353     procedure SetProtectAttr(Color, Mono : Byte);
  1566.                 {-Set attributes for protected item text}
  1567. (1) 4-353     procedure SetFrameAttr(Color, Mono : Byte);
  1568.                 {-Set frame attributes of all windows in menu system}
  1569. (1) 4-353     procedure SetHeaderAttr(Color, Mono : Byte);
  1570.                 {-Set header attributes of all windows in menu system}
  1571. (1) 4-353     procedure SetShadowAttr(Color, Mono : Byte);
  1572.                 {-Set shadow attributes of all windows in menu system}
  1573. (1) 4-354     procedure SetLeftPad(LeftPad : Byte);
  1574.                 {-Set the number of characters to left pad each item when
  1575.                   displayed}
  1576. (1) 4-354     procedure SetSelectMarker(Left, Right : String);
  1577.                 {-Define strings to mark selected items}
  1578. (1) 4-320     procedure AddHeader(S : string; Posn : HeaderPosType);
  1579.                 {-Add a standard header}
  1580. (1) 4-320     procedure AddHeaderColor(S : string; Posn : HeaderPosType;
  1581.                                        AttrColor, AttrMono : Byte);
  1582.                 {-Add a standard header with custom color}
  1583. (1) 4-320     procedure AddCustomHeader(S : string; Posn : FrameCornerType;
  1584.                                         DX, DY : Integer;
  1585.                                         AttrColor, AttrMono : Byte);
  1586.                 {-Add a custom header}
  1587. (1) 4-329     procedure AddShadow(Posn : ShadowPosType; DrawType : ShadowDrawType);
  1588.                 {-Add a standard shadow}
  1589. (1) 4-320     procedure AddShadowColor(Posn : ShadowPosType;
  1590.                                        DrawType : ShadowDrawType;
  1591.                                        AttrColor, AttrMono : Byte);
  1592.                 {-Add a standard shadow with custom color}
  1593. (1) 4-320     procedure EnableExplosions(StageDelay : Word);
  1594.                 {-Enable exploding windows with StageDelay milliseconds per stage}
  1595. (1) 4-320     procedure EnableNormalOpen;
  1596.                 {-Disable exploding windows or alternate draw routines}
  1597. (1) 4-350     procedure SetAllNormAttr(Color, Mono : Byte);
  1598.                 {-Set normal attributes of all items in menu system}
  1599. (1) 4-350     procedure SetAllSelectAttr(Color, Mono : Byte);
  1600.                 {-Set select attributes of all items in menu system}
  1601. (1) 4-350     procedure SetAllHighAttr(Color, Mono : Byte);
  1602.                 {-Set highlight attributes of all items in menu system}
  1603. (1) 4-350     procedure SetAllProtectAttr(Color, Mono : Byte);
  1604.                 {-Set protect attributes of all items in menu system}
  1605. (1) 4-350     procedure SetAllFrameAttr(Color, Mono : Byte);
  1606.                 {-Set frame attributes of all windows in menu system}
  1607. (1) 4-350     procedure SetAllHeaderAttr(Color, Mono : Byte);
  1608.                 {-Set header attributes of all windows in menu system}
  1609. (1) 4-350     procedure SetAllShadowAttr(Color, Mono : Byte);
  1610.                 {-Set shadow attributes of all windows in menu system}
  1611. (1) 4-329     procedure AddShadows(MainMenu : Boolean; Posn : ShadowPosType;
  1612.                                    DrawType : ShadowDrawType);
  1613.                 {-Add shadows to all submenus}
  1614. (1) 4-333     procedure EnableAllExplosions(StageDelay : Word);
  1615.                 {-Enable exploding windows with StageDelay milliseconds per stage}
  1616. (1) 4-332     procedure EnableAllAlternateOpen(OpenProc, CloseProc : RawWindowProc;
  1617.                                                StageDelay : Word);
  1618.                 {-Enable alternate draw and erase routines}
  1619. (1) 4-333     procedure EnableAllNormalOpen;
  1620.                 {-Disable exploding windows or alternate draw routines}
  1621. (1) 4-351     procedure SetAllSelectMarker(Left, Right : String);
  1622.                 {-Define strings to mark selected items in all submenus}
  1623. (1) 4-352     procedure SetHelpAttr(Color, Mono : Byte);
  1624.                 {-Set the colors for the help line}
  1625. (1) 4-337     procedure GetHelpAttr(var Color, Mono : Byte);
  1626.                 {-Get the colors stored for the help line}
  1627. (1) 4-358     procedure VisitAllItems(IProc : mnItemProc; var D);
  1628.                 {-Call the specified procedure for all items in the menu system}
  1629. (1) 4-358     procedure VisitAllWindows(WProc : mnWindowProc; var D);
  1630.                 {-Call the specified procedure for all submenus in the menu system}
  1631. (1) 4-351     procedure SetCurrentItemProc(IP : mnCurrentItemProc);
  1632.                 {-Set procedure to be called whenever the active item is drawn}
  1633. (1) 4-352     procedure SetCustomStringProc(CP : mnCustomProc);
  1634.                 {-Set item string customization procedure}
  1635. (1) 4-330     procedure CurrentItem(IPtr : MenuItemNodePtr); virtual;
  1636.                 {-Called just after the currently selected item is drawn}
  1637. (1) 4-346     procedure Process; virtual;
  1638.                 {-Process menu commands leading to a choice}
  1639. (1) 4-344     function MenuChoice : LongInt;
  1640.                 {-Return the last menu choice}
  1641. (1) 4-336     procedure EraseCurrentSubMenu;
  1642.                 {-Erase current submenu}
  1643. (1) 4-335     procedure EraseAllSubMenus(ShowSelect, ShowHighlight : Boolean);
  1644.                 {-Erase all submenus, leave main menu showing in specified state}
  1645. (1) 4-336     procedure EraseClear;
  1646.                 {-Erase menu and clear active submenus for next draw}
  1647. (1) 4-348     procedure SelectItem(Key : LongInt);
  1648.                 {-Select specified item and update screen}
  1649. (1) 4-350     procedure SelectSubMenu(Key : LongInt);
  1650.                 {-Select current item of submenu containing Key and update screen}
  1651. (1) 4-349     function SelectItemByPos(X, Y : Byte) : Boolean;
  1652.                 {-Select visible item (if any) at absolute position and update
  1653.                   screen}
  1654. (1) 4-347     procedure Redraw;
  1655.                 {-Erase and redraw menu system, presumably after changing an item}
  1656. (1) 4-346     procedure ProtectItem(Key : LongInt);
  1657.                 {-Protect specified item. No screen update}
  1658. (1) 4-357     procedure UnprotectItem(Key : LongInt);
  1659.                 {-Unprotect specified item. No screen update}
  1660. (1) 4-331     procedure DefaultItem(Key : LongInt);
  1661.                 {-Make item Key the default of its submenu. No screen update}
  1662. (1) 4-331     procedure DefaultPath(Key : LongInt);
  1663.                 {-Select path to specified item. No screen update}
  1664. (1) 4-323     function ActiveListPtr : MenuItemListPtr;
  1665.                 {-Return pointer to active item list}
  1666. (1) 4-323     function ActiveWinPtr : RawWindowPtr;
  1667.                 {-Return pointer to active raw window}
  1668. (1) 4-323     function ActiveSubPtr : SubMenuPtr;
  1669.                 {-Return pointer to active submenu}
  1670. (1) 4-323     function ActiveItemPtr : MenuItemNodePtr;
  1671.                 {-Return pointer to currently active item}
  1672. (1) 4-337     function FindItem(Key : LongInt) : MenuItemNodePtr;
  1673.                 {-Return pointer to item node}
  1674. (1) 4-343     constructor Load(var S : IdStream);
  1675.                 {-Load a list from a stream}
  1676. (1) 4-355     procedure Store(var S : IdStream);
  1677.                 {-Store a list in a stream}
  1678. (1) 4-332     destructor Done; virtual;
  1679.                 {-Destroy a menu}
  1680. (1) 4-334     procedure Erase; virtual;
  1681.                 {-Erase menu system. Remembers previous submenus for next draw}
  1682. (1) 4-341     function IsCurrent : Boolean; virtual;
  1683.                 {-Return True if menu system is the current window}
  1684. (1) 4-345     procedure MoveWindow(DX, DY : Integer); virtual;
  1685.                 {-Move a menu}
  1686. (1) 4-357     procedure UpdateScreenSize;
  1687.                 {-Update window size, position, and limits for current screen size}
  1688.  
  1689. OpMenu  Procedures and Functions
  1690. ==============================================================================
  1691.  
  1692. (1) 4-352     procedure NoCustomization(var Name : String; Key : LongInt;
  1693.                                         Selected, Highlighted : Boolean;
  1694.                                         WPtr : RawWindowPtr);
  1695.                 {-Default string customization routine that does nothing}
  1696. (1) 4-351     procedure NoCurrItemAction(CurrentItem : MenuItemNodePtr;
  1697.                                          MPtr : MenuPtr);
  1698.                 {-Default active item move routine that does nothing}
  1699.  
  1700. OpHelp  AbstractHelpWindow
  1701. ==============================================================================
  1702.  
  1703. (2) 4-390     constructor Init(X1, Y1, X2, Y2 : Byte;
  1704.                                HelpFile : PathStr;
  1705.                                PickOrientation : pkGenlProc);
  1706.                 {-Initialize help window and open help file}
  1707. (2) 4-394     constructor InitMem(X1, Y1, X2, Y2 : Byte;
  1708.                                   HelpAddr : Pointer;
  1709.                                   PickOrientation : pkGenlProc);
  1710.                 {-Initialize help window using help bound into code}
  1711. (2) 4-391     constructor InitCustom(X1, Y1, X2, Y2 : Byte;
  1712.                                      var Colors : ColorSet;
  1713.                                      Options : LongInt;
  1714.                                      HelpFile : PathStr;
  1715.                                      PickOrientation : pkGenlProc);
  1716.                 {-Initialize help window and open help file}
  1717. (2) 4-392     constructor InitDeluxe(X1, Y1, X2, Y2 : Byte;
  1718.                                      var Colors : ColorSet;
  1719.                                      Options : LongInt;
  1720.                                      HelpFile : PathStr;
  1721.                                      PickOrientation : pkGenlProc;
  1722.                                      HelpOptions : Word);
  1723.                 {-Initialize help window and open help file}
  1724. (2) 4-394     constructor InitMemCustom(X1, Y1, X2, Y2 : Byte;
  1725.                                         var Colors : ColorSet;
  1726.                                         Options : LongInt;
  1727.                                         HelpAddr : Pointer;
  1728.                                         PickOrientation : pkGenlProc);
  1729.                 {-Initialize help window using help bound into code}
  1730. (2) 4-395     constructor InitMemDeluxe(X1, Y1, X2, Y2 : Byte;
  1731.                                         var Colors : ColorSet;
  1732.                                         Options : LongInt;
  1733.                                         HelpAddr : Pointer;
  1734.                                         PickOrientation : pkGenlProc;
  1735.                                         HelpOptions : Word);
  1736.                 {-Initialize help window using help bound into code}
  1737. (2) 4-385     destructor Done; virtual;
  1738.                 {-Close up and dispose of help window}
  1739. (2) 4-396     procedure ItemString(Item : Word; Mode : pkMode;
  1740.                                    var IType : pkItemType;
  1741.                                    var IString : String); virtual;
  1742.                 {-Supplies each item string when the list is displayed or searched}
  1743. (2) 4-386     procedure Draw; virtual;
  1744.                 {-Choose appropriate frame and draw help window or pick index}
  1745. (2) 4-405     procedure UpdateContents; virtual;
  1746.                 {-Redraw the help window in pick or help mode}
  1747. (2) 4-398     procedure Process; virtual;
  1748.                 {-Draw help index or current topic}
  1749. (2) 4-402     procedure SetTopic(Topic : Word);
  1750.                 {-Specify which topic is displayed next. 0 for index}
  1751. (2) 4-388     function GetTopicChoice : Word;
  1752.                 {-Return topic chosen by pick}
  1753. (2) 4-390     function InHelpMode : Boolean;
  1754.                 {-Return True if window shows help, not pick list}
  1755. (2) 4-405     function TopicStackPtr : StaticQueuePtr;
  1756.                 {-Return a pointer to the topic stack}
  1757. (2) 4-385     function CurrentTopic : Word;
  1758.                 {-Return the topic number currently loaded into the help buffers}
  1759. (2) 4-389     procedure hwOptionsOn(OptionFlags : Word);
  1760.                 {-Activate multiple options}
  1761. (2) 4-389     procedure hwOptionsOff(OptionFlags : Word);
  1762.                 {-Deactivate multiple options}
  1763. (2) 4-389     function hwOptionsAreOn(OptionFlags : Word) : Boolean;
  1764.                 {-Return True if all specified options are on}
  1765. (2) 4-401     procedure SetPickPadSize(PadSize : Byte);
  1766.                 {-Set number of characters for padding of pick items}
  1767. (2) 4-400     procedure SetHelpPadSize(Pad : Byte);
  1768.                 {-Set number of blank characters at edges of help window}
  1769. (2) 4-384     procedure AddTopicHeader(PadSize : Byte; MaxLen : Byte;
  1770.                                        Posn : HeaderPosType);
  1771.                 {-Add a header to display the topic name}
  1772. (2) 4-384     procedure AddMoreHelpHeader(PromptStr : String80;
  1773.                                           Posn : HeaderPosType;
  1774.                                           UpStr, DnStr, SepStr : String10;
  1775.                                           UpPos, DnPos, SepPos : Byte);
  1776.                 {-Add a specialized more header to indicate more help}
  1777. (2) 4-394     procedure InitHelpFrame;
  1778.                 {-Make help frame look like wFrame}
  1779. (2) 4-401     procedure SetPrevTopicHotSpot(SpotNum : Byte; Posn : FrameCharType);
  1780.                 {-Activate a hot spot for previous topic command}
  1781. (2) 4-400     procedure SetNestedFunc(NF : hwNestedFunc);
  1782.                 {-Set function to call for nested xref commands}
  1783. (2) 4-388     function HighestTopic : Word;
  1784.                 {-Return highest topic number in help system}
  1785. (2) 4-398     function PickTopics : Word;
  1786.                 {-Return number of help index topics in help system}
  1787. (2) 4-387     function FindTopic(Name : String;
  1788.                                  MatchFunc : hwMatchFunc) : Word; virtual;
  1789.                 {-Return Topic number of help with specified Name, 0 if not found}
  1790. (2) 4-399     function ScreenWordXY(XPos, YPos : Byte;
  1791.                                     ScanBack, ScanForward : Boolean) : String;
  1792.                 {-Parse word from screen at absolute (XPos, YPos)}
  1793. (2) 4-385     function CurrentXrefTopic : Word; virtual;
  1794.                 {-Return help topic of current cross reference, $FFFF if none}
  1795. (2) 4-397     constructor Load(var S : IdStream);
  1796.                 {-Load a help system from a stream}
  1797. (2) 4-403     procedure Store(var S : IdStream);
  1798.                 {-Store a help system in a stream}
  1799.  
  1800. OpHelp  ScrollingHelpWindow
  1801. ==============================================================================
  1802.  
  1803. (2) 4-416     procedure SetMaxScroll(MaxFirstCol : Word);
  1804.                 {-Set a new value for maximum horizontal scrolling}
  1805. (2) 4-416     procedure SetSendFunc(SF : shSendFunc);
  1806.                 {-Set function to be called by ccBlkCopy command}
  1807. (2) 4-415     procedure SetBlockAttr(Color, Mono : Byte);
  1808.                 {-Set the attribute for blocks}
  1809. (2) 4-415     procedure ResetBlock;
  1810.                 {-Hide and clear the current block. No screen update}
  1811. (2) 4-415     procedure HideBlock;
  1812.                 {-Hide the current block. No screen update}
  1813.  
  1814. OpHelp  Procedures and Functions
  1815. ==============================================================================
  1816.  
  1817. (2) 4-418     function ScrollingHelpFile(HelpFile : PathStr) : Boolean;
  1818.                 {-Return True if HelpFile is designed for a scrolling help window}
  1819. (2) 4-387     function DefaultTopicMatch(VaryingName, FixedName : String;
  1820.                                          HPtr : AbstractHelpWindowPtr) : Boolean;
  1821.                 {-Default match function}
  1822. (2) 4-379     function NoNestedAction(HPtr : AbstractHelpWindowPtr) : Boolean;
  1823.                 {-Defaulted nested xref function that does nothing}
  1824.  
  1825. OpMemo  Memo
  1826. ==============================================================================
  1827.  
  1828. (2) 5-10      constructor Init(X1, Y1, X2, Y2 : Byte; BufferSize : Word;
  1829.                                BufPtr : Pointer);
  1830.                 {-Create a memo window}
  1831. (2) 5-11      constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  1832.                                      Options : LongInt; BufferSize : Word;
  1833.                                      BufPtr : Pointer);
  1834.                 {-Create a memo window with custom window options}
  1835. (2) 5-10      destructor Done; virtual;
  1836.                 {-Deallocate text buffer if appropriate}
  1837. (2) 5-14      procedure Process; virtual;
  1838.                 {-Process editing commands}
  1839. (2) 5-14      procedure ReinitBuffer;
  1840.                 {-Reinitialize internal variables when contents of buffer have
  1841.                   changed}
  1842. (2) 5-13      procedure meOptionsOn(OptionFlags : LongInt);
  1843.                 {-Turn options on}
  1844. (2) 5-13      procedure meOptionsOff(OptionFlags : LongInt);
  1845.                 {-Turn options off}
  1846. (2) 5-13      function meOptionsAreOn(OptionFlags : LongInt) : Boolean;
  1847.                 {-Return true if all specified options are on}
  1848. (2) 5-15      procedure SetCtrlAttr(Color, Mono : Byte);
  1849.                 {-Set attributes for control characters}
  1850. (2) 5-17      procedure SetStatusProc(MSP : MemoStatusProc);
  1851.                 {-Set status procedure}
  1852. (2) 5-15      procedure SetLineLimit(N : Integer);
  1853.                 {-Set limit on number of lines}
  1854. (2) 5-17      procedure SetTabSize(TabSize : Byte);
  1855.                 {-Set size for fixed tabs}
  1856. (2) 5-16      procedure SetRightMargin(RM : Byte);
  1857.                 {-Set right margin}
  1858. (2) 5-16      procedure SetMaxLength(Len : Byte);
  1859.                 {-Set maximum line length}
  1860. (2) 5-12      constructor Load(var S : IdStream);
  1861.                 {-Load a memo from a stream}
  1862. (2) 5-18      procedure Store(var S : IdStream);
  1863.                 {-Store a memo in a stream}
  1864.  
  1865. OpMemo  MemoFile
  1866. ==============================================================================
  1867.  
  1868. (2) 5-22      constructor Init(X1, Y1, X2, Y2 : Byte; BufferSize : Word;
  1869.                                BufPtr : Pointer);
  1870.                 {-Create a memo window for editing files}
  1871. (2) 5-23      constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  1872.                                      Options : LongInt; BufferSize : Word;
  1873.                                      BufPtr : Pointer);
  1874.                 {-Create a memo window for editing files}
  1875. (2) 5-22      constructor InitAndAlloc(X1, Y1, X2, Y2 : Byte; BufferSize : Word);
  1876.                 {-Create a memo window for editing files and allocate a buffer}
  1877. (2) 5-24      constructor InitCustomAndAlloc(X1, Y1, X2, Y2 : Byte;
  1878.                                              var Colors : ColorSet;
  1879.                                              Options : LongInt; BufferSize : Word);
  1880.                 {-Create a memo window for editing files and allocate a buffer}
  1881. (2) 5-26      procedure ReadFile(FName : string; var FSize : LongInt);
  1882.                 {-Read a file into the buffer, returning a status code}
  1883. (2) 5-26      procedure SaveFile;
  1884.                 {-Save the text buffer in mfFileName}
  1885. (2) 5-25      constructor Load(var S : IdStream);
  1886.                 {-Load a memofile from a stream}
  1887. (2) 5-27      procedure Store(var S : IdStream);
  1888.                 {-Store a memofile in a stream}
  1889.  
  1890. OpMemo  Procedures and Functions
  1891. ==============================================================================
  1892.  
  1893. (2) 5-29      procedure MemoStatus(MP : MemoPtr);
  1894.                 {-Display status line}
  1895. (2) 5-29      procedure MemoError(UnitCode : Byte; var ErrorCode : Word;
  1896.                                   ErrorMsg : string);
  1897.                 {-Display error message and wait for key press}
  1898.  
  1899. OpEditor TextEditor
  1900. ==============================================================================
  1901.  
  1902. (2) 5-42      constructor Init(X1, Y1, X2, Y2 : Byte; BufferSize : Word);
  1903.                 {-Create a window for editing files}
  1904. (2) 5-44      constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  1905.                                      Options : LongInt; BufferSize : Word);
  1906.                 {-Create a custom window for editing files}
  1907. (2) 5-42      constructor InitBuf(X1, Y1, X2, Y2 : Byte; BufferSize : Word;
  1908.                                   BufPtr : Pointer);
  1909.                 {-Create a window for editing files, buffer already allocated}
  1910. (2) 5-42      constructor InitBufCustom(X1, Y1, X2, Y2 : Byte;
  1911.                                         var Colors : ColorSet;
  1912.                                         Options : LongInt; BufferSize : Word;
  1913.                                         BufPtr : Pointer);
  1914.                 {-Create a custom window for editing files, buffer already
  1915.                   allocated}
  1916. (2) 5-46      procedure Process; virtual;
  1917.                 {-Process editing commands}
  1918. (2) 5-55      procedure teOptionsOn(OptionFlags : LongInt);
  1919.                 {-Turn options on}
  1920. (2) 5-55      procedure teOptionsOff(OptionFlags : LongInt);
  1921.                 {-Turn options off}
  1922. (2) 5-55      function teOptionsAreOn(OptionFlags : LongInt) : Boolean;
  1923.                 {-Return true if all specified options are on}
  1924. (2) 5-48      procedure SetEditProc(EF : EditorEditFunc);
  1925.                 {-Set edit function}
  1926. (2) 5-49      procedure SetGetFileProc(GFF : EditorGetFileFunc);
  1927.                 {-Set get file function}
  1928. (2) 5-52      procedure SetYesNoProc(YNF : EditorYesNoFunc);
  1929.                 {-Set yes-no function}
  1930. (2) 5-47      procedure SetBlockAttr(Color, Mono : Byte);
  1931.                 {-Set attributes for marked blocks}
  1932. (2) 5-51      procedure SetMarkerAttr(Color, Mono : Byte);
  1933.                 {-Set attributes for text markers}
  1934. (2) 5-51      procedure SetHighlightAttr(Color, Mono : Byte);
  1935.                 {-Set attributes for highlighted (found) text}
  1936. (2) 5-47      procedure SetBlockIndent(Indent : Byte);
  1937.                 {-Set block indentation level}
  1938. (2) 5-47      procedure SetDefaultExtension(DefExt : ExtStr);
  1939.                 {-Default extension to use when prompting for filenames}
  1940. (2) 5-51      procedure SetPrinter(LptNum : Byte);
  1941.                 {-Set printer (1-3)}
  1942. (2) 5-41      procedure GotoLineCol(LineNum : Integer; Col : Byte);
  1943.                 {-Move cursor to LineNum, Col. Must not be called until editor
  1944.                   window has been displayed once.}
  1945. (2) 5-41      procedure GotoOffset(Offset : Word);
  1946.                 {-Move cursor to specified offset in the text buffer. Must not be
  1947.                   called until editor window has been displayed once.}
  1948. (2) 5-45      procedure InsertTextAtCursor(var Data; Bytes : Word);
  1949.                 {-Insert specified number of Bytes of Data into the text buffer at
  1950.                   the cursor}
  1951. (2) 5-45      procedure InsertStringAtCursor(S : String);
  1952.                 {-Insert string S into the text buffer at the cursor}
  1953. (2) 5-46      constructor Load(var S : IdStream);
  1954.                 {-Load a text editor from a stream}
  1955. (2) 5-54      procedure Store(var S : IdStream);
  1956.              {-Store a text editor in a stream}
  1957.  
  1958. OpBrowse  Browser
  1959. ==============================================================================
  1960.  
  1961. (2) 5-67      constructor Init(X1, Y1, X2, Y2 : Byte; HeapToUse : LongInt);
  1962.                 {-Initialize the browser}
  1963. (2) 5-67      constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  1964.                                      Options : LongInt; HeapToUse : LongInt);
  1965.                 {-Initialize the browser with custom window options}
  1966. (2) 5-65      destructor Done; virtual;
  1967.                 {-Deallocate page buffers}
  1968. (2) 5-69      procedure Process; virtual;
  1969.                 {-Process browse commands}
  1970. (2) 5-68      procedure OpenFile(FName : String);
  1971.                 {-Open file for browsing}
  1972. (2) 5-65      procedure CloseFile;
  1973.                 {-Close the current browse file}
  1974. (2) 5-65      function CurrentFileName : String;
  1975.                 {-Return the name of the current browse file}
  1976. (2) 5-64      procedure brOptionsOn(OptionFlags : Word);
  1977.                 {-Activate multiple options}
  1978. (2) 5-64      procedure brOptionsOff(OptionFlags : Word);
  1979.                 {-Deactivate multiple options}
  1980. (2) 5-64      function brOptionsAreOn(OptionFlags : Word) : Boolean;
  1981.                 {-Return true if all specified options are on}
  1982. (2) 5-76      procedure ToggleModes;
  1983.                 {-Toggle between hex and ASCII modes}
  1984. (2) 5-76      procedure ToggleHighBitStripping;
  1985.                 {-Toggle stripping of high bits}
  1986. (2) 5-69      procedure SetDefaultExtension(DefExt : ExtStr);
  1987.                 {-Default extension to use when prompting for filenames}
  1988. (2) 5-73      procedure SetPrinter(LptNum : Byte);
  1989.                 {-Set printer (1-3)}
  1990. (2) 5-74      procedure SetStatusProc(SP : BrowseStatusProc);
  1991.                 {-Set status procedure}
  1992. (2) 5-70      procedure SetEditProc(EF : BrowseEditFunc);
  1993.                 {-Set edit function}
  1994. (2) 5-71      procedure SetGetFileProc(GF : BrowseGetFileFunc);
  1995.                 {-Set edit function}
  1996. (2) 5-69      procedure SetBlockAttr(Color, Mono : Byte);
  1997.                 {-Set attributes for marked blocks}
  1998. (2) 5-73      procedure SetMarkerAttr(Color, Mono : Byte);
  1999.                 {-Set attributes for text markers}
  2000. (2) 5-73      procedure SetHighlightAttr(Color, Mono : Byte);
  2001.                 {-Set attributes for found text}
  2002. (2) 5-68      constructor Load(var S : IdStream);
  2003.                 {-Load a browser from a stream}
  2004. (2) 5-75      procedure Store(var S : IdStream);
  2005.                 {-Store a browser in a stream}
  2006. (2) 5-66      procedure GotoLine(LineNum : Word);
  2007.                 {-Scroll display to the specified line}
  2008. (2) 5-66      procedure GotoOffset(Offset : LongInt);
  2009.                 {-Scroll display to the line nearest Offset}
  2010. (2) 5-76      procedure Transfer(StartPos, StopPos : LongInt;
  2011.                                  var Buffer; BufSize : Word);
  2012.                 {-Copy browse characters from StartPos to StopPos into Buffer}
  2013.  
  2014. OpBrowse    Procedures and Functions
  2015. ==============================================================================
  2016.  
  2017. (2) 5-78      procedure BrowseStatus(BP : BrowserPtr);
  2018.                 {-Display status line}
  2019.  
  2020. OpAbsFld    Procedures and Functions
  2021. ==============================================================================
  2022.  
  2023. (2) 6-13      procedure ChangeDecimalChar(DC : Char);
  2024.                 {-Reset DecimalChar to DC}
  2025. (2) 6-13      function InternationalCurrency(FormChar : Char; MaxDigits : Byte;
  2026.                                              FloatIfPossible : Boolean;
  2027.                                              AddCommas : Boolean) : string;
  2028.                 {-Return a picture mask for a currency string, based on DOS's
  2029.                   country info}
  2030.  
  2031. OpField SelectField
  2032. ==============================================================================
  2033.  
  2034. (2) 6-18      procedure sfOptionsOn(OptionFlags : LongInt);
  2035.                 {-Activate multiple options}
  2036. (2) 6-18      procedure sfOptionsOff(OptionFlags : LongInt);
  2037.                 {-Deactivate multiple options}
  2038. (2) 6-18      function sfOptionsAreOn(OptionFlags : LongInt) : Boolean;
  2039.                 {-Return true if all specified options are on}
  2040. (2) 6-18      procedure SetPromptAttr(Color, Mono : Byte);
  2041.                 {-Set attributes for prompts}
  2042. (2) 6-18      procedure SetSelectedPromptAttr(Color, Mono : Byte);
  2043.                 {-Set attributes for selected prompts}
  2044. (2) 6-18      procedure SetProtectedPromptAttr(Color, Mono : Byte);
  2045.                 {-Set attributes for protected prompts}
  2046. (2) 6-18      procedure SetFieldAttr(Color, Mono : Byte);
  2047.                 {-Set attributes for unselected fields}
  2048. (2) 6-18      procedure SetSelectedFieldAttr(Color, Mono : Byte);
  2049.                 {-Set attributes for selected fields}
  2050. (2) 6-18      procedure SetProtectedFieldAttr(Color, Mono : Byte);
  2051.                 {-Set attributes for protected fields}
  2052. (2) 6-18      procedure SetCtrlAttr(Color, Mono : Byte);
  2053.                 {-Set attributes for control characters}
  2054.  
  2055. OpField EntryField
  2056. ==============================================================================
  2057.  
  2058. (2) 6-26      procedure efOptionsOn(OptionFlags : LongInt);
  2059.                 {-Activate multiple options}
  2060. (2) 6-26      procedure efOptionsOff(OptionFlags : LongInt);
  2061.                 {-Deactivate multiple options}
  2062. (2) 6-26      function efOptionsAreOn(OptionFlags : LongInt) : Boolean;
  2063.                 {-Return true if all specified options are on}
  2064. (2) 6-26      procedure sefOptionsOn(OptionFlags : LongInt);
  2065.                 {-Activate multiple secondary options}
  2066. (2) 6-26      procedure sefOptionsOff(OptionFlags : LongInt);
  2067.                 {-Deactivate multiple secondary options}
  2068. (2) 6-26      function sefOptionsAreOn(OptionFlags : LongInt) : Boolean;
  2069.                 {-Return true if all specified secondary options are on}
  2070.  
  2071. OpField Procedures and Functions
  2072. ==============================================================================
  2073.  
  2074. (2) 6-46      function ValidateNoBlanks(EFP : EntryFieldPtr; var ErrCode : Word;
  2075.                                         var ErrorSt : StringPtr) : Boolean;
  2076.               {-Validate that no usable subfields in a string contain spaces}
  2077. (2) 6-46      function ValidateNotPartial(EFP : EntryFieldPtr; var ErrCode : Word;
  2078.                                           var ErrorSt : StringPtr) : Boolean;
  2079.               {-Validate that no usable subfields in a string contain spaces
  2080.                 unless all do}
  2081. (2) 6-47      function ValidateSubfields(SubfieldMask : string;
  2082.                                          EFP : EntryFieldPtr; var ErrCode : Word;
  2083.                                          var ErrorSt : StringPtr) : Boolean;
  2084.               {-Validate that subfields in a string meet the requirements of
  2085.                 SubfieldMask. Note: This is NOT a regular validation routine.}
  2086.  
  2087. OpSelect  AbstractSelector
  2088. ==============================================================================
  2089.  
  2090. (2) 6-72      constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  2091.                                      Options : LongInt; var CP : CommandProcessor;
  2092.                                      UnitCode : Byte);
  2093.                 {-Initialize an abstract selector with custom window options}
  2094. (2) 6-70      destructor Done; virtual;
  2095.                 {-Deallocate field list, screen buffers}
  2096. (2) 6-70      procedure DrawField(ID : Word);
  2097.                 {-Draw the specified field}
  2098. (2) 6-73      procedure ResetScreen;
  2099.                 {-Call when contents of field(s) changed without calling DrawField}
  2100. (2) 6-80      procedure SetWrapMode(WM : WrapMode);
  2101.                 {-Set the wrap mode for the selector}
  2102. (2) 6-78      procedure SetScreenUpdateProc(SUP : ScreenUpdateProc);
  2103.                 {-Set procedure to be called after a complete screen update}
  2104. (2) 6-77      procedure SetPromptAttr(Color, Mono : Byte);
  2105.                 {-Set attributes for prompts}
  2106. (2) 6-79      procedure SetSelectedPromptAttr(Color, Mono : Byte);
  2107.                 {-Set attributes for selected prompts}
  2108. (2) 6-78      procedure SetProtectedPromptAttr(Color, Mono : Byte);
  2109.                 {-Set attributes for protected prompts}
  2110. (2) 6-75      procedure SetFieldAttr(Color, Mono : Byte);
  2111.                 {-Set attributes for unselected fields}
  2112. (2) 6-79      procedure SetSelectedFieldAttr(Color, Mono : Byte);
  2113.                 {-Set attributes for selected fields}
  2114. (2) 6-77      procedure SetProtectedFieldAttr(Color, Mono : Byte);
  2115.                 {-Set attributes for protected fields}
  2116. (2) 6-75      procedure SetCtrlAttr(Color, Mono : Byte);
  2117.                 {-Set attributes for control characters}
  2118. (2) 6-67      procedure ChangePromptAttr(ID : Word; Color, Mono : Byte);
  2119.                 {-Change attributes for prompts}
  2120. (2) 6-69      procedure ChangeSelectedPromptAttr(ID : Word; Color, Mono : Byte);
  2121.                 {-Change attributes for selected prompts}
  2122. (2) 6-68      procedure ChangeProtectedPromptAttr(ID : Word; Color, Mono : Byte);
  2123.                 {-Change attributes for protected prompts}
  2124. (2) 6-66      procedure ChangeFieldAttr(ID : Word; Color, Mono : Byte);
  2125.                 {-Change attributes for unselected fields}
  2126. (2) 6-69      procedure ChangeSelectedFieldAttr(ID : Word; Color, Mono : Byte);
  2127.                 {-Change attributes for selected fields}
  2128. (2) 6-67      procedure ChangeProtectedFieldAttr(ID : Word; Color, Mono : Byte);
  2129.                 {-Change attributes for protected fields}
  2130. (2) 6-65      procedure ChangeCtrlAttr(ID : Word; Color, Mono : Byte);
  2131.                 {-Change attributes for control characters}
  2132. (2) 6-64      procedure AddTextField(St : string; Row, Col : Word);
  2133.                 {-Add a text field}
  2134. (2) 6-64      procedure AddTextFieldCustom(St : string; Row, Col : Word;
  2135.                                            Color, Mono : Byte);
  2136.                 {-Add a text field with specific colors}
  2137. (2) 6-65      procedure AddTextFieldDeluxe(St : string; Row, Col : Word;
  2138.                                            var ColorAttrs, MonoAttrs : FlexAttrs);
  2139.                 {-Add a text field with special colors}
  2140. (2) 6-70      function FindField(ID : Word) : SelectFieldPtr;
  2141.                 {-Return a pointer to the specified field}
  2142. (2) 6-71      function FindTextField(ID : Word) : TextFieldPtr;
  2143.                 {-Return a pointer to the specified text field}
  2144. (2) 6-76      procedure SetNextField(ID : Word);
  2145.                 {-Set value of asNext}
  2146. (2) 6-71      function GetCurrentID : Word;
  2147.                 {-Get the ID for the current field}
  2148. (2) 6-72      function GetHelpIndex(ID : Word) : Word;
  2149.                 {-Get the help index for the specified field}
  2150. (2) 6-74      procedure SetAllFieldLinks(var LinksMap);
  2151.                 {-Set the forward and backward links for all fields}
  2152. (2) 6-76      procedure SetFieldLinks(ID, Next, Prev : Word);
  2153.                 {-Specify the fields to jump to when <Tab> or <ShTab> pressed on a
  2154.                   given field}
  2155. (2) 6-68      procedure ChangeProtection(ID : Word; On : Boolean);
  2156.                 {-Change the protection status of the specified field}
  2157. (2) 6-66      procedure ChangeHidden(ID : Word; On : Boolean);
  2158.                 {-Change the hidden status of the specified field}
  2159. (2) 6-66      procedure ChangeInvisibility(ID : Word; On : Boolean);
  2160.                 {-Change the invisibility status of the specified field}
  2161. (2) 6-73      procedure PositionCursorAt(SFP : SelectFieldPtr); virtual;
  2162.                 {-Puts the cursor on the beginning of the specified field}
  2163. (2) 6-80      procedure VisitAllSelectFields(FProc : asFieldProc; var D);
  2164.                 {-Call the specified procedure for all fields in the selector}
  2165. (2) 6-80      procedure VisitAllTextFields(FProc : asTextFieldProc; var D);
  2166.                 {-Call the specified procedure for all text fields in the selector}
  2167.  
  2168. OpSelect  Selector
  2169. ==============================================================================
  2170.  
  2171. (2) 6-91      constructor Init(X1, Y1, X2, Y2 : Byte);
  2172.                 {-Initialize the selector}
  2173. (2) 6-91      constructor InitCustom(X1, Y1, X2, Y2 : Byte;
  2174.                                      var Colors : ColorSet;
  2175.                                      Options : LongInt);
  2176.                 {-Initialize a selector with custom window options}
  2177. (2) 6-93      procedure Process; virtual;
  2178.                 {-Process selection commands}
  2179. (2) 6-90      procedure AddField(PromptRow, PromptCol : Word; PromptWidth : Byte;
  2180.                                  FieldRow, FieldCol : Word; FieldWidth : Byte;
  2181.                                  HelpIndex : Word);
  2182.                 {-Add a field with the specified coordinates and help index}
  2183. (2) 6-97      procedure slOptionsOn(OptionFlags : Byte);
  2184.                 {-Activate multiple options}
  2185. (2) 6-97      procedure slOptionsOff(OptionFlags : Byte);
  2186.                 {-Deactivate multiple options}
  2187. (2) 6-97      function slOptionsAreOn(OptionFlags : Byte) : Boolean;
  2188.                 {-Return true if all specified options are on}
  2189. (2) 6-96      procedure slFieldOptionsOn(OptionFlags : LongInt);
  2190.                 {-Activate multiple options}
  2191. (2) 6-96      procedure slFieldOptionsOff(OptionFlags : LongInt);
  2192.                 {-Deactivate multiple options}
  2193. (2) 6-95      function slFieldOptionsAreOn(OptionFlags : LongInt) : Boolean;
  2194.                 {-Return true if all specified options are on}
  2195. (2) 6-94      procedure SetGetFieldProc(GFP : GetFieldProc);
  2196.                 {-Set routine to call to get strings to display}
  2197. (2) 6-93      procedure SetActionProc(AP : SelectProc);
  2198.                 {-Set routine to call when field is selected}
  2199. (2) 6-95      procedure SetPreSelectProc(PSP : SelectProc);
  2200.                 {-Set routine to call before moving to new field}
  2201. (2) 6-94      procedure SetPostSelectProc(PSP : SelectProc);
  2202.                 {-Set routine to call before moving to next one}
  2203. (2) 6-92      constructor Load(var S : IdStream);
  2204.                 {-Load a selector from a stream}
  2205. (2) 6-98      procedure Store(var S : IdStream);
  2206.                 {-Store a selector in a stream}
  2207.  
  2208. OpSelect  ScrollingSelector
  2209. ==============================================================================
  2210.  
  2211. (2) 6-104     constructor Init(X1, Y1, X2, Y2 : Byte);
  2212.                 {-Initialize the selector}
  2213. (2) 6-104     constructor InitCustom(X1, Y1, X2, Y2 : Byte; var Colors : ColorSet;
  2214.                                      Options : LongInt);
  2215.                 {-Initialize a selector with custom window options}
  2216. (2) 6-103     destructor Done; virtual;
  2217.                 {-Deallocate field list, screen buffers}
  2218. (2) 6-103     procedure AllocateScreen;
  2219.                 {-Call after last field added to allocate virtual screen}
  2220. (2) 6-108     procedure VScreenToScreen; virtual;
  2221.                 {-Copy the virtual screen to the physical screen}
  2222. (2) 6-105     constructor Load(var S : IdStream);
  2223.                 {-Load a selector from a stream}
  2224. (2) 6-106     procedure Store(var S : IdStream);
  2225.                 {-Store a selector in a stream}
  2226.  
  2227. OpEntry EntryScreen
  2228. ==============================================================================
  2229.  
  2230. (2) 6-153     constructor Init(X1, Y1, X2, Y2 : Byte);
  2231.                 {-Initialize the entry screen}
  2232. (2) 6-153     constructor InitCustom(X1, Y1, X2, Y2 : Byte;
  2233.                                      var Colors : ColorSet;
  2234.                                      Options : LongInt);
  2235.                 {-Initialize the entry screen with custom window options}
  2236. (2) 6-147     destructor Done; virtual;
  2237.                 {-Dispose of the entry screen}
  2238. (2) 6-155     procedure Process; virtual;
  2239.                 {-Process data entry commands}
  2240. (2) 6-116     procedure AddStringField(Prompt : string;  pRow, pCol : Word;
  2241.                                        Picture : string; fRow, fCol : Word;
  2242.                                        fWidth : Byte;    HelpIndex : Word;
  2243.                                        var EditSt : string);
  2244.                 {-Add a field of type string}
  2245. (2) 6-118     procedure AddSimpleStringField(Prompt : string; pRow, pCol : Word;
  2246.                                              PicChar : Char;  fRow, fCol : Word;
  2247.                                              fWidth, MaxLen : Byte;
  2248.                                              HelpIndex : Word;
  2249.                                              var EditSt : string);
  2250.                 {-Add a field of type string (simple)}
  2251. (2) 6-116     procedure AddArrayField(Prompt : string;  pRow, pCol : Word;
  2252.                                       Picture : string; fRow, fCol : Word;
  2253.                                       fWidth : Byte;    HelpIndex : Word;
  2254.                                       var EditVar);
  2255.                 {-Add a field of type array (of char)}
  2256. (2) 6-119     procedure AddCharField(Prompt : string;  pRow, pCol : Word;
  2257.                                      Picture : string; fRow, fCol : Word;
  2258.                                      HelpIndex : Word; CharLo, CharHi : Char;
  2259.                                      var EditChar : Char);
  2260.                 {-Add a field of type char}
  2261. (2) 6-120     procedure AddSimpleCharField(Prompt : string;    pRow, pCol : Word;
  2262.                                            PicChar : Char;     fRow, fCol : Word;
  2263.                                            HelpIndex : Word;
  2264.                                            CharLo, CharHi : Char;
  2265.                                            var EditChar : Char);
  2266.                 {-Add a field of type char (simple)}
  2267. (2) 6-120     procedure AddBooleanField(Prompt : string;  pRow, pCol : Word;
  2268.                                         Picture : string; fRow, fCol : Word;
  2269.                                         HelpIndex : Word;
  2270.                                         var EditBool : Boolean);
  2271.                 {-Add a field of type boolean}
  2272. (2) 6-120     procedure AddSimpleBooleanField(Prompt : string; pRow, pCol : Word;
  2273.                                               fRow, fCol : Word;
  2274.                                               HelpIndex : Word;
  2275.                                               var EditBool : Boolean);
  2276.                 {-Add a field of type boolean (simple)}
  2277. (2) 6-120     procedure AddYesNoField(Prompt : string;  pRow, pCol : Word;
  2278.                                       Picture : string; fRow, fCol : Word;
  2279.                                       HelpIndex : Word; var EditYesNo : Boolean);
  2280.                 {-Add a field of type yes/no}
  2281. (2) 6-120     procedure AddSimpleYesNoField(Prompt : string;   pRow, pCol : Word;
  2282.                                             fRow, fCol : Word; HelpIndex : Word;
  2283.                                             var EditYesNo : Boolean);
  2284.                 {-Add a field of type yes/no (simple)}
  2285. (2) 6-116     procedure AddLongField(Prompt : string;  pRow, pCol : Word;
  2286.                                      Picture : string; fRow, fCol : Word;
  2287.                                      HelpIndex : Word; LongLo, LongHi : LongInt;
  2288.                                      var EditLong : LongInt);
  2289.                 {-Add a field of type LongInt}
  2290. (2) 6-120     procedure AddNumericLongField(...);
  2291.                 {-Add a field of type LongInt (numeric)}
  2292. (2) 6-118     procedure AddSimpleLongField(Prompt : string; pRow, pCol : Word;
  2293.                                            PicChar : Char;  fRow, fCol : Word;
  2294.                                            fWidth : Byte;   HelpIndex : Word;
  2295.                                            LongLo, LongHi : LongInt;
  2296.                                            var EditLong : LongInt);
  2297.                 {-Add a field of type LongInt (simple)}
  2298. (2) 6-116     procedure AddWordField(Prompt : string;  pRow, pCol : Word;
  2299.                                      Picture : string; fRow, fCol : Word;
  2300.                                      HelpIndex : Word; WordLo, WordHi : Word;
  2301.                                      var EditWord : Word);
  2302.                 {-Add a field of type word}
  2303. (2) 6-120     procedure AddNumericWordField(...);
  2304.                 {-Add a field of type word (numeric)}
  2305. (2) 6-118     procedure AddSimpleWordField(Prompt : string;    pRow, pCol : Word;
  2306.                                            PicChar : Char; fRow, fCol : Word;
  2307.                                            fWidth : Byte;      HelpIndex : Word;
  2308.                                            WordLo, WordHi : Word;
  2309.                                            var EditWord : Word);
  2310.                 {-Add a field of type word (simple)}
  2311. (2) 6-116     procedure AddIntField(Prompt : string;  pRow, pCol : Word;
  2312.                                     Picture : string; fRow, fCol : Word;
  2313.                                     HelpIndex : Word; IntLo, IntHi : Integer;
  2314.                                     var EditInt : Integer);
  2315.                 {-Add a field of type integer}
  2316. (2) 6-121     procedure AddNumericIntField(...);
  2317.                 {-Add a field of type integer (numeric)}
  2318. (2) 6-118     procedure AddSimpleIntField(Prompt : string;    pRow, pCol : Word;
  2319.                                           PicChar : Char;     fRow, fCol : Word;
  2320.                                           fWidth : Byte;      HelpIndex : Word;
  2321.                                           IntLo, IntHi : Integer;
  2322.                                           var EditInt : Integer);
  2323.                 {-Add a field of type integer (simple)}
  2324. (2) 6-116     procedure AddByteField(Prompt : string;  pRow, pCol : Word;
  2325.                                      Picture : string; fRow, fCol : Word;
  2326.                                      HelpIndex : Word; ByteLo, ByteHi : Byte;
  2327.                                      var EditByte : Byte);
  2328.                 {-Add a field of type byte}
  2329. (2) 6-121     procedure AddNumericByteField(...);
  2330.                 {-Add a field of type byte (numeric)}
  2331. (2) 6-118     procedure AddSimpleByteField(Prompt : string;    pRow, pCol : Word;
  2332.                                            PicChar : Char;     fRow, fCol : Word;
  2333.                                            fWidth : Byte;      HelpIndex : Word;
  2334.                                            ByteLo, ByteHi : Byte;
  2335.                                            var EditByte : Byte);
  2336.                 {-Add a field of type byte (simple)}
  2337. (2) 6-116     procedure AddShortField(Prompt : string;   pRow, pCol : Word;
  2338.                                       Picture : string;  fRow, fCol : Word;
  2339.                                       HelpIndex : Word;
  2340.                                       ShortLo, ShortHi : ShortInt;
  2341.                                       var EditShort : ShortInt);
  2342.                 {-Add a field of type shortint}
  2343. (2) 6-121     procedure AddNumericShortField(...);
  2344.                 {-Add a field of type shortint (numeric)}
  2345. (2) 6-118     procedure AddSimpleShortField(Prompt : string; pRow, pCol : Word;
  2346.                                             PicChar : Char;  fRow, fCol : Word;
  2347.                                             fWidth : Byte;   HelpIndex : Word;
  2348.                                             ShortLo, ShortHi : ShortInt;
  2349.                                             var EditShort : ShortInt);
  2350.                 {-Add a field of type shortint (simple)}
  2351. (2) 6-116     procedure AddRealField(Prompt : string;   pRow, pCol : Word;
  2352.                                      Picture : string;  fRow, fCol : Word;
  2353.                                      HelpIndex : Word;  RealLo, RealHi : Real;
  2354.                                      Places : Byte;     var EditReal : Real);
  2355.                 {-Add a field of type real}
  2356. (2) 6-121     procedure AddNumericRealField(...);
  2357.                 {-Add a field of type real (numeric)}
  2358. (2) 6-118     procedure AddSimpleRealField(Prompt : string; pRow, pCol : Word;
  2359.                                            PicChar : Char;  fRow, fCol : Word;
  2360.                                            fWidth : Byte;   HelpIndex : Word;
  2361.                                            RealLo, RealHi : Real; Places : Byte;
  2362.                                            var EditReal : Real);
  2363.                 {-Add a field of type real (simple)}
  2364. (2) 6-117     procedure AddDateField(Prompt : string;      pRow, pCol : Word;
  2365.                                      Picture : DateString; fRow, fCol : Word;
  2366.                                      HelpIndex : Word;     DateLo, DateHi : Date;
  2367.                                      var EditDate : Date);
  2368.                 {-Add a field of type date}
  2369. (2) 6-117     procedure AddDateStField(Prompt : string;      pRow, pCol : Word;
  2370.                                        Picture : DateString; fRow, fCol : Word;
  2371.                                        HelpIndex : Word;
  2372.                                        var EditDate : DateString);
  2373.                 {-Add a field of type date string}
  2374. (2) 6-117     procedure AddTimeField(Prompt : string;      pRow, pCol : Word;
  2375.                                      Picture : DateString; fRow, fCol : Word;
  2376.                                      HelpIndex : Word;     TimeLo, TimeHi : Time;
  2377.                                      var EditTime : Time);
  2378.                 {-Add a field of type time}
  2379. (2) 6-117     procedure AddNestedField(Prompt : string;  pRow, pCol : Word;
  2380.                                        Picture : string; fRow, fCol : Word;
  2381.                                        fWidth : Byte;    HelpIndex : Word);
  2382.                 {-Add a field that is associated with a nested form}
  2383. (2) 6-118     procedure AddNestedStringField(Prompt : string;  pRow, pCol : Word;
  2384.                                              Picture : string; fRow, fCol : Word;
  2385.                                              fWidth : Byte;    HelpIndex : Word;
  2386.                                              var EditSt : string);
  2387.                 {-Add a string field that is associated with a nested form}
  2388. (2) 6-122     procedure AddChoiceField(Prompt : string;  pRow, pCol : Word;
  2389.                                        Picture : string; fRow, fCol : Word;
  2390.                                        HelpIndex : Word; DataSize : Byte;
  2391.                                        Increment : IncChoiceProc;
  2392.                                        var EditVar);
  2393.                 {-Add a multiple choice field}
  2394. (2) 6-122     procedure AddMultiLineField(Prompt : string; pRow, pCol : Word;
  2395.                                           PicChar : Char;  fRow, fCol : Word;
  2396.                                           fWidth, fHeight : Byte;
  2397.                                           HelpIndex : Word; var EditVar);
  2398.                 {-Add a multi-line field}
  2399. (2) 6-122     procedure AddPickStringField(Prompt : string; pRow, pCol : Word;
  2400.                                            fRow, fCol : Word; fWidth : Byte;
  2401.                                            HelpIndex : Word;
  2402.                                            var EditSt : string;
  2403.                                            var PL : PickList);
  2404.                 {-Add a field of type string to be edited with a pick list}
  2405. (2) 6-122     procedure AddUserField(Prompt : string; pRow, pCol : Word;
  2406.                                      Picture : string; fRow, fCol : Word;
  2407.                                      fWidth : Byte; HelpIndex : Word;
  2408.                                      RangeLo : RangeType; RangeHi : RangeType;
  2409.                                      DataSize : Word;     DecimalPlaces : Byte;
  2410.                                      Validate: ValidationFunc;
  2411.                                      Convert : ConversionProc;
  2412.                                      FDraw   : DrawProc;
  2413.                                      Editor  : EditProc;
  2414.                                      var EditVar);
  2415.                 {-Add a field of a user-defined type}
  2416. (2) 6-160     procedure SetPreEditProc(PEP : esUserProc);
  2417.                 {-Specify routine to call just before field is edited}
  2418. (2) 6-159     procedure SetPostEditProc(PEP : esUserProc);
  2419.                 {-Specify routine to call after each edit}
  2420. (2) 6-162     procedure SetValidateFunc(UVF : esUserValidationFunc);
  2421.                 {-Specify routine to call before exiting}
  2422. (2) 6-148     procedure esOptionsOn(OptionFlags : Byte);
  2423.                 {-Activate multiple options}
  2424. (2) 6-147     procedure esOptionsOff(OptionFlags : Byte);
  2425.                 {-Deactivate multiple options}
  2426. (2) 6-147     function esOptionsAreOn(OptionFlags : Byte) : Boolean;
  2427.                 {-Return true if all specified options are on}
  2428. (2) 6-147     procedure esFieldOptionsOn(OptionFlags : LongInt);
  2429.                 {-Activate multiple field options}
  2430. (2) 6-146     procedure esFieldOptionsOff(OptionFlags : LongInt);
  2431.                 {-Deactivate multiple field options}
  2432. (2) 6-146     function esFieldOptionsAreOn(OptionFlags : LongInt) : Boolean;
  2433.                 {-Return true if all specified field options are on}
  2434. (2) 6-149     procedure esSecFieldOptionsOn(OptionFlags : LongInt);
  2435.                 {-Activate multiple secondary field options}
  2436. (2) 6-149     procedure esSecFieldOptionsOff(OptionFlags : LongInt);
  2437.                 {-Deactivate multiple secondary field options}
  2438. (2) 6-148     function esSecFieldOptionsAreOn(OptionFlags : LongInt) : Boolean;
  2439.                 {-Return true if all specified secondary field options are on}
  2440. (2) 6-158     procedure SetForceMode(Force, Overtype : Boolean);
  2441.                 {-Force insert or overtype mode, else use previous setting}
  2442. (2) 6-158     procedure SetPadChar(Ch : Char);
  2443.                 {-Set character used to pad ends of strings}
  2444. (2) 6-159     procedure SetPasswordChar(Ch : Char);
  2445.                 {-Set character used in password mode}
  2446. (2) 6-156     procedure SetBeepOnError(On : Boolean);
  2447.                 {-Activate/deactivate beeping on error option for all fields}
  2448. (2) 6-157     procedure SetDelimiters(Left, Right : Char);
  2449.                 {-Set field delimiters for the entry screen (null = none)}
  2450. (2) 6-157     procedure SetDelimAttr(Color, Mono : Byte);
  2451.                 {-Set attributes for delimiters (unselected)}
  2452. (2) 6-161     procedure SetSelectedDelimAttr(Color, Mono : Byte);
  2453.                 {-Set attributes for delimiters (selected)}
  2454. (2) 6-160     procedure SetProtectedDelimAttr(Color, Mono : Byte);
  2455.                 {-Set attributes for delimiters (protected)}
  2456. (2) 6-154     constructor Load(var S : IdStream);
  2457.                 {-Load an entry screen from a stream}
  2458. (2) 6-163     procedure Store(var S : IdStream);
  2459.                 {-Store an entry screen in a stream}
  2460. (2) 6-161     procedure SetUserRecord(var UserRec; UserRecSize : Word);
  2461.                 {-Set the address and size of the user record}
  2462. (2) 6-152     function GetUserRecord : Pointer;
  2463.                 {-Return a pointer to the user record}
  2464. (2) 6-152     function GetUserRecordSize : Word;
  2465.                 {-Return the size of the user record}
  2466. (2) 6-144     procedure ChangeRequired(ID : Word; On : Boolean);
  2467.                 {-Modify the required status of a field after it has been added}
  2468. (2) 6-145     procedure ChangeValidation(ID : Word; VF : ValidationFunc);
  2469.                 {-Change the validation routine for the specified field}
  2470. (2) 6-144     procedure ChangeConversion(ID : Word; CP : ConversionProc);
  2471.                 {-Change the conversion routine for the specified field}
  2472. (2) 6-144     procedure ChangeRange(ID : Word; var RangeLo, RangeHi);
  2473.                 {-Change the valid range for the specified field}
  2474. (2) 6-145     function CurrentFieldModified : Boolean;
  2475.                 {-Return True if current field was modified. Call only from
  2476.                   within a post-edit routine.}
  2477. (2) 6-150     function EvaluateCommand(var Cmd : Word) : Word;
  2478.                 {-Given a command, return the ID for the field the cursor will
  2479.                   move to next. Cmd may be modified on return. This routine is
  2480.                   intended to be called only from within a post-edit routine!}
  2481. (2) 6-151     procedure GetFieldCoordinates(var Row, Col, Wid : Byte);
  2482.                 {-Returns the absolute screen coordinates for the current field.
  2483.                   This routine is intended to be called only from within a
  2484.                   pre-edit routine!}
  2485. (2) 6-151     function GetLastField : EntryFieldPtr;
  2486.                 {-Return pointer to last field in entry screen}
  2487. (2) 6-156     function RevalidateAll(var EFP : EntryFieldPtr; var ErrCode : Word;
  2488.                                      var ErrMsg : StringPtr) : Boolean;
  2489.                 {-Re-validate all unprotected fields in entry screen. If an error
  2490.                   is found, EFP will point to the field with the error, an error
  2491.                   code and error message will be returned, and RevalidateAll will
  2492.                   be False.}
  2493. (2) 6-165     procedure VisitAllEntryFields(FProc : esFieldProc; var D);
  2494.                 {-Call the specified procedure for all fields in the entry
  2495.                   screen}
  2496.  
  2497. OpEntry ScrollingEntryScreen
  2498. ==============================================================================
  2499.  
  2500. (2) 6-170     constructor Init(X1, Y1, X2, Y2 : Byte);
  2501.                 {-Initialize the entry screen}
  2502. (2) 6-170     constructor InitCustom(X1, Y1, X2, Y2 : Byte;
  2503.                                      var Colors : ColorSet; Options : LongInt);
  2504.                 {-Initialize the entry screen with custom window options}
  2505. (2) 6-169     destructor Done; virtual;
  2506.                 {-Deallocate field list, screen buffers}
  2507. (2) 6-169     procedure AllocateScreen;
  2508.                 {-Call after last field added to allocate virtual screen}
  2509. (2) 6-172     procedure VScreenToScreen; virtual;
  2510.                 {-Copy the virtual screen to the physical screen}
  2511. (2) 6-171     constructor Load(var S : IdStream);
  2512.                 {-Load a scrolling entry screen from a stream}
  2513. (2) 6-172     procedure Store(var S : IdStream);
  2514.                 {-Store a scrolling entry screen in a stream}
  2515.  
  2516. OpEdit  LineEditor
  2517. ==============================================================================
  2518.  
  2519. (2) 6-189     constructor Init(var Colors : ColorSet);
  2520.                 {-Sets default values for attributes, etc.}
  2521. (2) 6-188     function GetLastCommand : Word;
  2522.                 {-Return last command entered by user}
  2523. (2) 6-188     function GetLastKey : Word;
  2524.                 {-Return last keystroke entered by user}
  2525. (2) 6-188     function GetLastError : Word;
  2526.                 {-Get last error code}
  2527. (2) 6-190     procedure leEditOptionsOn(OptionFlags : LongInt);
  2528.                 {-Activate multiple options}
  2529. (2) 6-189     function leEditOptionsAreOn(OptionFlags : LongInt) : Boolean;
  2530.                 {-Return true if all specified options are on}
  2531. (2) 6-190     procedure leEditOptionsOff(OptionFlags : LongInt);
  2532.                 {-Deactivate multiple options}
  2533. (2) 6-192     procedure leSecEditOptionsOn(OptionFlags : LongInt);
  2534.                 {-Activate multiple options}
  2535. (2) 6-191     function leSecEditOptionsAreOn(OptionFlags : LongInt) : Boolean;
  2536.                 {-Return true if all specified options are on}
  2537. (2) 6-191     procedure leSecEditOptionsOff(OptionFlags : LongInt);
  2538.                 {-Deactivate multiple options}
  2539. (2) 6-195     procedure SetPadChar(Ch : Char);
  2540.                 {-Set character used to pad strings being edited}
  2541. (2) 6-195     procedure SetPasswordChar(Ch : Char);
  2542.                 {-Set character used to represent text in password mode}
  2543. (2) 6-195     procedure SetHelpIndex(Index : Word);
  2544.                 {-Set the help index}
  2545. (2) 6-193     procedure SetCommandProcessor(var CP : CommandProcessor);
  2546.                 {-Set command processor to use}
  2547. (2) 6-194     procedure SetErrorProc(EEP : ErrorProc);
  2548.                 {-Set procedure to call on error}
  2549. (2) 6-192     constructor Load(var S : IdStream);
  2550.                 {-Load a line editor from a stream}
  2551. (2) 6-196     procedure Store(var S : IdStream);
  2552.                 {-Store a line editor in a stream}
  2553. (2) 6-178     procedure ReadString(Prompt : string; Row, Col, MaxLen, Width : Byte;
  2554.                                    var St : string);
  2555.                 {-Edit a string}
  2556. (2) 6-178     procedure ReadSpecial(Prompt : string;
  2557.                                     Row, Col, MaxLen, Width : Byte;
  2558.                                     PictureChar : Char; var St : string);
  2559.                 {-Edit a string}
  2560. (2) 6-179     procedure ReadChar(Prompt : string; Row, Col : Byte;
  2561.                                  ValidChars : CharSet; var Ch : Char);
  2562.                 {-Display a prompt and wait for a key in ValidChars}
  2563. (2) 6-179     function YesOrNo(Prompt : string; Row, Col : Byte;
  2564.                                Default : Char) : Boolean;
  2565.                 {-Return true for yes, false for no}
  2566. (2) 6-178     procedure ReadLongInt(Prompt : string; Row, Col, Width : Byte;
  2567.                                     LLo, LHi : LongInt; var L : LongInt);
  2568.                 {-Edit a long integer}
  2569. (2) 6-178     procedure ReadInteger(Prompt : string; Row, Col, Width : Byte;
  2570.                                     NLo, NHi : Integer; var N : Integer);
  2571.                 {-Edit an integer}
  2572. (2) 6-178     procedure ReadWord(Prompt : string; Row, Col, Width : Byte;
  2573.                                  WLo, WHi : Word; var W : Word);
  2574.                 {-Edit a word}
  2575. (2) 6-178     procedure ReadByte(Prompt : string; Row, Col, Width : Byte;
  2576.                                  BLo, BHi : Byte; var B : Byte);
  2577.                 {-Edit a byte}
  2578. (2) 6-178     procedure ReadShortInt(Prompt : string; Row, Col, Width : Byte;
  2579.                                      SLo, SHi : ShortInt; var SI : Shortint);
  2580.                 {-Edit a ShortInt}
  2581. (2) 6-178     procedure ReadReal(Prompt : string; Row, Col, Width, Places : Byte;
  2582.                                  RLo, RHi : Real; var R : Real);
  2583.                 {-Edit a real}
  2584. (2) 6-179     procedure EditString(Prompt : string; Row, Col : Byte;
  2585.                                    Picture : string;
  2586.                                    Width : Byte; var St : string);
  2587.                 {-Edit a string}
  2588. (2) 6-179     procedure EditArray(Prompt : string; Row, Col : Byte;
  2589.                                   Picture : string; Width : Byte; var A);
  2590.                 {-Edit an array of char}
  2591. (2) 6-181     procedure EditChar(Prompt : string; Row, Col : Byte;
  2592.                                  Picture : string; ChLo, ChHi : Char;
  2593.                                  var Ch : Char);
  2594.                 {-Edit an array of char}
  2595. (2) 6-181     procedure EditBoolean(Prompt : string; Row, Col : Byte;
  2596.                                     Picture : string; var B : Boolean);
  2597.                 {-Edit a boolean variable}
  2598. (2) 6-181     procedure EditYesNo(Prompt : string; Row, Col : Byte;
  2599.                                   Picture : string; var YN : Boolean);
  2600.                 {-Edit a yes-no variable}
  2601. (2) 6-180     procedure EditLongInt(Prompt : string; Row, Col : Byte;
  2602.                                     Picture : string; LLo, LHi : LongInt;
  2603.                                     var L : LongInt);
  2604.                 {-Edit a long integer}
  2605. (2) 6-181     procedure EditNumericLongInt(...);
  2606.                 {-Edit a long integer (numeric)}
  2607. (2) 6-180     procedure EditInteger(Prompt : string; Row, Col : Byte;
  2608.                                     Picture : string; NLo, NHi : Integer;
  2609.                                     var N : Integer);
  2610.                 {-Edit an integer}
  2611. (2) 6-182     procedure EditNumericInteger(...);
  2612.                 {-Edit an integer (numeric)}
  2613. (2) 6-180     procedure EditWord(Prompt : string; Row, Col : Byte;
  2614.                                  Picture : string; WLo, WHi : Word;
  2615.                                  var W : Word);
  2616.                 {-Edit a word}
  2617. (2) 6-182     procedure EditNumericWord(...);
  2618.                 {-Edit a word (numeric)}
  2619. (2) 6-180     procedure EditByte(Prompt : string; Row, Col : Byte;
  2620.                                  Picture : string; BLo, BHi : Byte;
  2621.                                  var B : Byte);
  2622.                 {-Edit a byte}
  2623. (2) 6-182     procedure EditNumericByte(...);
  2624.                 {-Edit a byte (numeric)}
  2625. (2) 6-180     procedure EditShortInt(Prompt : string; Row, Col : Byte;
  2626.                                      Picture : string; SLo, SHi : ShortInt;
  2627.                                      var SI : Shortint);
  2628.                 {-Edit a ShortInt}
  2629. (2) 6-182     procedure EditNumericShortInt(...);
  2630.                 {-Edit a ShortInt (numeric)}
  2631. (2) 6-180     procedure EditReal(Prompt : string; Row, Col : Byte;
  2632.                                  Picture : string; Places : Byte;
  2633.                                  RLo, RHi : Real; var R : Real);
  2634.                 {-Edit a real}
  2635. (2) 6-182     procedure EditNumericReal(...);
  2636.                 {-Edit a real (numeric)}
  2637. (2) 6-181     procedure EditDate(Prompt : string; Row, Col : Byte;
  2638.                                  Picture : string; DLo, DHi : Date; var D : Date);
  2639.                 {-Edit a date variable}
  2640. (2) 6-181     procedure EditDateSt(Prompt : string; Row, Col : Byte;
  2641.                                    Picture : DateString; var DS : DateString);
  2642.                 {-Edit a date string}
  2643. (2) 6-181     procedure EditTime(Prompt : string; Row, Col : Byte;
  2644.                                  Picture : DateString;
  2645.                                  TLo, THi : Time; var T : Time);
  2646.                 {-Edit a time variable}
  2647. (2) 6-182     procedure EditChoice(Prompt : string; Row, Col : Byte;
  2648.                                    Picture : string; DataSize : Byte;
  2649.                                    Increment : IncChoiceProc; var MC);
  2650.                 {-Edit a multiple choice variable}
  2651. (2) 6-182     procedure EditMultiLine(Prompt : string; Row, Col : Byte;
  2652.                                       Width, Height : Byte; var StArray);
  2653.              {-Edit a multiline field}
  2654.  
  2655. OpSEdit SimpleLineEditor
  2656. ==============================================================================
  2657.  
  2658. (2) 6-202     constructor Init(var Colors : ColorSet);
  2659.                 {-Sets default values for attributes, etc.}
  2660. (2) 6-201     function GetLastCommand : Word;
  2661.                 {-Return last command entered by user}
  2662. (2) 6-201     function GetLastKey : Word;
  2663.                 {-Return last keystroke entered by user}
  2664. (2) 6-202     procedure ReadString(Prompt : string; Row, Col, MaxLen, Width : Byte;
  2665.                                    var S : string);
  2666.                 {-Edit a string}
  2667. (2) 6-203     procedure seOptionsOn(OptionFlags : LongInt);
  2668.                 {-Activate multiple options}
  2669. (2) 6-203     function seOptionsAreOn(OptionFlags : LongInt) : Boolean;
  2670.                 {-Return true if all specified options are on}
  2671. (2) 6-203     procedure seOptionsOff(OptionFlags : LongInt);
  2672.                 {-Deactivate multiple options}
  2673. (2) 6-205     procedure SetPromptAttr(Color, Mono : Byte);
  2674.                 {-Set attributes for prompts}
  2675. (2) 6-204     procedure SetFieldAttr(Color, Mono : Byte);
  2676.                 {-Set attributes for line being edited}
  2677. (2) 6-204     procedure SetCtrlAttr(Color, Mono : Byte);
  2678.                 {-Set attributes for control characters}
  2679. (2) 6-205     procedure SetHelpIndex(Index : Word);
  2680.                 {-Set the help index}
  2681. (2) 6-204     procedure SetCommandProcessor(var CP : CommandProcessor);
  2682.                 {-Set command processor to use}
  2683.  
  2684. OpDate  Procedures and Functions
  2685. ==============================================================================
  2686.  
  2687. (2) 6-227     function ValidDate(Day, Month, Year : Integer) : Boolean;
  2688.                 {-Verify that day, month, year is a valid date}
  2689. (2) 6-217     function DMYtoDate(Day, Month, Year : Integer) : Date;
  2690.                 {-Convert from day, month, year to a julian date}
  2691. (2) 6-215     procedure DateToDMY(Julian : Date; var Day, Month, Year : Integer);
  2692.                 {-Convert from a julian date to day, month, year}
  2693. (2) 6-218     function IncDate(Julian : Date;
  2694.                                Days, Months, Years : Integer) : Date;
  2695.                 {-Add (or subtract) the number of days, months, and years to a
  2696.                   date}
  2697. (2) 6-219     function IncDateTrunc(Julian : Date; Months, Years : Integer) : Date;
  2698.                 {-Add (or subtract) the specified number of months and years to a
  2699.                   date}
  2700. (2) 6-212     procedure DateDiff(Date1, Date2 : Date;
  2701.                                  var Days, Months, Years : Integer);
  2702.                 {-Return the difference in days,months,years between two valid
  2703.                   julian dates}
  2704. (2) 6-215     function DayOfWeek(Julian : Date) : DayType;
  2705.                 {-Return the day of the week for the date}
  2706. (2) 6-216     function DayOfWeekDMY(Day, Month, Year : Integer) : DayType;
  2707.                 {-Return the day of the week for the day, month, year}
  2708. (2) 6-213     function DateStringToDate(Picture, S : DateString) : Date;
  2709.                 {-Convert S, a string of the form indicated by Picture, to a
  2710.                   julian date. Picture and S must be of equal lengths}
  2711. (2) 6-214     function DateToDateString(Picture : DateString;
  2712.                                         Julian : Date) : DateString;
  2713.                 {-Convert Julian to a string of the form indicated by Picture}
  2714. (2) 6-226     function Today : Date;
  2715.                 {-Returns today's date as a julian}
  2716. (2) 6-215     function DateToSortString(Julian : Date) : string;
  2717.                 {-Convert a date to a sortable string}
  2718. (2) 6-222     function SortStringToDate(S : string) : Date;
  2719.                 {-Convert a sortable string form to a date}
  2720. (2) 6-221     function IsLeapYear(Year : Integer) : Boolean;
  2721.                 {-Return True if Year is a leap year}
  2722. (2) 6-216     function DaysInMonth(Month, Year : Integer) : Integer;
  2723.                 {-Return the number of days in the specified month of a given year}
  2724. (2) 6-213     function DateStringToDMY(Picture, S : DateString;
  2725.                                        var D, M, Y : Integer) : Boolean;
  2726.                 {-Extract day, month, and year from S, returning true if string is
  2727.                   valid}
  2728. (2) 6-217     function DMYtoDateString(Picture : DateString;
  2729.                                        Day, Month, Year : Integer) : DateString;
  2730.                 {-Merge the month, day, and year into the picture}
  2731. (2) 6-227     function TodayString(Picture : DateString) : DateString;
  2732.                 {-Returns today's date as a string of the specified form}
  2733. (2) 6-227     function ValidTime(Hours, Minutes, Seconds : Integer) : Boolean;
  2734.                 {-Return true if Hours:Minutes:Seconds is a valid time}
  2735. (2) 6-225     procedure TimeToHMS(T : Time; var Hours, Minutes, Seconds : Byte);
  2736.                 {-Convert a Time variable to Hours, Minutes, Seconds}
  2737. (2) 6-217     function HMStoTime(Hours, Minutes, Seconds : Byte) : Time;
  2738.                 {-Convert Hours, Minutes, Seconds to a Time variable}
  2739. (2) 6-224     function TimeStringToHMS(Picture, St : DateString;
  2740.                                        var H, M, S : Integer) : Boolean;
  2741.                 {-Extract Hours, Minutes, Seconds from St, returning True if
  2742.                   string is valid}
  2743. (2) 6-224     function TimeStringToTime(Picture, S : DateString) : Time;
  2744.                 {-Convert S, a string of the form indicated by Picture, to Time}
  2745. (2) 6-226     function TimeToTimeString(Picture : DateString;
  2746.                                         T : Time) : DateString;
  2747.                 {-Convert T to a string of the form indicated by Picture}
  2748. (2) 6-225     function TimeToAmPmString(Picture : DateString;
  2749.                                         T : Time) : DateString;
  2750.                 {-Convert T to a string of the form indicated by Picture. Times are
  2751.                   always displayed in am/pm format.}
  2752. (2) 6-212     function CurrentTime : Time;
  2753.                 {-Returns current time in seconds since midnight}
  2754. (2) 6-212     function CurrentTimeString(Picture : DateString) : DateString;
  2755.                 {-Returns current time as a string of the specified form}
  2756. (2) 6-223     procedure TimeDiff(Time1, Time2 : Time;
  2757.                                  var Hours, Minutes, Seconds : Byte);
  2758.                 {-Return the difference in hours,minutes,seconds between two times}
  2759. (2) 6-219     function IncTime(T : Time; Hours, Minutes, Seconds : Byte) : Time;
  2760.                 {-Add the specified hours,minutes,seconds to T and return result}
  2761. (2) 6-216     function DecTime(T : Time; Hours, Minutes, Seconds : Byte) : Time;
  2762.                 {-Subtract the specified hours,minutes,seconds from T and return
  2763.                   the result}
  2764. (2) 6-226     function TimeToSortString(T : Time) : string;
  2765.                 {-Convert a time variable to a sortable string}
  2766. (2) 6-221     function RoundToNearestHour(T : Time; Truncate : Boolean) : Time;
  2767.                 {-Round T to the nearest hour or Truncate minutes & seconds from T}
  2768. (2) 6-222     function RoundToNearestMinute(T : Time; Truncate : Boolean) : Time;
  2769.                 {-Round T to the nearest minute, or Truncate seconds from T}
  2770. (2) 6-223     function SortStringToTime(S : string) : Time;
  2771.                 {-Convert a sortable string to a time variable}
  2772. (2) 6-214     procedure DateTimeDiff(DT1, DT2 : DateTimeRec;
  2773.                                      var Days : Word; var Secs : LongInt);
  2774.                 {-Return the difference in days and seconds between two points
  2775.                   in time}
  2776. (2) 6-218     procedure IncDateTime(var DT1, DT2 : DateTimeRec; Days : Integer;
  2777.                                     Secs : LongInt);
  2778.                 {-Increment (or decrement) DT1 by the specified number of days
  2779.                   and seconds and put the result in DT2}
  2780. (2) 6-220     function InternationalDate(WholeYear,
  2781.                                          ZeroPad : Boolean) : DateString;
  2782.                 {-Return a picture mask for a date string, based on DOS's
  2783.                   country info}
  2784. (2) 6-220     function InternationalTime(
  2785.                   WithSeconds, ZeroPad, ExtraSpace, WithEm : Boolean) : DateString;
  2786.                 {-Return a picture mask for a time string based on DOS's
  2787.                   country info}
  2788.  
  2789. OpPrnLow  BasePrinter
  2790. ==============================================================================
  2791.  
  2792. (2) 7-19      constructor Init(PrnName : PathStr; TypeOfPrinter : PrnType;
  2793.                                PrnFlags : Word);
  2794.                 {-Initializes a printer object}
  2795. (2) 7-15      procedure PrnPutChar(Character : Char); Virtual;
  2796.                 {-Puts a character to the output device}
  2797. (2) 7-14      procedure PrnPutBlock(var Block; BlockSize : Word); Virtual;
  2798.                 {-Puts a block of characters to the output device}
  2799. 2) 7-16      function PrnStatus : Word; Virtual;
  2800.                 {-Return the status of the device}
  2801. (2) 7-15      procedure PrnReset; Virtual;
  2802.                 {-Reset the output device}
  2803. (2) 7-13      procedure PrnFlush; Virtual;
  2804.                 {-Flush the device}
  2805. (2) 7-16      function PrnXlatErrorCode(Call : PrnCallType;
  2806.                                         ErrorCode : Word) : Word; Virtual;
  2807.                 {-Translate a raw error code into appropriate user error code}
  2808. (2) 7-10      function CharXlat(C : Char) : Char; Virtual;
  2809.                 {-Translate the Character C according to built in translation
  2810.                   table}
  2811. (2) 7-10      destructor Done; Virtual;
  2812.                 {-Flush, close, and deallocate memory used by a printer object}
  2813. (2) 7-18      function TypeOfPrn : PrnType;
  2814.                 {-Returns the type of printer}
  2815. (2) 7-11      function NameOfPrn : String;
  2816.                 {-Returns the printer name}
  2817. (2) 7-12      function PrnError  : Word;
  2818.                 {-Returns the last error and resets pLastError to zero}
  2819. (2) 7-15      function PrnRawError : Word;
  2820.                 {-Returns the raw error code returned by the last operation}
  2821. (2) 7-13      function PrnErrorOp : PrnCallType;
  2822.                 {-Returns the type of the last operation}
  2823. (2) 7-14      function PrnLastPut : Word;
  2824.                 {-Returns the number of characters successfully written by last
  2825.                   PrnPutBlock}
  2826. (2) 7-18      procedure XlatCharItem(CharIndex : Char; Character : Char);
  2827.                 {-Change the character associated with the ascii code of CharIndex
  2828.                   to Character}
  2829. (2) 7-10      procedure ClearXlatCharTable;
  2830.                 {-Clears the character translation table (the default state)}
  2831. (2) 7-12      procedure NewXlatCharTable(var Table : XlatCharTable);
  2832.                 {-Sets entire XlatChar table}
  2833. (2) 7-11      constructor Load(var S : IdStream);
  2834.                 {-Load a BasePrinter from a stream}
  2835. (2) 7-17      procedure Store(var S : IdStream);
  2836.                 {-Store a BasePrinter in a stream}
  2837.  
  2838. OpPrnLow  DosPrinter
  2839. ==============================================================================
  2840.  
  2841. (2) 7-19      constructor Init(PrnName : PathStr; TypeOfPrinter : PrnType;
  2842.                                PrnFlags : Word);
  2843.                 {-Initializes a printer object}
  2844.  
  2845. OpPrnLow  BiosPrinter
  2846. ==============================================================================
  2847.  
  2848. (2) 7-21      constructor Init(LPTNumber : LPTType);
  2849.                 {-Initializes a BIOS printer object}
  2850. (2) 7-22      constructor InitCustom(LPTNumber : LPTType;
  2851.                                      PrinterTestNumber, SuccessMask : Byte);
  2852.                 {-Initializes a BIOS printer object with custom status check}
  2853. (2) 7-20      function GetLptPort : LPTType;
  2854.                 {-Returns the LPT port number for this printer}
  2855. (2) 7-22      procedure SetLptPort(LPTNo : LPTType);
  2856.                 {-Sets the LPT port number for this printer}
  2857. (2) 7-23      procedure SetXlatErrorFunc(Xlat : XlatFunc);
  2858.                 {-Sets the XlatError routine}
  2859. (2) 7-21      function GetXlatErrorFunc : Pointer;
  2860.                 {-Returns the Xlat Error routine}
  2861. (2) 7-20      procedure GetTestAndMask(var PrinterTestNumber, Mask : Byte);
  2862.                 {-Return the printer test number and success mask}
  2863. (2) 7-23      procedure SetTestAndMask(PrinterTestNumber, Mask : Byte);
  2864.                 {-Set the printer test number and success mask}
  2865.  
  2866. OpPrnLow  Procedures and Functions
  2867. ==============================================================================
  2868.  
  2869. (2) 7-26      procedure DefaultXlatCharTable(var Table : XlatCharTable);
  2870.                 {-Initialize Table to default state}
  2871. (2) 7-24      procedure AssignPrnObject(var F : Text;
  2872.                                         var PrinterObj : BasePrinter);
  2873.                 {-Assign Text variable with a printer object}
  2874. (2) 7-26      function GetPrnObject(var F : Text) : BasePrinterPtr;
  2875.                 {-Return a pointer to the Prn Object associated with a Text file}
  2876. (2) 7-25      function CallPrnStatus(var F : Text) : Word;
  2877.                 {-Call PrnStatus method for Text file associated with Prn Object}
  2878.  
  2879. OpPrint  Printer
  2880. ==============================================================================
  2881.  
  2882. (2) 7-44      constructor Init(Name : String; DeviceType : PrnType;
  2883.                                OptionFlags : Word);
  2884.                 {-Initialize a Printer}
  2885. (2) 7-45      constructor InitCustom(Device : BasePrinterPtr;
  2886.                                      LPI, CPI, Point, LPP : Dimension;
  2887.                                      OptionFlags : Word);
  2888.                 {-Initialize a printer with full control over Printer Device,
  2889.                   PrinterModes}
  2890. (2) 7-40      destructor Done; Virtual;
  2891.                 {-Destroy a printer}
  2892. (2) 7-50      procedure PrintStr(S : String); Virtual;
  2893.                 {-Print a String at the current position}
  2894. (2) 7-50      procedure PrintStrPos(S : String; Row, Col : Dimension;
  2895.                                     Relative : RelativeType); Virtual;
  2896.                 {-Print a string at the specified position}
  2897. (2) 7-49      procedure Position(Row, Col : Dimension;
  2898.                                  Relative : RelativeType); Virtual;
  2899.                 {-Position the printer to the desired place on the page}
  2900. (2) 7-41      procedure FormFeed;
  2901.                 {-Advance to next page}
  2902. (2) 7-39      procedure AdvanceLine(NumLines : Byte);
  2903.                 {-Advances NumLines number of lines}
  2904. (2) 7-39      procedure AdvanceSingleLine; Virtual;
  2905.                 {-Advances to the top of the next line}
  2906. (2) 7-51      procedure ResetPage;
  2907.                 {-Reset position information}
  2908. (2) 7-52      procedure SetLPP(LPP : Dimension);
  2909.                 {-Sets lines per page}
  2910. (2) 7-54      procedure SetYRatio(Ratio : Dimension);
  2911.                 {-Sets the Y printer ratio}
  2912. (2) 7-53      procedure SetXRatio(Ratio : Dimension);
  2913.                 {-Sets the X printer ratio}
  2914. (2) 7-42      function GetLPP : Dimension;
  2915.                 {-Returns lines per page}
  2916. (2) 7-43      function GetYRatio : Dimension;
  2917.                 {-Returns the Y printer ratio}
  2918. (2) 7-43      function GetXRatio : Dimension;
  2919.                 {-Returns the X printer ratio}
  2920. (2) 7-43      function GetRegisteredType : Word;
  2921.                 {-Returns the hardware type registered to this Printer}
  2922. (2) 7-41      function GetBasePrinter : BasePrinterPtr;
  2923.                 {-Returns the BasePrinterPtr}
  2924. (2) 7-41      function GetCurrentFont : Byte;
  2925.                 {-Returns the current font's Mode ID or zero if no current font}
  2926. (2) 7-53      procedure SetPrintErrorFunc(PEF : PrintErrorFunc);
  2927.                 {-Set the print error function}
  2928. (2) 7-53      procedure SetPositionPrim(PosFunc : PrinterPosFunc);
  2929.                 {-Set printer position primitive}
  2930. (2) 7-38      procedure AddPrintMode(Name, OnEscSeq, OffEscSeq : String;
  2931.                                      Width, Height : Dimension;
  2932.                                      ID : Byte; OptionFlags : Word);
  2933.                 {-Add a Print Mode to the linked list of modes}
  2934. (2) 7-51      procedure SetDefaultFont(Attr : Byte);
  2935.                 {-Sets the default font for this printer}
  2936. (2) 7-42      function GetDefaultFont : Byte;
  2937.                 {-Returns the Attr of the default font}
  2938. (2) 7-40      procedure EnableDefaultFont;
  2939.                 {-Enables the default font}
  2940. (2) 7-56      procedure TurnOnByID(ID : Byte);
  2941.                 {-Turn a print mode on by ID}
  2942. (2) 7-55      procedure TurnOffByID(ID : Byte);
  2943.                 {-Turn a print mode off by ID}
  2944. (2) 7-56      procedure TurnOnByName(Name : String);
  2945.                 {-Turn a print mode on by Name}
  2946. (2) 7-56      procedure TurnOffByName(Name : String);
  2947.                 {-Turn a print mode off by Name}
  2948. (2) 7-49      function PrinterReady : Boolean;
  2949.                 {-Returns true if printer ready}
  2950. (2) 7-48      procedure pOptionsOn(OptionFlags : Word);
  2951.                 {-Turn on multiple Printer options}
  2952. (2) 7-48      procedure pOptionsOff(OptionFlags : Word);
  2953.                 {-Turn off multiple printer options}
  2954. (2) 7-48      function pOptionsAreOn(OptionFlags : Word) : Boolean;
  2955.                 {-Return True if all of the specified OptionFlags are on}
  2956. (2) 7-47      function pGetLastError : Word;
  2957.                 {-Return the last error code and reset to zero}
  2958. (2) 7-45      function InLandscape : Boolean;
  2959.                 {-Returns true if in Landscape mode}
  2960. (2) 7-55      procedure TurnOffAllActiveModes;
  2961.                 {-Turn off all the currently active print modes}
  2962. (2) 7-39      procedure DisposeAllModes;
  2963.                 {-Disposes of all print modes associated with this printer}
  2964. (2) 7-47      constructor Load(var S : IdStream);
  2965.                 {-Load a Printer from a stream}
  2966. (2) 7-54      procedure Store(var S : IdStream);
  2967.                 {-Store a Printer in a stream}
  2968. (2) 7-46      procedure LinkToPrinter(Device : BasePrinterPtr);
  2969.                 {-Links the object with the specified Device}
  2970. (2) 7-46      procedure LinkToModes(var Modes : SingleList);
  2971.                 {-Links the object to the specified Print Mode List}
  2972.  
  2973. OpDevice  Procedures and Functions
  2974. ==============================================================================
  2975.  
  2976. (2) 7-63      procedure Deregister(P : PrinterPtr);
  2977.                 {-Deregisters a Printer of any previous registration}
  2978. (2) 7-65      procedure LJRegister(P : PrinterPtr);
  2979.                 {-Register this printer as an HP Laserjet compatible}
  2980. (2) 7-65      procedure LJFontGRegister(P : PrinterPtr);
  2981.                 {-Registers cartridge font G for LJ}
  2982. (2) 7-64      function LJDeci2Row(Decipoints : Dimension;
  2983.                                   P : PrinterPtr) : Dimension;
  2984.                 {-Convert decipoint to Row number}
  2985. (2) 7-64      function LJDeci2Col(Decipoints : Dimension;
  2986.                                   P : PrinterPtr) : Dimension;
  2987.                 {-Convert decipoint to Col number}
  2988. (2) 7-64      function LJRow2Deci(Row : Dimension; P : PrinterPtr) : Dimension;
  2989.                 {-Convert a Row number to a Decipoint}
  2990. (2) 7-63      function LJCol2Deci(Col : Dimension; P : PrinterPtr) : Dimension;
  2991.                 {-Convert a Row number to a Decipoint}
  2992. (2) 7-65      procedure DiabloRegister(P : PrinterPtr);
  2993.                 {-Register this printer as a Diablo compatible}
  2994. (2) 7-65      procedure EpsonMXRegister(P : PrinterPtr);
  2995.                 {-Registers P as an Epson MX compatible printer}
  2996. (2) 7-65      procedure EpsonLQRegister(P : PrinterPtr);
  2997.                 {-Registers P as an Epson LQ printer}
  2998. (2) 7-65      procedure ProPrinterIIRegister(P : PrinterPtr);
  2999.                 {-Registers P as an IBM Proprinter II printer}
  3000. (2) 7-65      procedure GenericEpsonRegister(P : PrinterPtr);
  3001.                 {-Registers P as a Generic Epson compatible printer}
  3002. (2) 7-65      procedure HPDeskJetRegister(P : PrinterPtr);
  3003.                 {-Registers P as an HP Deskjet compatible}
  3004. (2) 7-65      procedure KXP1093Register(P : PrinterPtr);
  3005.                 {-Registers P as a Panasonic KX-P1093 printer}
  3006. (2) 7-65      procedure ToshibaP321Register(P : PrinterPtr);
  3007.                 {-Registers P as Toshiba P321SL or P341SL}
  3008. (2) 7-65      procedure StarMicronicsRegister(P : PrinterPtr);
  3009.                 {-Registers P as a Star Micronics printer}
  3010. (2) 7-65      procedure Nec3510Register(P : PrinterPtr);
  3011.                 {-Registers P as a Nec 3510/3530 printer}
  3012. (2) 7-65      procedure Nec8800Register(P : PrinterPtr);
  3013.                 {-Registers P as a Nec 7710/7730/8830/8810 printer}
  3014. (2) 7-65      procedure ProwriterRegister(P : PrinterPtr);
  3015.                 {-Registers P as a C. Itoh 8510 Prowriter printer}
  3016. (2) 7-65      procedure FacitRegister(P : PrinterPtr);
  3017.                 {-Registers P as a Facit 4512 printer}
  3018. (2) 7-65      procedure DataProductsRegister(P : PrinterPtr);
  3019.                 {-Registers P as a DataProducts DP printer}
  3020. (2) 7-65      procedure LJDeviceStream(SPtr : IdStreamPtr);
  3021.                 {-Registers the LJ specific procedure and function pointers}
  3022.  
  3023. OpForm  PrintField
  3024. ==============================================================================
  3025.  
  3026. (2) 7-89      procedure pfOptionsOn(OptionFlags : LongInt);
  3027.                 {-Activate multiple options}
  3028. (2) 7-89      procedure pfOptionsOff(OptionFlags : LongInt);
  3029.                 {-Deactivate multiple options}
  3030. (2) 7-89      function pfOptionsAreOn(OptionFlags : LongInt) : Boolean;
  3031.                 {-Determine if multiple options are on}
  3032. (2) 7-88      function Convert : Boolean; Virtual;
  3033.                 {-Convert from native type to printable string}
  3034. (2) 7-90      procedure Print(PrinterP : PrinterPtr); Virtual;
  3035.                 {-Print the print field}
  3036. (2) 7-91      procedure SetConversion(ConvertFunc : PrintConversionFunc);
  3037.                 {-Sets the conversion routine}
  3038. (2) 7-88      function GetFieldAttr : Byte;
  3039.                 {-Return the print attribute for this Field}
  3040. (2) 7-88      procedure GetFieldPos(var Row, Col : Dimension);
  3041.                 {-Return the row and col for this field}
  3042. (2) 7-91      procedure SetFieldPos(Row, Col : Dimension);
  3043.                 {-Sets the row and col for this field}
  3044.  
  3045. OpForm  PrintedForm
  3046. ==============================================================================
  3047.  
  3048. (2) 7-99      constructor Init(FormID : Byte; PrinterP : PrinterPtr);
  3049.                 {-Initialize a PrintedForm}
  3050. (2) 7-100     constructor InitCustom(FormID : Byte; TopMargin, BottomMargin,
  3051.                                      LeftMargin, RightMargin : Dimension;
  3052.                                      PrinterP : PrinterPtr);
  3053.                 {-Initialize a PrintedForm with custom options}
  3054. (2) 7-92      destructor Done; Virtual;
  3055.                 {-Dispose of a PrintedForm}
  3056. (2) 7-102     procedure Process; Virtual;
  3057.                 {-Print the Form}
  3058. (2) 7-97      function fPrinterPtr : PrinterPtr;
  3059.                 {-Returns the PrinterPtr for this form}
  3060. (2) 7-94      function fGetLastError : Word;
  3061.                 {-Returns the last error and resets to zero}
  3062. (2) 7-101     procedure NewBlock(BaseRow, BaseCol : Dimension;
  3063.                                  BlockFunc : UserBlockFunc);
  3064.                 {-Starts a new block}
  3065. (2) 7-107     procedure SetUserRecord(var UserRec; UserRecSize : Word);
  3066.                 {-Set the address and size of the user record for current block}
  3067. (2) 7-99      function GetUserRecord : Pointer;
  3068.                 {-Return a pointer to the user record for current block}
  3069. (2) 7-99      function GetUserRecordSize : Word;
  3070.                 {-Return the size of the user record for current block}
  3071. (2) 7-93      procedure DupCurrentBlock(NewRow, NewCol : Dimension);
  3072.                 {-Duplicates the current block at the new block coordinates}
  3073. (2) 7-93      procedure DupCurrentPage;
  3074.                 {-Duplicates the current page}
  3075. (2) 7-104     procedure PromptOptionsOn(OptionFlags : LongInt);
  3076.                 {-Turn options for the prompts on}
  3077. (2) 7-95      procedure FieldOptionsOn(OptionFlags : LongInt);
  3078.                 {-Turn options for the fields on}
  3079. (2) 7-103     procedure PromptOptionsOff(OptionFlags : LongInt);
  3080.                 {-Turn options for the prompt off}
  3081. (2) 7-95      procedure FieldOptionsOff(OptionFlags : LongInt);
  3082.                 {-Turn options for the fields off}
  3083. (2) 7-103     function PromptOptionsAreOn(OptionFlags : LongInt) : Boolean;
  3084.                 {-Determine whether options for the prompts are on}
  3085. (2) 7-95      function FieldOptionsAreOn(OptionFlags : LongInt) : Boolean;
  3086.                 {-Determine whether options for the fields are on}
  3087. (2) 7-72      procedure AddTextField(pFieldID : Word; Prompt : String;
  3088.                                      pRow, pCol : Dimension;
  3089.                                      pAttr, pWidth : Byte);
  3090.                 {-Adds a text field (no user variable)}
  3091. (2) 7-73      procedure AddStringField(pFieldID : Word; Prompt : String;
  3092.                                        pRow, pCol : Dimension;
  3093.                                        pAttr, pWidth : Byte;
  3094.                                        fFieldID : Word; Picture : String;
  3095.                                        fRow, fCol : Dimension;
  3096.                                        fAttr, fWidth : Byte;
  3097.                                        var PrintSt : String);
  3098.                 {-Adds a string field}
  3099. (2) 7-73      procedure AddCharField(pFieldID : Word; Prompt : String;
  3100.                                      pRow, pCol : Dimension;
  3101.                                      pAttr, pWidth : Byte;
  3102.                                      fFieldID : Word; Picture : String;
  3103.                                      fRow, fCol : Dimension;
  3104.                                      fAttr, fWidth : Byte;
  3105.                                      var PrintChar : Char);
  3106.                 {-Adds prompt and character field}
  3107. (2) 7-72      procedure AddBooleanField(pFieldID : Word; Prompt : String;
  3108.                                         pRow, pCol : Dimension;
  3109.                                         pAttr, pWidth : Byte;
  3110.                                         fFieldID : Word; Picture : String;
  3111.                                         fRow, fCol : Dimension;
  3112.                                         fAttr, fWidth : Byte;
  3113.                                         var PrintBool : Boolean);
  3114.                 {-Adds a Boolean field}
  3115. (2) 7-73      procedure AddYesNoField(pFieldID : Word; Prompt : String;
  3116.                                       pRow, pCol : Dimension;
  3117.                                       pAttr, pWidth : Byte;
  3118.                                       fFieldID : Word; Picture : String;
  3119.                                       fRow, fCol : Dimension;
  3120.                                       fAttr, fWidth : Byte;
  3121.                                       var PrintYesNo : Boolean);
  3122.                 {-Adds a Yes/No field}
  3123. (2) 7-73      procedure AddLongField(pFieldID : Word; Prompt : String;
  3124.                                      pRow, pCol : Dimension;
  3125.                                      pAttr, pWidth : Byte;
  3126.                                      fFieldID : Word; Picture : String;
  3127.                                      fRow, fCol : Dimension;
  3128.                                      fAttr, fWidth : Byte;
  3129.                                      var PrintLong : LongInt);
  3130.                 {-Adds a LongInt field}
  3131. (2) 7-73      procedure AddWordField(pFieldID : Word; Prompt : String;
  3132.                                      pRow, pCol : Dimension;
  3133.                                      pAttr, pWidth : Byte;
  3134.                                      fFieldID : Word; Picture : String;
  3135.                                      fRow, fCol : Dimension;
  3136.                                      fAttr, fWidth : Byte;
  3137.                                      var PrintWord : Word);
  3138.                 {-Adds a Word field}
  3139. (2) 7-73      procedure AddIntField(pFieldID : Word; Prompt : String;
  3140.                                     pRow, pCol : Dimension;
  3141.                                     pAttr, pWidth : Byte;
  3142.                                     fFieldID : Word; Picture : String;
  3143.                                     fRow, fCol : Dimension;
  3144.                                     fAttr, fWidth : Byte;
  3145.                                     var PrintInt : Integer);
  3146.                 {-Adds an Integer field}
  3147. (2) 7-73      procedure AddByteField(pFieldID : Word; Prompt : String;
  3148.                                      pRow, pCol : Dimension;
  3149.                                      pAttr, pWidth : Byte;
  3150.                                      fFieldID : Word; Picture : String;
  3151.                                      fRow, fCol : Dimension;
  3152.                                      fAttr, fWidth : Byte;
  3153.                                      var PrintByte : Byte);
  3154.                 {-Adds a Byte field}
  3155. (2) 7-73      procedure AddShortField(pFieldID : Word; Prompt : String;
  3156.                                       pRow, pCol : Dimension;
  3157.                                       pAttr, pWidth : Byte;
  3158.                                       fFieldID : Word; Picture : String;
  3159.                                       fRow, fCol : Dimension;
  3160.                                       fAttr, fWidth : Byte;
  3161.                                       var PrintShort : ShortInt);
  3162.                 {-Adds a ShortInt field}
  3163. (2) 7-73      procedure AddRealField(pFieldID : Word; Prompt : String;
  3164.                                      pRow, pCol : Dimension;
  3165.                                      pAttr, pWidth : Byte;
  3166.                                      fFieldID : Word; Picture : String;
  3167.                                      fRow, fCol : Dimension;
  3168.                                      fAttr : Byte; fDPlaces : Byte;
  3169.                                      fWidth : Byte; var PrintReal : Real);
  3170.                 {-Adds a Real field}
  3171. (2) 7-74      procedure AddDateField(pFieldID : Word; Prompt : String;
  3172.                                      pRow, pCol : Dimension;
  3173.                                      pAttr, pWidth : Byte;
  3174.                                      fFieldID : Word; Picture : String;
  3175.                                      fRow, fCol : Dimension;
  3176.                                      fAttr, fWidth : Byte;
  3177.                                      var PrintDate : Date);
  3178.                 {-Adds a Date field}
  3179. (2) 7-74      procedure AddTimeField(pFieldID : Word; Prompt : String;
  3180.                                      pRow, pCol : Dimension;
  3181.                                      pAttr, pWidth : Byte;
  3182.                                      fFieldID : Word; Picture : String;
  3183.                                      fRow, fCol : Dimension;
  3184.                                      fAttr, fWidth : Byte;
  3185.                                      var PrintTime : Time);
  3186.                 {-Adds a Time field}
  3187. (2) 7-75      procedure AddDirective(FieldID : Word; Row, Col : Dimension;
  3188.                                      On : Boolean; Attr : Byte);
  3189.                 {-Adds a print directive}
  3190. (2) 7-75      procedure AddLine(FieldID : Word; Row, Col : Dimension;
  3191.                                 Len, LineThickness : Dimension;
  3192.                                 Horizontal : Boolean; LineChar : Char;
  3193.                                 Attr : Byte);
  3194.                 {-Adds a line field}
  3195. (2) 7-75      procedure AddBox(FieldID : Word; Row, Col : Dimension;
  3196.                                Width, Height : Dimension;
  3197.                                HLineThickness, VLineThickness : Dimension;
  3198.                                BoxChars : BoxCharSet; Attr : Byte);
  3199.                 {-Adds a box field}
  3200. (2) 7-75      procedure AddShaded(FieldID : Word; Row, Col : Dimension;
  3201.                                   Width, Height : Dimension; Intensity : Byte);
  3202.                 {-Adds a shaded box field}
  3203. (2) 7-102     procedure NewPage;
  3204.                 {-Start a new page}
  3205. (2) 7-106     procedure SetHeader(HeaderStr : String; Row, Col : Dimension;
  3206.                                   HAttr : Byte);
  3207.                 {-Set up a header for the current page}
  3208. (2) 7-106     procedure SetHeaderFunc(Picture : String;
  3209.                                       HeadFunc : PrintConversionFunc);
  3210.                 {-Set the HeadFunc function pointer for the current page}
  3211. (2) 7-98      function GetHeader : String;
  3212.                 {-Returns the header string for the current page}
  3213. (2) 7-105     procedure SetFooter(FooterStr : String; Row, Col : Dimension;
  3214.                                   FAttr : Byte);
  3215.                 {-Set up a Footer for the current page}
  3216. (2) 7-105     procedure SetFooterFunc(Picture : String;
  3217.                                       FootFunc : PrintConversionFunc);
  3218.                 {-Set the HeadFunc function pointer for the current page}
  3219. (2) 7-97      function GetFooter : String;
  3220.                 {-Returns the Footer string for the current page}
  3221. (2) 7-104     procedure SetErrorHandler(ErrorFunc : PrintErrorFunc);
  3222.                 {-Sets the user error handler}
  3223. (2) 7-96      function FindField(FieldID : Word; var Page : PrintPagePtr;
  3224.                                  var Block : PrintBlockPtr) : PrintFieldPtr;
  3225.                 {-Finds the first field with the specified FieldID}
  3226. (2) 7-96      function FindNextField(Field  : PrintFieldPtr;
  3227.                                      var Page : PrintPagePtr;
  3228.                                      var Block : PrintBlockPtr) : PrintFieldPtr;
  3229.                 {-Finds the next field with the same FieldID as Field}
  3230. (2) 7-92      procedure ChangeConversion(FieldID : Word;
  3231.                                          ConvertFunc : PrintConversionFunc);
  3232.                 {-Changes field's conversion routine}
  3233. (2) 7-107     procedure SetUserData(P : Pointer);
  3234.                 {-Sets the user data field}
  3235. (2) 7-98      function GetUserData : Pointer;
  3236.                 {-Returns the user data field}
  3237. (2) 7-106     procedure SetPrePageFunc(ppFunc : UserPageFunc);
  3238.                 {-Sets the function that gets called before the current page is
  3239.                   printed}
  3240. (2) 7-107     procedure SetPrePostFormFunc(ppFunc : UserFormFunc);
  3241.                 {-Sets the function that gets called before and after printing
  3242.                   the form}
  3243. (2) 7-100     constructor Load(var S : IdStream);
  3244.                 {-Load a PrintedForm from a stream}
  3245. (2) 7-108     procedure Store(var S : IdStream);
  3246.                 {-Store a PrintedForm in a stream}
  3247.  
  3248. OpForm  Report
  3249. ==============================================================================
  3250.  
  3251. (2) 7-110     constructor Init;
  3252.                 {-Create a report}
  3253. (2) 7-109     destructor Done; Virtual;
  3254.                 {-Destroy a report}
  3255. (2) 7-112     function rGetLastError : Word;
  3256.                 {-Get last error code and clear error code}
  3257. (2) 7-111     procedure Process; Virtual;
  3258.                 {-Print the print field}
  3259. (2) 7-109     procedure AddForm(fPtr : PrintedFormPtr);
  3260.                 {-Add a PrintedForm to Report by pointer}
  3261. (2) 7-110     function FindForm(FormID : Byte) : PrintedFormPtr;
  3262.                 {-Return a pointer to the PrintedForm with the specified ID}
  3263. (2) 7-111     constructor Load(var S : IdStream);
  3264.                 {-Load a Report from a stream}
  3265. (2) 7-112     procedure Store(var S : IdStream);
  3266.                 {-Store a Report in a stream}
  3267.  
  3268. OpRoot  Root
  3269. ==============================================================================
  3270.  
  3271. (3) 8-99      constructor Init;
  3272.                 {-Initialize the object}
  3273. (3) 8-99      destructor Done; virtual;
  3274.                 {-Destroy the object}
  3275.  
  3276. OpRoot  IdStream
  3277. ==============================================================================
  3278.  
  3279. (3) 8-108     function ReadString : String;
  3280.                 {-Read next variable length string from stream}
  3281. (3) 8-107     procedure ReadRange(var BufStart, BufBeyond);
  3282.                 {-Read Ofs(BufBeyond)-Ofs(BufStart) bytes into BufStart}
  3283. (3) 8-118     procedure WriteString(S : String);
  3284.                 {-Write a variable length string to stream}
  3285. (3) 8-118     procedure WriteRange(var BufStart, BufBeyond);
  3286.                 {-Write Ofs(BufBeyond)-Ofs(BufStart) bytes to stream}
  3287. (3) 8-102     function GetSize : Longint;
  3288.                 {-Determine size of stream}
  3289. (3) 8-116     procedure Seek(Pos : Longint);
  3290.                 {-Set the current stream position to Pos,
  3291.                   relative to the beginning of stream}
  3292. (3) 8-101     function GetPos : Longint; virtual;
  3293.                 {-Return the current stream position}
  3294. (3) 8-103     function GetStatus : Word;
  3295.                 {-Return status of stream}
  3296. (3) 8-103     function PeekStatus : Word;
  3297.                 {-Return status and leave internal variable unchanged}
  3298. (3) 8-115     procedure RegisterType(Code, Version : Word;
  3299.                                      TypePtr, StorePtr, LoadPtr : Pointer);
  3300.                 {-Registers one object type of specified version for IdStream I/O.
  3301.                   May set Status to non-zero}
  3302. (3) 8-111     procedure RegisterOldVersion(Code, Version : Word;
  3303.                                            TypePtr, LoadPtr : Pointer);
  3304.                 {-Registers an alternate loader for an old version of an object
  3305.                   type}
  3306. (3) 8-116     function TypeRegistered(TypePtr : Pointer) : Boolean;
  3307.                 {-Return True if specified type is registered for store and load}
  3308. (3) 8-117     function TypeVerRegistered(TypePtr : Pointer;
  3309.                                          Version : Word) : Boolean;
  3310.                 {-Return True if specified type and version is registered for load}
  3311. (3) 8-100     function CodeVerRegistered(Code, Version : Word) : Boolean;
  3312.                 {-Return True if specified code and version number are registered}
  3313. (3) 8-110     procedure RegisterHier(RProc : StreamRegisterProc);
  3314.                 {-Call a supplied routine to register a hierarchy of object types}
  3315. (3) 8-105     procedure PutPtr(RPtr : RootPtr);
  3316.                 {-Calls polymorphic Store method to write object at RPtr^}
  3317. (3) 8-102     function GetPtr : RootPtr;
  3318.                 {-Calls polymorphic Load constructor to allocate and read object}
  3319. (3) 8-104     procedure Put(var R : Root);
  3320.                 {-Calls polymorphic Store method to write object R}
  3321. (3) 8-101     procedure Get(var R : Root);
  3322.                 {-Calls polymorphic Load constructor to read static object R}
  3323. (3) 8-112     procedure RegisterPointer(Code : Word; Ptr : Pointer);
  3324.                 {-Registers one pointer for IdStream I/O}
  3325. (3) 8-104     function PointerRegistered(Ptr : Pointer) : Boolean;
  3326.                 {-Return True if specified pointer is registered with stream}
  3327. (3) 8-117     procedure WritePointer(Ptr : Pointer);
  3328.                 {-Writes identifier for pointer to stream}
  3329. (3) 8-119     procedure WriteUserPointer(Ptr : Pointer; DefaultCode : Word);
  3330.                 {-Writes Ptr code if registered, else DefaultCode}
  3331. (3) 8-106     function ReadPointer : Pointer;
  3332.                 {-Reads pointer from stream}
  3333. (3) 8-109     function ReadUserPointer(DefaultPtr : Pointer) : Pointer;
  3334.                 {-Reads pointer and assigns default instead of nil}
  3335. (3) 8-100     procedure Error(Code : Word); virtual;
  3336.                 {-Report an error}
  3337.  
  3338. OpRoot  DosIdStream
  3339. ==============================================================================
  3340.  
  3341. (3) 8-120     constructor Init(FileName : String; Mode : Word);
  3342.                 {-Open DOS file in specified mode and initialize stream}
  3343. (3) 8-120     destructor Done; virtual;
  3344.                 {-Close file and dispose stream}
  3345. (3) 8-121     procedure Read(var Buf; Count : Word); virtual;
  3346.                 {-Read bytes from DOS file}
  3347. (3) 8-121     procedure Write(var Buf; Count : Word); virtual;
  3348.                 {-Write bytes to DOS file}
  3349. (3) 8-121     procedure Truncate; virtual;
  3350.                 {-Truncate file at current position}
  3351.  
  3352. OpRoot  BufIdStream
  3353. ==============================================================================
  3354.  
  3355. (3) 8-124     constructor Init(FileName : String; Mode, Size : Word);
  3356.                 {-Open DOS file in mode, and allocate buffer of Size bytes}
  3357. (3) 8-123     destructor Done; virtual;
  3358.                 {-Flush and close file, deallocate buffer, dispose stream}
  3359. (3) 8-123     procedure Flush; virtual;
  3360.                 {-Flush buffer}
  3361. (3) 8-124     procedure Read(var Buf; Count : Word); virtual;
  3362.                 {-Read, using buffer}
  3363. (3) 8-124     procedure Write(var Buf; Count : Word); virtual;
  3364.                 {-Write, using buffer}
  3365.  
  3366. OpRoot  MemIdStream
  3367. ==============================================================================
  3368.  
  3369. (3) 8-125     constructor Init(BasePtr : Pointer; Size : Word);
  3370.                 {-Initialize stream to point to a location in memory}
  3371. (3) 8-126     procedure Read(var Buf; Count : Word); virtual;
  3372.                 {-Read bytes from memory stream}
  3373. (3) 8-126     procedure Write(var Buf; Count : Word); virtual;
  3374.                 {-Write bytes to memory stream}
  3375. (3) 8-126     procedure Truncate; virtual;
  3376.                 {-Truncate at current position. Does nothing but reduce Size.}
  3377.  
  3378. OpRoot  DirEntry
  3379. ==============================================================================
  3380.  
  3381. (3) 8-135     constructor Init;
  3382.                 {-Initialize an empty directory entry}
  3383. (3) 8-135     procedure Rename(Name : DirEntryName);
  3384.                 {-Change the name of the directory entry}
  3385. (3) 8-136     procedure Update(Start, Len : LongInt; Code, Ver : Word); virtual;
  3386.                 {-Update the start and length data}
  3387. (3) 8-135     procedure SetUserPointer(P : Pointer);
  3388.                 {-Set the user pointer to P}
  3389. (3) 8-132     procedure deOptionsOn(Options : Word);
  3390.                 {-Set the specified flag(s)}
  3391. (3) 8-132     procedure deOptionsOff(Options : Word);
  3392.                 {-Clear the specified flag(s)}
  3393. (3) 8-132     function deOptionsAreOn(Options : Word) : Boolean;
  3394.                 {-Returns True if the specified flag(s) are on}
  3395. (3) 8-133     function GetEntryName : DirEntryName;
  3396.                 {-Return the name of the entry}
  3397. (3) 8-134     function GetEntryStart : LongInt;
  3398.                 {-Return the starting point for the entry}
  3399. (3) 8-133     function GetEntryLength : LongInt;
  3400.                 {-Return the length of the entry}
  3401. (3) 8-134     function GetUserPointer : Pointer;
  3402.                 {-Return the user pointer}
  3403.  
  3404. OpRoot  Library
  3405. ==============================================================================
  3406.  
  3407. (3) 8-143     constructor Init(FileName : PathStr; Mode, BufferSize : Word;
  3408.                                Sig : LibrarySig);
  3409.                 {-Open an existing library}
  3410. (3) 8-137     constructor Create(FileName : PathStr; BufferSize : Word;
  3411.                                  Sig : LibrarySig; Entries : Word);
  3412.                 {-Create a new library}
  3413. (3) 8-139     destructor Done; virtual;
  3414.                 {-Flush and close library file, and dispose of directory and
  3415.                   stream}
  3416. (3) 8-146     procedure PutEntry(Name : DirEntryName; var R : Root);
  3417.                 {-Calls polymorphic Store method to write object R}
  3418. (3) 8-142     procedure GetEntry(Name : DirEntryName; var R : Root);
  3419.                 {-Calls polymorphic Load constructor to read static object R}
  3420. (3) 8-142     function GetEntryPtr(Name : DirEntryName) : RootPtr;
  3421.                 {-Calls polymorphic Load constructor to allocate and read object}
  3422. (3) 8-138     procedure DeleteEntry(Name : DirEntryName); virtual;
  3423.                 {-Mark the entry of the specified name as deleted}
  3424. (3) 8-147     procedure UndeleteEntry(Name : DirEntryName); virtual;
  3425.                 {-Remove deletion mark from the specified entry}
  3426. (3) 8-144     procedure KillEntry(Name : DirEntryName);
  3427.                 {-Permanently delete the entry of the specified name}
  3428. (3) 8-147     procedure RenameEntry(OldName, NewName : DirEntryName); virtual;
  3429.                 {-Rename the specified entry}
  3430. (3) 8-141     procedure GetCodeAndVersion(Name : DirEntryName;
  3431.                                           var Code, Ver : Word);
  3432.                 {-Return the code and version for the specified entry}
  3433. (3) 8-145     procedure Pack;
  3434.                 {-Pack the library}
  3435. (3) 8-146     function PackedFileSize : LongInt;
  3436.                 {-Returns size of library after packing}
  3437. (3) 8-139     function FileNeedsPacking : Boolean;
  3438.                 {-Returns True if library needs packing}
  3439. (3) 8-141     function FindEntryByIndex(N : Word) : DirEntryPtr;
  3440.                 {-Return a pointer to the N'th entry in the directory}
  3441. (3) 8-140     function FindDirectoryEntry(Name : DirEntryName) : DirEntryPtr;
  3442.                 {-Return a pointer to a directory entry; nil if not found or
  3443.                   deleted}
  3444. (3) 8-140     function FindAnyDirectoryEntry(Name : DirEntryName) : DirEntryPtr;
  3445.                 {-Return a pointer to a directory entry; nil if not found}
  3446. (3) 8-144     function MaxEntries : Word;
  3447.                 {-Return the maximum number of entries in the library's directory}
  3448. (3) 8-138     function CurrentEntries : Word;
  3449.                 {-Return the number of used entries in the library's directory,
  3450.                   not including deleted entries}
  3451. (3) 8-138     function DeletedEntries : Word;
  3452.                 {-Return the number of deleted entries in the library's directory}
  3453. (3) 8-137     function AvailableEntries : Word;
  3454.                 {-Return number of entries available in library's directory}
  3455.  
  3456. OpRoot  MemLibrary
  3457. ==============================================================================
  3458.  
  3459. (3) 8-149     constructor Init(BasePtr : Pointer; Size : Word);
  3460.                 {-Open an existing library in memory}
  3461. (3) 8-148     procedure GetEntry(Name : DirEntryName; var R : Root);
  3462.                 {-Calls polymorphic Load constructor to read static object R}
  3463. (3) 8-148     function GetEntryPtr(Name : DirEntryName) : RootPtr;
  3464.                 {-Calls polymorphic Load constructor to allocate and read object}
  3465.  
  3466. OpRoot  PointerStack
  3467. ==============================================================================
  3468.  
  3469. (3) 8-10      constructor Init(Max : Word);
  3470.                 {-Allocate a stack of pointers that can manage up to Max items}
  3471. (3) 8-9       destructor Done; virtual;
  3472.                 {-Deallocate the stack}
  3473. (3) 8-16      function Size : Word;
  3474.                 {-Return the size of the stack}
  3475. (3) 8-15      procedure Push(P : RootPtr);
  3476.                 {-Push P onto the stack}
  3477. (3) 8-14      function Pop : RootPtr;
  3478.                 {-Pop the topmost RootPtr off the stack}
  3479. (3) 8-16      function SP : Word;
  3480.                 {-Return the current top of stack index}
  3481. (3) 8-13      function Peek(Index : Word) : RootPtr;
  3482.                 {-Return stack element at position Index}
  3483. (3) 8-13      function PeekTop : RootPtr;
  3484.                 {-Return pointer currently at the top of stack}
  3485. (3) 8-14      procedure Poke(P : RootPtr; Index : Word);
  3486.                 {-Directly set a stack element}
  3487. (3) 8-9       procedure Clear;
  3488.                 {-Remove all elements from the stack}
  3489. (3) 8-10      function GetStatus : Word;
  3490.                 {-Return latest status code and reset internal status to zero}
  3491. (3) 8-16      function Resize(Max : Word) : Boolean;
  3492.                 {-Expand or shrink stack to hold Max pointers}
  3493. (3) 8-11      constructor Load(var S : IdStream);
  3494.                 {-Load a stack from a stream}
  3495. (3) 8-17      procedure Store(var S : IdStream);
  3496.                 {-Store a stack in a stream}
  3497.  
  3498. OpRoot  StaticQueue
  3499. ==============================================================================
  3500.  
  3501. (3) 8-23      constructor Init(NumElements, ElementSize : Word;
  3502.                                RejectIfFull : Boolean);
  3503.                 {-Allocate space for static queue}
  3504. (3) 8-21      destructor Done; virtual;
  3505.                 {-Deallocate space for the queue}
  3506. (3) 8-27      procedure PushTail(var Element);
  3507.                 {-Add an element to the tail of the queue}
  3508. (3) 8-26      procedure PopTail(var Element);
  3509.                 {-Remove an element from the tail of the queue}
  3510. (3) 8-25      procedure PeekTail(var Element);
  3511.                 {-Look at the element at the tail of the queue}
  3512. (3) 8-26      procedure PopHead(var Element);
  3513.                 {-Remove an element from the front of the queue}
  3514. (3) 8-25      procedure PeekHead(var Element);
  3515.                 {-Look at the element at the front of the queue}
  3516. (3) 8-21      procedure Clear;
  3517.                 {-Flush all elements from the queue}
  3518. (3) 8-21      function Elements : Word;
  3519.                 {-Return the number of elements currently in the queue}
  3520. (3) 8-22      function GetStatus : Word;
  3521.                 {-Return latest status code and reset internal status to zero}
  3522. (3) 8-22      procedure Error(Code : Word); virtual;
  3523.                 {-Report error}
  3524. (3) 8-24      constructor Load(var S : IdStream);
  3525.                 {-Load a static queue from a stream}
  3526. (3) 8-28      procedure Store(var S : IdStream);
  3527.                 {-Store a static queue to a stream}
  3528.  
  3529. OpRoot  SingleListNode
  3530. ==============================================================================
  3531.  
  3532. (3) 8-33      constructor Init;
  3533.                 {-Initialize a singly linked list node}
  3534.  
  3535. OpRoot  SingleList
  3536. ==============================================================================
  3537.  
  3538. (3) 8-35      constructor Init;
  3539.                 {-Initialize an empty list of items}
  3540. (3) 8-34      destructor Done; virtual;
  3541.                 {-Destroy list}
  3542. (3) 8-39      function Size : Word;
  3543.                 {-Return the size of the current list}
  3544. (3) 8-34      procedure Append(P : SingleNodePtr);
  3545.                 {-Add element to end of list}
  3546. (3) 8-35      procedure Insert(P : SingleNodePtr);
  3547.                 {-Insert element at start of list}
  3548. (3) 8-38      procedure Place(P, L : SingleNodePtr);
  3549.                 {-Place element P into list _after_ existing element L}
  3550. (3) 8-39      procedure PlaceBefore(P, L : SingleNodePtr);
  3551.                 {-Place element P into list _before_ existing element L}
  3552. (3) 8-34      procedure Delete(P : SingleNodePtr);
  3553.                 {-Delete existing element in list, dispose of its contents}
  3554. (3) 8-39      procedure Remove(P : SingleNodePtr);
  3555.                 {-Remove existing element from list without disposing of it}
  3556. (3) 8-35      function Head : SingleNodePtr;
  3557.                 {-Return pointer to head of list}
  3558. (3) 8-42      function Tail : SingleNodePtr;
  3559.                 {-Return pointer to tail of list}
  3560. (3) 8-38      function Next(P : SingleNodePtr) : SingleNodePtr;
  3561.                 {-Returns a pointer to the next node}
  3562. (3) 8-36      constructor Load(var S : IdStream);
  3563.                 {-Load a list from a stream}
  3564. (3) 8-40      procedure Store(var S : IdStream);
  3565.                 {-Store a list in a stream}
  3566.  
  3567. OpRoot  DoubleListNode
  3568. ==============================================================================
  3569.  
  3570. (3) 8-43      constructor Init;
  3571.                 {-Initialize a doubly linked list node}
  3572.  
  3573. OpRoot  DoubleList
  3574. ==============================================================================
  3575.  
  3576. (3) 8-45      constructor Init;
  3577.                 {-Initialize an empty list of items}
  3578. (3) 8-44      destructor Done; virtual;
  3579.                 {-Destroy list}
  3580. (3) 8-48      function Size : Word;
  3581.                 {-Return the size of the current list}
  3582. (3) 8-44      procedure Append(P : DoubleNodePtr);
  3583.                 {-Add element to end of list}
  3584. (3) 8-45      procedure Insert(P : DoubleNodePtr);
  3585.                 {-Insert element at start of list}
  3586. (3) 8-46      procedure Place(P, L : DoubleNodePtr);
  3587.                 {-Place element P into list _after_ existing element L}
  3588. (3) 8-47      procedure PlaceBefore(P, L : DoubleNodePtr);
  3589.                 {-Place element P into list _before_ existing element L}
  3590. (3) 8-44      procedure Delete(P : DoubleNodePtr);
  3591.                 {-Delete existing element in list, disposing of its contents}
  3592. (3) 8-47      procedure Remove(P : DoubleNodePtr);
  3593.                 {-Remove existing element from list without disposing of it}
  3594. (3) 8-45      function Head : DoubleNodePtr;
  3595.                 {-Return pointer to head of list}
  3596. (3) 8-48      function Tail : DoubleNodePtr;
  3597.                 {-Return pointer to tail of list}
  3598. (3) 8-46      function Next(P : DoubleNodePtr) : DoubleNodePtr; virtual;
  3599.                 {-Returns a pointer to the next node}
  3600. (3) 8-47      function Prev(P : DoubleNodePtr) : DoubleNodePtr; virtual;
  3601.                 {-Returns a pointer to the previous node}
  3602. (3) 8-46      constructor Load(var S : IdStream);
  3603.                 {-Load a list from a stream}
  3604. (3) 8-48      procedure Store(var S : IdStream);
  3605.                 {-Store a list in a stream}
  3606.  
  3607. OpRoot  CircularList
  3608. ==============================================================================
  3609.  
  3610. (3) 8-49      function Next(P : DoubleNodePtr) : DoubleNodePtr; virtual;
  3611.                 {-Returns a pointer to the next node (wraps at end)}
  3612. (3) 8-49      function Prev(P : DoubleNodePtr) : DoubleNodePtr; virtual;
  3613.                 {-Returns a pointer to the previous node (wraps at begin)}
  3614. (3) 8-49      procedure Store(var S : IdStream);
  3615.                 {-Store a list in a stream}
  3616.  
  3617. OpRoot  BitSet
  3618. ==============================================================================
  3619.  
  3620. (3) 8-55      constructor Init(Max : LongInt);
  3621.                 {-Allocate space for elements}
  3622. (3) 8-54      destructor Done; virtual;
  3623.                 {-Deallocate data area}
  3624. (3) 8-53      procedure ClearAll; virtual;
  3625.                 {-Clear all bits}
  3626. (3) 8-60      procedure SetAll; virtual;
  3627.                 {-Set all bits}
  3628. (3) 8-58      function MaxBits : LongInt;
  3629.                 {-Return capacity of bitset}
  3630. (3) 8-61      procedure SetBit(Element : LongInt); virtual;
  3631.                 {-Set bit}
  3632. (3) 8-53      procedure ClearBit(Element : LongInt); virtual;
  3633.                 {-Clear bit}
  3634. (3) 8-63      procedure ToggleBit(Element : LongInt);
  3635.                 {-Toggle bit}
  3636. (3) 8-54      procedure ControlBit(Element : LongInt; State : Boolean);
  3637.                 {-Set or clear bit depending on State}
  3638. (3) 8-63      function TestSetBit(Element : LongInt) : Boolean;
  3639.                 {-Return current state of bit and set it}
  3640. (3) 8-63      function TestClearBit(Element : LongInt) : Boolean;
  3641.                 {-Return current state of bit and clear it}
  3642. (3) 8-52      function BitIsSet(Element : LongInt) : Boolean; virtual;
  3643.                 {-Return True if bit is set}
  3644. (3) 8-59      function NextSet(Element : LongInt) : LongInt; virtual;
  3645.                 {-Return index of next set element, NoMoreBits if none}
  3646. (3) 8-58      function NextClear(Element : LongInt) : LongInt; virtual;
  3647.                 {-Return index of next clear element, NoMoreBits if none}
  3648. (3) 8-60      function PrevSet(Element : LongInt) : LongInt; virtual;
  3649.                 {-Return index of previous set element, NoMoreBits if none}
  3650. (3) 8-59      function PrevClear(Element : LongInt) : LongInt; virtual;
  3651.                 {-Return index of previous clear element, NoMoreBits if none}
  3652. (3) 8-52      function BitsSet : LongInt; virtual;
  3653.                 {-Return number of bits set}
  3654. (3) 8-55      function FirstSet : LongInt;
  3655.                 {-Return index of first set bit, NoMoreBits if none}
  3656. (3) 8-56      function LastSet : LongInt;
  3657.                 {-Return index of last set bit, NoMoreBits if none}
  3658. (3) 8-54      function FirstClear : LongInt;
  3659.                 {-Return index of first clear bit, NoMoreBits if none}
  3660. (3) 8-56      function LastClear : LongInt;
  3661.                 {-Return index of last clear bit, NoMoreBits if none}
  3662. (3) 8-57      constructor Load(var S : IdStream);
  3663.                 {-Load a bitset from a stream}
  3664. (3) 8-62      procedure Store(var S : IdStream);
  3665.                 {-Store a bitset to a stream}
  3666.  
  3667. OpRoot  LargeBitSet
  3668. ==============================================================================
  3669.  
  3670. (3) 8-65      constructor Init(Max : LongInt);
  3671.                 {-Allocate space for elements}
  3672. (3) 8-66      function Resize(Max : LongInt) : Boolean;
  3673.                 {-Expand or shrink large bitset to hold Max bits}
  3674. (3) 8-64      function GetStatus : Word;
  3675.                 {-Return latest status code and reset internal status to zero}
  3676. (3) 8-64      procedure Error(Code : Word); virtual;
  3677.                 {-Report an error}
  3678. (3) 8-65      constructor Load(var S : IdStream);
  3679.                 {-Load a bitset from a stream}
  3680. (3) 8-66      procedure Store(var S : IdStream);
  3681.                 {-Store a bitset to a stream}
  3682.  
  3683. OpRoot  StringDict
  3684. ==============================================================================
  3685.  
  3686. (3) 8-75      constructor Init;
  3687.                 {-Allocate hash pool for a string dictionary}
  3688. (3) 8-73      destructor Done; virtual;
  3689.                 {-Deallocate pool}
  3690. (3) 8-71      procedure Add(S : String; Value : LongInt);
  3691.                 {-Add string and associated value to dictionary}
  3692. (3) 8-77      function Member(S : String; var Value : LongInt) : Boolean;
  3693.                 {-Return true and associated value if S is element of dictionary}
  3694. (3) 8-79      procedure Update(S : String; Value : LongInt);
  3695.                 {-Change the data value associated with a string}
  3696. (3) 8-77      procedure Remove(S : String);
  3697.                 {-Remove string from dictionary}
  3698. (3) 8-73      procedure Clear;
  3699.                 {-Remove all strings from dictionary}
  3700. (3) 8-74      function GetStatus : Word;
  3701.                 {-Return status code and reset internal result to zero}
  3702. (3) 8-76      constructor Load(var S : IdStream);
  3703.                 {-Load a string dictionary from a stream}
  3704. (3) 8-78      procedure Store(var S : IdStream);
  3705.                 {-Store a string dictionary to a stream}
  3706. (3) 8-75      function Hash(var S : String) : Word; virtual;
  3707.                 {-Return a hash code for the specified string}
  3708. (3) 8-73      function Equal(var S, T : String) : Boolean; virtual;
  3709.                 {-Return True if the two strings are considered equal}
  3710. (3) 8-74      procedure Error(Code : Word); virtual;
  3711.                 {-Report an error}
  3712.  
  3713. OpRoot  StringSet
  3714. ==============================================================================
  3715.  
  3716. (3) 8-80      procedure Add(S : String);
  3717.                 {-Add string to set}
  3718. (3) 8-81      function Member(S : String) : Boolean;
  3719.                 {-Return true if S is element of set}
  3720. (3) 8-80      constructor Load(var S : IdStream);
  3721.                 {-Load a list from a stream}
  3722. (3) 8-81      procedure Store(var S : IdStream);
  3723.                 {-Store a list in a stream}
  3724.  
  3725. OpRoot  StringArray
  3726. ==============================================================================
  3727.  
  3728. (3) 8-84      constructor Init(StrMax, Amount : Word);
  3729.                 {-Allocate space for StrMax strings in Amount space}
  3730. (3) 8-86      constructor ReadText(FileName : PathStr);
  3731.                 {-Initialize a packed array from a text file}
  3732. (3) 8-82      destructor Done; virtual;
  3733.                 {-Deallocate packed array}
  3734. (3) 8-89      procedure WriteText(FileName : PathStr);
  3735.                 {-Write a packed array to a text file}
  3736. (3) 8-85      constructor Load(var S : IdStream);
  3737.                 {-Load a binary packed array from a stream}
  3738. (3) 8-88      procedure Store(var S : IdStream);
  3739.                 {-Write a packed array to a stream}
  3740. (3) 8-83      function GetString(Which : Word) : String; virtual;
  3741.                 {-Return string from packed array}
  3742. (3) 8-83      function GetStringPtr(Which : Word) : StringPtr;
  3743.                 {-Return pointer to string from packed array}
  3744. (3) 8-87      function Shrink : Boolean;
  3745.                 {-Remove excess packed array space}
  3746. (3) 8-82      function AddString(St : String) : Word;
  3747.                 {-Add a new string, returning its index, or 0 if error}
  3748. (3) 8-85      function NumStrings : Word;
  3749.                 {-Return number of strings in the packed array}
  3750. (3) 8-87      function Size : Word;
  3751.                 {-Return the number of bytes used by strings}
  3752.  
  3753. OpLarray  AbstractArray
  3754. ==============================================================================
  3755.  
  3756. (3) 8-165     constructor Init(Rows, Cols : Word; ElementSize : Word;
  3757.                                ArrayOptions : Byte);
  3758.                 {-Make a new array}
  3759. (3) 8-168     constructor LoadA(ArrayOptions : Byte);
  3760.                 {-Load an array from disk}
  3761. (3) 8-162     destructor Done; Virtual;
  3762.                 {-Dispose of an array}
  3763. (3) 8-163     function ErrorA : Word;
  3764.                 {-Return last error code (0 indicates no error)}
  3765. (3) 8-173     procedure SetA(Row, Col : Word; var Value); Virtual;
  3766.                 {-Set an array element}
  3767. (3) 8-171     procedure RetA(Row, Col : Word; var Value); Virtual;
  3768.                 {-Return an array element}
  3769. (3) 8-172     procedure SafeSetA(Row, Col : Word; var Value); Virtual;
  3770.                 {-Set an array element and safely deal with out of range
  3771.                   coordinates}
  3772. (3) 8-172     procedure SafeRetA(Row, Col : Word; var Value); Virtual;
  3773.                 {-Return an array element and safely deal with out of range
  3774.                   coordinates}
  3775. (3) 8-161     procedure ClearA(var Value; Initialize : InitType); Virtual;
  3776.                 {-Clear the array}
  3777. (3) 8-175     procedure StoreA(FileName : String); Virtual;
  3778.                 {-Store large array in a file}
  3779. (3) 8-164     procedure FlushA; Virtual;
  3780.                 {-Flush changes to disk}
  3781. (3) 8-170     function RangeError(Row, Col : Word) : Boolean; Virtual;
  3782.                 {-Returns true if passed Row or Col are out of range}
  3783. (3) 8-175     function TypeOfArray : ArrayType;
  3784.                 {-Returns the type of array}
  3785. (3) 8-174     procedure SetErrorProc(EP : ErrorProc);
  3786.                 {-Setup a user errorproc}
  3787. (3) 8-164     procedure GetErrorProc(var EP : ErrorProc);
  3788.                 {-Get current errorproc}
  3789. (3) 8-161     procedure ArrayDimensions(var Rows,Cols : Word);
  3790.                 {-Return array dimensions}
  3791. (3) 8-169     procedure lOptionsOn(OptionCodes : Word);
  3792.                 {-Set array options on}
  3793. (3) 8-169     procedure lOptionsOff(OptionCodes : Word);
  3794.                 {-Set array options off}
  3795. (3) 8-169     function lOptionsAreOn(OptionCodes : Word) : Boolean;
  3796.                 {-Check options}
  3797.  
  3798. OpLarray  RamArray
  3799. ==============================================================================
  3800.  
  3801. (3) 8-165     constructor Init(Rows, Cols : Word; ElementSize : Word;
  3802.                                ArrayOptions : Byte);
  3803.                 {-Make a new array}
  3804. (3) 8-168     constructor LoadA(FileName : String; ArrayOptions : Byte);
  3805.                 {-Load an array from disk}
  3806.  
  3807. OpLarray  RamRCArray
  3808. ==============================================================================
  3809.  
  3810. (3) 8-165     constructor Init(Rows, Cols : Word; ElementSize : Word;
  3811.                                ArrayOptions : Byte);
  3812.                 {-Make a new array}
  3813. (3) 8-168     constructor LoadA(FileName : String; ArrayOptions : Byte);
  3814.                 {-Load an array from disk}
  3815.  
  3816. OpLarray  EmsArray
  3817. ==============================================================================
  3818.  
  3819. (3) 8-165     constructor Init(Rows, Cols : Word; ElementSize : Word;
  3820.                                ArrayOptions : Byte);
  3821.                 {-Make a new array}
  3822. (3) 8-168     constructor LoadA(FileName : String; ArrayOptions : Byte);
  3823.                 {-Load an array from disk}
  3824.  
  3825. OpLarray  EmsRCArray
  3826. ==============================================================================
  3827.  
  3828. (3) 8-165     constructor Init(Rows, Cols : Word; ElementSize : Word;
  3829.                                ArrayOptions : Byte);
  3830.                 {-Make a new array}
  3831. (3) 8-168     constructor LoadA(FileName : String; ArrayOptions : Byte);
  3832.                 {-Load an array from disk}
  3833.  
  3834. OpLarray  VirtualArray
  3835. ==============================================================================
  3836.  
  3837. (3) 8-165     constructor Init(Rows, Cols : Word; ElementSize : Word;
  3838.                                FileName : String; HeapToUse : LongInt;
  3839.                                ArrayOptions : Byte);
  3840.                 {-Make a new array}
  3841. (3) 8-168     constructor LoadA(FileName : String; ArrayOptions : Byte);
  3842.                 {-Load an array from disk}
  3843.  
  3844. OpLarray  PrimitiveArray
  3845. ==============================================================================
  3846.  
  3847. (3) 8-165     constructor Init(RowsInPage : Word; ColsInPage : Word;
  3848.                                PagesDown : Word;  PagesAcross : Word;
  3849.                                ElementSize : Word; FileName : string;
  3850.                                HeapToUse : LongInt; ArrayOptions : Byte);
  3851.                 {-Make a new array}
  3852.  
  3853. OpLarray  VirtualRCArray
  3854. ==============================================================================
  3855.  
  3856. (3) 8-165     constructor Init(Rows, Cols : Word; ElementSize : Word;
  3857.                                FileName : String; HeapToUse : LongInt;
  3858.                                ArrayOptions : Byte);
  3859.                 {-Make a new array}
  3860. (3) 8-168     constructor LoadA(FileName : String; ArrayOptions : Byte);
  3861.                 {-Load an array from disk}
  3862.  
  3863. OpLarray  OpArray
  3864. ==============================================================================
  3865.  
  3866. (3) 8-165     constructor Init(Rows, Cols : Word; ElementSize : Word;
  3867.                                FileName : String; HeapToUse : LongInt;
  3868.                                ArrayOptions : Byte; var Priority : AutoPriority);
  3869.                 {-Make a new array}
  3870. (3) 8-168     constructor LoadA(FileName : String; ArrayOptions : Byte;
  3871.                                 var Priority : AutoPriority);
  3872.                 {-Load an array}
  3873.  
  3874. OpLarray  Procedures and Functions
  3875. ==============================================================================
  3876.  
  3877. (3) 8-176     procedure DisplayLErrorProc(UnitCode : Byte; var ErrorCode : Word;
  3878.                                           ErrorMsg : String);
  3879.                 {-An error procedure that displays a standard message for errors
  3880.                   generated by this unit.  Does not halt on errors}
  3881.  
  3882. OpString  Procedures and Functions
  3883. ==============================================================================
  3884.  
  3885. (3) 9-16      function HexB(B : Byte) : string;
  3886.                 {-Return hex string for byte}
  3887. (3) 9-17      function HexW(W : Word) : string;
  3888.                 {-Return hex string for word}
  3889. (3) 9-17      function HexL(L : LongInt) : string;
  3890.                 {-Return hex string for longint}
  3891. (3) 9-17      function HexPtr(P : Pointer) : string;
  3892.                 {-Return hex string for pointer}
  3893. (3) 9-3       function BinaryB(B : Byte) : string;
  3894.                 {-Return binary string for byte}
  3895. (3) 9-4       function BinaryW(W : Word) : string;
  3896.                 {-Return binary string for word}
  3897. (3) 9-3       function BinaryL(L : LongInt) : string;
  3898.                 {-Return binary string for longint}
  3899. (3) 9-22      function OctalB(B : Byte) : string;
  3900.                 {-Return octal string for byte}
  3901. (3) 9-23      function OctalW(W : Word) : string;
  3902.                 {-Return octal string for word}
  3903. (3) 9-22      function OctalL(L : LongInt) : string;
  3904.                 {-Return octal string for longint}
  3905. (3) 9-27      function Str2Int(S : string; var I : Integer) : Boolean;
  3906.                 {-Convert a string to an integer, returning true if successful}
  3907. (3) 9-27      function Str2Word(S : string; var I : Word) : Boolean;
  3908.                 {-Convert a string to a word, returning true if successful}
  3909. (3) 9-27      function Str2Long(S : string; var I : LongInt) : Boolean;
  3910.                 {-Convert a string to an longint, returning true if successful}
  3911. (3) 9-27      function Str2Real(S : string; var R : Float) : Boolean;
  3912.                 {-Convert a string to a real, returning true if successful}
  3913. (3) 9-21      function Long2Str(L : LongInt) : string;
  3914.                 {-Convert a longint/word/integer/byte/shortint to a string}
  3915. (3) 9-24      function Real2Str(R : Float; Width : Byte;
  3916.                                 Places : ShortInt) : string;
  3917.                 {-Convert a real to a string}
  3918. (3) 9-14      function Form(Mask : string; R : Float) : string;
  3919.                 {-Returns a formatted string with digits from R merged into the
  3920.                   Mask}
  3921. (3) 9-21      function LongIntForm(Mask : string; L : LongInt) : string;
  3922.                 {-Returns a formatted string with digits from L merged into the
  3923.                   Mask}
  3924. (3) 9-32      function UpCaseMac(Ch : Char) : Char;
  3925.                 {-Uppercase character macro, no international character support}
  3926. (3) 9-20      function LoCaseMac(Ch : Char) : Char;
  3927.                 {-Lowercase character macro, no international character support}
  3928. (3) 9-32      function Upcase(Ch : Char) : Char;
  3929.                 {-Return uppercase of char, with international character support}
  3930. (3) 9-30      function StUpcase(S : string) : string;
  3931.                 {-Convert lower case letters in string to uppercase, with intl
  3932.                   chars}
  3933. (3) 9-20      function LoCase(Ch : Char) : Char;
  3934.                 {-Return lowercase of char, with international character support}
  3935. (3) 9-26      function StLocase(S : string) : string;
  3936.                 {-Convert upper case letters in string to lowercase, with intl
  3937.                   chars}
  3938. (3) 9-7       function CharStr(Ch : Char; Len : Byte) : string;
  3939.                 {-Return a string of length len filled with ch}
  3940. (3) 9-23      function PadCh(S : string; Ch : Char; Len : Byte) : string;
  3941.                 {-Return a string right-padded to length len with ch}
  3942. (3) 9-23      function Pad(S : string; Len : Byte) : string;
  3943.                 {-Return a string right-padded to length len with blanks}
  3944. (3) 9-20      function LeftPadCh(S : string; Ch : Char; Len : Byte) : string;
  3945.                 {-Return a string left-padded to length len with ch}
  3946. (3) 9-19      function LeftPad(S : string; Len : Byte) : string;
  3947.                 {-Return a string left-padded to length len with blanks}
  3948. (3) 9-30      function TrimLead(S : string) : string;
  3949.                 {-Return a string with leading white space removed}
  3950. (3) 9-31      function TrimTrail(S : string) : string;
  3951.                 {-Return a string with trailing white space removed}
  3952. (3) 9-30      function Trim(S : string) : string;
  3953.                 {-Return a string with leading and trailing white space removed}
  3954. (3) 9-31      function TrimSpaces(S : string) : string;
  3955.                 {-Return a string with leading and trailing spaces removed}
  3956. (3) 9-7       function CenterCh(S : string; Ch : Char; Width : Byte) : string;
  3957.                 {-Return a string centered in a string of Ch with specified width}
  3958. (3) 9-6       function Center(S : string; Width : Byte) : string;
  3959.                 {-Return a string centered in a blank string of specified width}
  3960. (3) 9-12      function Entab(S : string; TabSize : Byte) : string;
  3961.                 {-Convert blanks in a string to tabs on spacing TabSize}
  3962. (3) 9-11      function Detab(S : string; TabSize : Byte) : string;
  3963.                 {-Expand tabs in a string to blanks on spacing TabSize}
  3964. (3) 9-33      function WordCount(S : string; WordDelims : CharSet) : Byte;
  3965.                 {-Given a set of word delimiters, return number of words in S}
  3966. (3) 9-33      function WordPosition(N : Byte; S : string;
  3967.                                     WordDelims : CharSet) : Byte;
  3968.                 {-Given a set of word delimiters, return start position of N'th
  3969.                   word in S}
  3970. (3) 9-13      function ExtractWord(N : Byte; S : string;
  3971.                                    WordDelims : CharSet) : string;
  3972.                 {-Given a set of word delimiters, return the N'th word in S}
  3973. (3) 9-34      procedure WordWrap(InSt : string; var OutSt, Overlap : string;
  3974.                                  Margin : Byte; PadToMargin : Boolean);
  3975.                 {-Wrap InSt at Margin, storing the result in OutSt and the
  3976.                   remainder in Overlap}
  3977. (3) 9-9       function CompString(S1, S2 : string) : CompareType;
  3978.                 {-Return less, equal, greater if s1<s2, s1=s2, or s1>s2}
  3979. (3) 9-10      function CompUCString(S1, S2 : string) : CompareType;
  3980.                 {-Compare two strings in a case insensitive manner}
  3981. (3) 9-10      function CompStruct(var S1, S2; Size : Word) : CompareType;
  3982.                 {-Compare two fixed size structures}
  3983. (3) 9-25      function Search(var Buffer; BufLength : Word;
  3984.                               var Match; MatLength : Word) : Word;
  3985.                 {-Search through Buffer for Match. BufLength is length of range to
  3986.                   search. MatLength is length of string to match. Returns number
  3987.                   of bytes searched to find Match, $FFFF if not found.}
  3988. (3) 9-25      function SearchUC(var Buffer; BufLength : Word;
  3989.                                 var Match; MatLength : Word) : Word;
  3990.                 {-Search through Buffer for Match, CASE-INSENSITIVE.
  3991.                   Otherwise same as Search.}
  3992. (3) 9-4       procedure BMMakeTable(MatchString : string; var BT : BTable);
  3993.                 {-Build Boyer-Moore link table}
  3994. (3) 9-5       function BMSearch(var Buffer; BufLength : Word;
  3995.                               BT : BTable; MatchString : string) : Word;
  3996.                 {-Search Buffer for MatchString. BufLength is length of range to
  3997.                   search. Returns number of bytes searched to find MatchString,
  3998.                   $FFFF if not found}
  3999. (3) 9-6       function BMSearchUC(var Buffer; BufLength : Word;
  4000.                                   BT : BTable; MatchString : string) : Word;
  4001.                 {-Search Buffer for MatchString, CASE-INSENSITIVE. Assumes
  4002.                   MatchString is already in uppercase. Otherwise same as BMSearch}
  4003. (3) 9-26      function Soundex(S : string) : string;
  4004.                 {-Return 4 character soundex of input string}
  4005. (3) 9-22      function MakeLetterSet(S : string) : LongInt;
  4006.                 {-Return a bit-mapped long storing the individual letters contained
  4007.                   in S}
  4008. (3) 9-8       function CompareLetterSets(Set1, Set2 : LongInt) : Word;
  4009.                 {-Returns the sum of the values of the letters common to Set1
  4010.                   and Set2}
  4011. (3) 9-29      function StringToHeap(S : string) : StringPtr;
  4012.                 {-Allocate space for s and return pointer}
  4013. (3) 9-29      function StringFromHeap(P : StringPtr) : string;
  4014.                 {-Return string at p}
  4015. (3) 9-12      procedure DisposeString(P : StringPtr);
  4016.                 {-Deallocate space for string at p}
  4017. (3) 9-11      function DefaultExtension(Name : string; Ext : ExtStr) : string;
  4018.                 {-Return a file name with a default extension attached}
  4019. (3) 9-13      function ForceExtension(Name : string; Ext : ExtStr) : string;
  4020.                 {-Force the specified extension onto the file name}
  4021. (3) 9-18      function JustFilename(PathName : string) : string;
  4022.                 {-Return just the filename and extension of a pathname}
  4023. (3) 9-19      function JustName(PathName : string) : string;
  4024.                 {-Return just the name (no extension, no path) of a pathname}
  4025. (3) 9-18      function JustExtension(Name : string) : ExtStr;
  4026.                 {-Return just the extension of a pathname}
  4027. (3) 9-19      function JustPathname(PathName : string) : string;
  4028.                 {-Return just the drive:directory portion of a pathname}
  4029. (3) 9-3       function AddBackSlash(DirName : string) : string;
  4030.                 {-Add a default backslash to a directory name}
  4031. (3) 9-7       function CleanPathName(PathName : string) : string;
  4032.                 {-Return a pathname cleaned up as DOS will do it}
  4033. (3) 9-16      function FullPathName(FName : string) : string;
  4034.                 {-Given FName (known to exist), return a full pathname}
  4035.  
  4036. OpAsciiz  Procedures and Functions
  4037. ==============================================================================
  4038.  
  4039. (3) 9-36      function Asc2Str(var A : Asciiz) : string;
  4040.                 {-Convert Asciiz to Turbo string, truncating if longer than 255
  4041.                   chars}
  4042. (3) 9-48      procedure Str2Asc(S : string; var A : Asciiz);
  4043.                 {-Convert a Turbo string into an Asciiz}
  4044. (3) 9-46      function LenAsc(A : Asciiz) : Word;
  4045.                 {-Return the length of an Asciiz string}
  4046. (3) 9-43      procedure CopyAsc(var A : Asciiz; Start, Len : Word; var O : Asciiz);
  4047.                 {-Return a substring of a. Note start=0 for first char in a}
  4048. (3) 9-44      procedure DeleteAsc(var A : Asciiz; Start, Len : Word);
  4049.                 {-Delete len characters of a, starting at position start}
  4050. (3) 9-42      procedure ConcatAsc(var A, B, C : Asciiz);
  4051.                 {-Concatenate two Asciiz strings, returning a third}
  4052. (3) 9-43      procedure ConcatStr(var A : Asciiz; S : string; var C : Asciiz);
  4053.                 {-Concatenate a string to an asciiz, returning a new asciiz}
  4054. (3) 9-45      procedure InsertAsc(var Obj, A : Asciiz; Start : Word);
  4055.                 {-Insert asciiz obj at position start of a}
  4056. (3) 9-45      procedure InsertStr(Obj : string; var A : Asciiz; Start : Word);
  4057.                 {-Insert string obj at position start of a}
  4058. (3) 9-47      function PosStr(Obj : string; var A : Asciiz) : Word;
  4059.                 {-Return the position of the string obj in a, returning NotFound if
  4060.                   not found}
  4061. (3) 9-46      function PosAsc(var Obja, A : Asciiz) : Word;
  4062.                 {-Return the position of obja in a, returning NotFound if not
  4063.                   found}
  4064. (3) 9-40      function AscToHeap(var A : Asciiz) : AsciizPtr;
  4065.                 {-Put Asciiz on heap, returning a pointer, nil if insufficient
  4066.                   memory}
  4067. (3) 9-37      procedure AscFromHeap(P : AsciizPtr; var A : Asciiz);
  4068.                 {-Return an Asciiz from the heap, empty if pointer is nil}
  4069. (3) 9-44      procedure DisposeAsc(P : AsciizPtr);
  4070.                 {-Dispose of heap space pointed to by P}
  4071. (3) 9-47      function ReadLnAsc(var F : Text; var A : Asciiz) : Boolean;
  4072.                 {-Read an Asciiz from text file, returning true if successful}
  4073. (3) 9-48      function WriteAsc(var F : Text; var A : Asciiz) : Boolean;
  4074.                 {-Write an Asciiz to text file, returning true if successful}
  4075. (3) 9-41      procedure AscUpcase(var A, B : Asciiz);
  4076.                 {-Uppercase the Asciiz in a, returning b}
  4077. (3) 9-38      procedure AscLocase(var A, B : Asciiz);
  4078.                 {-Lowercase the Asciiz in a, returning b}
  4079. (3) 9-37      procedure AscCharStr(Ch : Char; Len : Word; var A : Asciiz);
  4080.                 {-Return an Asciiz of length len filled with ch}
  4081. (3) 9-39      procedure AscPadCh(var A : Asciiz; Ch : Char; Len : Word;
  4082.                                  var B : Asciiz);
  4083.                 {-Right-pad the Asciiz in a to length len with ch, returning b}
  4084. (3) 9-39      procedure AscPad(var A : Asciiz; Len : Word; var B : Asciiz);
  4085.                 {-Right-pad the Asciiz in a to length len with blanks, returning b}
  4086. (3) 9-38      procedure AscLeftPadCh(var A : Asciiz; Ch : Char; Len : Word;
  4087.                                      var B : Asciiz);
  4088.                 {-Left-pad the Asciiz in a to length len with ch, returning b}
  4089. (3) 9-38      procedure AscLeftPad(var A : Asciiz; Len : Word; var B : Asciiz);
  4090.                 {-Left-pad the Asciiz in a to length len with blanks, returning b}
  4091. (3) 9-41      procedure AscTrimLead(var A, B : Asciiz);
  4092.                 {-Return an Asciiz with leading white space removed}
  4093. (3) 9-41      procedure AscTrimTrail(var A, B : Asciiz);
  4094.                 {-Return an Asciiz with trailing white space removed}
  4095. (3) 9-40      procedure AscTrim(var A, B : Asciiz);
  4096.                 {-Return an Asciiz with leading and trailing white space removed}
  4097. (3) 9-36      procedure AscCenterCh(var A : Asciiz; Ch : Char; Width : Word;
  4098.                                     var B : Asciiz);
  4099.                 {-Return an Asciiz centered in an Asciiz of Ch with specified
  4100.                   width}
  4101. (3) 9-36      procedure AscCenter(var A : Asciiz; Width : Word; var B : Asciiz);
  4102.                 {-Return an Asciiz centered in an Asciiz of blanks with specified
  4103.                   width}
  4104. (3) 9-42      function CompAsc(var a1, a2 : Asciiz) : AscCompareType;
  4105.                 {-Return less, equal, greater if a1<a2, a1=a2, or a1>a2}
  4106. (3) 9-42      function CompUCAsc(var a1, a2 : Asciiz) : AscCompareType;
  4107.                 {-Compare two Asciizs in a case insensitive manner}
  4108.  
  4109. OpStrDev  Procedures and Functions
  4110. ==============================================================================
  4111.  
  4112. (3) 9-50      procedure ReadStr(var S : string);
  4113.                 {-'Read' a string into S from our string buffer}
  4114. (3) 9-50      function ReturnStr : string;
  4115.                 {-Return the contents of our string buffer}
  4116.  
  4117. OpDos   Procedures and Functions
  4118. ==============================================================================
  4119.  
  4120. (3) 10-7      function DosVersion : Word;
  4121.                 {-Returns the DOS version number. High byte has major version
  4122.                   number, low byte has minor version number. Eg.,
  4123.                   DOS 3.1 => $0301.}
  4124. (3) 10-20     function NumberOfDrives : Byte;
  4125.                 {-Returns the number of logical drives}
  4126. (3) 10-23     procedure SelectDrive(Drive : Char);
  4127.                 {-Selects the specified drive as default if possible}
  4128. (3) 10-7      function DefaultDrive : Char;
  4129.                 {-Returns the default drive as an uppercase letter}
  4130. (3) 10-30     function ValidDrive(Drive : Char) : Boolean;
  4131.                 {-Return True if the specified drive is valid}
  4132. (3) 10-14     function GetDiskInfo(Drive : Byte;
  4133.                                    var ClustersAvailable, TotalClusters,
  4134.                                    BytesPerSector,
  4135.                                    SectorsPerCluster : Word) : Boolean;
  4136.                 {-Return technical info about the specified drive}
  4137. (3) 10-13     function GetDiskClass(Drive : Char;
  4138.                                     var SubstDriveChar : Char) : DiskClass;
  4139.                 {-Return the disk class for the drive with the specified letter}
  4140. (3) 10-22     function ReadDiskSectors(Drive : Word; FirstSect : Longint;
  4141.                                        NumSects : Word; var Buf) : Boolean;
  4142.                 {-Read absolute disk sectors.}
  4143. (3) 10-31     function WriteDiskSectors(Drive : Word; FirstSect : Longint;
  4144.                                         NumSects : Word; var Buf) : Boolean;
  4145.                 {-Write absolute disk sectors.}
  4146. (3) 10-16     function GetFileMode(FName : string; var Attr : Word) : Byte;
  4147.                 {-Returns a file's attribute in Attr and the DOS error code as the
  4148.                   function result.}
  4149. (3) 10-13     function FlushDosBuffers(var F) : Boolean;
  4150.                 {-Flush DOS's buffers for the specified file}
  4151. (3) 10-12     function FileHandlesLeft : Byte;
  4152.                 {-Return the number of available file handles}
  4153. (3) 10-12     function FileHandlesOpen(CountDevices : Boolean) : Byte;
  4154.                 {-Return the number of open files owned by a program}
  4155. (3) 10-24     procedure SetDta(DTAptr : Pointer);
  4156.                 {-Set the DOS DTA to point to DTAptr}
  4157. (3) 10-14     procedure GetDta(var DTAptr : Pointer);
  4158.                 {-Return the DOS DTA pointer}
  4159. (3) 10-21     function ParsePath(var InputPath, SearchPath,
  4160.                                  LeadInPath : string) : Boolean;
  4161.                 {-Takes a user entered path, trims blanks, and returns a valid
  4162.                   global search path and a valid lead-in path.}
  4163. (3) 10-21     function PrintInstalled : Boolean;
  4164.                 {-Returns True if PRINT.COM is installed}
  4165. (3) 10-28     function SubmitPrintFile(FileName : string) : Byte;
  4166.                 {-This procedure submits a file to the PC DOS 3.0 or greater
  4167.                   concurrent print utility.}
  4168. (3) 10-5      procedure CancelPrintFile(FileMask : string);
  4169.                 {-Cancels the files matched by the file mask passed in FileMask.}
  4170. (3) 10-5      procedure CancelAllPrintFiles;
  4171.                 {-Cancels all files in the print queue}
  4172. (3) 10-17     function GetPrintStatus(var QPtr : Pointer) : Byte;
  4173.                 {-Halts printing, returns current error status, puts pointer to the
  4174.                   filename queue in the QPtr variable. Filenames in the queue are
  4175.                   64-byte ASCIIZ strings. The end of the queue is marked by a name
  4176.                   starting with a null.}
  4177. (3) 10-8      procedure EndPrintStatus;
  4178.                 {-Releases the spooler from the GetPrintStatus procedure.}
  4179. (3) 10-15     function GetEnvironmentString(SearchString : string) : string;
  4180.                 {-Return a string from the environment}
  4181. (3) 10-24     function SetBlock(var Paragraphs : Word) : Boolean;
  4182.                 {-Change size of DOS memory block allocated to this program}
  4183. (3) 10-9      procedure NoExecDosProc(ActionCode : ActionCodeType; Param : Word);
  4184.                 {-Do-nothing ExecDosProc}
  4185. (3) 10-9      function ExecDos(Command : string; UseSecond : Boolean;
  4186.                                EDP : ExecDosProc) : Integer;
  4187.                 {-Execute any DOS command}
  4188. (3) 10-29     function TextSeek(var F : Text; Target : LongInt) : Boolean;
  4189.                 {-Do a Seek for a text file opened for input. Returns False in case
  4190.                    of I/O error}
  4191. (3) 10-28     function TextFileSize(var F : Text) : LongInt;
  4192.                 {-Return the size of text file F. Returns -1 in case of I/O error.}
  4193. (3) 10-29     function TextPos(var F : Text) : LongInt;
  4194.                 {-Return the current position of the logical file pointer (that is,
  4195.                   for the position of the physical file pointer, adjusted to
  4196.                   account buffering). Returns -1 in case of I/O error.}
  4197. (3) 10-29     function TextFlush(var F : Text) : Boolean;
  4198.                 {-Flush the buffer(s) for a text file. Returns False in case of
  4199.                   I/O error.}
  4200. (3) 10-20     function OpenStdDev(var F : Text; StdHandle : Word) : Boolean;
  4201.                 {-Assign the text file to a standard DOS device: 0, 1, 2, or 4}
  4202. (3) 10-18     function HandleIsConsole(Handle : Word) : Boolean;
  4203.                 {-Return true if handle is the console device}
  4204. (3) 10-26     procedure SetRawMode(var F : Text; On : Boolean);
  4205.                 {-Set "raw" mode on or off for the specified text file (must be a
  4206.                   device)}
  4207. (3) 10-11     function ExistFile(FName : string) : Boolean;
  4208.                 {-Return true if file is found}
  4209. (3) 10-11     function ExistOnPath(FName : string;
  4210.                                    var FullName : string) : Boolean;
  4211.                 {-Return true if fname is found in a) current directory,
  4212.                   b) program's directory (DOS 3.X only), or c) any DOS path
  4213.                   directory and return full path name to file}
  4214. (3) 10-18     function IsDirectory(FName : String) : Boolean;
  4215.                 {-Return true if FName is a directory}
  4216. (3) 10-23     function SameFile(FilePath1,FilePath2 : String;
  4217.                                 var ErrorCode : Word) : Boolean;
  4218.                 {-Return true if FilePath1 and FilePath2 refer to the same
  4219.                   physical file. Error codes: 0 - Success (no error),
  4220.                   1 - Invalid FilePath}
  4221. (3) 10-6      function CopyFile(SrcPath, DestPath : String;
  4222.                                 Buffer : Pointer;
  4223.                                 BufferSize : Word) : Word;
  4224.                 {-Copy the file specified by SrcPath into DestPath}
  4225. (3) 10-30     function TimeMs : LongInt;
  4226.                 {-Return time of day in milliseconds since midnight}
  4227. (3) 10-19     procedure MasterEnv(var Env : EnvRec);
  4228.                 {-Return master environment record}
  4229. (3) 10-6      procedure CurrentEnv(var Env : EnvRec);
  4230.                 {-Return current environment record}
  4231. (3) 10-20     procedure ParentEnv(var Env : EnvRec);
  4232.                 {-Return environment record of program's parent}
  4233. (3) 10-19     procedure NewEnv(var Env : EnvRec; Size : Word);
  4234.                 {-Allocate a new environment on the heap}
  4235. (3) 10-7      procedure DisposeEnv(var Env : EnvRec);
  4236.                 {-Deallocate an environment previously allocated on heap}
  4237. (3) 10-24     procedure SetCurrentEnv(Env : EnvRec);
  4238.                 {-Specify a different environment for the current program}
  4239. (3) 10-5      procedure CopyEnv(Src, Dest : EnvRec);
  4240.                 {-Copy contents of Src environment to Dest environment}
  4241. (3) 10-8      function EnvFree(Env : EnvRec) : Word;
  4242.                 {-Return bytes free in environment}
  4243. (3) 10-15     function GetEnvStr(Env : EnvRec; Search : string) : string;
  4244.                 {-Return a string from the environment}
  4245. (3) 10-25     function SetEnvStr(Env : EnvRec; Search, Value : string) : Boolean;
  4246.                 {-Set environment string, returning true if successful}
  4247. (3) 10-8      procedure DumpEnv(Env : EnvRec);
  4248.                 {-Dump the environment to the screen}
  4249. (3) 10-17     function GetProgramStr(Env : EnvRec) : string;
  4250.                 {-Return the name of the program that owns Env, '' if DOS < 3.0
  4251.                   or unknown}
  4252. (3) 10-26     function SetProgramStr(Env : EnvRec; Path : string) : Boolean;
  4253.                 {-Add a program name to the end of an environment if sufficient
  4254.                   space}
  4255. (3) 10-27     function ShellWithPrompt(Prompt : string;
  4256.                                        EDP : ExecDosProc) : Integer;
  4257.                 {-Shell to DOS with a new prompt}
  4258.  
  4259. OpExec  Procedures and Functions
  4260. ==============================================================================
  4261.  
  4262. (3) 10-41     procedure SetSwapMsgOn(On : Boolean);
  4263.                 {-Turns Swap message on or off}
  4264. (3) 10-39     procedure ExecWithSwap(Path, CmdLine : String);
  4265.                 {-DOS shell with swapping to EMS or disk}
  4266. (3) 10-40     function PrepareExecWithSwap(LastToSave : Pointer;
  4267.                                            SwapFileName : PathStr) : Boolean;
  4268.                 {-Set up for a shell with swapping, returning true if successful}
  4269. (3) 10-41     procedure RemoveExecWithSwap;
  4270.                 {-Deallocate EMS space or erase swap file, whichever was allocated}
  4271. (3) 10-36     function ExecDosSwap(Command : string; UseSecond : Boolean;
  4272.                                    EDP : Pointer; SwapFName : PathStr) : Integer;
  4273.                 {-Execute any DOS command}
  4274.  
  4275. OpEnhKbd  Procedures and Functions
  4276. ==============================================================================
  4277.  
  4278. (3) 10-45     procedure RestoreKbdVectors;
  4279.                 {-Restores original vectors for INT's $09 and $16}
  4280. (3) 10-45     procedure InitKbdVectors;
  4281.                 {-Save and setup interrupt vectors. This routine should be called
  4282.                   only if RestoreKbdVectors has been called first!!}
  4283.  
  4284. OpInt   Procedures and Functions
  4285. ==============================================================================
  4286.  
  4287. (3) 11-8      procedure InterruptsOn;
  4288.                 {-Turn interrupts on}
  4289. (3) 11-8      procedure InterruptsOff;
  4290.                 {-Turn interrupts off}
  4291. (3) 11-10     procedure SendEOI;
  4292.                 {-Send an End Of Interrupt command to the Programmable Interrupt
  4293.                   Controller}
  4294. (3) 11-9      procedure IntReturn(var IntRegs : IntRegisters);
  4295.                 {-Return from interrupt. Needed only if stack has been changed.}
  4296. (3) 11-6      procedure ChainInt(var Regs : IntRegisters; JumpAddr : Pointer);
  4297.                 {-Restores stack, registers from Regs and 'jumps' to JumpAddr}
  4298. (3) 11-11     procedure SwapStackAndCallNear(Routine : Word; SP : Pointer;
  4299.                                              var Regs : IntRegisters);
  4300.                 {-Switches to stack designated by SP and calls Routine with Regs
  4301.                   as a parameter. The Routine must be a NEAR call from the current
  4302.                   ISR.}
  4303. (3) 11-11     procedure SwapStackAndCall(Routine, SP : Pointer;
  4304.                                          var Regs : IntRegisters);
  4305.                 {-Switches to stack designated by SP and calls Routine with Regs
  4306.                   as a parameter. The Routine must be a FAR call from the current
  4307.                   ISR.}
  4308. (3) 11-7      procedure EmulateInt(var Regs : IntRegisters; IntAddr : Pointer);
  4309.                 {-Emulates an interrupt by filling the CPU registers with the
  4310.                   values in Regs, clearing interrupts, pushing the flags, and
  4311.                   calling far to IntAddr.}
  4312. (3) 11-8      function InitVector(IntNumber, Handle : Byte;
  4313.                                   UserRoutine : Pointer) : Boolean;
  4314.                 {-Sets up an interrupt service routine}
  4315. (3) 11-10     procedure RestoreVector(Handle : Byte);
  4316.                 {-Restores an interrupt vector to its original value}
  4317. (3) 11-9      procedure RestoreAllVectors;
  4318.                 {-Restores all captured interrupt vectors.}
  4319. (3) 11-6      function AllocateStack(var P : Pointer;
  4320.                                      SizeInBytes : Word) : Boolean;
  4321.                 {-Allocates a stack of size SizeInBytes}
  4322. (3) 11-7      procedure DeallocateStack(P : Pointer);
  4323.                 {-Frees an allocated stack}
  4324.  
  4325. OpTsr   Procedures and Functions
  4326. ==============================================================================
  4327.  
  4328. (3) 11-30     function ParagraphsToKeep : Word;
  4329.                 {-Returns # of paragraphs currently used for code, data, stack,
  4330.                   and heap.}
  4331. (3) 11-29     function MaxParagraphsToKeep : Word;
  4332.                 {-Maximum number of paragraphs to keep when going resident}
  4333. (3) 11-33     procedure StayRes(ParasToKeep : Word; ExitCode : Byte);
  4334.                 {-Terminate and stay resident, freeing up all our memory except
  4335.                   ParasToKeep. Returns only if unable to go resident.}
  4336. (3) 11-31     procedure PopupsOn;
  4337.                 {-Turns popups on}
  4338. (3) 11-31     procedure PopupsOff;
  4339.                 {-Turns popups off}
  4340. (3) 11-25     function DefinePopProc(var Handle : Byte; Routine : PopupProc;
  4341.                                      StackPtr : Pointer) : Boolean;
  4342.                 {-Defines a routine that can be triggered by calling SetPopTicker.
  4343.                   Returns false if no more Popup handles are available.}
  4344. (3) 11-26     procedure DeletePopProc(Handle : Byte);
  4345.                 {-Deletes a popup routine defined with DefinePopProc.  Its handle
  4346.                   may then be used for other popups.}
  4347. (3) 11-25     function DefinePop(HotKey : Word; Routine : PopupProc;
  4348.                                  StackPtr : Pointer; DosWait : Boolean) : Boolean;
  4349.                 {-Defines a popup routine associated with a particular hotkey.
  4350.                   Returns False if no more Popup handles are available.}
  4351. (3) 11-26     procedure DeletePop(HotKey : Word);
  4352.                 {-Deletes the popup routine associated with HotKey.  Its handle
  4353.                   may then be used for other popups.}
  4354. (3) 11-24     function ChangeHotKey(OldHotKey, NewHotKey : Word) : Boolean;
  4355.                 {-Change a popup's hotkey from OldHotKey to NewHotKey}
  4356. (3) 11-24     function AddHotKey(PrimaryHotKey, SecondaryHotKey : Word) : Boolean;
  4357.                 {-Add a second hot key for the popup with the specified primary
  4358.                   hot key}
  4359. (3) 11-32     procedure SetPopTicker(Handle : Byte; TimeOut : Word);
  4360.                 {-Sets the pop ticker for the indicated procedure, clears
  4361.                   interrupts, then returns.  No range checking is performed.}
  4362. (3) 11-31     procedure RemovePops;
  4363.                 {-Removes all popup routines from the system and releases all
  4364.                   associated interrupt vectors}
  4365. (3) 11-28     procedure InitPops;
  4366.                 {-Must be called before any other popup specific routines}
  4367. (3) 11-27     function DisableTSR : Boolean;
  4368.                 {-Disable TSR by restoring interrupt vectors and releasing memory.
  4369.                   This does *not* halt the program. Returns False if it's not
  4370.                   safe.}
  4371. (3) 11-32     function SafeToDisable : Boolean;
  4372.                 {-Returns True if it is safe to disable the TSR}
  4373. (3) 11-28     procedure InstallModule(var ModuleName : string;
  4374.                                       CmdEntryRoutine : Pointer);
  4375.                 {-Installs this program as a resident module that can be located
  4376.                   and accessed by other programs.}
  4377. (3) 11-33     procedure UninstallModule;
  4378.                 {-Uninstalls the module from the linked list of modules}
  4379. (3) 11-30     function ModulePtrByName(var ModuleName : string) : IfcPtr;
  4380.                 {-Returns a pointer to the IfcRecord for the module named
  4381.                   ModuleName or Nil}
  4382. (3) 11-29     function ModuleInstalled(var ModuleName : string) : Boolean;
  4383.                 {-Returns true if ModuleName is installed.}
  4384. (3) 11-27     function DosBusyFlag : Byte;
  4385.                 {-Returns current value of DOS busy flag}
  4386. (3) 11-27     function DosCriticalFlag : Byte;
  4387.                 {-Returns current value of DOS critical flag}
  4388. (3) 11-28     function GetPSP : Word;
  4389.                 {-Returns current PSP}
  4390. (3) 11-32     procedure SetPSP(PSP : Word);
  4391.                 {-Sets current PSP}
  4392.  
  4393. OpSwap  Procedures and Functions
  4394. ==============================================================================
  4395.  
  4396. (3) 11-57     procedure SetPopTicker(TimeOut : Word);
  4397.                 {-Sets the pop ticker for the CmdEntry procedure, clears
  4398.                   interrupts, then returns.}
  4399.  
  4400. OpSwap1 Procedures and Functions
  4401. ==============================================================================
  4402.  
  4403. (3) 11-48     function AllocateStack(var P : Pointer;
  4404.                                      SizeInBytes : Word) : Boolean;
  4405.                 {-Allocates a stack of size SizeInBytes}
  4406. (3) 11-48     procedure DeallocateStack(P : Pointer);
  4407.                 {-Frees an allocated stack}
  4408. (3) 11-49     procedure PopupsOn;
  4409.                 {-Turns popups on}
  4410. (3) 11-49     procedure PopupsOff;
  4411.                 {-Turns popups off}
  4412. (3) 11-48     function ChangeHotKey(OldHotKey, NewHotKey : Word) : Boolean;
  4413.                 {-Change a popup's hotkey from OldHotKey to NewHotKey}
  4414. (3) 11-48     function AddHotKey(PrimaryHotKey, SecondaryHotKey : Word) : Boolean;
  4415.                 {-Add a second hot key for the popup with the specified primary
  4416.                   hot key}
  4417. (3) 11-50     function DefinePop(HotKey : Word; Routine : PopupProc;
  4418.                                  StackPtr : Pointer) : Boolean;
  4419.                 {-Defines a popup routine associated with a particular hotkey.
  4420.                   Returns False if no more Popup handles are available.}
  4421. (3) 11-49     procedure RestoreAllVectors;
  4422.                 {-Restores all captured interrupt vectors}
  4423. (3) 11-55     function WillSwapUseEms(ParasToKeep : Word) : Boolean;
  4424.                 {-Returns True if OpSwap will use EMS memory for swapping}
  4425. (3) 11-49     function ParagraphsToKeep : Word;
  4426.                 {-Returns # of paragraphs currently used for code, data, stack,
  4427.                   and heap}
  4428. (3) 11-52     function MaxParagraphsToKeep : Word;
  4429.                 {-Maximum number of paragraphs to keep when going resident}
  4430. (3) 11-55     procedure StayResSwap(ParasToKeep : Word; ExitCode : Byte;
  4431.                                     SwapFileName1, SwapFileName2 : String;
  4432.                                     UseSwapping : Boolean);
  4433.                 {-Terminate and stay resident. If UseSwapping is False, then the
  4434.                   TSR does not use the swapping techniques and behaves like a
  4435.                   normal TSR written with OpTSR (or TpTSR)}
  4436. (3) 11-48     function DisableTSR : Boolean;
  4437.                 {-Disable TSR by restoring interrupt vectors and releasing memory.
  4438.                   This does *not* halt the program. Returns false if it's not
  4439.                   safe.}
  4440. (3) 11-49     function SafeToDisable : Boolean;
  4441.                 {-Returns True if it is safe to disable the TSR}
  4442. (3) 11-51     procedure DisablePopup;
  4443.                 {-An external interface procedure that attempts to disable the
  4444.                   popup and reports the results in the UserData field of the
  4445.                   IfcRecord. UserData is set to 1 on success.}
  4446. (3) 11-52     procedure InstallModule(var ModName : string;
  4447.                                       CmdEntryPtr : PopupProc);
  4448.                 {-Installs this program as a resident module that can be located
  4449.                   and accessed by other programs.}
  4450. (3) 11-49     procedure UninstallModule;
  4451.                 {-Uninstalls the module from the linked list of modules.}
  4452. (3) 11-53     procedure SetSwapMsgAttr(Attr : Byte);
  4453.                 {-Sets the attribute used by Swap manager for swap message}
  4454. (3) 11-53     procedure SetSwapMsgOn(On : Boolean);
  4455.                 {-Turns Swap message on or off}
  4456. (3) 11-53     procedure SetSwapMsgRow(Row : Byte);
  4457.                 {-Sets the row where swapping messages are to appear}
  4458. (3) 11-54     procedure SetUserExitProc(UserExitProc : PopupProc);
  4459.                 {-Sets a pointer to a far procedure that is to be called before
  4460.                   disabling the TSR}
  4461. (3) 11-48     function ModulePtrByName(var ModuleName : string) : IfcPtr;
  4462.                 {-Returns a pointer to the IfcRecord for the module named
  4463.                   ModuleName or Nil.}
  4464. (3) 11-48     function ModuleInstalled(var ModuleName : string) : Boolean;
  4465.                 {-Returns true if ModuleName is installed.}
  4466. (3) 11-48     procedure EmulateInt(var Regs : IntRegisters; IntAddr : Pointer);
  4467.                 {-Emulates an interrupt by filling the CPU registers with the
  4468.                   values in Regs, clearing interrupts, pushing the flags, and
  4469.                   calling far to IntAddr.}
  4470. (3) 11-48     function DosBusyFlag : Byte;
  4471.                 {-Returns current value of DOS busy flag}
  4472. (3) 11-48     procedure InterruptsOn;
  4473.                 {-Turn interrupts on}
  4474. (3) 11-48     procedure InterruptsOff;
  4475.                 {-Turn interrupts off}
  4476.  
  4477. Op8087  Procedures and Functions
  4478. ==============================================================================
  4479.  
  4480. (3) 11-63     procedure Save8087(var SaveBuf : SaveBuffer8087);
  4481.                 {-Saves the 80x87 registers in the save buffer.}
  4482. (3) 11-63     procedure Restore8087(var SaveBuf : SaveBuffer8087);
  4483.                 {-Restores the 80x87 registers from the save buffer.}
  4484. (3) 11-62     function Installed8087 : Boolean;
  4485.                 {-Returns true if an 80x87 coprocessor is installed.}
  4486. (3) 11-61     procedure Exceptions8087(On : Boolean);
  4487.                 {-Turn exception interrupts on or off}
  4488. (3) 11-61     function Error8087 : Word;
  4489.                 {-Return (and clear) the error status of the 80x87}
  4490. (3) 11-62     procedure Reinit8087;
  4491.                 {-Reinitialize the 8087 chip}
  4492. (3) 11-62     procedure ReinitEmulator;
  4493.                 {-Reinitialize the emulator}
  4494. (3) 11-63     function UseEmulator : Boolean;
  4495.                 {-Return True if ReinitEmulator should be used rather than
  4496.                   Reinit8087}
  4497.  
  4498. OpEms   Procedures and Functions
  4499. ==============================================================================
  4500.  
  4501. (3) 12-6      function EmsInstalled : Boolean;
  4502.                 {-Returns true if the EMM is installed.}
  4503. (3) 12-5      function EmmSigFound : Boolean;
  4504.                 {-Returns True if EMM signature found}
  4505. (3) 12-9      function EmsStatusOK : Boolean;
  4506.                 {-Returns true if the EMM reports its status as being OK.}
  4507. (3) 12-8      function EmsPagesAvail : Word;
  4508.                 {-Returns the number of available pages from the expanded memory
  4509.                   manager, or EmsErrorCode in case of error.}
  4510. (3) 12-9      function EmsTotalPages : Word;
  4511.                 {-Returns total number of pages of EMS memory, including allocated
  4512.                   pages, or EmsErrorCode in case of error.}
  4513. (3) 12-7      function EmsPageFramePtr : Pointer;
  4514.                 {-Returns the page frame base address as a pointer to the page
  4515.                   frame.}
  4516. (3) 12-4      function AllocateEmsPages(NumPages : Word) : Word;
  4517.                 {-Allocates the indicated number of pages and returns a handle.
  4518.                   Returns EmsErrorCode in case of error.}
  4519. (3) 12-10     function MapEmsPage(Handle, LogicalPage : Word;
  4520.                                   PhysicalPage : Byte) : Boolean;
  4521.                 {-Maps the specified LogicalPage associated with Handle into
  4522.                   PhysicalPage (0-3). Returns true if successful.}
  4523. (3) 12-5      function DeallocateEmsHandle(Handle : Word) : Boolean;
  4524.                 {-Deallocates the indicated handle and the memory associated with
  4525.                   it.}
  4526. (3) 12-10     function EmsVersion : Byte;
  4527.                 {-Returns a BCD version number of the EMM handle. To check for
  4528.                   version 3.2 or greater for example, use: 'if EmsVersion >= $32
  4529.                   then'. Returns 0 in case of error.}
  4530. (3) 12-11     function SaveEmsContext(Handle : Word) : Boolean;
  4531.                 {-Saves the EMM context for resident programs. The handle passed
  4532.                   must have been allocated with a call to AllocateEmsPages.
  4533.                   Returns true if successful.}
  4534. (3) 12-11     function RestoreEmsContext(Handle : Word) : Boolean;
  4535.                 {-Restores the mapping context of the EMM driver for the handle
  4536.                   specified. The handle should the same one used in a prior call
  4537.                   to SaveEmsContext. Returns true if successful.}
  4538. (3) 12-6      function EmsActiveHandles : Word;
  4539.                 {-Returns the number of active EMS handles, EmsErrorCode in case
  4540.                   of error}
  4541. (3) 12-8      function EmsPagesOwned(Handle : Word) : Word;
  4542.                 {-Returns the number of pages owned by Handle, or EmsErrorCode in
  4543.                   case of error.}
  4544.  
  4545. OpExtMem  Procedures and Functions
  4546. ==============================================================================
  4547.  
  4548. (3) 12-16     function PtrToHuge(P : Pointer) : HugePtr;
  4549.                 {-Converts a pointer to a huge pointer. The pointer must be in the
  4550.                   range $0:$0 to $FFFF:$000F.}
  4551. (3) 12-15     procedure MoveExtMem(Src, Dest : HugePtr; WCount : Word);
  4552.                 {-Move WCount words of extended memory from Src to Dest.}
  4553. (3) 12-13     function ExtMemTotal : LongInt;
  4554.                 {-Returns total number of bytes of extended memory in the system.}
  4555. (3) 12-13     function ExtMemAvail : Word;
  4556.                 {-Returns the number of KB of extended memory that is actually
  4557.                   free.}
  4558. (3) 12-14     function GetExtMem(N : Word) : HugePtr;
  4559.                 {-Allocate N Kb of extended memory.  Returns Nil if insufficient
  4560.                   memory.}
  4561. (3) 12-14     function FreeExtMem(P : HugePtr) : Boolean;
  4562.                 {-Deallocates extended memory which has been allocated with
  4563.                   GetExtMem.}
  4564. (3) 12-15     procedure MarkExtMem(var P : HugePtr);
  4565.                 {-Store the location of the next extended memory block in P}
  4566. (3) 12-16     procedure ReleaseExtMem(P : HugePtr);
  4567.                 {-Release all extended memory above P. P *must* have been set by
  4568.                   MarkExtMem. It cannot be a huge pointer returned by GetExtMem.}
  4569.  
  4570. OpMacro Procedures and Functions
  4571. ==============================================================================
  4572.  
  4573. (3) 13-7      function DefineMacro(Key : Word; var Macro) : Boolean;
  4574.                 {-Define a new macro or delete an existing one.}
  4575. (3) 13-9      function MacroAddress(Key : Word) : Pointer;
  4576.                 {-Returns a pointer to the macro for a key, or nil if key is not
  4577.                   defined.}
  4578. (3) 13-9      function MacroCount : Word;
  4579.                 {-Returns the number of macros that have been defined}
  4580. (3) 13-5      function AllocateMacro(Key : Word; var Macro;
  4581.                                      var Name : string) : Byte;
  4582.                 {-Allocates a macro on the heap, and returns one of the following
  4583.                   values: 0 : Macro allocated; 1 : Macro table full; 2 : Out of
  4584.                   heap space; 3 : Macro was blank }
  4585. (3) 13-6      function DeallocateMacro(Key : Word) : Boolean;
  4586.                 {-If the macro exists, this routine erases it and deallocates its
  4587.                   memory. Returns False if the macro was not found.}
  4588. (3) 13-5      function AssignMacroName(Key : Word; var Name : string) : Boolean;
  4589.                 {-Assign a Name to a macro, deleting the existing name assigned to
  4590.                   the macro, if any. Returns false if insufficient memory exists
  4591.                   or macro not found.}
  4592. (3) 13-11     function ReadMacroFile(FName : string; Merge : Boolean) : Byte;
  4593.                 {-Read a macro file. Returns 0 if successful, $FF if not a valid
  4594.                   macro file, $FE if we ran out of memory, else IOresult. If Merge
  4595.                   is false, any existing macros are deleted before the file is
  4596.                   read.}
  4597. (3) 13-14     function WriteMacroFile(FName : string) : Byte;
  4598.                 {-Write a macro file. Returns 0 if successful, else IOresult.}
  4599. (3) 13-6      procedure ClearMacros;
  4600.                 {-Clears out the current macros.}
  4601. (3) 13-10     procedure MacrosOn;
  4602.                 {-Turns macro processing on}
  4603. (3) 13-10     procedure MacrosOff;
  4604.                 {-Turns macro processing off}
  4605. (3) 13-10     procedure MacroRecordingOn;
  4606.                 {-Turns macro recording on}
  4607. (3) 13-9      procedure MacroRecordingOff;
  4608.                 {-Turns macro recording off}
  4609. (3) 13-13     procedure StartMacro(Macro : Pointer);
  4610.                 {-Starts execution of the specified macro. If a macro is already in
  4611.                   progress it will immediately be replaced by the macro passed.}
  4612. (3) 13-13     procedure StartMacroByKey(Key : Word);
  4613.                 {-Starts execution of the macro attached to key, if any. If a macro
  4614.                   is already in progress it will immediately be replaced by the
  4615.                   macro passed.}
  4616. (3) 13-11     procedure RemoveMacros;
  4617.                 {-Restores all vectors associated with macros.}
  4618. (3) 13-12     procedure SetEndOfMacroProc(P : Pointer);
  4619.                 {-Set pointer to procedure to call when end of macro reached}
  4620. (3) 13-7      function FindMacroIndex(Key : Word) : Word;
  4621.                 {-Find the array index for the macro assigned to Key. Returns 0 if
  4622.                   not found.}
  4623. (3) 13-8      function InitMacros : Boolean;
  4624.                 {-Initializes macros. After this routine is called, no macros will
  4625.                   be defined and both macro processing and macro recording will be
  4626.                   turned off. Returns false if INT $16 cannot be taken over.}
  4627. (3) 13-6      function CharToMacro(MacroChar : Char) : Word;
  4628.                 {-Converts a character to a keyboard code/char representation.
  4629.                   This table holds all scan code values for ASCII characters from
  4630.                   0 to 63. All alpha characters can be mapped to this table by
  4631.                   subtracting a number divisible by 32 that would put that alpha
  4632.                   in the range of 0..63.}
  4633. (3) 13-13     procedure StringToMacro(S : string; MRP : MacroRecPtr;
  4634.                                       MaxKeys : Word);
  4635.                 {-Initialize MRP^ from a string}
  4636. (3) 13-14     procedure StringToScrapMacro(S : string);
  4637.                 {-Initialize ScrapMacro from a string}
  4638. (3) 13-8      procedure KeyToString(Key : Word; var S : string;
  4639.                                     var Special : Boolean);
  4640.                 {-Returns a string (S) representing a Key. Special is set to False
  4641.                   if a simple character is being returned.}
  4642.  
  4643. OpMacEd Procedures and Functions
  4644. ==============================================================================
  4645.  
  4646. (3) 13-16     function EditKeys(Key : Word; var Macro : MacroRec;
  4647.                                 MinCol, MinRow, MaxCol, MaxRow,
  4648.                                 Dim, Bright : Byte;
  4649.                                 var Modified : Boolean) : MacroRecPtr;
  4650.                 {-Edit the Macro associated with Key.}
  4651.  
  4652. OpReplay  Procedures and Functions
  4653. ==============================================================================
  4654.  
  4655. (3) 13-21     procedure StartMacro(Macro : MacroRecPtr);
  4656.                 {-Starts execution of the specified macro}
  4657. (3) 13-19     function CharToMacro(MacroChar : Char) : Word;
  4658.                 {-Converts a character to a keyboard code/char representation}
  4659. (3) 13-22     procedure StringToScrapMacro(S : string);
  4660.                 {-Initialize ScrapMacro from a string}
  4661. (3) 13-22     procedure StringToMacro(S : string; MRP : MacroRecPtr;
  4662.                                       MaxKeys : Word);
  4663.                 {-Initialize MRP^ from a string}
  4664. (3) 13-20     procedure Int16;
  4665.                 {-The macro engine used to replay keystrokes. It is the user's
  4666.                   responsibility to install and uninstall this interrupt handler.}
  4667. (3) 13-21     procedure SetEndOfMacroProc(P : Pointer);
  4668.                 {-Set pointer to procedure to call when end of macro reached}
  4669. (3) 13-19     procedure InitScrapMacroPtr;
  4670.                 {-Initialize ScrapMacroPtr}
  4671.  
  4672. OpBCD   Procedures and Functions
  4673. ==============================================================================
  4674.  
  4675. (3) 14-11     procedure RealToBCD(R : Real; var B : BCD);
  4676.                 {-Convert a real to a BCD}
  4677. (3) 14-9      procedure LongintToBCD(L : LongInt; var B : BCD);
  4678.                 {-Convert a Longint to a BCD}
  4679. (3) 14-5      function BCDtoReal(B : BCD) : Real;
  4680.                 {-Convert a BCD to a real}
  4681. (3) 14-13     function StrBCD(B : BCD; Width, Places : Byte) : string;
  4682.                 {-Return a BCD as a string}
  4683. (3) 14-13     function StrExpBCD(B : BCD; Width : Byte) : string;
  4684.                 {-Return B as a string in exponential format}
  4685. (3) 14-15     procedure ValBCD(S : string; var B : BCD; var Code : Word);
  4686.                 {-Convert a string to a BCD}
  4687. (3) 14-4      procedure AbsBCD(B1 : BCD; var B2 : BCD);
  4688.                 {-Returns absolute value of B1 in B2}
  4689. (3) 14-7      procedure FracBCD(B1 : BCD; var B2 : BCD);
  4690.                 {-Returns the fractional part of B1 in B2}
  4691. (3) 14-8      procedure IntBCD(B1 : BCD; var B2 : BCD);
  4692.                 {-Returns the integer part of B1 in B2}
  4693. (3) 14-11     function RoundBCD(B1 : BCD) : LongInt;
  4694.                 {-Returns the value of B1 rounded to the nearest long integer}
  4695. (3) 14-14     function TruncBCD(B1 : BCD) : LongInt;
  4696.                 {-Returns the greatest long integer less than or equal to B1}
  4697. (3) 14-7      function Form(Mask : string; B : BCD) : string;
  4698.                 {-Returns a formatted string with digits from B merged into the
  4699.                   Mask}
  4700. (3) 14-4      procedure AddBCD(B1, B2 : BCD; var B3 : BCD);
  4701.                 {-Add B1 to B2 and put result in B3}
  4702. (3) 14-14     procedure SubBCD(B1, B2 : BCD; var B3 : BCD);
  4703.                 {-Subtract B2 from B1 and put result in B3}
  4704. (3) 14-10     procedure MultBCD(B1, B2 : BCD; var B3 : BCD);
  4705.                 {-Multiply B1 by B2 and put result in B3}
  4706. (3) 14-5      procedure DivBCD(B1, B2 : BCD; var B3 : BCD);
  4707.                 {-Divide B1 by B2 and put result in B3}
  4708. (3) 14-6      function EqualBCD(B1, B2 : BCD) : Boolean;
  4709.                 {-Returns true if B1 = B2}
  4710. (3) 14-10     function NotEqualBCD(B1, B2 : BCD) : Boolean;
  4711.                 {-Returns true if B1 <> B2}
  4712. (3) 14-7      function GreaterBCD(B1, B2 : BCD) : Boolean;
  4713.                 {-Returns true if B1 > B2}
  4714. (3) 14-8      function GreaterEqualBCD(B1, B2 : BCD) : Boolean;
  4715.                 {-Returns true if B1 >= B2}
  4716. (3) 14-8      function LessBCD(B1, B2 : BCD) : Boolean;
  4717.                 {-Returns true if B1 < B2}
  4718. (3) 14-9      function LessEqualBCD(B1, B2 : BCD) : Boolean;
  4719.                 {-Returns true if B1 <= B2}
  4720. (3) 14-4      procedure ArcTanBCD(B1 : BCD; var B2 : BCD);
  4721.                 {-Returns arc tangent of B1 in B2}
  4722. (3) 14-5      procedure CosBCD(B1 : BCD; var B2 : BCD);
  4723.                 {-Returns cosine of B1 in B2}
  4724. (3) 14-6      procedure ExpBCD(B1 : BCD; var B2 : BCD);
  4725.                 {-Returns the exponential of B1 in B2}
  4726. (3) 14-9      procedure LnBCD(B1 : BCD; var B2 : BCD);
  4727.                 {-Returns the natural log of B1 in B2}
  4728. (3) 14-12     procedure SinBCD(B1 : BCD; var B2 : BCD);
  4729.                 {-Returns the sine of B1 in B2}
  4730. (3) 14-12     procedure SqrBCD(B1 : BCD; var B2 : BCD);
  4731.                 {-Returns the square of B1 in B2}
  4732. (3) 14-12     procedure SqrtBCD(B1 : BCD; var B2 : BCD);
  4733.                 {-Returns the square root of B1 in B2}
  4734.  
  4735. OpClone Cloner
  4736. ==============================================================================
  4737.  
  4738. (3) 14-21     constructor Init(FName : string; DUT : DateUpdateType);
  4739.                 {-Open file for cloning}
  4740. (3) 14-21     constructor InitCustom(FName : string; DUT : DateUpdateType;
  4741.                                      BufSize : Word);
  4742.                 {-Open file for cloning}
  4743. (3) 14-22     constructor InitAndFind(FName : string; DUT : DateUpdateType;
  4744.                                       var IdSize : Word);
  4745.                 {-Open file and find ID. Uses FindDefaultsEnd}
  4746. (3) 14-19     destructor Done; virtual;
  4747.                 {-Close clone file, adjust time stamp, and deallocate buffer}
  4748. (3) 14-19     function FindDefaultsEnd(var ID; IdSize : Word;
  4749.                                        Skip : LongInt) : Boolean;
  4750.                 {-Find the ID in the clone file, searching from the end backward}
  4751. (3) 14-19     function FindDefaultsStart(var ID; IdSize : Word;
  4752.                                          Skip : LongInt) : Boolean;
  4753.                 {-Find the ID in the clone file, searching from the start forward}
  4754. (3) 14-20     function GetLastError : Word;
  4755.                 {-Get the code for the last error}
  4756. (3) 14-21     function GetPos : LongInt;
  4757.                 {-Get position where an ID string was found (offset returned is
  4758.                   the start of the ID string)}
  4759. (3) 14-23     procedure LoadDefaults(FileOfs : LongInt; var Defaults;
  4760.                                      Bytes : Word);
  4761.                 {-Seek to position FileOfs and read defaults there}
  4762. (3) 14-24     procedure StoreDefaults(FileOfs : LongInt; var Defaults;
  4763.                                       Bytes : Word);
  4764.                 {-Seek to position FileOfs and store defaults there}
  4765.  
  4766. OpErrHan  Procedures and Functions
  4767. ==============================================================================
  4768.  
  4769. (3) 14-27     procedure ErrorRecovery(On : Boolean; UserRoutine : Pointer);
  4770.                 {-Turn error recovery on and off, and attach to a user error
  4771.                   routine}
  4772.  
  4773. OpInline  Procedures and Functions
  4774. ==============================================================================
  4775.  
  4776. (3) 14-43     function SetJump(var JumpDest : JumpRecord) : Word;
  4777.                 {-Save current SP, BP, and a jump destination}
  4778. (3) 14-37     procedure LongJump(var JumpDest : JumpRecord; Result : Word);
  4779.                 {-Restore SP, BP, and jump to JumpDest.JmpPt}
  4780. (3) 14-34     procedure FarCall(ProcAddr : Pointer);
  4781.                 {-ProcAddr is the address of a routine to be called far. Can be
  4782.                   used to implement jump tables if procedures take no parameters.}
  4783. (3) 14-41     procedure NearCall(ProcOfs : Word);
  4784.                 {-ProcOfs is the offset of a routine to be called near.}
  4785. (3) 14-36     procedure JumpToOldIsr(OldIsr : Pointer);
  4786.                 {-Jump to previous ISR from an interrupt procedure.}
  4787. (3) 14-39     function MakeLongInt(H, L : Word) : LongInt;
  4788.                 {-Constructs a LongInt from two Words}
  4789. (3) 14-38     function MakeInteger(H, L : Byte): Integer;
  4790.                 {-Constructs an integer from two bytes}
  4791. (3) 14-39     function MakeWord(H, L : Byte) : Word;
  4792.                 {-Constructs a word from two bytes}
  4793. (3) 14-30     function Array2Str(var A; Len : Byte) : string;
  4794.                 {-Convert an array of char to a string}
  4795. (3) 14-31     procedure CallOldIsr(OldIsr : Pointer);
  4796.                 {-Call previous ISR from an interrupt procedure. Destroys BX.}
  4797. (3) 14-42     procedure Reboot;
  4798.                 {-Reboot the machine}
  4799. (3) 14-36     function HiWord(L : LongInt) : Word;
  4800.                 {-Return high-order word of L}
  4801. (3) 14-38     function LoWord(L : LongInt) : Word;
  4802.                 {-Return low-order word of L}
  4803. (3) 14-44     function SwapNibble(B : Byte) : Byte;
  4804.                 {-Swap the high and low nibbles of B: SwapNibble($F0) returns $0F.}
  4805. (3) 14-44     function SwapWord(L : LongInt) : LongInt;
  4806.                 {-Swap low- and high-order words of L}
  4807. (3) 14-41     function Normalized(P : Pointer) : Pointer;
  4808.                 {-Return P as a normalized pointer}
  4809. (3) 14-43     procedure SetFlag(var Flags : Word; FlagMask : Word);
  4810.                 {-Set the bit(s) specified by FlagMask in Flags}
  4811. (3) 14-31     procedure ClearFlag(var Flags : Word; FlagMask : Word);
  4812.                 {-Clear the bit(s) specified by FlagMask in Flags}
  4813. (3) 14-35     function FlagIsSet(Flags, FlagMask : Word) : Boolean;
  4814.                 {-Returns True if the bit specified by FlagMask is set in Flags}
  4815. (3) 14-42     procedure SetByteFlag(var Flags : Byte; FlagMask : Byte);
  4816.                 {-Set the bit(s) specified by FlagMask in Flags}
  4817. (3) 14-31     procedure ClearByteFlag(var Flags : Byte; FlagMask : Byte);
  4818.                 {-Clear the bit(s) specified by FlagMask in Flags}
  4819. (3) 14-30     function ByteFlagIsSet(Flags, FlagMask : Byte) : Boolean;
  4820.                 {-Returns True if the bit specified by FlagMask is set in Flags}
  4821. (3) 14-44     procedure SetLongFlag(var Flags : LongInt; FlagMask : LongInt);
  4822.                 {-Set the bit(s) specified by FlagMask in Flags}
  4823. (3) 14-32     procedure ClearLongFlag(var Flags : LongInt; FlagMask : LongInt);
  4824.                 {-Clear the bit(s) specified by FlagMask in Flags}
  4825. (3) 14-37     function LongFlagIsSet(Flags, FlagMask : LongInt) : Boolean;
  4826.                 {-Returns True if the bit specified by FlagMask is set in Flags}
  4827. (3) 14-32     procedure ExchangeBytes(var I, J : Byte);
  4828.                 {-Exchange bytes I and J}
  4829. (3) 14-33     procedure ExchangeWords(var I, J : Word);
  4830.                 {-Exchange words I and J}
  4831. (3) 14-32     procedure ExchangeLongInts(var I, J : LongInt);
  4832.                 {-Exchange LongInts I and J}
  4833. (3) 14-33     procedure ExchangeStructs(var I, J; Size : Word);
  4834.                 {-Exchange structures I and J. Useful in sorts}
  4835. (3) 14-40     function MinWord(A, B : Word) : Word;
  4836.                 {-Returns the smaller of A and B}
  4837. (3) 14-40     function MaxWord(A, B : Word) : Word;
  4838.                 {-Returns the greater of A and B}
  4839. (3) 14-40     function MinLong(A, B : LongInt) : LongInt;
  4840.                 {-Returns the smaller of A and B}
  4841. (3) 14-39     function MaxLong(A, B : LongInt) : LongInt;
  4842.                 {-Returns the greater of A and B}
  4843. (3) 14-35     procedure FillWord(var Dest; Count, Filler : Word);
  4844.                 {-Fill memory starting at Dest with Count instances of Filler}
  4845. (3) 14-34     procedure FillStruct(var Dest; Count : Word; var Filler;
  4846.                                    FillerSize : Word);
  4847.                 {-Fill memory starting at Dest with Count instances of Filler}
  4848. (3) 14-29     function AddWordToPtr(P : Pointer; W : Word) : Pointer;
  4849.                 {-Add a Word to a pointer. No normalization or wrap checking
  4850.                   performed}
  4851. (3) 14-42     function PtrToLong(P : Pointer) : LongInt;
  4852.                 {-Convert pointer, in range $0:$0 to $FFFF:$000F, to LongInt}
  4853. (3) 14-38     function LongToPtr(L : LongInt) : Pointer;
  4854.                 {-Return LongInt L as a normalized pointer}
  4855. (3) 14-41     function PtrDiff(P1, P2 : Pointer) : LongInt;
  4856.                 {-Return the number of bytes between P1^ and P2^}
  4857. (3) 14-29     function AddLongToPtr(P : Pointer; L : LongInt) : Pointer;
  4858.                 {-Add a LongInt to a pointer, returning a normalized pointer}
  4859.  
  4860. OpSort  Procedures and Functions
  4861. ==============================================================================
  4862.  
  4863. (3) 14-48     function PutElement(var X) : Boolean;
  4864.                 {-Put a sort element into the sort array}
  4865. (3) 14-47     function GetElement(var X) : Boolean;
  4866.                 {-Get next element from the sorted array}
  4867. (3) 14-49     function Sort(Elements    : Word; ElementSize : Word;
  4868.                             GetElements : GetPutProc; LessFunc : UserLessFunc;
  4869.                             PutElements : GetPutProc) : SortStatus;
  4870.                 {-Sort a group of elements}
  4871.