Mercurial > hg > Members > kono > nitros9-code
changeset 146:88ae6ed51be6
More splitups.
author | roug |
---|---|
date | Sun, 07 Jul 2002 09:54:04 +0000 |
parents | 099333bc912e |
children | e49fb6ad1be8 |
files | docs/nitros9guide/chap6.chapter docs/nitros9guide/chap7.chapter docs/nitros9guide/display.appendix docs/nitros9guide/errorcodes.appendix docs/nitros9guide/go51.appendix docs/nitros9guide/keys.appendix |
diffstat | 6 files changed, 1499 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/nitros9guide/chap6.chapter Sun Jul 07 09:54:04 2002 +0000 @@ -0,0 +1,270 @@ +<chapter> +<title>Use of the System Disk</title> +<para> +Disk-based OS-9 systems use a system disk to load many parts of +the operating system during the system startup and to provide files +frequently used during normal system operations. Therefore, the +system disk is generally kept in disk drive zero ("/D0") when the +system is running. +</para> +<para> +Two files used during the system startup operation, "OS9Boot" and +"startup" <emphasis>must</emphasis> +reside in the system disk's root directory. Other +files are organized into three directories: CMDS (commands), DEFS +(system-wide definitions), and SYS (other system files). Other files +and directories created by the system manager and/or users may also +reside on the system disk. These frequently include each user s +initial data directory. +</para> + +<section> +<title>The OS9BOOT File</title> + +<para> +The file called "OS9Boot" loaded into RAM memory by the +"bootstrap" routine located in the OS-9 firmware. It includes file +managers, device drivers and descriptors, and any other modules +which are permanently resident in memory. A typical Microware OS-9 +distribution disk's "OS9Boot" file contains the following modules: +</para> +<informaltable frame="none"> +<tgroup cols="2"> +<colspec colwidth="1.5in"> +<colspec colwidth="3.5in"> +<tbody> + <row> + <entry>IOMAN</entry> + <entry>OS-9 Input/Output Manager</entry> + </row> + <row> + <entry>RBF</entry> + <entry>Random Block (disk) File Manager</entry> + </row> + <row> + <entry>SCF</entry> + <entry>Sequential Character (terminal) File Manager</entry> + </row> + <row> + <entry>Pipeman</entry> + <entry>Pipeline File Manager</entry> + </row> + <row> + <entry>Piper</entry> + <entry>Pipeline Driver</entry> + </row> + <row> + <entry>Pipe</entry> + <entry>Pipeline Device Descriptor</entry> + </row> + <row> + <entry>KBDVID</entry> + <entry>Keyboard/video/Graphics Device Driver</entry> + </row> + <row> + <entry>PRINTER</entry> + <entry>Printer Device Driver</entry> + </row> + <row> + <entry>DDISK</entry> + <entry>Disk Driver</entry> + </row> + <row> + <entry>D0, D1</entry> + <entry>Disk Device Descriptor</entry> + </row> + <row> + <entry>TERM</entry> + <entry>Terminal Device Descriptor</entry> + </row> + <row> + <entry>P</entry> + <entry>Printer Device Descriptor</entry> + </row> + <row> + <entry>CLOCK</entry> + <entry>Real-Time Clock Module</entry> + </row> + <row> + <entry>SYSGO</entry> + <entry>System Startup Process</entry> + </row> +</tbody> +</tgroup> +</informaltable> + +<para> +Users may create new bootstrap files which may include additional +modules (see "OS9Gen" command). Any module loaded as part of the +bootstrap cannot be unlinked and is stored in memory with a minimum +of fragmentation. It may be advantageous to include in the OS9Boot +file any module used constantly during normal system operation. +This can be done with the OS9GEN command. +</para> +</section> + +<section> +<title>The SYS Directory</title> + +<para> +The directory "/d0/SYS" contains two important files: +</para> +<informaltable frame="none"> +<tgroup cols="2"> +<colspec colwidth="1in"> +<colspec colwidth="4in"> +<tbody> + <row> +<entry>password</entry> +<entry>the system password file (see "login" command)</entry> + </row> + <row> +<entry>errmsg</entry> +<entry>the error message file (see 4.7)</entry> + </row> +</tbody> +</tgroup> +</informaltable> +<para> +These files (and the SYS directory itself) are not absolutely +required to boot OS-9, they are needed if "login", "tsmon", or +"printerr" will be used. Users may add other system-wide files of +similar nature if desired. +</para> +</section> + +<section> +<title>The Startup File</title> + +<para> +The file "/d0/startup" is a shell procedure file (see 4.6) which +is automatically processed immediately after system startup. The +user may include in "startup" any legal shell command line. Often +this will include "setime" to start the system clock. If this file +is not present the system will still start correctly but the user +must run the SETIME command manually. +</para> +</section> + +<section> +<title>The CMDS Directory</title> + +<para> +The directory "/d0/CMDS" is the system-wide command object code +directory, which is normally shared by all users as their working +execution directory (see 3.7). If "shell" is not part of the +"OS9Boot" file, it must be present in this directory. The system +startup process "sysgo" makes CMDS the initial execution directory. +</para> +</section> + +<section> +<title>The DEFS Directory</title> + +<para> +The directory "/d0/DEFS" is a directory that contains assembly +language source code files which contain common system-wide symbolic +definitions, and are normally included in assembly language programs +by means of the OS-9 Assembler "use" directive. The presence and +use of this directory is optional, but highly recommended for any +system used for assembly language programs. The files commonly +contained in this directory are: +</para> +<informaltable frame="none"> +<tgroup cols="2"> +<colspec colwidth="1in"> +<colspec colwidth="4in"> +<tbody> + <row> +<entry>OS9Defs</entry> +<entry>main system-wide definition file</entry> + </row> + <row> +<entry>RBFDefs</entry> +<entry>RBF file manager definition file</entry> + </row> + <row> +<entry>SCFDefs</entry> +<entry>SCF file manager definition file</entry> + </row> + <row> +<entry>Systype</entry> +<entry>System types definition file</entry> + </row> +</tbody> +</tgroup> +</informaltable> + +</section> + +<section> +<title>Changing System Disks</title> + +<para> +The system disk is not usually removed while the system is running, especially +on multiuser systems. If it is, the "chx" and +"chd" (if the working data directory was on the system disk) +commands should be executed to reset the working directory pointers +because the directories may be at different addresses on the new +disk, for example: +</para> + +<screen> +chx /d0/cmds +chd /d0 +</screen> + +<para> +In general, it is unwise to remove a disk and replace it with +another if any paths are open to files resident on the disk. It is +<emphasis>dangerous</emphasis> to exchange <emphasis>any</emphasis> +disk if any files on it are open in WRITE or UPDATE modes. +</para> + + +</section> + +<section> +<title>Making New System Disks</title> + +<para> +To make a system disk, the following steps must be performed: + +<orderedlist numeration="arabic"> +<listitem><para> +The new disk must be formatted. +</para></listitem> + +<listitem><para> +The "OS9Boot" file must be created and linked by the "OS9Gen" or +"Cobbler" commands. +</para></listitem> + +<listitem><para> +The "startup" file must be created or copied. +</para></listitem> + +<listitem><para> +The CMDS and SYS directories and the files they contain must be +copied. +</para></listitem> +</orderedlist> + +Steps 2 through 4 may be performed manually, or automatically by any +of the following methods: +<orderedlist numeration="arabic"> +<listitem><para> +By a shell procedure file created by the user. +</para></listitem> + +<listitem><para> +By a shell procedure file generated by the "dsave" command +</para></listitem> + +<listitem><para> +By the "backup" command +</para></listitem> +</orderedlist> +</para> +</section> +</chapter>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/nitros9guide/chap7.chapter Sun Jul 07 09:54:04 2002 +0000 @@ -0,0 +1,129 @@ +<chapter> +<title>System Command Descriptions</title> +<para> +This section contains descriptions for each of the command +programs that are supplied with OS-9. These programs are usually +called using the shell, but can be called from most other OS-9 +family programs such as BASIC09, Interactive Debugger, Macro Text +Editor, etc. Unless otherwise noted, these programs are designed to +run as individual processes. +</para> +<para> +<emphasis>WARNING</emphasis> +- ALTHOUGH MANY OS-9 COMMANDS MAY WORK ON LEVEL ONE OR LEVEL +TWO SYSTEMS, THERE ARE DIFFERENCES. TAKE CARE NOT TO MIX COMMAND +FILES FROM LEVEL ONE SYSTEMS ON LEVEL TWO, OR THE REVERSE. +</para> +<section> +<title>Formal Syntax Notation</title> +<para> +Each command description includes a syntax definition which +describes how the command sentence can be constructed. These are +symbolic descriptions that use the following notation: +</para> + +<informaltable frame="none"> +<tgroup cols="2"> +<colspec colwidth="1in"> +<colspec colwidth="4in"> +<tbody> +<row> + <entry>[ ]</entry> + <entry>= Brackets indicate that the enclosed item(s) are optional.</entry> +</row> +<row> + <entry>&repeatst; &repeaten;</entry> + <entry>= Braces indicate that the enclosed item(s) can be + either omitted or repeated multiple times.</entry> +</row> +<row> + <entry>&replstart;path&replend;</entry> + <entry>= Represents any legal pathlist.</entry> +</row> +<row> + <entry>&replstart;devname&replend;</entry> + <entry>= Represents any legal device name.</entry> +</row> +<row> + <entry>&replstart;nodname&replend;</entry> + <entry>= Represents any legal memory module name.</entry> +</row> +<row> + <entry>&replstart;procID&replend;</entry> + <entry>= Represents a process number.</entry> +</row> +<row> + <entry>&replstart;opts&replend;</entry> + <entry>= One or more options defined in the command description.</entry> +</row> +<row> + <entry>&replstart;arglist&replend;</entry> + <entry>= a list of arguments (parameters).</entry> +</row> +<row> + <entry>&replstart;text&replend;</entry> + <entry>= a character string terminated by end-of-line.</entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<para> +NOTE: The syntax of the commands given does not include the shell's +built in options such as alternate memory size, I/O redirection, +etc. This is because the shell will filter its options out of the +command line before it is passed to the program being called. +</para> +</section> + +<section> +<title>Commands</title> + +&attrref; +&backupref; +&binexref; +&buildref; +&chdref; +&cmpref; +&cobblerref; +©ref; +&dateref; +&dcheckref; +&delref; +&deldirref; +&dirref; +&displayref; +&dsaveref; +&dumpref; +&echoref; +&exref; +&formatref; +&freeref; +&identref; +&killref; +&linkref; +&listref; +&loadref; +&loginref; +&makdirref; +&mdirref; +&mergeref; +&mfreeref; +&os9genref; +&printerrref; +&procsref; +&pwdref; +&renameref; +&saveref; +&setimeref; +&setprref; +&shellref; +&sleepref; +&teeref; +&tmoderef; +&tsmonref; +&unlinkref; +&verifyref; +&xmoderef; +</section> +</chapter>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/nitros9guide/display.appendix Sun Jul 07 09:54:04 2002 +0000 @@ -0,0 +1,661 @@ +<appendix> +<title>Display System Functions</title> + +<section> +<title>The Video Display</title> +<para> +Dragon Data OS-9 allows the video display to be used in +alphanumeric, semigraphic, and graphics modes. There are many +built-in functions to control the display, which are activated by +used of various ASCII control character. Thus, these functions are +available for use by software written in any language using standard +output statements (such as "PRINT" in BASIC). The Dragon's Basic09 +language has a Graphics Interface Module that can automatically +generate these codes using Basic09 RUN statements. +</para> +<para> +The display system has two display modes: Alphanumeric +("Alpha") mode and Graphics mode. The Alphanumeric mode also +includes "semigraphic" box-graphics. The Dragon Computer's display +system uses a separate - memory area for each display mode so +operations on the Alpha display do not affect the Graphics display, +and visa-versa. Either display can be selected under software +control. +</para> +<para> +8-bit characters sent to the display system are interpreted +according to their numerical value, as shown in the chart below. +</para> + +<informaltable frame="none"> +<tgroup cols="2"> +<colspec colwidth="2in"> +<colspec colwidth="3in"> +<thead> +<row> +<entry>Character Range (Hex)</entry> +<entry>Mode/Used For</entry> +</row> +</thead> +<tbody> +<row> +<entry>00 - 0E</entry> +<entry>Alpha Mode - cursor and screen control</entry> +</row> +<row> +<entry>0F - 1B</entry> +<entry>Graphics Mode - drawing and screen control</entry> +</row> +<row> +<entry>1C - 20</entry> +<entry>Not used</entry> +</row> +<row> +<entry>20 - SF</entry> +<entry>Alpha Mode - upper case characters</entry> +</row> +<row> +<entry>60 - 7F</entry> +<entry>Alpha Mode - lower case characters</entry> +</row> +<row> +<entry>80 - FF</entry> +<entry>Alpha Mode - Semigraphic patterns</entry> +</row> +</tbody> +</tgroup> +</informaltable> + + +<para> +The graphics and alphanumeric functions are handled by the OS-9 +device driver module called "CCIO". +</para> +</section> +<section> +<title>Alpha Mode Display</title> +<para> +This is the "standard" operational mode. It is used to display +alphanumeric characters and semigraphic box graphics, and simulates +the operation of a typical computer terminal with functions for +scrolling, cursor positioning, clear screen, line delete, etc. +</para> +<para> +Each 8-bit character is assumed to be an ASCII character and is +displayed if its high order bit (sign bit) is cleared. Lower case +letters are displayed in reverse video. If the high order bit of +the character is set it is assumed to be a "Semigraphic 6" graphics +box. See the Dragon manual for an explanation of semigraphics +functions. +</para> + +<table frame="none"> +<title>Alpha Mode Command Codes</title> +<tgroup cols="2"> +<colspec colwidth="0.6in"> +<colspec colwidth="4in"> +<thead> +<row rowsep=1> +<entry>Control Code</entry> +<entry>Name/Function</entry> +</row> +</thead> +<tbody> +<row> +<entry>01</entry> +<entry>HOME - return cursor to upper left hand corner of screen</entry> +</row> +<row> +<entry>02</entry> +<entry>CURSOR XY - move cursor to character X of line Y. The +binary value minus 32 of the two characters following +the control character are used as the X and Y +coordinates. For example, to position the cursor at character 5 of line 10, +you must give X=37 and Y42</entry> +</row> +<row> +<entry>03</entry> +<entry>ERASE LINE - erases all characters on the cursor's line.</entry> +</row> +<row> +<entry>06</entry> +<entry>CURSOR RIGHT - move cursor right one character position</entry> +</row> +<row> +<entry>08</entry> +<entry>CURSOR LEFT - move cursor left one character position</entry> +</row> +<row> +<entry>09</entry> +<entry>CURSOR UP - move cursor up one line</entry> +</row> +<row> +<entry>10</entry> +<entry>CURSOR DOWN (linefeed) move cursor down one line</entry> +</row> +<row> +<entry>12</entry> +<entry>CLEAR SCREEN - erase entire screen and home cursor</entry> +</row> +<row> +<entry>13</entry> +<entry>RETURN - return cursor to leftmost character of line</entry> +</row> +<row> + +<entry>14</entry> +<entry>DISPLAY ALPHA - switch screen from graphic mode to alpha +numeric mode</entry> +</row> +</tbody> +</tgroup> +</table> + +</section> +<section> +<title>Graphics Mode Display</title> +<para> +This mode is used to display high-resolution 2- or 4-color +graphics, and it includes commands to: set color; plot and erase +individual points; draw and erase lines; position the graphics +cursor; and draw circles. +</para> +<para> +The DISPLAY GRAPHICS command must be executed before any other +graphics mode command is used. It causes the graphics screen to be +displayed and sets a current display format and color. The Li.u.t +time the DISPLAY GRAPHICS command is given, a 6144 byte display +memory is allocated by OS-9, so there must be at least this much +continuous free memory available (the OS-9 "MFREE" command can be +used to check free memory). This memory is retained until the END +GRAPHICS command is given, even if the program that initiated +Graphics mode finishes, so it important that the END GRAPHICS +command be used to give up the display memory when Graphics mode is +no longer needed. +</para> +<para> +Graphics mode supports two basic formats: Two-Color which has +256 horizontal by 192 vertical points (G6R mode); and Four Color +which has 128 horizontal by 192 vertical points (G6C mode). Two +color sets are available in either mode. Regardless of the +resolution of the format selected, all Graphics mode commands use a +256 by 192 point coordinate system. The X and Y coordinates are +always positive numbers which assume that point 0,0 is the lower +lefthand corner of the screen. +</para> +<para> +An invisible Graphics Cursor is used by many command to reduce +the amount of output required to generate graphics. This cursor can +be explicitly set to any point using the SET GRAPHICS CURSOR +command. Also, all other commands that include X,Y coordinates +(such as SET POINT) move the graphics cursor to the specified +position. +</para> +<table frame="none"> +<title>Graphics Mode Selection Codes</title> +<tgroup cols="2"> +<colspec colwidth="1in"> +<colspec colwidth="3in"> +<thead> +<row rowsep=1> +<entry>Code</entry> +<entry>Format</entry> +</row> +</thead> +<tbody> +<row> +<entry>00</entry> +<entry>256 x 192 two-color graphics</entry> +</row> +<row> +<entry>01</entry> +<entry>128 x 192 four-color graphics</entry> +</row> +</tbody> +</tgroup> +</table> + + +<table frame="none"> + <title>Color Set and Current Foreground Color Selection Codes</title> +<tgroup cols="6"> +<colspec colname="c1" colwidth="0.5in"> +<colspec colname="c2" colwidth="0.4in"> +<colspec colname="c3" colwidth="1in"> +<colspec colname="c4" colwidth="1in"> +<colspec colname="c5" colwidth="1in"> +<colspec colname="c6" colwidth="1in"> +<thead> +<row> +<entry align="center" namest="c3" nameend="c4">Two Color Format</entry> +<entry align="center" namest="c5" nameend="c6">Four Color Format</entry> +</row> +<row> +<entry align="center" namest="c2">Char</entry> +<entry namest="c3">Background</entry> +<entry namest="c4">Foreground</entry> +<entry namest="c5">Background</entry> +<entry namest="c6">Foreground</entry> +</row> +</thead> +<tbody> +<row> +<entry morerows=3 valign=middle>Color Set 1</entry> +<entry align="center">00</entry> +<entry align="left">Black</entry> +<entry align="left">Black</entry> +<entry align="left">Green</entry> +<entry align="left">Green</entry> +</row> +<row> +<entry align="center">01</entry> +<entry align="left">Black</entry> +<entry align="left">Green</entry> +<entry align="left">Green</entry> +<entry align="left">Yellow</entry> +</row> +<row> +<entry align="center">02</entry> +<entry namest="c5" align="left">Green</entry> +<entry align="left">Blue</entry> +</row> +<row rowsep=1> +<entry align="center">03</entry> +<entry namest="c5" align="left">Green</entry> +<entry align="left">Red</entry> +</row> +<row> +<entry morerows=3 valign=middle>Color Set 2</entry> +<entry align="center">04</entry> +<entry align="left">Black</entry> +<entry align="left">Black</entry> +<entry align="left">Buff</entry> +<entry align="left">Buff</entry> +</row> +<row> +<entry align="center" namest="c2">05</entry> +<entry align="left">Black</entry> +<entry align="left">Buff</entry> +<entry align="left">Buff</entry> +<entry align="left">Cyan</entry> +</row> +<row> +<entry align="center" namest="c2">06</entry> +<entry namest="c5" align="left">Buff</entry> +<entry align="left">Magenta</entry> +</row> +<row rowsep=1> +<entry align="center" namest="c2">07</entry> +<entry namest="c5" align="left">Buff</entry> +<entry align="left">Orange</entry> +</row> +<row> +<entry morerows=3 valign=middle>Color Set 3*</entry> +<entry align="center">08</entry> +<entry namest="c5" align="left">Black</entry> +<entry align="left">Black</entry> +</row> +<row> +<entry align="center" namest="c2">09</entry> +<entry namest="c5" align="left">Black</entry> +<entry align="left">Dark Green</entry> +</row> +<row> +<entry align="center" namest="c2">10</entry> +<entry namest="c5" align="left">Black</entry> +<entry align="left">Med. Green</entry> +</row> +<row rowsep=1> +<entry align="center" namest="c2">11</entry> +<entry namest="c5" align="left">Black</entry> +<entry align="left">Light Green</entry> +</row> +<row> +<entry morerows=3 valign=middle>Color Set 4*</entry> +<entry align="center">12</entry> +<entry namest="c5" align="left">Black</entry> +<entry align="left">Black</entry> +</row> +<row> +<entry align="center" namest="c2">13</entry> +<entry namest="c5" align="left">Black</entry> +<entry align="left">Green</entry> +</row> +<row> +<entry align="center" namest="c2">14</entry> +<entry namest="c5" align="left">Black</entry> +<entry align="left">Red</entry> +</row> +<row> +<entry align="center" namest="c2">15</entry> +<entry namest="c5" align="left">Black</entry> +<entry align="left">Buff</entry> +</row> +</tbody> +</tgroup> +</table> + +<para> +* Color sets 3 and 4 not available on PAL video system (European) +models. These color sets work only with NTSC (U.S., Canada, Japan) +models. +</para> + +<table frame="none"> + <title>Graphics Mode Control Commands</title> +<tgroup cols="2"> +<colspec colname="c1" colwidth="0.8in"> +<colspec colname="c1" colwidth="4in"> +<thead> +<row rowsep="1"> +<entry>Control Code</entry> +<entry>Name/Function</entry> +</row> +</thead> +<tbody> +<row> +<entry>15</entry> +<entry>DISPLAY GRAPHICS - switches screen to graphics mode. +This command must be given before any other +graphics commands are used. The first time this command +is given, a 6K byte display buffer is assigned. If 6K of +contiguous memory is not available an error is returned. +This command is followed by two characters which specify +the graphics mode and current color/color set, respectively.</entry> +</row> +<row> +<entry>16</entry> +<entry>PRESET SCREEN - presets entire screen to color code +passed in next character.</entry> +</row> +<row> +<entry>17</entry> +<entry>SET COLOR - selects foreground color (and color set) +passed in next character, but does not change graphics +mode.</entry> +</row> +<row> +<entry>18</entry> +<entry>QUIT GRAPHICS - disables graphics mode and returns the +6K byte graphics memory area to OS-9 for other use, and +switches to alpha mode.</entry> +</row> +<row> +<entry>19</entry> +<entry>ERASE GRAPHICS - erases all points to background color +and homes graphics cursor to the desired position.</entry> +</row> +<row> +<entry>20</entry> +<entry>HOME GRAPHICS CURSOR - moves graphics cursor to coordinates +0,0 (lower left hand corner).</entry> +</row> +<row> +<entry>21</entry> +<entry>SET GRAPHICS CURSOR - moves graphics cursor to given +coordinates X,Y. The binary value of the two characters that immediately +follow are used as the X and Y values, respectively.</entry> +</row> +<row> +<entry>22</entry> +<entry>DRAW LINE - draws a line of the current foreground +color from the current graphics cursor position to the +given X,Y coordinates. The binary value of the two +characters that immediately follow are used as the X +and Y values, respectively. The graphics cursor is +moved to the end point of the line.</entry> +</row> +<row> +<entry>23</entry> +<entry>ERASE LINE - same as DRAW LINE except the line is +"drawn" in the current background color, thus erasing +the line.</entry> +</row> +<row> +<entry>24</entry> +<entry>SET POINT - sets the pixel-at point X,Y to the current +foreground color. The binary value of the two +characters that immediately follow are used as the x +and Y values, respectively. The graphics cursor is +moved to the point Set.</entry> +</row> +<row> +<entry>25</entry> +<entry>ERASE POINT - same as DRAW POINT except the point is +"drawn" in the current background color, thus erasing +the point.</entry> +</row> +<row> +<entry>26</entry> +<entry>DRAW CIRCLE - draws a circle of the current foreground +color with its center at the current graphics cursor +position using a radius R which is obtained using the +binary value of the next character. The graphics +cursor position is not affected by this command.</entry> +</row> +</tbody> +</tgroup> +</table> + +</section> +<section> +<title>Get Status Commands</title> +<para> +The Dragon Computer I/O driver includes OS-9 Get Status +commands that return the display status and joystick values, +respectively. These are accessable via the Basic09 Graphics +Interface Module, or by the assembly language system calls listed +below: +</para> +<para> +GET DISPLAY STATUS: +</para> +<informaltable frame="none"> +<tgroup cols="2"> +<colspec colwidth="2in"> +<colspec colwidth="3in"> +<tbody> +<row> +<entry>Calling Format</entry> +<entry><literallayout class="Monospaced">lda #1 (path number) +ldb #SS.DStat (Getstat code $12) +os9 I$GSTT call OS-9</literallayout></entry> +</row> +<row> +<entry>Passed</entry> +<entry>nothing</entry> +</row> +<row> +<entry>Returns</entry> +<entry><literallayout>X = address of graphics display memory +Y = graphics cursor address x=MSB y =LSB +A = color code of pixel at cursor address</literallayout></entry> +</row> +</tbody> +</tgroup> +</informaltable> +<para> +GET JOYSTICK VALUES: +</para> +<informaltable frame="none"> +<tgroup cols="2"> +<colspec colwidth="2in"> +<colspec colwidth="3in"> +<tbody> +<row> +<entry>Calling Format</entry> +<entry><literallayout class="Monospaced">lda #1 (path number) +ldb #SS.Joy (Getstat code $13) +os9 I$GSTT call OS-9</literallayout></entry> +</row> +<row> +<entry>Passed</entry> +<entry>X = 0 for right joystick; 1 for left joystick</entry> +</row> +<row> +<entry>Returns</entry> +<entry><literallayout>X = selected joystick x value (0-63) +Y = selected joystick y value (0-63) +A = $FF if fire button on; $00 if off</literallayout></entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<table frame="none"> +<title>Display Control Codes Condensed Summary</title> +<tgroup cols="4"> +<colspec colwidth="0.9in"> +<colspec colwidth="0.9in"> +<colspec colwidth="0.9in"> +<colspec colwidth="2.5in"> +<thead> +<row rowsep="1"> +<entry>1st Byte</entry> +<entry>2nd Byte</entry> +<entry>3rd Byte</entry> +<entry>Function</entry> +</row> +</thead> +<tbody> +<row> +<entry>00</entry> +<entry></entry> +<entry></entry> +<entry>Null</entry> +</row> +<row> +<entry>01</entry> +<entry></entry> +<entry></entry> +<entry>Home Alpha Cursor</entry> +</row> +<row> +<entry>02</entry> +<entry>Column+32</entry> +<entry>Row+32</entry> +<entry>Position Alpha Cursor</entry> +</row> +<row> +<entry>03</entry> +<entry></entry> +<entry></entry> +<entry>Erase Line</entry> +</row> +<row> +<entry>06</entry> +<entry></entry> +<entry></entry> +<entry>Cursor Right</entry> +</row> +<row> +<entry>08</entry> +<entry></entry> +<entry></entry> +<entry>Cursor Left</entry> +</row> +<row> +<entry>09</entry> +<entry></entry> +<entry></entry> +<entry>Cursor Up</entry> +</row> +<row> +<entry>10</entry> +<entry></entry> +<entry></entry> +<entry>Cursor Down</entry> +</row> +<row> +<entry>12</entry> +<entry></entry> +<entry></entry> +<entry>Clear Screen</entry> +</row> +<row> +<entry>13</entry> +<entry></entry> +<entry></entry> +<entry>Carriage Return</entry> +</row> +<row> +<entry>14</entry> +<entry></entry> +<entry></entry> +<entry>Select Alpha Mode</entry> +</row> +<row> +<entry>15</entry> +<entry>Mode</entry> +<entry>Color Code</entry> +<entry>Select Graphics Mode</entry> +</row> +<row> +<entry>16</entry> +<entry>Color Code</entry> +<entry></entry> +<entry>Preset Screen</entry> +</row> +<row> +<entry>17</entry> +<entry>Color Code</entry> +<entry></entry> +<entry>Select Color</entry> +</row> +<row> +<entry>18</entry> +<entry></entry> +<entry>Quit Graphics Mode</entry> +</row> +<row> +<entry>19</entry> +<entry></entry> +<entry>Erase Screen</entry> +</row> +<row> +<entry>20</entry> +<entry></entry> +<entry>Home Graphics Cursor</entry> +</row> +<row> +<entry>21</entry> +<entry>X Coord</entry> +<entry>Y Coord</entry> +<entry>Move Graphics Cursor</entry> +</row> +<row> +<entry>22</entry> +<entry>X Coord</entry> +<entry>Y Coord</entry> +<entry>Draw Line to X/Y</entry> +</row> +<row> +<entry>23</entry> +<entry>X Coord</entry> +<entry>Y Coord</entry> +<entry>Erase Line to X/Y</entry> +</row> +<row> +<entry>24</entry> +<entry>X Coord</entry> +<entry>Y Coord</entry> +<entry>Set Point at X/Y</entry> +</row> +<row> +<entry>25</entry> +<entry>X Coord</entry> +<entry>Y Coord</entry> +<entry>Clear Point at X/Y</entry> +</row> +<row> +<entry>26</entry> +<entry>Radius</entry> +<entry></entry> +<entry>Draw Circle</entry> +</row> +</tbody> +</tgroup> +</table> + +</section> +</appendix>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/nitros9guide/errorcodes.appendix Sun Jul 07 09:54:04 2002 +0000 @@ -0,0 +1,267 @@ +<appendix> +<title>OS-9 Error Codes</title> +<para> +The error codes are shown in both hexadecimal (first column) and +decimal (second column). Error codes other than those listed are +generated by programming languages or user programs. +</para> + +<informaltable frame="none"> +<tgroup cols="3"> +<colspec colwidth="0.6in"> +<colspec colwidth="0.6in"> +<colspec colwidth="3.8in"> +<thead> +<row> +<entry rowsep="1">HEX</entry> +<entry rowsep="1">DEC</entry> +<entry rowsep="0"></entry> +</row> +</thead> +<tbody> +<row> + <entry>$C8</entry> + <entry>200</entry> + <entry>PATH TABLE FULL - The file cannot be opened because + the system path table is currently full.</entry></row> +<row> + <entry>$C9</entry> + <entry>201</entry> + <entry>ILLEGAL PATH NUMBER - Number too large or for non-existant path.</entry></row> +<row> + <entry>$CA</entry> + <entry>202</entry> + <entry>INTERRUPT POLLING TABLE FULL</entry></row> +<row> + <entry>$CB</entry> + <entry>203</entry> + <entry>ILLEGAL MODE - attempt to perform I/O function of which the device or file is incapable.</entry></row> +<row> + <entry>$CC</entry> + <entry>204</entry> + <entry>DEVICE TABLE FULL - Can't add another device</entry></row> +<row> + <entry>$CD</entry> + <entry>205</entry> + <entry>ILLEGAL MODULE HEADER - module not loaded because its + sync code, header parity, or CRC is incorrect.</entry></row> +<row> + <entry>$CE</entry> + <entry>206</entry> + <entry>MODULE DIRECTORY FULL - Can't add another module</entry></row> +<row> + <entry>$CF</entry> + <entry>207</entry> + <entry>MEMORY FULL - Level One: not enough contiquous RAM free. + Level Two: process address space full</entry></row> +<row> + <entry>$D0</entry> + <entry>208</entry> + <entry>ILLEGAL SERVICE REQUEST - System call had an illegal code number.</entry></row> +<row> + <entry>$D1</entry> + <entry>209</entry> + <entry>MODULE BUSY - non-sharable module is in use by another process.</entry></row> +<row> + <entry>$D2</entry> + <entry>210</entry> + <entry>BOUNDARY ERROR - Memory allocation or deallocation request not on a page boundary.</entry></row> +<row> + <entry>$D3</entry> + <entry>211</entry> + <entry>END OF FILE - End of file encountered on read.</entry></row> +<row> + <entry>$D4</entry> + <entry>212</entry> + <entry>RETURNING NON-ALLOCATED MEMORY - +attempted to deallocate memory not previously assigned.</entry></row> +<row> + <entry>$D5</entry> + <entry>213</entry> + <entry>NON-EXISTING SEGMENT - device has damaged file structure.</entry></row> +<row> + <entry>$D6</entry> + <entry>214</entry> + <entry>NO PERMISSION - file attributes do not permit access requested.</entry></row> +<row> + <entry>$D7</entry> + <entry>215</entry> + <entry>BAD PATH NAME - syntax error in pathlist (illegal character, etc.).</entry></row> +<row> + <entry>$D8</entry> + <entry>216</entry> + <entry>PATH NAME NOT FOUND - can't find pathlist specified.</entry></row> +<row> + <entry>$D9</entry> + <entry>217</entry> + <entry>SEGMENT LIST FULL - file is too fragmented to be expanded further.</entry></row> +<row> + <entry>$DA</entry> + <entry>218</entry> + <entry>FILE ALREADY EXISTS - file name already appears in current directory.</entry></row> +<row> + <entry>$DB</entry> + <entry>219</entry> + <entry>ILLEGAL BLOCK ADDRESS - device's file structure has been damaged.</entry></row> +<row> + <entry>$DC</entry> + <entry>220</entry> + <entry>ILLEGAL BLOCK SIZE - device's file structure has been damaged.</entry></row> +<row> + <entry>$DD</entry> + <entry>221</entry> + <entry>MODULE NOT FOUND - request for link to module not found in directory.</entry></row> + <row> + <entry>$DE</entry> + <entry>222</entry> + <entry>SECTOR OUT OF RANGE - device file structure damaged or +incorrectly formatted.</entry></row> +<row> + <entry>$DF</entry> + <entry>223</entry> + <entry>SUICIDE ATTEMPT - request to return memory where your stack is located.</entry></row> +<row> + <entry>$E0</entry> + <entry>224</entry> + <entry>ILLEGAL PROCESS NUMBER - no such process exists.</entry></row> +<row> + <entry>$E2</entry> + <entry>226</entry> + <entry>NO CHILDREN - can't wait because process has no children.</entry></row> +<row> + <entry>$E3</entry> + <entry>227</entry> + <entry>ILLEGAL SWI CODE - must be 1 to 3.</entry></row> +<row> + <entry>$E4</entry> + <entry>228</entry> + <entry>PROCESS ABORTED - process aborted by signal code 2.</entry></row> +<row> + <entry>$E5</entry> + <entry>229</entry> + <entry>PROCESS TABLE FULL - can't fork now.</entry></row> +<row> + <entry>$E6</entry> + <entry>230</entry> + <entry>ILLEGAL PARAMETER AREA - high and low bounds passed in fork call are incorrect.</entry></row> +<row> + <entry>$E7</entry> + <entry>231</entry> + <entry>KNOWN MODULE - for internal use only.</entry></row> +<row> + <entry>$E8</entry> + <entry>232</entry> + <entry>INCORRECT MODULE CRC - module has bad CRC value.</entry></row> +<row> + <entry>$E9</entry> + <entry>233</entry> + <entry>SIGNAL ERROR - receiving process has previous +unprocessed signal pending.</entry></row> +<row> + <entry>$EA</entry> + <entry>234</entry> + <entry>NON-EXISTENT MODULE - unable to locate module.</entry></row> +<row> + <entry>$EB</entry> + <entry>235</entry> + <entry>BAD NAME - illegal name syntax</entry></row> +<row> + <entry>$EC</entry> + <entry>236</entry> + <entry>BAD HEADER - module header parity incorrect</entry></row> +<row> + <entry>$ED</entry> + <entry>237</entry> + <entry>RAM FULL - no free system RAM available at this time</entry></row> +<row> + <entry>$EE</entry> + <entry>238</entry> + <entry>UNKNOWN PROCESS ID - incorrect process ID number</entry></row> +<row> + <entry>$EF</entry> + <entry>239</entry> + <entry>NO TASK NUMBER AVAILABLE - all task numbers in use</entry></row> +</tbody> +</tgroup> +</informaltable> + + +<section> +<title>Device Driver Errors</title> +<para> +The following error codes are generated by I/O device drivers, and +are somewhat hardware dependent. Consult manufacturer's hardware +manual for more details. +</para> + +<informaltable frame="none"> +<tgroup cols="3"> +<colspec colwidth="0.6in"> +<colspec colwidth="0.6in"> +<colspec colwidth="3.8in"> +<tbody> +<row> + <entry>$F0</entry> + <entry>240</entry> + <entry>UNIT ERROR - device unit does not exist.</entry></row> +<row> + <entry>$F1</entry> + <entry>241</entry> + <entry>SECTOR ERROR - sector number is out of range.</entry></row> +<row> + <entry>$F2</entry> + <entry>242</entry> + <entry>WRITE PROTECT - device is write protected.</entry></row> +<row> + <entry>$F3</entry> + <entry>243</entry> + <entry>CRC ERROR - CRC error on read or write verify.</entry></row> +<row> + <entry>$F4</entry> + <entry>244</entry> + <entry>READ ERROR - Data transfer error during disk read + operation, or SCF (terminal) input buffer overrun.</entry></row> +<row> + <entry>$F5</entry> + <entry>245</entry> + <entry>WRITE ERROR - hardware error during disk write operation.</entry></row> +<row> + <entry>$F6</entry> + <entry>246</entry> + <entry>NOT READY - device has "not ready" status.</entry></row> +<row> + <entry>$F7</entry> + <entry>247</entry> + <entry>SEEK ERROR - physical seek to non-existant sector.</entry></row> +<row> + <entry>$F8</entry> + <entry>248</entry> + <entry>MEDIA FULL - insufficient free space on media.</entry></row> +<row> + <entry>$F9</entry> + <entry>249</entry> + <entry>WRONG TYPE - attempt to read incompatible media (i.e. + attempt to read double-side disk on single-side drive)</entry></row> +<row> + <entry>$FA</entry> + <entry>250</entry> + <entry>DEVICE BUSY - non-sharable device is in use</entry></row> +<row> + <entry>$FB</entry> + <entry>251</entry> + <entry>DISK ID CHANGE - Media was changed with files open</entry></row> +<row> + <entry>$FC</entry> + <entry>252</entry> + <entry>RECORD IS LOCKED-OUT - Another process is accessing the +requested record.</entry></row> +<row> + <entry>$FD</entry> + <entry>253</entry> + <entry>NON-SHARABLE FILE BUSY - Another process is accessing the +requested file.</entry></row> +</tbody> +</tgroup> +</informaltable> +</section> +</appendix>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/nitros9guide/go51.appendix Sun Jul 07 09:54:04 2002 +0000 @@ -0,0 +1,136 @@ +<appendix> +<title>GO51...The 51 Column by 24 Line Video Display</title> +<para> +An alternative video screen device driver, which provides a 51 +column by 24 line display with upper and lower case character sets, +can be incorporated into OS-9 with the command: +<screen> +GO51 +</screen> +This command replaces the normal text screen driver with one that +uses high resolution graphics to "draw" the characters. As there +are fever pixels (dots) per character in this mode more characters +can be displayed on the screen, albeit with some loss of character +definition. +</para> +<para> +Note, however, that the use of a high resolution graphics page +means that an extra 6K bytes will be needed in this mode. This +extra memory requirement is not normally a problem but in memory-critical +applications, such as the C and Pascal compilers, the user +can simply avoid the use of GO51. +</para> +<para> +This mode of display has a set of <emphasis>escape sequences</emphasis> +(commands) to +emulate commercial data terminals. In addition to the video screen +driver, GO51 provides a new keyboard driver which features auto-repeat. +The keyboard code allocation is the same as described in +section 2.4.3 and Appendix D. +</para> +<section> +<title>The GO51 Display Functions</title> +<para> +Like the normal 32 by 16 video display functions described in +Appendix C the 51 by 24 mode provides many built in facilities to +control the display. These functions are activated by the use of +the various escape sequences and control characters described below: +</para> +<informaltable frame="none"> +<tgroup cols="2"> +<colspec colwidth="1.5in"> +<colspec colwidth="3.5in"> +<thead> +<row> +<entry>Escape Sequence (Hex)</entry> +<entry>Name/Function</entry> +</row> +</thead> + +<tbody> +<row> +<entry>1B 41 X Y</entry> +<entry>CURSOR XY - move cursor to column X(0-50) +and Y(0-23) where X and Y are single byte values.</entry> +</row> +<row> +<entry>1B 42</entry> +<entry>CLEAR EOL - clear from cursor to the end of +line. Cursor position remains unchanged.</entry> +</row> +<row> +<entry>1B 43</entry> +<entry>CURSOR RIGHT - move cursor right by one character position.</entry> +</row> +<row> +<entry>1B 44</entry> +<entry>CURSOR UP - move cursor up by one line.</entry> +</row> +<row> +<entry>1B 45</entry> +<entry>CURSOR DOWN - move cursor down one line.</entry> +</row> +<row> +<entry>1B 46</entry> +<entry>REVERSE ON - turn reverse field on.</entry> +</row> +<row> +<entry>1B 47</entry> +<entry>REVERSE OFF - turn reverse field off.</entry> +</row> +<row> +<entry>1B 48</entry> +<entry>UNDERLINE ON - turn underline on.</entry> +</row> +<row> +<entry>1B 49</entry> +<entry>UNDERLINE OFF - turn underline off.</entry> +</row> +<row> +<entry>1B 4A</entry> +<entry>CLEAR EOS - clear from cursor to end of +screen. Cursor position remains unchanged.</entry> +</row> +</tbody> +</tgroup> +</informaltable> + + + + +<informaltable frame="none"> +<tgroup cols="2"> +<colspec colwidth="1.5in"> +<colspec colwidth="3.5in"> +<thead> +<row> +<entry>Control Character (Hex)</entry> +<entry>Name/Function</entry> +</row> +</thead> +<tbody> +<row> +<entry>07</entry> +<entry>BELL - generates a short audible tone.</entry> +</row> +<row> +<entry>08</entry> +<entry>BACKSPACE (CURSOR LEFT) - moves cursor left one character position.</entry> +</row> +<row> +<entry>0A</entry> +<entry>LINE FEED - move cursor down by one line.</entry> +</row> +<row> +<entry>0B</entry> +<entry>CURSOR HOME - move cursor to home position 0,0 (top left).</entry> +</row> +<row> +<entry>0C</entry> +<entry>CLEAR SCREEN - clears the screen and home cursor.</entry> +</row> +</tbody> +</tgroup> +</informaltable> +</section> +</appendix>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/nitros9guide/keys.appendix Sun Jul 07 09:54:04 2002 +0000 @@ -0,0 +1,36 @@ +<appendix> +<title>Key Definitions With Hexadecimal Values</title> +<literallayout class="Monospaced"> +NORM SHFT CTRL NORM SHFT CTRL NORM SHFT CTRL +---- ---- ------ ---- ---- ------ ---- ---- ------ +0 30 0 30 -- @ 40 ' 60 NUL 00 P 50 p 70 DLE 10 +1 31 1 21 | 7C A 41 a 61 SOH 01 Q 51 q 71 DC1 11 +2 32 " 22 00 B 42 b 62 STX 02 R 52 r 72 DC2 12 +3 33 # 23 - 7E C 43 c 63 ETX O3 S 53 s 73 DC3 13 +4 34 $ 24 00 0 44 d 64 EOT 04 T 54 t 74 DC4 14 +5 35 % 25 00 E 45 e 65 END O5 U 55 u 75 NAK 15 +6 36 & 26 00 F 46 f 66 ACK 06 V 56 V 76 SYN 16 +7 37 ' 27 5E G 47 g 67 BEL O7 W 57 w 77 ETB 17 +8 38 ( 28 [ 5B H 48 h 68 BSP 08 X 58 x 78 CAN 18 +9 39 ) 29 ] 5D I 49 i 69 HT O9 Y 59 y 79 EM 19 +: 3A * 2A 00 J 4A j 6A LF CA Z 5A z 7A SUM 1A +; 3B + 2B 00 K 4B k 6B VT OB +, 2C < 3C { 7B L 4C l 6C FF 0C +- 2D = 3D - 5F M 4D m 6D CR 00 +. 2E > 3E } 7D N 4E n 6E CO CE +/ 2F ? 3F \ 5C O 4F o 6F CI OF + + + FUNCTION KEYS + + NORM SHFT CTRL + ---- ---- ---- + BREAK 05 03 1B + ENTER 0D 0D 0D + SPACE 20 20 20 + <- 08 18 10 + -> 09 19 11 + v 0A 1A 12 + ^ 0C 1C 13 +</literallayout> +</appendix>