Screen Machine Screen Development System for Programmers Version 2.02 Published by ASMicro Co. P.O. Box 1109 Half Moon Bay, CA 94019 U.S.A. Copyright (C) 1985, 1992 ASMicro Co. All rights reserved. Printed in the United States of America Contents Introduction . . . . . . . . . . . . . . . . . . . . . . . . 1 Section 1: Configuring and Starting SCREEN.EXE . . . . . . . 4 Section 2: The Screen Editor . . . . . . . . . . . . . . . . 18 Section 3: Screen Capture . . . . . . . . . . . . . . . . . 38 Section 4: Using SHOW for Disk Management & Menus . . . . . 42 Section 5: Advanced SHOW Features . . . . . . . . . . . . . 49 Section 6: Show Runtime Programs . . . . . . . . . . . . . 59 Appendix A . . . . . . . . . . . . . . . . . . . . . . . . . 61 Appendix B . . . . . . . . . . . . . . . . . . . . . . . . . 64 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . i Trademarks The following trademarks are used throughout this manual. When you come across them, please remember that they are the registered trademarks of the companies shown below. IBM, IBM PC, IBM PC XT and IBM PC AT are trademarks of International Business Machines Corporation. MS-DOS and Microsoft Word are trademarks of Microsoft Corporation. Turbo Pascal, SideKick and SuperKey are trademarks of Borland International. dBASE II, dBASE III and dBASE III Plus are trademarks of Ashton- Tate Corporation. Lotus 1-2-3 is a trademark of Lotus Development Corporation. i Licensing and Ordering Information DISCLAIMER ASMicro hereby disclaims all warranties relating to this software, whether express or implied, including without limitation, any implied warranties of merchantability or fitness for a particular purpose. ASMicro will not be liable for any special, incidental, consequential, indirect or similar damages due to loss of data or any other reason, even if ASMicro or an agent of ASMicro has been advised of the possibility of such damages. In no event shall ASMicro's liability for any damages ever exceed the price paid for the license to use software, regardless of the form of the claim. The person using the software bears all risk as to the quality and performance of the software. ii Licensing and Ordering Information LICENSE Screen Machine is not, and has never been, in the public domain. Screen Machine is not free. Non-registered users are granted a limited, 90-day license to use Screen Machine to determine whether or not the program meets their needs. Continued use of Screen Machine beyond the 90-day valuation time period requires registration of the package. Use of non-registered copies of Screen Machine beyond the original evaluation period is strictly prohibited. No one may modify Screen Machine for any reason, in any way, including but not limited to, decompiling-compiling, patching, disassembling, or reverse engineering the program. These restrictions also apply to all Screen Machine screen displays such as the opening screen, help screen, and all other proprietary program output. Screen Machine may be copied and distributed to others, subject to the above restrictions and the following: Screen Machine must be copied in unmodified form, including the file containing this license information. Complete Screen Machine documentation and online-help must be included. No copying fee of any type may be assessed other than basic charges for the cost of the copying medium. Screen Machine may not be distributed with any other software or hardware product(s) without the express written permission of ASMicro Corp. Sysops (bulletin board SYStem OPerators) may make Screen Machine available for downloading by their users as long as all above conditions are met. This agreement supersedes any and all previous agreements. No blanket authorization has been issued by ASMicro Corp., for commercial distribution of its products. iii Licensing and Ordering Information ORDERING INFORMATION When you register your copy of Screen Machine, you are granted a license to use the package as often as you wish. There are distinct advantages to registering your copy of Screen Machine: 1. You may contact ASMicro Co. through the mail with technical questions. 2. Automatic notification of upcoming major new releases or enhancements through the mail. In order to register your copy of Screen Machine, send a completed Registration form and a check for $9.95. We will assume that you have already obtained the program and documentation elsewhere. For an additional $10 ($19.95 total), you will receive the latest version of Screen Machine, documentation, and utilities on diskette. Non-U.S. residents: please send checks or money orders drawn on U.S. Banks or in U.S. Funds. All foreign orders are subject to current U.S. foreign trade and technology exchange restrictions. iv Licensing and Ordering Information Order Form Remit To: ASMicro, Co. P.O. Box 1109 Half Moon Bay, CA 94019 Qty. Description Amount ____ Screen Machine Registration $9.95 ea _________ ____ Latest Version (Diskette only) $10.00 ea _________ Total _________ Payment: Check [ ] Money Order [ ] Name: _________________________________________________________ Company:_________________________________________________________ Address:_________________________________________________________ _________________________________________________________ Work Phone: (____) ____________ Home Phone: (____) ___________ Signature: ________________________________________ v Screen Machine Introduction Screen Development System Introduction What is Screen Machine ? This package is a total screen management system, consisting of three main executable programs: SCREEN.EXE allows you to easily design screens and to automatically generate source code to reproduce the screens you design. CAPTURE.COM lets you capture any text screen in any program and store it on disk so that you can edit it with SCREEN.EXE or a text editor, or load it directly into video memory. SHOW.COM is used for creating program prototypes and interactive demonstration programs. This program can also be used for DOS management via a menu system. System Requirements ___________________ The system requirements for this package are: * An IBM PC, XT, AT or close compatible * PC-DOS or MS-DOS 2.10 or later. * 192K of RAM * 1 Diskette drive (320K or larger) * 80 column monitor Program Distribution ____________________ You may freely distribute your screens (in binary format) and executable programs created by SHOW.COM (See Section 5). You do not need to put any ASMicro copyright notices in your programs, nor do you need to pay any royalties. You are NOT licensed to distribute any of the other programs and/or files on the Screen Machine diskette. 1 Screen Machine Introduction Screen Development System Organization of This Manual ___________________________ Section 1 covers the configuration and startup of SCREEN.EXE, the screen editor. Section 2 discusses the use of SCREEN.EXE, after it has been started. Section 3 explains the use of CAPTURE.COM for capturing screen images to disk. Section 4 shows you how to use SHOW.COM to create disk management menu systems. Section 5 explains the advanced features of SHOW.COM and how to use SHOW.COM to create slide shows, prototype programs and demos. Section 6 tells you how to create runtime programs for distribution of your demos and prototypes. Appendix A contains charts showing keyboard scan codes on IBM and compatible computers. Appendix B contains a listing of the syntax errors generated by each of the executable programs. Files Included in the Product _____________________________ CAPTURE.COM is the memory-resident program used for capturing screen displays to disk files. See Section 3. DEMO1.BAT demonstrates how to use the advanced SHOW features (as described in Section 5). DEMO1.DAT contains the commands used by DEMO1.BAT. DEMO1.001 through DEMO1.005 are screen data files used by DEMO1.BAT. DEMO2.BAT demonstrates how to use the advanced SHOW features (as described in Section 5). This demonstration emulates SCREEN.EXE. DEMO2.DAT contains the commands used by DEMO2.BAT. 2 Screen Machine Introduction Screen Development System DEMO2.001 through DEMO2.004 are screen data files used by DEMO2.BAT. HELC1.@#$ and HELC2.@#$ are the two SCREEN.EXE help screens for the extended (graphics) character set. See Section 2. HELP1.@#$ is the first main help screen presented by SCREEN.EXE when the key is pressed. See Section 2. HELP2.@#$ is the second main help screen presented by SCREEN.EXE when the key is pressed. See Section 2. HELP3.@#$ is the third main help screen presented by SCREEN.EXE when the key is pressed. This screen is meant to contain definitions of the macros you use in SCREEN.EXE. Therefore, if you modify your macros on a permanent basis, you may wish to edit this screen accordingly. See Section 2. HELPC.@#$ is the COLOR help menu displayed by SCREEN.EXE if you press the key when the color changing menus are on the display. See Section 2. MAINMENU.BAT is a sample disk management menu system. MAINMENU.001 is a screen data file used by MAINMENU.BAT. See Section 4. MENU1.@#$ is the main menu displayed by SCREEN.EXE. See Sections 1 and 2. READ.ME may not be present on your diskette. This ASCII text file is present if minor revisions are made to the programs prior to our being able to reprint the manual. SCREEN.CFG is the default SCREEN.EXE configuration file. See Section 1. SCREEN.EXE is the full screen editor program. See Sections 1 and 2. SHOW.COM is the screen display/demo program. See Sections 4 and 5. SAMPLE.C is a sample Microsoft C routine which can be used to display the C language structures generated by Screen Machine. 3 Section 1 Configuring and Starting Screen Machine Configuring and Starting SCREEN.EXE What is SCREEN.EXE ?? SCREEN.EXE is a screen editor and screen source code generator. The screen editor has on-line help and support for designing screens with color and graphics characters. This makes SCREEN.EXE perfect for designing menus and other screens with fancy attributes and borders. Using this program, you will create more readable screens in a fraction of the time it would otherwise take. The source code that will reproduce the screens you design can be automatically generated in a variety of formats. This eliminates the drudgery of writing code which locates the cursor, sets the appropriate colors and prints the text or graphics characters. It allows you to be more creative and to painlessly lay out your screen displays with perfect centering. The screen editor allows centering within graphics character borders and even shifting of the entire screen. Once you have formatted a screen and elected to save it, a screen data file is written using a filename you specify. When the screen is saved, the actual source code to reproduce the screen is also generated and stored. For example, if your data filename is "menu1", and SCREEN is configured to generate BASIC source code, the screen data is stored in "MENU1" and the BASIC source code to produce the display is stored in "MENU1.BAS". SCREEN can be configured to generate screen source code in five major languages: BASIC Additional parameters you may define when generating BASIC source code are: * starting line number. * line number increment. * whether attributes (and resulting color statements) are to be included. * maximum number of characters per line of source code 4 Screen Machine Configuring and Starting Screen Development System (or one line of source code per line of screen display). Assembler Language SCREEN will generate DB statements for inclusion in Assembler language programs. You supply the configuration program with segment names and classes as well as alignment types. dBASE II, dBASE III and dBASE III Plus If you use one of these products, you can have SCREEN generate program statements automatically. Turbo Pascal SCREEN can generate Turbo Pascal Code. C SCREEN can generate an array of C structures which describe the screen data. The C structures can be displayed by programs that you write or you can use the sample C code provided on the SCREEN MACHINE disk to display the C structures (See the file: sample.c). 5 Screen Machine Configuring and Starting Screen Development System Starting the SCREEN Program ____________________________ To start the program, type SCREEN at the system prompt and press the key. You will be presented with three options: * [F1] Configure System * [F2] Edit Screen Data File * [Esc] Exit SCREEN This section describes the first option, "Configure System". Section 2 describes how the SCREEN program operates once you have selected the "Edit Screen Data File" option. Configuration File __________________ One of the files included in this product is named "SCREEN.CFG". When you start SCREEN for the first time, the program will use the options set in this default configuration file. Configuring SCREEN.EXE ______________________ Whenever it is started, SCREEN looks for its configuration file. The search takes place as follows: * If you specified a screen name on the command line, the directory containing the screen file is searched. * If you did not specify a screen name on the command line, or if you did but the configuration file was not found there, the current directory is searched. * Lastly, SCREEN.EXE will search the directory specified in the DOS environment variable SCREEN. See the next subsection. If the configuration file is still not found, you will be asked if you wish to create one. If you do not elect to create the configuration file, the program will end, since SCREEN cannot run without this file. 6 Screen Machine Configuring and Starting Screen Development System If you DO want to create a new configuration file, type a "Y" and press the key. Setting an Environment Search Path __________________________________ You can tell SCREEN.EXE to look in a pre-defined subdirectory for the configuration and help files by setting the DOS environment variable SCREEN. For example, from the DOS prompt, or within your AUTOEXEC.BAT file, enter: SET SCREEN=C:\MACHINE\CONFIG What this does is to tell SCREEN.EXE to search the directory "C:\MACHINE\CONFIG" for the file SCREEN.CFG and all the help files (with an extension ".@#$"). This is handy when you want only a single configuration file, but you want to be able to call up SCREEN.EXE from anywhere in your system (this presumes you have set the DOS path to include the subdirectory containing SCREEN.EXE). Changing the Configuration File _______________________________ You can "override" the configuration that SCREEN uses, after having started the program, by choosing the first option from the main menu. The most likely use for this would be to temporarily do something differently (for example, if you normally generate dBASE code but you want to create BASIC source code for this particular screen). You may find this the easiest way to create your first configuration file, overriding the default file on your distribution diskette and then saving the configuration. When you select the configuration option, you will be asked a series of questions; most are self-explanatory and require simple yes or no replies, while others require you to choose from a set of "legal" replies. For your replies, you may enter upper or lower case and you must press the enter key after each response, even if the reply is a single character. All prompts are displayed with the "default" response printed directly after the question, enclosed in square brackets [ ]. To choose the default response, simply press the key. 7 Screen Machine Configuring and Starting Screen Development System Note that you can stop the configuration process at any time by pressing the 'ESC' key. If you do, you will go directly to the end of the configuration routine and will be asked if you want to make the changes permanent (see the end of this section), with the remaining, un-asked questions taking on the default values. The default answers are those you gave during previous configuration sessions. The following are typical of the questions you will see on the screen during the configuration process, in question and answer format (Q: and A:): Save With Attributes Q: SCREEN normally saves files with color attributes included. You may, however, save files in 'text' mode, without color attributes. The file is then a simple DOS text file that can be merged into other programs, or typed, etc. Do you wish files to be saved with attributes [Y] ? A: Since 'Y' is the default response, pressing the Enter key will leave the answer at 'Y'. Alternatively, you may press 'y', 'N' or 'n' as a response. A "Y" response to this prompt will cause SCREEN to save files with color attributes included. That is, if your screen had several different colors mixed on the display, the color information will be saved in the disk file. The response to this prompt also affects the code generation for each of the major languages, described later in this section (if you have elected to generate code). If you reply "Y", source statements will be generated that display color and the assembler code will have attribute bytes included in its data. If you respond with an "N", the file is saved without color information and has a carriage return/line feed appended to each screen line. The saved file is an ASCII text file, and can be merged into your text editor, word processor, etc. Generate BASIC Code Q: Do you want BASIC source code automatically generated for the screen [N]? 8 Screen Machine Configuring and Starting Screen Development System A: 'Y' or 'N' Replying "Y" will cause BASIC source code to be written to a disk file of the same name as your screen file (but with the extension of ".BAS") whenever you save a screen. If you will not be generating BASIC code, respond with an "N". You may then skip to the section on dBASE code (on page 10), since the configuration routine will not prompt you for the rest of the questions pertaining to BASIC. Starting Line Number Q: You must specify certain values for the BASIC code to be generated. Starting line number of generated code [100] A: If you want a line number other than 100, type it in and press the key. This is simply the line number you wish SCREEN to place on the first statement it generates. SCREEN can be made to generate code for the newer BASIC compilers (i.e. without line numbers) by responding with a "0" to this question. In this case, do not simply press as it will cause the program to use the default starting line number. Line Number Increment Q: Line number increment [10] A: A number greater than zero You can cause line numbers to increment by any amount you wish, although it is your responsibility to prevent line numbers from exceeding the BASIC maximum of 65535. Length of Source Code Lines Q: SCREEN can write any number of characters from a single statement up to 255 characters. How many characters do you want placed on a single line [220] ? 9 Screen Machine Configuring and Starting Screen Development System A: A number from 1 to 255 By default, SCREEN will generate one source code line for each line of the screen which contains attributes or data to be displayed. The source code line will consist of one or more BASIC language expressions (e.g. "LOCATE", "COLOR", "PRINT") separated by colons. However, in some cases it is useful to vary the number of expressions placed on a single line of source code. For example, since each line of BASIC source code requires additional memory (except for newer compilers), it occasionally becomes necessary to pack as many expressions as possible on a single BASIC source code line. SCREEN will place BASIC expressions on a single source code line until the total number of characters contained in the expressions meets or exceeds the number you enter here. When the maximum number of characters is reached, SCREEN will complete the expression being generated and advance to a new source code line number. Thus, a low value entered here would cause SCREEN to generate only one BASIC expression for each line of source code. You may specify any value from 1 to 255. The exact number of characters will vary from this number by some small amount. If you plan to take advantage of the feature of SCREEN described in the next prompt (we highly recommend that you do), you may answer this question with any legal value -- it will be ignored anyway. One Source Line Per Screen Line Q: To make your BASIC code more readable, you can cause SCREEN to ignore the preceding value and generate one source line for each line of the screen. Do you want to do this [Y]? A: Y or N SCREEN offers the capability to write one BASIC source line (up to 255 characters) for each of the lines of the screen being saved. In other words, the first source line contains all of the code necessary to recreate the first non-blank line of the screen, the second source line, the second non- blank line of the screen, etc. This will often make the 10 Screen Machine Configuring and Starting Screen Development System code more readable. To enable this feature, type a "Y" and press . Generating 'C' Code Q: SCREEN can generate 'C' code. Do you want C source code automatically generated for each screen [N]? A: Press for the default response or type in 'Y' or 'N'. If you want SCREEN to automatically generate C source code that displays your screen, answer 'Y' at the prompt. Generating dBASE Code Q: SCREEN can generate source code for either dBASE II or dBASE III. For dBASE II, enter 'II'; for dBASE III, enter 'III'. To skip generation of dBASE code, enter 'N'. A: Enter 'N', 'II', or 'III'. Generating Assembler Code Q: SCREEN can generate a source file containing the assembler DB statements which define your screen. The module can then be assembled and linked with a user program. Do you want this code automatically generated for each screen [N]? A: Press for the default or enter 'Y' or 'N'. In order to generate assembler code, respond with a "Y" when prompted. If you will not be generating any assembler code, respond with an "N". You may then skip to the section entitled "Generating Turbo Pascal Code". If you answer 'Y', you will be prompted to answer more questions. It is assumed you are familiar with the assembler, as well as linking multiple modules with the linker. 11 Screen Machine Configuring and Starting Screen Development System The questions you will be asked are: Q: When creating an assembler source file, SCREEN uses two segments; a data segment and a code segment. The code segment is empty and the data segment contains the DB statements (both segments may have the same name). Name for data segment [DATA]? A: Press for the default or type the name of your data segment. This name is limited to 8 characters in length. Q: The data segment will be given a combine type of PUBLIC. You must specify the align type to use. Legal align types are: BYTE, WORD, PARA, or PAGE. Align type for data segment [WORD]: A: Press for the default or type in one of BYTE, WORD, PARA or PAGE. Q: You may now specify a class name to be associated with the data segment and passed to the linker. The assembler requires the class name to be enclosed in quotes; however, SCREEN will enclose the name in quotes for you. Class name for data segment [DATA]: A: Press for the default or enter a class name. This name is also limited to eight characters and SCREEN will enclose the name in single quote characters for you. Q: Name for code segment [CODE]: A: Press for the default or enter a segment name. Both segments (e.g. code and data) may be the same by giving them the same name and attributes (which will be necessary to create a .COM file). Q: Align type. Remember, legal align types are: BYTE, WORD, PARA or PAGE. Align type for code segment [BYTE]: 12 Screen Machine Configuring and Starting Screen Development System A: Press for the default or type in one of BYTE, WORD, PARA or PAGE. Q: Class name for code segment [CODE]: A: Press for the default or enter a class name. Generating Turbo Pascal Code Q: SCREEN can also generate source code for Turbo Pascal. Do you want TURBO source code automatically generated for each screen [N]? A: Press for the default response or type in 'Y' or 'N'. If you want SCREEN to automatically generate Turbo Pascal code that displays your screen, answer 'Y' at the prompt. A: Press for the default response or type in 'Y' or 'N'. Default Colors Q: The following are acceptable color choices: 0. Black 1. Blue 2. Green 3. Cyan 4. Red 5. Magenta 6. Brown 7. White 8. Dark grey 9. Light blue 10. Light green 11. Light cyan 12. Light red 13. Light magenta 14. Yellow 15. Intense white Choose color for default foreground [7]: 13 Screen Machine Configuring and Starting Screen Development System A: Press for the default or enter the number corresponding to your selection. Q: The following are acceptable color choices: 0. Black 1. Blue 2. Green 3. Cyan 4. Red 5. Magenta 6. Brown 7. White Choose default color for background [0]: A: Press for the default or enter the number corresponding to your selection. The foreground and background colors which you select here will be your default working colors. The SCREEN program screens (including all help screens) will be displayed in these colors. If you have elected to save screens with attributes (see "Save With Attributes" near the beginning of this section), any source code generated will use these colors by default for areas of the screen where no specific colors have been chosen. If you have a monochrome monitor, you should select a white or intense white foreground on a black background. Other colors may be selected, however they will appear as either black and white or underlined on your monochrome monitor. For example, a blue foreground causes the data on the screen to be underlined. See your BASIC manual's description of the COLOR statement for a further discussion of the monochrome monitor display equivalents of the various color combinations. Saving Your Configuration _________________________ When you have responded to all of the configuration prompts, the following prompt will appear: Make these changes Permanent [N] 14 Screen Machine Configuring and Starting Screen Development System If you want to permanently store the configuration options which you have just selected, type a "Y" and press . This will cause SCREEN to replace the contents of SCREEN.CFG with your newly defined configuration. If you do not wish to permanently save the configuration options just selected, press the key. The changes you made, if any, will apply only to your current session with SCREEN. Loading a Screen Data File __________________________ If you select main option 2 from the menu, you will be prompted with the following message: Below, enter the filename that will be used to store your screen data. This filename will also be used (with appropriate extension, e.g. ".BAS") when generating the source code to reproduce the screen. To select from a list of screen data files, enter the file specification to search for (e.g. "\dat\*.*"). Enter Filename: Press to return to main menu. At this point you may press or to return to the main menu. To continue, enter either a specific file name or a search specification. Both of these options are discussed below. In addition, if you have just exited from the screen editor (with or without saving the screen), you may press the key to automatically re-enter the name of the last screen file edited. Entering Specific File Names ____________________________ You can enter a valid DOS filename, in the following format: d:\path\xxxxxxxx.ext, where: d: (optional) is the disk drive on which the file is to be loaded/saved. If it is not specified, the default drive will be used. 15 Screen Machine Configuring and Starting Screen Development System \path\ (optional) is the path name to be used when loading/saving files. If it is not specified, the current directory will be used. xxxxxxxx (required) is a legal DOS filename of 1-8 characters in length. Do not use DOS wildcards in the name, unless you want SCREEN to display the names of files (see next heading). If you are editing a new file, the filename should be different from any other existing files in the specified subdirectory. EXT is the optional 3 character filename extension. Note that if the extension is specified, it should not be ASM, BAS, PAS or PRG, since source code files with these extensions are created if you have configured SCREEN to generate source code. If a valid file is found that matches your input, it will be loaded and displayed on the monitor and you will be placed in edit mode (see next section). A valid file is either 2050 bytes (without attributes) or 4000 bytes (with attributes) in length. If the file is not found, SCREEN will assume that you want to create a new file and will place you in edit mode. In addition, the words "New File" will flash at the bottom of the screen until you press another key. Enter a Search Specification ____________________________ If you would like SCREEN to display the available valid screen files, enter a search specification. The specification takes the same format as a DOS DIR command: d:\path\xxxxxxxx.ext d: (optional) is the disk drive which will be searched. If it is not specified, the default drive will be used. \path\ (optional) is the path to be used when searching. If it is not specified, the current directory will be used. xxxxxxxx (required) is a combination of characters and wildcards ('*' and '?') of 1-8 characters in length. EXT is the optional 3 character filename extension and may also contain DOS wildcard characters. 16 Screen Machine Configuring and Starting Screen Development System After entering the search specification, SCREEN will search for all valid files (e.g. 2050 bytes or 4000 bytes in length) and display the names of the files on the screen. One of the names will be highlighted and you can move the highlight with the cursor keys. Press to load the highlighted file or to return to the "Load a file" menu. If you load a highlighted file, you will be placed into edit mode (see next section). 17 Section 2 Screen Editor Screen Machine The Screen Editor Keyboard Usage and Online Help ______________________________ While you are in the full screen editor, you can use any of the alphanumeric keys to enter text on your screen. The function keys through are reserved for the editor's functions. Similarly, the use of the and keys in combination with the through keys are reserved. The use of the in combination with the through keys is reserved to execute saved keystrokes (see "Keyboard Macros" in this section). The use of each function key is explained in this section. However, for general reference, if you need an online reminder of the reserved key definitions, simply press the key any time you are in the screen editor. On-Line Help ____________ This sub-section describes the general help that is available. There are additional help screens for graphics characters, color and keyboard macros that are discussed later in this section. When you press the help key while editing a screen, the editor will display the following screen: Function Keys Help - Mark Repeat Mark Line - End Repeat Copy - Repeat Character Move - Reverse Video Insert Line - Exit W'out Save Delete Line - Help Graph Characters Shift Screen Left - Center Shift Screen Right - Center in Box Cancel - Draw Single Box Color - Draw Double Box 18 Screen Machine Screen Editor Screen Development System If this screen lists the meaning of the function key you need to know, you can then press any key (except F1) to return to the full screen editor. If you need to view the meanings of other reserved keys, press the function key while viewing the screen shown above. The editor will display the following screen: Function Keys Continued - Unmark Block - Delete Block - Mark Block - Recall Block - Re-mark Block - Unused - Save to Memory - Unused - Recall from Memory - Unused Other Keys Save file and exit Editor Move to end of line Move to beginning of line - Move to bottom right corner of screen - Move to top left corner of screen Move to top line of current column Move to bottom line of current column ** Press for more help or any other to exit ** At this point you may return to the full screen editor by pressing any key except . If you press the key, you will be shown the current macros assigned to the macro keys (see the discussion on macros, later in this section.) Note that if you change the macro keys and you want the macro definition help screen to reflect the changes, you must edit the file "HELP3.@#$". Save File and Exit __________________ Pressing the key while in screen edit mode automatically saves the screen image, generates source code according to the configuration file and returns to SCREEN's main menu. If you wish to immediately re-load the same screen file for editing (i.e., "save and continue"), you may press the key. This automatically enters the name of 19 Screen Machine Screen Editor Screen Development System the last screen file edited. Exit Without Save - _________________ If you want to return to the main menu without saving the screen image (and abandoning any changes) and without creating source files, hold the key and press once. The program will ask you to confirm that you wish to exit without saving your work. If you do confirm your request (by pressing 'Y'), you will return to the main menu. If you answer with 'N', you will be returned to edit mode. If you return to the main menu, and if you wish to immediately re-load the same screen file for editing (i.e., "save and continue"), you may press the key. This automatically enters the name of the last screen file edited. Cursor Movement _______________ You can use the alphanumeric keys to enter lines of text on your screen. A few special keys to keep in mind when you are entering text are: Key Function Places the cursor in column 80. Places the cursor at the beginning of the current line. - Places the cursor at the bottom right corner of the screen. - Places the cursor at the top left corner of the screen. Places the cursor on the top line of the screen in the same column it is currently in. Places the cursor on the bottom line of the 20 Screen Machine Screen Editor Screen Development System screen in the same column it is currently in. Moves the cursor to the next tab stop to the right (tabs are set every 8 columns), but not past the end of the line. - Moves the cursor to the next tab stop to the left (tabs are set every 8 columns), but not past the beginning of the line. The cursor control keys located on the number pad (right, left, up and down arrows) perform their natural, instinctive functions. Note that the editor does not auto-wrap text when the end of a line is reached. Insert Characters _________________ A true insert mode is supported. Pressing the INS key toggles from insert to overstrike mode and back again. When in overstrike mode, the cursor is the standard underline type - in insert mode, the cursor is a full- cursor. Delete Characters _________________ To delete characters, move the cursor to the character that should be deleted, and press the key to remove it. Insert a Line _____________ To INSERT a blank line, move the cursor to the screen line where you want a line to be inserted, and press the key. The cursor will remain on the newly inserted blank line. Also, anything on the bottom line of the screen will vanish as the remainder of the screen lines are all relocated one line down (see Cancel function later in this section). Delete an Entire Line _____________________ To DELETE a screen line, move the cursor to the screen line 21 Screen Machine Screen Editor Screen Development System which you want to delete, and press the key. All lines below the line you delete will be moved up one line and a blank line will be inserted at the bottom of the screen. 22 Screen Machine Screen Editor Screen Development System Copy an Entire Line , ___________________ To COPY a screen line: * Move the cursor to the line you want to copy (the "source line"). * Mark the line by pressing the key. * Move the cursor to the line to which you want to copy the marked line (the "destination line"). * Copy the line by pressing the key. If the destination line was blank, the copied line is simply placed there, without altering the remainder of the screen. If there is already some data on the destination line, the copied line is "inserted" by first shifting all lines below the destination line down one (and dropping the bottom line off of the screen), and then placing a copy of the source line onto the line where the cursor is located. Repeated Line Copy __________________ Once you have marked a line (by positioning the cursor on it and pressing ), you can continue to make copies of it by placing the cursor on the desired destination lines and pressing . Un-Mark a Line ______________ To "unmark" the source line, either position the cursor on that line and press again (to toggle the mark off), or position the cursor on another line, press to mark the new line, and then press again to toggle the new line off. Move a Line ___________ To MOVE a screen line: * Locate the cursor on the line you want to move (the "source line"). * Mark the line by pressing the key. 23 Screen Machine Screen Editor Screen Development System * Locate the cursor on the line to which you want to move the marked line. * Press the key. The original source line is deleted, the screen is adjusted upward one line, and then the source line is copied into the line where the cursor is located. As with the copy line function, if the destination line was blank, the moved line is simply placed there, without altering the remainder of the screen. If there is already some data on the destination line, the moved line is "inserted" by first shifting all lines below the destination line down one (and dropping the bottom line off of the screen), and then placing a copy of the source line onto the line where the cursor is located. Cancel a Line Function ______________________ Any of the four line functions discussed above (Insert, Delete, Copy and Move) may be "canceled" by pressing the key before you begin any one of the four functions the next time. "Cancel" will restore a line deleted with , remove a line inserted with , or "undo" the effects of a copy or move line operation. "Cancel" always reverses the last line operation processed. Note that if a block is marked (see below) after a line operation takes place, the last line operation cannot be canceled. Center a Line - _____________ To center a line of text (between the left and right edges of the physical screen): * Place the cursor on the screen line to be centered. * Hold down the key and press . 24 Screen Machine Screen Editor Screen Development System Center the Screen , _________________ To center an entire screen of material, "shift" the entire screen one column at a time. To shift the screen to the right, press the function key. To shift the screen to the left, press . All 25 lines of the screen are shifted one column for each press of the function key. The characters which are "shifted" off of the screen (those in column 1 when shifting left) are lost; the columns at the other end (the right side when shifting left) are filled with spaces. Center Text in a Box - ____________________ This means you can build a menu box, place text anywhere inside of it, and then center the text within the left and right vertical borders of the box. All you need to use this function is a line with either ASCII character 179 (single vertical bar) or 186 (double vertical bar) on each side of one or more text characters on the same line as the cursor. You can center the text within the vertical bar characters by moving the cursor to where any part of the text appears and holding the key down and pressing the key. Note: This operation works on a single line at a time. You will need to move the cursor to each line within the box in order to center all of the text in a box. If this operation would cause a marked block of text to move, you will receive the warning message "Block operation pending. Use unmark first." If you have overlapping boxes, or two boxes on that pass through the line where your text is, the text will be centered within the box where the cursor appears. If the cursor is inside multiple boxes, the innermost box is used for centering purposes. 25 Screen Machine Screen Editor Screen Development System Change Colors _____________ You can change the colors on any part of the screen at any time. Once SCREEN is configured for color and you are in the SCREEN editor, you can designate certain areas for color and select the colors of your choice. To designate color for an area of the screen, it is easiest to view the area as a rectangle, or window. Changing the color for a given portion of the screen, or even the entire screen, is performed as follows: * Position the cursor at one of the four corners of the window. * Press the key * Select the foreground color you desire from the menu screen that appears. * Select the background color you desire from the menu screen. * Move the cursor to the diagonally opposite corner of the window. * Press the key again and the designated area will be changed to the colors you selected. Note: When you press the key, if the words Mono Only appear on the color menu screen (beneath the words "Foreground Color"), then SCREEN is not configured for color. This means color attributes will not be included when your screen is saved. To configure SCREEN for color, press to return to the editing screen, press to save the screen, then press F1 to configure the screen (see section 1 for instructions). Once you have configured SCREEN for color, you can re-load the screen and change the colors. To change the color of a single character, perform the first four steps shown above, then press immediately, without moving the cursor from underneath the single character. 26 Screen Machine Screen Editor Screen Development System 27 Screen Machine Screen Editor Screen Development System On-Line Help for Changing Color _______________________________ Online Help is available for the COLOR function. To gain access to this "help", you must be viewing either the foreground or background color menus. At that point, press . Press any key to return to the color menu you were viewing before you asked for help. Blinking Foreground <*> ___________________ To have the foreground color blink on and off, precede the color number or letter of the color desired with an asterisk when entering the foreground color. Reverse Video - _____________ To use the reverse video capability of SCREEN, you must configure your system for color before you enter the full screen editor. This is true even if you do not have a color monitor. To cause a single character to display in reverse video, move the cursor to the character you want to have appear in reverse video, then hold down the key and press the key. Since whatever foreground/background color the character is currently displayed in is reversed, you can "undo" the reverse video function by repositioning the cursor on each of the characters which have been changed and repeating the - sequence. Graphics Characters ___________________ You can use any of the extended graphics characters to make a special symbol appear on your screen. By using these characters you can create boxes, bar charts, arrows and a variety of special forms of your choice. To use the graphic character of your choice: * Hold the key down. (Users of Superkey may need to hold the key also.) 28 Screen Machine Screen Editor Screen Development System * Enter the decimal equivalent of the character on the numeric keypad (not the upper row of keys on the keyboard). * Release the key. For example, 205 is entered by pressing , tapping the numeric keypad 2, the 0, and the 5, and finally releasing the . On-Line Graphics Character Help - _______________________________ The decimal codes for each of the special characters can be seen on the special graphics character help screen. To view this screen, hold the key down and press . Upon pressing , your screen will display the special characters for ASCII codes 128 through 186. Press to see the characters for ASCII 187 through 255, or press any other key to return to the editing screen. Repeating Characters - ____________________ To repeat the last character entered, hold down the key and press . This can be repeated as many times as desired. This feature is helpful when you want to use the same graphics character several times. Drawing Lines - , - _____________ Besides being able to repeat a character, SCREEN allows you to draw vertical and horizontal lines. To draw a line using a given character, follow these steps: * Position the cursor on the character to be used in drawing the line. (If the first character has not been typed, type it first.) * Hold down the key and press . This tells SCREEN where the line starts. * Move the cursor to the point where you want the line to end. 29 Screen Machine Screen Editor Screen Development System * Hold down the key and press . The line is now filled in with the character which was at the original cursor position. Please note that you cannot draw a diagonal line using this method. Mark a Block - ____________ You may work with large sections of the screen in "blocks". For purposes of discussion, a block can be thought of as a "window", or rectangular area of the screen. To mark a block of text on the screen: * Move the cursor to one of the four corners of the block. * Hold the key and press the key once. The character under the cursor will be displayed in inverse video. * Move the cursor to the corner of the block that is diagonally opposite from the first marked corner. * Hold the key and press the key once. The entire block will be displayed in inverse video. Copy a Block ____________ When you have marked a block and it is displayed in inverse video, you may make a copy of the block by moving the cursor to the top-left corner of the area on the screen where you want the block to be copied, and pressing the key. Move a Block ____________ Similarly, to move a block that has been marked, position the cursor at the top left corner of the area on the screen where you want to move the block, and press the key. Un-mark a Block - _______________ You may un-mark a block by holding the key and pressing the key once. 30 Screen Machine Screen Editor Screen Development System Re-mark a Block - _______________ A block can be instantly marked again (provided it was the most recently marked block) by holding the key and pressing the key once. Save Screen to Memory - _____________________ This feature is used when you want to experiment with "what if" changes on your screen and you do not want to save your screen to disk. Holding the key and pressing once will save the screen image to a safe location in memory that can be recalled as described in the next paragraph. Note that the program will ask you to confirm that you want to save the screen to memory. This feature, together with the recall feature (next paragraph) can be used for COPY'ing entire screens from one file to another, or if you prefer to think of it this way, to save the current screen using a different name. This saves you from having to exit to DOS to perform a copy. In order to accomplish a screen copy, load the screen you wish to copy, save it to memory -, exit with or without saving -, load another screen , which can be a new screen, and finally, recall the saved screen from memory -. Recall Screen from Memory - _________________________ When you have saved a screen to memory using -, you can restore the screen by holding the key and pressing once. Note that you must have saved a screen before you can recall it. Delete a Block - ______________ You can delete a marked block by holding the key and pressing once. Note that "delete", as used with blocks, means that any text present in the marked block is replaced by blank spaces -- this function does not move any text around your screen. 31 Screen Machine Screen Editor Screen Development System Block Cut and Paste - ___________________ When you wish to copy a block from one screen to another, mark the block in the "source" screen (using - to mark two corners), load the "destination" screen, hold the key and press once. After confirming your request, the block will be copied into the "destination" screen. Cancel Block Operation ______________________ You may "undo" the last block operation by pressing the key. Note that if you mark a line after performing a block operation, the last block operation cannot be canceled. Considerations When Using Blocks ________________________________ When a marked block is present on the screen, certain line operations will not be allowed. You will receive a message saying "Block operation pending. Use unmark first." This situation is remedied by using - to un-mark the block, performing the line operation, and finally using - to re-mark the block (assuming you want it remarked). The operations that will cause this message are: * Insert a line * Delete a line * Shift screen left * Shift screen right If a marked block is present on the screen, using the key to mark a line will automatically un-mark the block. The block can then be re-marked using -. Marking a corner of a new block will automatically un-mark an existing block. In this case, the first block can no longer be re-marked. 32 Screen Machine Screen Editor Screen Development System Drawing Single Line Boxes - _________________________ To draw a single line box on the screen: * Position the cursor at one corner of a rectangle that represents the box. * Hold the key down and press the key once. A box character will appear at the cursor location. * Move the cursor to the diagonally opposite corner of the area you want "boxed". * Hold the key down and press the key again. The box will be drawn automatically. Drawing Double Line Boxes - _________________________ To draw a double line box on the screen: * Position the cursor at one corner of a rectangle that represents the box. * Hold the key down and press the key once. A box character will appear at the cursor location. * Move the cursor to the diagonally opposite corner of the area you want "boxed". * Hold the key down and press the key again. The box will be drawn automatically. Keyboard Macros _______________ One of SCREEN's most powerful features is its macro capability. With macros, you can significantly reduce the number of keystrokes required to create or edit a screen. A macro is simply a collection of keystrokes which can be "played back" on command. The program retains the sequence of keystrokes in its memory; then when the macro is "played back", the program acts exactly as it would if you were physically typing the keys at the keyboard. The savings to you comes from having only to press one or two keys to tell SCREEN to "play" a certain macro. 33 Screen Machine Screen Editor Screen Development System The number of keystrokes in a macro is virtually unlimited - - you can even define a macro which is all of the keystrokes required to create an entire screen! SCREEN allows a maximum of ten macros to be "active", that is, available for playback, at any one time. A default set of macros is loaded when you start SCREEN from DOS. These ten macros are those which are stored in SCREEN's configuration file. Until you create a new configuration file, or record some macros and save them to the configuration as you exit the program, the ten macros which will be available are those which are supplied with SCREEN. These macros are extremely simple, yet are useful, and give you the feel of macro usage. On-Line Macro Help (HELP3.@#$) __________________ When you press the help key while editing a screen, the first two help screens display the meanings of all reserved keys other than the macro keys. If you press three times (from the main editing screen), you will be presented with the contents of a file called HELP3.@#$. This is a standard SCREEN file (without attributes) that contains descriptions of the macro keys, as they are supplied on your program disk. You may change the screen so that your own macro definitions are displayed as part of the help process! Simply edit and save the screen file HELP3.@#$. Recording a Macro -1 to -0 _________________ As with any recording, there are two steps to "playing" a macro -- making the recording and playing it back. You can change the program's active macros in one of two ways: * Load an entirely new configuration file. This results in loading the ten macros which are defined in that configuration file so that they become the new active macros. (This assumes that you have created one or more new macros which you have saved into a new configuration file. The only way to do this, other 34 Screen Machine Screen Editor Screen Development System than borrowing a file from someone else, is to record a macro of your own.) * Use SCREEN's macro record capability. With this feature, you do not have to sit down and write out macros, you simply "push the record button", continue editing as usual, then when you are finished "turn the record button" off. You see the immediate effects of your macro while you create it. When using the macro record feature, SCREEN acts exactly as before, except that all of the keystrokes which you press are remembered for future playback and saving to disk. Actually, this is not entirely true -- if you request Help by pressing while recording a macro, the and the subsequent key you must strike to return to the editing screen do not become a part of the saved macro. To start recording a macro, hold down the key, and press one of the number keys along the upper row of the typewriter section of the keyboard (not the number pad). The number key you choose determines the number of the macro which will be recorded. Macros are "numbered" one through ten (pressing the zero key is for macro number ten). When you begin to record a macro, a blinking highlighted block will appear in the corner of the screen furthest from the current cursor position. Inside of the block you will see the abbreviation "Rec" for record, followed by the number of the macro you are recording (again, a zero is displayed for macro 10). You are now in the "macro record" mode. This highlighted block will always be visible on your screen for as long as you remain in the record mode. When you have finished typing all of the keystrokes that you want saved as the macro, repeat the -number sequence which you used to enter the macro record mode. If you don't remember which number macro you are recording, just look at the highlighted block. You have now exited the macro record mode. Whatever text that was under the highlighted block will now reappear. If you want to immediately begin recording another macro, you can hold down and type the number key for the new macro before exiting the record mode for the first macro. This will automatically terminate the recording of the first macro, and start recording the new one. In this case, the -number keystrokes are not saved as part of the macro 35 Screen Machine Screen Editor Screen Development System definition. As an example, to record the word "computer" as new macro 9, follow these steps: * Hold down and press the "9" key. * Notice the block with "Rec 9" appears in one corner of your screen. * Type "computer" as normal. If you make an error, and have to backspace, don't worry - the backspace(s) will become a part of the macro definition, and when the macro is played back, the character(s) you struck by mistake will be pro- cessed as if you typed them, but then the backspaces will also be processed, deleting the unwanted characters. * When you have typed the final "r", hold down and press the "9" key again. You have now successfully redefined macro 9. * The highlighted block now disappears, and the text which was in that position on the screen reappears. Instead of pressing -9 a second time, if you had wanted to immediately define macro 4 as the word "programming" preceded by a space, you could have held and pressed the "4" key rather than "9". The definition of macro 9 would have terminated, and macro 4 would contain all of the keystrokes you make until you hold and press another number key (either a "4" to terminate the record mode altogether, or another number, which would start recording a third macro). Remember that as long as the highlighted block is visible on your screen, you are still recording a macro. When you start recording macros, you will probably notice that as soon as you place the cursor on the same line as the highlighted block, the block will move to the opposite corner of the screen. The text that was under the block at its original location is replaced. Also, if you exit from a screen, either by pressing or exit without saving with -, any macro which is being recorded is immediately terminated. The and - combinations are not made a part of saved macros. 36 Screen Machine Screen Editor Screen Development System 37 Screen Machine Screen Editor Screen Development System Considerations When Using Macros ________________________________ If you are new to macros, they can sometimes be confusing. Seeing the effect of the keystrokes as you are recording them is a great help to "writing" a macro, but there are still some points to consider. Because SCREEN is designed to be used within fixed borders, it is important to note how certain keys will act inside of macros. For example, the and keys should normally be avoided in macros because columns will not necessarily align (depending on the original cursor location). For instance, if you are creating a macro which draws two upward arrows spaced 8 characters apart horizontally, using the carat and vertical bar characters (^,|), and, when creating the macro you are working very near the left edge of the screen, it is tempting to type both carats, then use in order to return to the left edge of the screen in order to place the first vertical bar character (|) on the line under the carat. However, if you play back this macro while at a different starting column, the will cause the vertical bars to be placed in the same columns at the far left of the screen, which is probably not what you intended. In general, then, the cursor direction keys, the space bar and the backspace key should be used to perform horizontal positioning. Similarly, macros that place text on more than one line will not work as might be expected if "played back" when the cursor is at the top or bottom of the screen. To avoid this type of confusion, we suggest making the first key in each macro . (Holding down the key and then pressing the key causes the cursor to be located at the first column of the first row on the screen.) Now if you are recording a macro which creates characters at specific locations on the screen (such as a graphics character border), the macro will always playback correctly regardless of the cursor position when the macro playback is started. Playing Macros Back - to - ___________________ "Playing" a macro is a simple two-key sequence. The ten function keys in combination with the key will replay the saved keystrokes for the macro whose numbered function key was struck. In other words, - replays macro 1, - replays macro 4, etc. 38 Screen Machine Screen Editor Screen Development System Nesting Macros ______________ SCREEN allows "nesting" of macros. This means that a macro can contain, among its saved keystrokes, a -Function key sequence. In this case, SCREEN acts on the keystrokes from the first macro until the -Function key is read. It then suspends the first macro, and begins to act on the saved keystrokes of the second macro. When all of the keystrokes of the second macro have been acted on (it has been "played to completion") SCREEN then continues with the keystrokes from the first macro at the first keystroke after the -Function key. Notice that SCREEN does not save whatever keystrokes the second macro consisted of at the time the first macro was recorded, but rather saves the -Function key. This enables you to redefine the meaning of a macro, simply by changing the meaning of the nested macro keystrokes. For example, suppose that macros #1 and #2 contain the keystrokes: 1. The - Corporation. 2. Burroughs When you playback macro #1, "The Burroughs Corporation" is displayed on the screen. However, Burroughs merged with Sperry to form "Unisys". To change this macro, re-record macro #2 as "Unisys". Then, when macro #1 is played back, it will type "The Unisys Corporation". Macros can be nested as many as eight levels deep. As soon as you attempt to nest to the ninth layer, all macro processing is halted, and all pending macros are cleared. Recursive Macros ________________ A recursive macro is one which calls itself. Recursive macros are not prohibited but will always run into the eight level nesting limitation. Assume that #8 is "Be -", and that macro #4 is 39 Screen Machine Screen Editor Screen Development System "there -". When you press - to replay macro #8: * "Be " is printed. * Macro #8 is suspended. * Macro #4 is started as a nested macro. * Macro #4 causes "there" to be printed. * Macro #4 is suspended * Macro #8 is started as a third-level nested macro. Since all processing stops when the ninth level is attempted, the result is that four "Be there" pairs are printed. 40 Section 3 Screen Capture Screen Machine Screen Capture CAPTURE allows you to take snapshots of any screen (text or CGA compatible graphics mode) displayed on your monitor at an time. CAPTURE takes over the - function which nomally sends the screen's contents to the printer. CAPTURE can be directed to save screens with or without attributes. If attributes are not desired, it stores the screen data file in ASCII text file format, providing a powerful tool for use in documenting systems. You can also use the captured screen data files (text only) as input into SCREEN (the screen editor) in order to generate source code for the desired screen in BASIC, dBASE II and III, Turbo Pascal, C and 80x86 assembler language. When dealing with switches (shown as a forward slash '/' in this manual), please note that the current DOS switch character must be used with CAPTURE. For MS-DOS and PC-DOS, the forward slash is the default switch character, but some versions of DOS allow the user to change the switch character. Help with CAPTURE _________________ You may at any time request help from CAPTURE.COM by typing "CAPTURE" and pressing the key. Using CAPTURE Without SCREEN _____________________________ To start the program, type CAPTURE, followed by a filename of 8 characters or less (no extensions are permitted -- if you supply one, it will be ignored). If you just type CAPTURE but do not include any valid switches, the program automatically will use the filename "CAPTURED". This filename will become the "base" filename under which the captured screens are saved on your disk. (See also "Using CAPTURE with SCREEN", on page 3-4.) CAPTURE uses the last three characters of your filename to "number" the screens. The first screen saved will be designated with the three characters '000', the second '001', etc. Note that if your filename has more than 5 characters, the filename extension is used to indicate the 41 Screen Machine Screen Capture Screen Development System screen number. For example, you may want to save your screens into files called EXAMPLE. To do so, simply type: CAPTURE EXAMPLE Now, when you have the screen that you want to CAPTURE displayed on your monitor, hold the key down and press . CAPTURE will respond with a brief message on the bottom of your screen, letting you know that it has saved your screen in its memory area. It will then write a screen data file for the screen as soon as the operating system will allow. In this case, the name of the file will be EXAMPLE.000. You can then display another screen, press - again, and CAPTURE will save this screen into a file named EXAMPLE.001. Change Filename Without Restarting CAPTURE (/C) __________________________________________ You may change the filename under which your screens are being saved by invoking CAPTURE and following the filename with a '/c'. For example: CAPTURE NEWNAME /c Note that if you specify a '/c' the first time you start CAPTURE, it will respond with: Ignore 'c' switch and install capture (Y/N)? [N] Saving Color Attributes (/A) _______________________ By default, CAPTURE will save all of the necessary color information about the screen you CAPTURE. If you intend to use the text file for documentation purposes, or for any reason do not want to include the color information, you can tell CAPTURE not to save this information. To do so, either follow the filename with a '/a' on the command line when you start CAPTURE, (For instance: CAPTURE EXAMPLE /a) or reinvoke CAPTURE and specify '/a' (For example: CAPTURE /a). 42 Screen Machine Screen Capture Screen Development System Note that you are actually "toggling" the color attribute switch. It is ON until you turn it OFF. If you then specify '/a', you turn it ON again. CAPTURE will respond by telling you that it is now saving either "only characters" or "full attributes". To restore the original condition, simply repeat the above procedure. Send Screen to Printer (/P) ______________________ To tell CAPTURE to print, as well as to save a screen data file, either follow the filename with a '/p' on the command line when you start CAPTURE (Example: CAPTURE EXAMPLE /p) or reinvoke CAPTURE and specify '/p' (Example: CAPTURE /p). Again, this is a toggle switch, turning the feature on and off and on again. CAPTURE will respond by telling you that the "Printer echo is now ON/OFF". To restore the original condition, simply repeat the above procedure. Capturing Graphics Screens (/G) __________________________ You can capture graphics images to disk by using the '/G' switch on the CAPTURE command line when you first start the program. In addition to using more memory than it does for text screens, CAPTURE will save two files each time you press -: * filexxx.bin - a binary image that can be loaded directly into video memory. * filexxx.bld - a file that can be used with BASIC's BLOAD command. The only difference between the '.bin' and '.bld' files is that the '.bld' file contains the 7 byte header that BASIC checks for. Using CAPTURE With SCREEN _________________________ You can use screen data files created with CAPTURE (text mode) as input for SCREEN. This allows you to generate source code in BASIC, dBASE II (or III), Turbo Pascal and 8086/8088 Assembler language for any text screen in any of your programs. 43 Screen Machine Screen Capture Screen Development System To generate source code for screens you have captured, follow these steps: * Load CAPTURE and specify a filename. * Run the program that contains the screens you want to CAPTURE. * Use CAPTURE to generate screen data files for each of the screens. * Configure SCREEN to generate the type of source code desired (see section 1). Remember that CAPTURE automatically adds three incremental characters to your original filename, beginning with 000. Therefore, if the filename you told CAPTURE to save the screens under was TREE, you must specify TREE000, TREE001, etc. as your filenames when prompted by SCREEN. SCREEN can then be used to load the file created by CAPTURE, and display it. At this point you can use the full screen editing capabilities of SCREEN, or you can generate the source code types you are configured for by pressing the key. SCREEN will save your edited (or unedited) screen data file and store it along with the source code files for your screen. Deactivating Capture ____________________ The Capture program can be deactivated by using the '/x' command line switch. For example: CAPTURE /X Note that the memory used by CAPTURE will not be released. 44 Section 4 Using SHOW Screen Machine Using SHOW for Disk Management & Menus What is SHOW ? SHOW is a program that, in its simplest use, displays screen files that have been created with SCREEN. SHOW can be used to provide a main menu, or even a disk management system, from which programs can be selected and executed. It can also be used to create demonstration, prototype and tutorial programs (see Section 5). In addition to displaying data files, SHOW can be instructed to display a screen file and then wait for the user to press a key before SHOW terminates. SHOW can also be told to wait for a range of valid keys. This is useful for displaying menus and ensuring that the user selects a valid option from the menu. When the user presses a valid key, SHOW sets the DOS "errorlevel" relative to the valid key range specified. For example, if the range you specify is "59 through 68" (corresponding to through ) and the user presses , the DOS error level is set to 5 before SHOW terminates. (If you are unfamiliar with the DOS "errorlevel", please consult the section on batch commands in your Disk Operating System manual. Also, take a look at the example below.) Setting the errorlevel allows branching in batch (.bat) files (see page 4-4). The program disk contains an example of using SHOW to process a main menu. The file is called "MAINMENU.BAT." Note that when testing for "errorlevel" in a batch file, DOS actually test for an errorlevel GREATER THAN OR EQUAL TO the error level you are testing for. Therefore, care must be taken in the order used for errorlevel checking. For example, if you are testing for errorlevel set at 1, 2, 3 or 4, your file should appear like this: If errorlevel 4 .... If errorlevel 3 .... If errorlevel 2 .... If errorlevel 1 .... 45 Screen Machine Using SHOW Screen Development System SHOW's simplest features are discussed in this section. See section 5 for information on using more advanced features and creating runtime versions of SHOW for distribution. Invoking the SHOW Program _________________________ You can start the SHOW program by invoking it from the DOS prompt (just like any other program) or by having a batch file that contains one or more lines that invoke the program. In addition, by using "command files", you can use show for creating demonstrations, prototypes and tutorials (see section 5). Command Syntax ______________ The syntax for invoking SHOW is: SHOW Filespec [basekey max] [/Tn] [/An] An explanation of each of the items on the above line is given below. Note that the hyphen '-' and forward slash '/' can be used interchangeably as the "switch" character. This means that wherever '/' is used in this manual, you may substitute '-', if you prefer. Filespec The name of a valid screen file (2050 bytes in length for text only or 4000 bytes for text and attributes). You may optionally precede the screen file name with a disk drive letter and path. For example: SHOW C:\SCREENS\MYSCREEN.001 Basekey The 'basekey' is optional and represents the lowest-valued 46 Screen Machine Using SHOW Screen Development System key accepted as input from the user when the screen is displayed. It is one of: * A specific key, enclosed in quotation marks, e.g. "1" or "A" * A scan code value (unquoted), e.g. 59 for the key. (See Appendix A for scan codes on IBM and compatible machines.) * An unquoted asterisk (*), which is taken to mean "any key" (Note that "*", meaning the asterisk key, is not the same as *, which is unquoted and means "any key"). Max This represents the highest-valued key accepted as input and is either: * A quoted character, as above * An unquoted scan code value Note that 'max' cannot be specified unless 'basekey' is specified -- the first key indicated is always taken as the basekey. 'max' must be greater than or equal to 'basekey'. Note that the program does not have provision for checking this relationship IF the keys are specified differently (i.e one is quoted, the other is a scan code). Errorlevel If you specify a 'basekey' and 'max', the user must press a key within the specified range in order to stop the screen display (except for Timed Delay - see below). Pressing a valid key will cause SHOW to stop displaying the screen and return to DOS. The DOS Errorlevel variable will be set relative to the input range. For example, if you specify a basekey of 59 and max of 68 (F1 through F10), and the user presses F5, errorlevel will be set at 5. Other Errorlevel values will occur as follows: 0 = Timed delay (see next sub-section) expired or no 47 Screen Machine Using SHOW Screen Development System key range was specified. 64 = If the user A)borts from a critical error. 65 = The "get out" key (/x switch, see section 5) was pressed. 66 = Execution error occurred. For example, a Return without a Gosub (see Section 5). 67 = Unrecoverable syntax error. For example, unable to locate a label used in a Goto or Gosub (See Section 5). Timed Delay (/T) ___________ /Tn (for Timed delay) is used to display a screen for a predetermined period of time before returning to DOS. The '/T' character is required and 'n' is a numeric value (1 to 255), which is the number of seconds to delay after a screen has been displayed. If a valid key (see above) is struck before the indicated number of seconds has passed, the key is handled as if the /T switch were not present -- in other words, SHOW terminates immediately, setting the error level. Screen Attributes (/A) _________________ /An (for Attributes) specifies the screen attribute to be used for those files which were originally saved without attributes. Allowable values for n are: s (the letter s) = use the screen attribute in effect at the time SHOW is started. Example: SHOW filename/AS p (the letter p) = use the screen attribute from the previously displayed screen. Example: SHOW filename/AP d = Use attribute d (a decimal number from 1-255). Example: SHOW filename/A15 (displays in high intensity white). 48 Screen Machine Using SHOW Screen Development System Calculating Screen Attributes _____________________________ In order to calculate the desired screen attribute, use the following formula, where FORE=foreground color and BACK=background color: Attribute = BACK * 16 + FORE Case Sensitivity ________________ All letters on the command line, as well as characters read from the keyboard, are automatically translated to UPPER case. Thus, if 'basekey' is specified as "a", and 'max as' "c", the user can press 'A', 'a', 'B', 'b', 'C' or 'c' as valid keys. Error Messages ______________ Please refer to Appendix B for a listing of error messages returned by the SHOW program. Using SHOW to Organize Hard Disks _________________________________ Since SHOW displays data files (such as menus) and waits for the user to enter a keypress from a valid range, it is very useful for providing a main menu from which various programs on a hard disk can be selected and executed. This eliminates the need for various users of a given PC to enter (or know) the DOS commands to change to the proper disk directory and invoke a particular program. To use SHOW for this purpose, it must be executed from within a .BAT file. The programs selected from a displayed menu are executed by branching on the appropriate DOS Errorlevel by using the DOS batch "IF" subcommand. If you are unfamiliar with the "IF" subcommand, consult the section on batch commands in your Disk Operating System manual. Also, take a look at the sample below. When SHOW is invoked with a data filename and a range of valid keys for user option response, it waits until the user presses a key which falls within the range specified. When a valid key is pressed, SHOW sets the DOS errorlevel relative to the range of valid keys, then terminates. 49 Screen Machine Using SHOW Screen Development System For example, suppose SHOW is invoked with the command: SHOW MENU "1" "4" This command says "display the file called MENU and wait for the user to press the "1", "2", "3" or "4" key. Now assume the "3" key is pressed in response to the display of the data file "menu". SHOW will set the DOS Errorlevel to 3 before it returns to DOS. An "IF" statement can be used to branch within the .BAT file to the command which executes the program for option 3. As an example of this, suppose you have a screen called "MENU". The screen says: My Company Main Menu 1. Lotus 1-2-3 2. Microsoft Word 3. Run CHKDSK.COM 4. Exit to DOS Please enter a number from 1 to 4 50 Screen Machine Using SHOW Screen Development System Your actual batch file might look like this: ECHO OFF :START SHOW MENU "1" "4" IF ERRORLEVEL 4 GOTO EXIT IF ERRORLEVEL 3 GOTO OPTION3 IF ERRORLEVEL 2 GOTO OPTION2 IF ERRORLEVEL 1 GOTO OPTION1 :OPTION1 CD \LOTUS 123 GOTO START :OPTION2 CD\WORD WORD GOTO START :OPTION3 CHKDSK/F PAUSE GOTO START :EXIT 51 Section 5 Advanced SHOW Features Screen Machine Advanced SHOW Features If you have not already read section 4, please do so before reading this section. The reason is that the features discussed here assume familiarity with the simpler SHOW features discussed in section 4. Command Files _____________ You can build command files, similar in nature to batch files, that instruct SHOW to perform a variety of instructions. SHOW reads the standard input device for a file specification, where the named file contains one or more commands as described below. Since redirection of input is allowed, you can say: SHOW < TEXT.FIL or just SHOW and then type in the name of the file. The filename can be preceded by a disk drive and path, as in "C:\DOS\TEXT.FIL". Instructions ____________ Each of the instructions in the command file must correspond to one the following types: :label name screenname [/Xn] [/R] [/N] [section 4 switches] case [key] [range] [S: G: R:] [label name] nul Any line whose first non-blank character is a colon is taken to be a label name, exactly like in DOS batch files. A line beginning with the word 'case' is a case to be compared, based on the key struck by the user, with action to be taken accordingly. If an instruction is not a label or a 'case' line, and it is not totally blank, the line is taken to be the specification of a screen file, optionally followed by switch options. This applies to lines with "nul" as the screen name (see 52 Screen Machine Advanced SHOW Features Screen Development System below). Remarks _______ Remarks can be placed on any line by using the characters "/*". Any text following those characters on a line is ignored. Note that a matching "/*" is not required to signify the end of a comment -- the carriage return/line feed sequence terminates the remark. Labels ______ A label name is defined as the first 15 characters immediately following the colon. Note that a label name which has a blank immediately following the colon can never be matched since the routine that parses label references skips leading spaces. Screen Names ____________ Screens are specified as a file specification (e.g., a file name that can optionally be preceded by a drive letter and path). Key Press Specifications ________________________ The parameters allowed on the line with a file spec are as follows: * The options described in Section 4 (basekey, max, /Tn and /An). * /Xn (for eXit) is the key on which a "getout" is performed. 'n' is specified in the same manner as 'base' and 'max', i.e. either a quoted character or an unquoted scan code. A "getout" will, in the order of things, be accepted as a valid key press, perform a "return" (if one is pending - see below), or return to DOS, setting Errorlevel to 65 (if no return is pending). Thus you can, for example, specify that the 'Esc' key is the "getout" key. Then, you can test to see if it was pressed and branch accordingly. 53 Screen Machine Advanced SHOW Features Screen Development System * /R (for Read) forces this screen file to be read at program startup (this is the default). If there are more of these screens (marked with /R) than will fit into available memory at one time, the program will abort before displaying any screen. * /N (for New read each time) forces this screen file to be reread each time it is displayed. This feature is useful when disk swapping must take place. Cases (Branching) _____ The syntax of a CASE line, repeated for convenience, is: case [key] [range] [S: G: R:] [label name] The case line is used to branch to a label (or Return - see below) based on the key struck by the user. There can be an unlimited number of "cases" for a given screen -- a case is always associated with the last screen name line read from the command file. 'Key' is specified in the same manner as 'basekey' in Section 4. A range of keys may be specified exactly as in Section 4. For example, if the valid keys are F1 to F10: case 59 68 If [key]=* (e.g. 'case *' or "any key"), the branch is automatically taken. There are no checks made to ensure that the value specified in the case instruction is a legal key in the range 'basekey' to 'max' for this screen. Also, note that case commands are processed in the order in which they appear in the input file, so that any case following a * ("any key") case will never be taken. Subroutines ___________ Following the key (or range) on the same case instruction line is one of three "action letters", followed by a colon, telling the program what should be done next. The allowable "action letters" for a case line are as follows: 54 Screen Machine Advanced SHOW Features Screen Development System S: "goSub" to the label name. G: "Goto" the label name. R:"Return". If a label name is specified after the "R:", the return is to the label name and the last gosub "return" is removed from the "stack". In other words, the last "gosub" is canceled and the program jumps to the specified label. If no label name is specified, the return is to the screen following the screen whose 'case' caused the last "gosub". Note that the return is NOT to the next case line, but to the next SCREEN name, which can be a "Nul" screen (see next paragraph). Nul Screens ___________ When you "gosub" to a screen based on a 'case', the SHOW program will, after performing the "gosub", proceed to the next screen to be displayed. This is as opposed to taking action according to the next 'case *' line, for example. In order to better control program flow, you can specify a screen named 'nul', in which case the program interprets 'nul' as a screen name, but knows that it should not actually display any screen. Defaults _________ The "default" case for all screens is simply to display the next screen file included in the command file. When there are no more screens in the text file, the program terminates, setting the DOS errorlevel from the last screen and keystroke. Example: ________ The following command file listing has line numbers only for identification in describing the function of each line. The line numbers must not be included in a real command file. An explanation of the lines is included after the example command file. 55 Screen Machine Advanced SHOW Features Screen Development System 1. :TOP 2. MENU-ONE 59 60 /X1 3. CASE 59 G:OPTION1 4. CASE 60 G:OPTION2 5. :OPTION1 6. MENU-TWO * 7. CASE * G:TOP 8. :OPTION2 9. MENU-3 "1" "3" /X1 10. CASE 1 G:TOP 11. CASE "1" S:SUB-ONE 12. CASE "2" S:SUB-TWO 13. NUL 14. CASE * G:TOP 15. :SUB-ONE 16. HELP1 * 17. CASE 59 G:HELP2 18. CASE * R: 19. :SUB-TWO 20. :HELP2 21. HELP2 * 22. CASE 59 G:HELP3 23. CASE * R: 24. :HELP3 25. HELP3 * 26. CASE * R: Explanation of Example ______________________ 1. Label TOP. The top of the file. 2. Display screen MENU-ONE. Allowable input keys are F1 and F2 (scan codes 59 and 60). If the 'Esc' key is pressed, perform a "getout", returning to DOS with errorlevel set to 65. 3. If the F1 key was pressed while displaying MENU-ONE, Goto label OPTION1. 4. If the F2 key was pressed while displaying MENU-ONE, Goto label OPTION2. Note that no other key presses other than 'Esc', 'F1' and 'F2' would have been accepted, so no further case checking is unnecessary. 5. Label OPTION1. 56 Screen Machine Advanced SHOW Features Screen Development System 6. Display MENU-TWO. Accept any key as valid input. 7. In ALL cases, go back to the label TOP. 8. Label OPTION2. 9. Display screen MENU-3. Valid input keys are "1", "2" and "3". If 'Esc' is pressed, perform a "getout". 10. If the 'Esc' key is pressed, Goto label 'TOP'. 11. If the user pressed the "1" key, goSub to the subroutine named 'SUB-ONE'. 12. If the user pressed the "2" key, goSub to the subroutine named 'SUB-TWO'. 13. Nul is recognized as a screen name (that is not displayed) so that if either the "1" or "2" keys were pressed, the program would come here after goSub'ing to the appropriate subroutine. If the 'Nul' were not included here, after the subroutine was executed, program flow would go to the next screen name (line 16). 14. In all cases, Goto the label 'TOP'. Note that this line is reached after return from SUB- ONE and SUB-TWO. 15. Label 'SUB-ONE'. 16. Display the screen HELP1. Accept any key as valid input. 17. If the F1 key was pressed, Goto the label HELP2. 18. In all other cases, perform a Return. 19. The label 'SUB-TWO'. 20. Display the screen HELP2. Accept any key as valid input. 21. If the F1 key was pressed, Goto the label HELP3. 22. In all other cases, perform a Return. 57 Screen Machine Advanced SHOW Features Screen Development System 23. The label 'HELP3'. 24. Display the screen HELP3. Accept any key as valid input. 25. In all cases, perform a Return. 58 Section 6 Show Runtime Programs Screen Machine Runtime Programs This section describes how to "compile" runtime versions of SHOW.COM for distribution of demonstration and prototype programs. A familiarity of SHOW's features, as discussed in Sections 4 and 5, is assumed. Creating Runtime Programs _________________________ Creating a runtime version of SHOW.COM for distribution is a simple process. Before doing so, you must have a valid command file as described in Section 5. Once you are happy with the command file, all you need to do is run the following command: SHOW /c Outputfile 28 14 57 The following key produce different scan codes depending on the keyboard shift status (Shift, Ctrl, and Alt combinations). Under the "Key" column on the following pages, several abbreviations are used: RtArr = Right arrow key Del = Delete LtArr = Left arrow Key PgUp = Page up UpArr = Up arrow key PgDn = Page down DnArr = Down arrow key Ins = Insert Ky x = "x" key on the numeric keypad. C = key held down A = key held down S = Either or both key(s) held down US = UnShifted (no , , or ) 61 Screen Machine Keyboard Scan Codes Screen Development system US Shift C+S A+S A+S+C 1 2 2 -- 120 2 3 3 3 121 3 4 4 -- 122 4 5 5 -- 123 5 6 6 -- 124 6 7 7 7 125 7 8 8 -- 126 8 9 9 -- 127 9 10 10 -- 128 10 11 11 -- 129 - 12 12 12 130 = 13 13 -- 131 , 51 51 -- 51 . 52 52 -- 52 / 53 53 -- 53 ; 39 39 -- 39 ' 40 40 -- 40 ` 41 41 -- 41 Tab 15 15 148 165 F1 59 84 94 104 F2 60 85 95 105 F3 61 86 96 106 F4 62 87 97 107 F5 63 88 98 108 F6 64 89 99 109 F7 65 90 100 110 F8 66 91 101 111 F9 67 92 102 112 F10 68 93 103 113 F11 133 135 137 139 F12 134 136 138 140 UpArr 72 72 141 -- DnArr 80 80 145 -- LtArr 75 75 115 -- RtArr 77 77 116 -- Center 76 76 143 -- Home 71 71 119 -- End 79 79 117 -- PgUp 73 73 132 -- PgDn 81 81 118 -- Ins 82 82 146 -- Del 83 83 147 -- Ky + 78 78 144 78 Ky - 74 74 142 74 Ky Enter 224 224 224 166 62 Screen Machine Keyboard Scan Codes Screen Development system The following keys are found on "enhanced" keyboards where an auxiliary set of cursor control and editing keys are provided separate from the numeric keypad. US Shift C+S A+S A+S+C UpArr 72 72 141 152 DnArr 80 80 145 160 LtArr 75 75 115 155 RtArr 77 77 116 157 Home 71 71 119 151 End 79 79 117 159 PgUp 73 73 132 153 PgDn 81 81 118 161 Ins 82 82 146 162 Del 83 83 147 163 63 Screen Machine Error Messages Screen Development System Appendix B Error Messages SHOW.COM Fatal Errors ______________________ : Fatal Error Ignored When a fatal error occurs and the user chooses to (I)gnore it, this message is displayed in the middle of an otherwise blank screen, in place of the screen data file contents. : File size is invalid This message occurs when attempting to read a file for the first time. If the file's length is neither 2050 bytes (text only) nor 4000 bytes (text and attributes), this message will be displayed. Note that this error may not occur until several screens have been successfully displayed if this is not a /R file. RETURN case without a matching GOSUB This happens when an R: case (return from subroutine) is present without a matching S: (goSub) having been performed. Too many GOSUBs executed -- stack overflow This message indicates that there was an attempt to "nest" S: cases (goSub) more than 8 levels deep. SHOW.COM Syntax Errors _______________________ All syntax errors encountered during parsing cause the message, "Syntax error in line: ", followed by one of the messages shown below: Cannot locate referenced label: After parsing is complete, label references are resolved. All references that cannot be resolved generate this message. Duplicate Label -- label ignored Duplicate labels are not allowed. The maximum length of a label is 15 characters, so this may indicate two labels whose lengths are longer than 15 characters, 64 Screen Machine Error Messages Screen Development System where the first 15 characters match. Invalid case action letter or no colon The valid case action letters are 'S' (goSub), 'G' (Goto) and 'R' (Return). Each must be immediately followed by a colon. Invalid key value for case Key value specified in the case statement is not a legal key for this screen. In other words, the key is not in the range of basekey-max and is not the "getout" key. Invalid or no upper range for case Either there is no key specified after a minus sign on a case line or the key specified is less than the key specified before the minus sign. Invalid value for attribute Valid attributes, when used with '/A', are in the range 1-255 or the letters 'S' and 'P'. Invalid value for escape key Must be a key in the range 1 to 255. Invalid value for time delay Must be from 1 to 255 (in seconds). Label must be specified for Gosub or Branch Case statements using the action letters 'G' (Goto) and 'S' (goSub) must have a label after the action letter and colon. Label name must follow colon -- line ignored Case statements using the action letters 'G' (Goto) and 'S' (goSub) must have a label after the action letter and colon. Line exceeds 127 characters -- ignored The maximum allowable command length is 127 characters. MAX key specified is <= BASE key On lines beginning with a file name (as opposed to a case statement), the MAX key must be greater than the BASE key. Must specify some type of case action This error occurs when a line says "CASE" followed by a valid key and range, but does not indicate what to do 65 Screen Machine Error Messages Screen Development System if the case is true. No case specified This happens when a line simply says "CASE". Unknown switch - remainder of line ignored An invalid switch was used on this command line. SHOW.COM Compiler Messages ___________________________ Cannot close compiler output file Indicates a DOS (or fatal) error attempting to close the .COM output file. Cannot create compiler output file Indicates a DOS (or fatal) error while attempting to create the .COM output file. Cannot write compiler output file Indicates a DOS (or fatal) error while attempting to write to the .COM output file. Compile aborted When syntax or other errors prevent complete parsing of the input file, the "compile" is aborted, and no .COM output file is written. Filename extension ignored If you supply an extension to the output file name, it is ignored. All compiled files have the extension, ".COM". 66 Screen Machine Error Messages Screen Development System SCREEN.EXE Error Messages __________________________ Cannot find file: Invalid subirectory specified Error reading configuration file Error reading required screen file Configuration file error: beginning: Not enough memory -- SCREEN MACHINE requires 72K free SCREEN MACHINE requires DOS 2.0 or later SCREEN MACHINE can only run in 80-column text mode: Run DOS MODE command Critical error creating Critical error writing Critical error reading Critical error closing Critical error opening Critical error renaming Disk write-protected Unknown drive Drive not Ready CRC error Unknown Internal DOS error Sector not Found General Write Error General Read Error 67 Screen Machine Error Messages Screen Development System General Disk Error No room on disk or in directory File not found Path not found Too many open files File Access denied Unknown DOS error code 68 Screen Machine Index Screen Development System Index /A CAPTURE command-line switch 41 SHOW command-line switch 48 /C CAPTURE command-line switch 41 /G CAPTURE command-line switch 42 /M SHOW display switch 59 /N keypress specifier in SHOW 54 /P CAPTURE command-line switch 43 /R keypress specifier in SHOW 54 /T SHOW command-line switch 48 /X CAPTURE command-line switch 44 keypress specifier in SHOW 53 Assembler configuring in SCREEN.EXE 5 effect of screen attributes 8 generating code 11 Segment attributes 12 BASIC BLOAD-compatible files from CAPTURE 43 configuring in SCREEN.EXE 4 generating code 8 Length of Code Lines 9 Line Number Increment 9 Starting Line Number 9 i Screen Machine Index Screen Development System Block cancel 30 copying 28 cut and paste 30 deleting 29 marking 28 moving 28 re-marking 29 unmarking 28 Boxes double-line 31 single-line 31 C Language Code generating 11 Sample.C 3 Cancel block operation 30 line operation 23 CAPTURE changing filename 42 Color Attributes 42 command-line switches 43 deactivating 44 duplicating screen on printer 43 files generated 41 General description 41 graphic screens 43 Help option 41 loading into memory 41 Using ... with SCREEN.EXE 41, 43 with SCREEN.EXE 41 Centering entire screen 24 lines 23 text insode a box 24 Color Attributes Blinking Foreground 26 calculating 49 disabling in SCREEN.EXE 25 effect on filesize 16 enabling/disabling in CAPTURE 42 in CAPTURE 41 in source code 14 ii Screen Machine Index Screen Development System Reverse Video 26 Saving 8 specifying in SHOW 48 Configuration changing 7 Main Menu option 6 programming languages 4 saving 14 dBase generating code 11 Deleting Blocks 29 Characters 21 Lines 21 DOS Errorlevel relative to input range in SHOW 47 set by SHOW 45 special values in SHOW 47 Editing Configuration File 7 entering filenames 15 Screen Data File 15 searching for files 16 Error Messages SCREEN.EXE 67 SHOW.COM 64 SHOW.COM Compiler 66 Exiting SCREEN.EXE 20 Filenames in SHOW 46, 53 in SHOW (NUL) 55 Files on Distribution Diskette 2 Help accessing in CAPTURE 41 accessing in SCREEN 18 changing colors in SCREEN 26 Cursor keys 20 graphics characters 27 iii Screen Machine Index Screen Development System SCREEN Function keys 18 shifted function keys 19 Inserting Characters 21 Lines 21 Keyboard Macros 31 default set 32 help file 32 Help screen 19 maximum active 32 nested 36 number of keystrokes 32 recording 32 recursive 36 replaying 35 special considerations 35 Keyboard Scan Codes listing(s) 61 used in SHOW 47 Line centering 23 copying 22 delete 21 drawing 27 insert 21 marking 22 moving 22 repeated copy 22 unmarking 22 Saving new configuration 14 Screen Data Files 19 SCREEN.CFG 6, 7 saving a new 14 search path 7 SCREEN.EXE Configuring 6 Environment variables 7 Keyboard Usage 18 Starting 6 iv Screen Machine Index Screen Development System SHOW ... starting 46 Advanced features 52 Basekey parameter 46 Command Files 52 command-line syntax 46 Comment lines (Remarks) 53 Labels 53 Max parameter 47 organizing hard disks 49 Runtime Programs 59 Using ... 45 System Requirements 1 Turbo Pascal generating code 13 v