Aztec C86, version 4.10d Release Document 26 Oct 88 This "readme" file describes what's new version 4.10d of Aztec C86. For more information on Aztec C86, see the printed release documents for versions 4.10a and 4.10c. In particular, these printed documents contain packaging information and describe features in Aztec C86 that have been added since the manual was last printed. Version 4.10d of Aztec C86 differs from version 4.10c in the following ways: (1) sdb has been enhanced; and (2) bugs have been fixed. The programs and functions that have had bugs fixed are: * cc * cgen * as * z * hex86 * signal() and raise() * all libraries The new versions of cc, cgen, and as must be used together; you can't, for example, use v4.10c of cc with v4.10d of cgen. The following paragraphs describe the new features of sdb. 1. SDB: New Features Version 4.10d of sdb has the following new features: * Separate virtual screens for sdb and the program being debugged are now required. * sdb's screen is now formatted, with different sections of the screen being used for different purposes. * The Microsoft mouse, and compatibles, are now supported by sdb. * A new program, initsdb, is used to configure sdb. THIS PROGRAM MUST BE RUN BEFORE SDB. * A new environment variable, SDBOPT, can be used to pass options to sdb. * sdb's bm command (memory-change breakpoint) now works. * The new be command sets an expression breakpoint. When the specified expression is true, a breakpoint is taken. * sdb now supports the 43-line mode of EGA display adaptors. * The -w option has been changed. It now suppresses restoration of the program screen when single-stepping, thus reducing screen flicker. The old meaning of -w has been taken over by the new -p option. * The w command has been changed. It now toggles screen restoration mode. For example, if screen restoration was disabled, the w command disables it. * The new -p option, defines the display page that sdb is to use for its screen. * The new -m option defines the memory address at which the display memory begins. Page 1 Aztec C86, v4.10d Release Document The following paragraphs describe these features in detail. 1.1 Virtual screens Separate virtual screens for sdb and the program being debugged are now required. sdb uses one virtual screen to display its information and to get operator commands, and the program uses the other. As with previous versions of sdb, virtual screens can either be stored in display adaptor pages or in sdb buffers: + Virtual screens can be stored in a display adaptor page, if the display adaptor has multiple pages. (The CGA is one such adaptor). sdb's screen is stored in one page, and the program is free to use any other page. Screen swapping is fast, since to switch the display from one virtual screen to the other, sdb simply outputs a single command to the display adaptor. + Virtual screens can be stored in sdb buffers, if the display adaptor has only one display page; it can also be used if you want sdb to share display page 0 with the program that's being debugged. To switch the display from one virtual screen to the other, sdb stores the screen page in one of its buffers, and restores the virtual screen that's in the other buffer. You define the display type when you run initsdb. If the display contains only one page, then sdb will automatically store virtual pages in its own buffers. If the display contains multiple pages you tell initsdb where virtual screens are to be stored. If display pages are to be used, you tell initsdb the page that sdb is to use; this can be overriden when sdb is started, using the new -p option. The -p option has the form -px, where x is the number of the page that sdb is to use. 1.2 Formatted Screen sdb's virtual screen is now formatted, with different sections of the screen displaying different information, as follows: * The top line lists the name of the source file currently being displayed, and specifies whether sdb is in source or assembly mode. * The next few lines display lines in the current source file. These lines act like a window into the source file, a window that can be moved (as described below) to display different sections of the source file. * The next line is used to enter and display commands. sdb maintains a log of commands, and this line acts like a window into that log. You can move the window around within the log, and then easily rexecute a previously-entered command. * The remaining lines are used for sdb output. sdb remembers data that it has previously displayed, and these lines act like a window onto that data, a window that can be moved to recall different sections of the displayed data. * The rightmost column contains a scroll bar and other features that are used with a mouse. Page 2 Aztec C86, v4.10d Release Document 1.3 Keys used to manipulate sdb Function keys and cursor-motion keys have meaning to sdb, as follows: Key Meaning F1 Scroll source window up one line F2 Scroll source window down one line F3 Move command line up one line (also makes source window one line smaller and data window one line larger) F4 Move command line down one line (also makes source window one line larger and data window one line smaller) F5 Scroll data window up one line F6 Scroll data window down one line Alt-F1 Move source window to the top of the source file Alt-F2 Move source window to the bottom of the source file Alt-F3 Move the command line to the top of the screen Alt-F4 Move the command line to the bottom of the screen Alt-F5 Move the data window to the top of the data buffer Alt-F6 Move the data window to the bottom of the data buffer Shift-F1 Move the source window to the position at which it was located before the previous Alt-F1 or Alt-F2 Shift-F2 Same as Shift-F1 Shift-F3 Move the command line to the position at which it was located before the previous Alt-F3 or Alt-F4 Shift-F4 Same as Shift-F3 Shift-F5 Move the data window to the position at which it was located before the previous Alt-F5 or Alt-F6 Shift-F6 Same as Shift-F5 F9 Scroll source window to current source line F10 Toggle between Source and Assembly modes PgUp Move the source window up one page PgDn Move the source window down one page Up arrow Move command window up one line in the command log Dn arrow Move command window down one line in the command log Left arrow Move cursor left one character on the command line Right arrow Move cursor right one character on the command line Delete Delete the character on the command line that's under the cursor Home Move the cursor to the beginning of the command line End Move the cursor to the end of the command line Escape Display the other virtual screen Right single quote Same as Escape Control-L Redraw the screen 1.4 Using a mouse There are three sections of the sdb screen in which a mouse can be used: the scroll bar at the right of the screen, the top line of the screen, and the command line. These sections are described in the following paragraphs. Page 3 Aztec C86, v4.10d Release Document 1.4.1 The scroll bar The scroll bar has three sections. The box in the middle of the bar with the up and down triangles positions the command line on the screen, and hence indirectly controls the size of the source and data windows. The area above the triangles positions the source window; the area below the triangles positions the data window. 1.4.1.1 Moving the command line To move the command line with the mouse, move the mouse cursor to the box that contains the triangles. Press and hold the left mouse button, drag the cursor to the desired location, and release the mouse button. 1.4.1.2 Positioning the source window The area of the scroll bar that positions the source window contains a solid rectangle; this indicates the current position of the window within the source file. When the rectangle is at the top of the area, the window is at the top of the file; when the rectangle is at the bottom of the area, the window is at the bottom of the file; and so on. Using the mouse, you can move the rectangle within the scroll bar; this causes the source window to move the source window within the source file. To do this, put the mouse cursor in the rectangle, press and hold the left mouse button, move the mouse cursor to the desired position in the scroll bar, and release the button. At the top of the source window's section of the scroll bar are two upward-facing arrows. To scroll the source window up a line at a line, move the mouse cursor to the arrows, press and hold the left mouse button. The source window will begin scrolling upward. When it reaches the desired location, release the button. At the bottom of the source window's section of the scroll bar are two downward-facing arrows. They are used to scroll the source window down a line at a time, in a manner analagous to the up arrows. To move the source window up a page, move the mouse cursor somewhere below the up arrows and above the rectangle, and click the left mouse button. To move the source window down a page, move the mouse cursor somewhere above the down arrows and below the rectangle, and click the left mouse button. To move the source window to the beginning or end of the source file, move the mouse cursor to the up or down arrows, respectively, and click both mouse buttons. 1.4.1.3 Positioning the data window The data window's section of the scroll bar looks just like the source window's, and is used in the same way. For example, (1) the rectangle indicates the position of the window in the data buffer and can be used to move to the data window within the data buffer; (2) the up arrows scroll the data window up in the data buffer one line; (3) the down arrows scroll the data window down one line; (4) and so on. Page 4 Aztec C86, v4.10d Release Document 1.4.2 Using the mouse on the top line The top line of sdb's virtual screen has a section that specifies whether sdb is in source or assembly mode, and a section that lists the file that's currently displayed in the source window. To use the mouse to toggle between source and assembly mode, move the mouse cursor to the top line's source/assembly mode section and click the left mouse button. To move the source window back to the source line at which execution is currently stopped, move the mouse cursor to the top line's source file section and click the left mouse button. 1.4.3 Using the mouse on the command line The mouse can be used to position the text cursor on the command line. To do this, just move the mouse cursor to the desired location and click the left mouse button. 1.4.4 Switching screens with the mouse The mouse can be used to switch the display from one virtual screen to another: just click the right mouse button. 1.5 The SDBOPT environment variable The SDBOPT environment variable can be used to pass frequently-used options to sdb, without having to explicitly list them on the command line when sdb is started. For example, if you always want the -p2 option to be specified when sdb is started, you could set SDBOPT like this: set SDBOPT=-p2 1.6 The initsdb utility The initsdb utility is used to define the attributes of your monitor to sdb and the way you want the lines on sdb's virtual screen to appear. The information you select is written to a file named sdb.ini. 1.6.1 Using initsdb initsdb's screen is organized into four sections. The top three sections are used to set options, and the bottom section summarizes the keys that you can use with initsdb. The three option-selecting sections are entitled Basic Options, Advanced Options, and Color selection. Selections are toggled using the key. In the Basic Options section you define the type of monitor you have, and for CGA monitors, whether you want "snow" removed. This section also has options that you select to write your choices to the sdb.ini file, to abort without writing anything, and to quit after writing. In the Color Selection section you define the attributes of the various lines that appear on sdb's screen; i.e. the foreground and background color of each type of line. There are five lines in the Color Selection section, each of which corresponds to one type of line on the sdb screen. To select the attributes of a line, move the cursor to a line; then type 'f' or 'F' Page 5 Aztec C86, v4.10d Release Document to advance or decrement the line's forground color. Type 'b' or 'B' to advance or decrement the line's background color. The Advanced Options section contains several display-dependent options. You are only allowed to change the ones that are relevant to your monitor. For example, if you have an EGA monitor, you can select the option that causes sdb to use a 43 line screen. If you have a CGA monitor, you can select whether you want sdb and the program that's being debugged to share the same display page or whether you want sdb and the program to each have a separate display page. 1.6.2 The sdb.ini file Configuration options are stored in a file named sdb.ini. When sdb and initsdb start, they look for this file first in the current drive's current directory, and then in the directories specified in the PATH environment variable. initsdb writes configuration options back to the same file; if it didn't find an sdb.ini file, it writes the options to an sdb.ini file in the current directory. 1.7 Summary of new and changed sdb options Here is a summary of the new sdb options: -px On a CGA monitor, have sdb use page x for its screen. -mx Display memory begins at paragraph x, where x is a hexadecimal number. If this option isn't used, sdb will use the standard value for your type of display. -w When single-stepping, don't restore the program's screen. 1.8 Summary of new and changed commands Here is a summary of the sdb commands that are new or have changed: w Toggle screen restoration mode. be Set or remove a memory change breakpoint Page 6