Mercurial > hg > Members > kono > nitros9-code
changeset 40:3cf41d86d998
Finished I/O service requests and appendix C
author | roug |
---|---|
date | Wed, 17 Apr 2002 17:59:43 +0000 |
parents | 80cda5c48ea7 |
children | d6fa13b66b87 |
files | docs/os9sysprog/makefile docs/os9sysprog/os9sysprog.docbook |
diffstat | 2 files changed, 893 insertions(+), 266 deletions(-) [+] |
line wrap: on
line diff
--- a/docs/os9sysprog/makefile Tue Apr 16 20:12:52 2002 +0000 +++ b/docs/os9sysprog/makefile Wed Apr 17 17:59:43 2002 +0000 @@ -1,19 +1,21 @@ SRC=os9sysprog +#STYLESHEET= STYLESHEET=docbook-utils.dsl -all: book1.htm +all: $(SRC).html $(SRC).pdf: $(SRC).docbook $(STYLESHEET) docbook2pdf -d $(STYLESHEET) $(SRC).docbook $(SRC).ps: $(SRC).docbook $(STYLESHEET) - docbook2ps -d $(STYLESHEET) $(SRC).docbook + docbook2ps $(SRC).docbook +# docbook2ps -d $(STYLESHEET) $(SRC).docbook -book1.htm: $(SRC).docbook $(STYLESHEET) +$(SRC).html: $(SRC).docbook $(STYLESHEET) rm -f *.htm *.html # jade -t sgml -V html-index -d /usr/share/sgml/docbook/dsssl-stylesheets-1.64/html/docbook.dsl $(SRC).docbook # collateindex.pl -p -o index.docbook HTML.index - docbook2html -d $(STYLESHEET) $(SRC).docbook + docbook2html $(SRC).docbook print: psnup -2 $(SRC).ps | lpr
--- a/docs/os9sysprog/os9sysprog.docbook Tue Apr 16 20:12:52 2002 +0000 +++ b/docs/os9sysprog/os9sysprog.docbook Wed Apr 17 17:59:43 2002 +0000 @@ -1,6 +1,6 @@ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <!-- $Id$ --> -<book id="os9sysman" lang="en"> +<book id="os9sysprog" lang="en"> <bookinfo> <title>OS-9 Operating System</title> <subtitle>System Programmer's Manual</subtitle> @@ -4855,7 +4855,7 @@ </sect1> <sect1> -<title>GET ID Get process ID / user ID</title> +<title>GET ID Get process ID / user ID F$ID</title> <informaltable frame="none"> <tgroup cols="2"> @@ -4895,7 +4895,7 @@ </sect1> <sect1> -<title>LINK: Link to memory module. F $LINK</title> +<title>LINK Link to memory module. F$LINK</title> <informaltable frame="none"> <tgroup cols="2"> @@ -5760,39 +5760,27 @@ <sect1> <title>A64 Allocate a 64 byte memory block F$A64</title> -<para>ASSEMBLER CALL: OS9 F$A64 -</para> - -<para>MACHINE CODE: 103F 30 -</para> - -<para>INPUT: (X) = Base address of page table (zero if the page table -has not yet been allocated)</para> - -<para>OUTPUT: (X) Block number</para> - -<para>(N) = Base address of page table</para> - -<para>(Y) = Address of block</para> - <informaltable frame="none"> <tgroup cols="2"> <tbody> <row> <entry>ASSEMBLER CALL:</entry> - <entry>OS9 F$</entry> + <entry>OS9 F$A64</entry> </row> <row> <entry>MACHINE CODE:</entry> - <entry>103F </entry> -</row> -<row> - <entry>INPUT:</entry> - <entry></entry> -</row> -<row> - <entry>OUTPUT:</entry> - <entry></entry> + <entry>103F 30</entry> +</row> +<row> + <entry>INPUT:</entry> + <entry>(X) = Base address of page table (zero if the page table +has not yet been allocated).</entry> +</row> +<row> + <entry>OUTPUT:</entry> + <entry><literallayout>(X) Block number +(X) = Base address of page table +(Y) = Address of block.</literallayout></entry> </row> <row> <entry>ERROR OUTPUT:</entry> @@ -5807,14 +5795,13 @@ 64 byte blocks of memory by splitting whole pages (256 byte) into tour sections. The first 64 bytes of the base page are used as a "page table", which contains the MSB of all pages in the -memory structure. Passing a value of zero in the N register will +memory structure. Passing a value of zero in the X register will cause the F$A64 service request to allocate a new base page and the first 64 byte memory block. Whenever a new page is needed, an F$SRQM service request will automatically be executed. The first byte of each block contains the block number; routines using this service request should not alter it. Below is a diagram to show how 7 blocks might be allocated:</para> - <screen> ANY 256 BYTE ANY 256 BYTE MEMORY PAGE MEMORY PAGE @@ -5843,87 +5830,68 @@ <sect1> <title>APRC Insert process in active process queue F$APRC</title> -<para>ASSEMBLER CALL: OS9 F$APRC -</para> - -<para>MACHINE CODE: 103F 2C -</para> - -<para>INPUT: (N) = Address of process descriptor</para> - -<para>OUTPUT: None</para> +<informaltable frame="none"> +<tgroup cols="2"> +<tbody> +<row> + <entry>ASSEMBLER CALL:</entry> + <entry>OS9 F$APRC</entry> +</row> +<row> + <entry>MACHINE CODE:</entry> + <entry>103F 2C</entry> +</row> +<row> + <entry>INPUT:</entry> + <entry>(X) = Address of process descriptor.</entry> +</row> +<row> + <entry>OUTPUT:</entry> + <entry>None.</entry> +</row> +<row> + <entry>ERROR OUTPUT:</entry> + <entry><literallayout>(CC) = C bit set. +(B) = Appropriate error code.</literallayout></entry> +</row> +</tbody> +</tgroup> +</informaltable> + +<para>This system mode service request inserts a process into the active +process queue so that it may be scheduled for execution.</para> + +<para>All processes already in the active process queue are aged, and +the age of the specified process is set to its priority. If the +process is in system state, it is inserted after any other process's +also in system state, but before any process in user state. If the +process is in user state, it is inserted according to its age.</para> + +<para>NOTE: THIS IS A PRIVILEGED SYSTEM MODE SERVICE REQUEST</para> +</sect1> + +<sect1> +<title>FIND-64 Find a 64 byte memory block F$F64</title> <informaltable frame="none"> <tgroup cols="2"> <tbody> <row> <entry>ASSEMBLER CALL:</entry> - <entry>OS9 F$</entry> + <entry>OS9 F$F64</entry> </row> <row> <entry>MACHINE CODE:</entry> - <entry>103F </entry> -</row> -<row> - <entry>INPUT:</entry> - <entry></entry> -</row> -<row> - <entry>OUTPUT:</entry> - <entry></entry> -</row> -<row> - <entry>ERROR OUTPUT:</entry> - <entry><literallayout>(CC) = C bit set. -(B) = Appropriate error code.</literallayout></entry> -</row> -</tbody> -</tgroup> -</informaltable> - -<para>Tbie system mode service request inserts a process into the active -process queue so that it may be scheduled for execution</para> - -<para>All processes already in the active process queue are aged, and -the age of the specified process is set to its priority If the -process is in system state, it is inserted after any other process's -also in system state, but before any process in user state. If the -process is in user state, it is inserted according to its age</para> - -<para>NOTE: THIS IS A PRIVILEGED SYSTEM MODE SERVICE REQUEST</para> -</sect1> - -<sect1> -<title>FIND-64 Find a 64 byte memory block F$F64</title> - -<para>ASSEMBLER CALL: OS9 F$F64</para> - -<para>MACHINE CODE: 103F 2F -</para> - -<para>INPUT: (K) = Add ess o base page, (A) = Block number. -</para> - -<para>OUTPUT: (Y) = Address of block</para> - -<informaltable frame="none"> -<tgroup cols="2"> -<tbody> -<row> - <entry>ASSEMBLER CALL:</entry> - <entry>OS9 F$</entry> -</row> -<row> - <entry>MACHINE CODE:</entry> - <entry>103F </entry> -</row> -<row> - <entry>INPUT:</entry> - <entry></entry> -</row> -<row> - <entry>OUTPUT:</entry> - <entry></entry> + <entry>103F 2F</entry> +</row> +<row> + <entry>INPUT:</entry> + <entry><literallayout>(X) = Address of base page. +(A) = Block number.</literallayout></entry> +</row> +<row> + <entry>OUTPUT:</entry> + <entry>(Y) = Address of block.</entry> </row> <row> <entry>ERROR OUTPUT:</entry> @@ -5939,42 +5907,32 @@ used this service request to find process descriptors and path descriptors when given their number.</para> -<para>Block numbers range from 1,.N</para> - -<para>NOTE: THIS IS A PRIVILEGED SYSTEM MODE SERVICE REQUEST -</para> +<para>Block numbers range from 1..N</para> + +<para>NOTE: THIS IS A PRIVILEGED SYSTEM MODE SERVICE REQUEST</para> </sect1> <sect1> <title>IODEL Delete I/O device from system F$IODL</title> -<para>ASSEMBLER CALL: OS9 F$IODL -</para> - -<para>MACHINE CODE: 103F 33</para> - -<para>INPUT: (K) = Address of an I/O module, (see description)</para> - -<para>OUTPUT: None</para> - <informaltable frame="none"> <tgroup cols="2"> <tbody> <row> <entry>ASSEMBLER CALL:</entry> - <entry>OS9 F$</entry> + <entry>OS9 F$IODL</entry> </row> <row> <entry>MACHINE CODE:</entry> - <entry>103F </entry> -</row> -<row> - <entry>INPUT:</entry> - <entry></entry> -</row> -<row> - <entry>OUTPUT:</entry> - <entry></entry> + <entry>103F 33</entry> +</row> +<row> + <entry>INPUT:</entry> + <entry>(X) = Address of an I/O module, (see description).</entry> +</row> +<row> + <entry>OUTPUT:</entry> + <entry>None.</entry> </row> <row> <entry>ERROR OUTPUT:</entry> @@ -5986,48 +5944,39 @@ </informaltable> <para>This system mode service request is used to determine whether or -not an I/O module is being used. The N register passes the address of +not an I/O module is being used. The X register passes the address of a device descriptor module, device driver module, or file manager -module. The address .is used to search the device table, and if found +module. The address is used to search the device table, and if found the use count is checked to see if it is zero. If it is not zero, an -error condition is returned</para> +error condition is returned.</para> <para>This service request is used primarily by IOMAN and may be of limited or no use for other applications</para> -<para>NOTE: THIS IS A PRIVILEGED SYSTEM MODE SERVICE REQUEST -</para> +<para>NOTE: THIS IS A PRIVILEGED SYSTEM MODE SERVICE REQUEST</para> </sect1> <sect1> <title>IOQUEUE Enter I/O queue F$IOQU</title> -<para>ASSEMBLER CALL: OS9 F$IQQU</para> - -<para>MACHINE CODE: 103F 2B</para> - -<para>INPUT: (A) = Process Number.</para> - -<para>OUTPUT: None.</para> - <informaltable frame="none"> <tgroup cols="2"> <tbody> <row> <entry>ASSEMBLER CALL:</entry> - <entry>OS9 F$</entry> + <entry>OS9 F$IOQU</entry> </row> <row> <entry>MACHINE CODE:</entry> - <entry>103F </entry> -</row> -<row> - <entry>INPUT:</entry> - <entry></entry> -</row> -<row> - <entry>OUTPUT:</entry> - <entry></entry> + <entry>103F 2B</entry> +</row> +<row> + <entry>INPUT:</entry> + <entry>(A) = Process Number.</entry> +</row> +<row> + <entry>OUTPUT:</entry> + <entry>None.</entry> </row> <row> <entry>ERROR OUTPUT:</entry> @@ -6049,54 +5998,32 @@ <sect1> <title>SETIRQ Add or remove device from IRQ table. F$IRQ</title> -<para>ASSEMBLER CALL: OS9 F$IRQ -</para> - -<para>MACHINE CODE: 103F 2A -</para> - -<para>INPUT: (X) = Zero to remove device from table, or the address of a -packet as defined below to add a device to -</para> - -<para>the IRQ polling table: -</para> - -<para>(xl = flip byte -</para> - -<para>(X+1l = mask byte -</para> - -<para>(X+21 - priority -</para> - -<para>(U) = Address of service routine's static Storage area</para> - -<para>(Y) = Device IRQ service routine address</para> - -<para>(D) = Address of the device status register</para> - -<para>OUTPUT: None</para> - <informaltable frame="none"> <tgroup cols="2"> <tbody> <row> <entry>ASSEMBLER CALL:</entry> - <entry>OS9 F$</entry> + <entry>OS9 F$IRQ</entry> </row> <row> <entry>MACHINE CODE:</entry> - <entry>103F </entry> -</row> -<row> - <entry>INPUT:</entry> - <entry></entry> -</row> -<row> - <entry>OUTPUT:</entry> - <entry></entry> + <entry>103F 2A</entry> +</row> +<row> + <entry>INPUT:</entry> + <entry><literallayout>(X) = Zero to remove device from table, or the address of a +packet as defined below to add a device to the IRQ polling table: + + [x] = flip byte + [X+1] = mask byte + [X+2] = priority +(U) = Address of service routine's static storage area. +(Y) = Device IRQ service routine address. +(D) = Address of the device status register.</literallayout></entry> +</row> +<row> + <entry>OUTPUT:</entry> + <entry>None.</entry> </row> <row> <entry>ERROR OUTPUT:</entry> @@ -6109,10 +6036,10 @@ <para>This service request is used to add a device to or remove a device from the IRQ polling table. To remove a device from the table the -input should be (X)-0, (U)- Addr of service routine's static storage. +input should be (X)=0, (U)= Addr of service routine's static storage. This service request is primarily used by device driver routines. See the text of this manual for a complete discussion of the interrupt -polling system</para> +polling system.</para> <para>PACKET DEFINITIONS:</para> @@ -6149,17 +6076,32 @@ <sect1> <title>NXTPRCS Start next process F$NPRC</title> -<para>ASSEMBLER CALL: OS9 F$NPRC</para> - -<para>MACHINE CODE: 103F 2D</para> - -<para>INPUT: None.</para> - -<para>OUTPUT: Control does not return to caller.</para> +<informaltable frame="none"> +<tgroup cols="2"> +<tbody> +<row> + <entry>ASSEMBLER CALL:</entry> + <entry>OS9 F$NPRC</entry> +</row> +<row> + <entry>MACHINE CODE:</entry> + <entry>103F 2D</entry> +</row> +<row> + <entry>INPUT:</entry> + <entry>None.</entry> +</row> +<row> + <entry>OUTPUT:</entry> + <entry>Control does not return to caller.</entry> +</row> +</tbody> +</tgroup> +</informaltable> <para>This system mode service request takes the next process out of the Active Process Queue and initiates its execution. If there is no -proess in the queue. OS-9 waits for an interrupt, and then checks the +process in the queue, OS-9 waits for an interrupt, and then checks the active process queue again.</para> <para>NOTE: THIS IS A PRIVILEGED SYSTEM MODE SERVICE REQUEST</para> @@ -6168,36 +6110,25 @@ <sect1> <title>R64 Deallocate a 64 byte memory block F$R64</title> -<para>ASSEMBLER CALL: OS9 F$R64 -</para> - -<para>MACHINE CODE: 103F 31 -</para> - -<para>INPUT: (K) = Address of the base page.</para> - -<para>(A) = Block number.</para> - -<para>OUTPUT: None</para> - <informaltable frame="none"> <tgroup cols="2"> <tbody> <row> <entry>ASSEMBLER CALL:</entry> - <entry>OS9 F$</entry> + <entry>OS9 F$R64</entry> </row> <row> <entry>MACHINE CODE:</entry> - <entry>103F </entry> -</row> -<row> - <entry>INPUT:</entry> - <entry></entry> -</row> -<row> - <entry>OUTPUT:</entry> - <entry></entry> + <entry>103F 31</entry> +</row> +<row> + <entry>INPUT:</entry> + <entry><literallayout>(X) = Address of the base page. +(A) = Block number.</literallayout></entry> +</row> +<row> + <entry>OUTPUT:</entry> + <entry>None.</entry> </row> <row> <entry>ERROR OUTPUT:</entry> @@ -6209,7 +6140,7 @@ </informaltable> <para>This system mode service request deallocates a 64 byte block of -memory as described in the F$A64 service request</para> +memory as described in the F$A64 service request.</para> <para>NOTE: THIS IS A PRIVILEGED SYSTEM MODE SERVICE REQUEST</para> </sect1> @@ -6217,32 +6148,24 @@ <sect1> <title>SRQMEM System memory request F$SRQM</title> -<para>ASSEMBLER CALL: OS9 F$SRQM</para> - -<para>MACHINE CODE: 103F 28</para> - -<para>INPUT: (D) = Byte count.</para> - -<para>OUTPUT: (U) = Beginning address ,of memory area</para> - <informaltable frame="none"> <tgroup cols="2"> <tbody> <row> <entry>ASSEMBLER CALL:</entry> - <entry>OS9 F$</entry> + <entry>OS9 F$SRQM</entry> </row> <row> <entry>MACHINE CODE:</entry> - <entry>103F </entry> -</row> -<row> - <entry>INPUT:</entry> - <entry></entry> -</row> -<row> - <entry>OUTPUT:</entry> - <entry></entry> + <entry>103F 28</entry> +</row> +<row> + <entry>INPUT:</entry> + <entry>(D) = Byte count.</entry> +</row> +<row> + <entry>OUTPUT:</entry> + <entry>(U) = Beginning address of memory area.</entry> </row> <row> <entry>ERROR OUTPUT:</entry> @@ -6263,20 +6186,16 @@ <sect1> <title>SRTMEM System memory request F$SRTMEM</title> -<para>ASSEMBLER CALL: OS9 F$SRTM</para> - -<para>MACHINE CODE: 103F 29</para> - <informaltable frame="none"> <tgroup cols="2"> <tbody> <row> <entry>ASSEMBLER CALL:</entry> - <entry>OS9 F$</entry> + <entry>OS9 F$SRTMEM</entry> </row> <row> <entry>MACHINE CODE:</entry> - <entry>103F </entry> + <entry>103F 29</entry> </row> <row> <entry>INPUT:</entry> @@ -6301,18 +6220,16 @@ <sect1> <title>VMODULE Validate module F$VMODUL</title> -<para>ASSEMBLER CALL: OS9</para> - <informaltable frame="none"> <tgroup cols="2"> <tbody> <row> <entry>ASSEMBLER CALL:</entry> - <entry>OS9 F$</entry> + <entry>OS9 F$VMODUL</entry> </row> <row> <entry>MACHINE CODE:</entry> - <entry>103F </entry> + <entry>103F 2E</entry> </row> <row> <entry>INPUT:</entry> @@ -6962,7 +6879,7 @@ </sect1> <sect1> -<title>MAKDIR Make a new directory</title> +<title>MAKDIR Make a new directory I$MDIR</title> <informaltable frame="none"> <tgroup cols="2"> @@ -7018,7 +6935,7 @@ </sect1> <sect1> -<title>OPEN Open a path to a file or device</title> +<title>OPEN Open a path to a file or device I$OPEN</title> <informaltable frame="none"> <tgroup cols="2"> <tbody> @@ -8151,18 +8068,637 @@ <appendix> <title>Service Request Summary</title> -<para>These did not OCR well</para> +<table frame="none"> +<title>User Mode Service Requests</title> +<tgroup cols="4"> +<colspec colwidth="1.2in" colname="c1"> +<colspec colwidth="1.0in" colname="c2"> +<colspec colwidth="3.6in" colname="c3"> +<colspec colwidth="0.6in" colname="c4"> +<thead> +<row> + <entry>Code</entry> + <entry>Mnemonic</entry> + <entry>Function</entry> + <entry>Page</entry> +</row> +</thead> +<tbody> +<row> + <entry>103F 00</entry> + <entry>F$LINK</entry> + <entry>Link to memory module.</entry> + <entry></entry> +</row> +<row> + <entry>103F 01</entry> + <entry>F$LOAD</entry> + <entry>Load module(s) from a file.</entry> + <entry></entry> +</row> +<row> + <entry>103F 02</entry> + <entry>F$UNLK</entry> + <entry>Unlink a module.</entry> + <entry></entry> +</row> +<row> + <entry>103F 03</entry> + <entry>F$FORK</entry> + <entry>Create a new process.</entry> + <entry></entry> +</row> +<row> + <entry>103F 04</entry> + <entry>F$WAIT</entry> + <entry>Wait for child process to die.</entry> + <entry></entry> +</row> +<row> + <entry>103F 05</entry> + <entry>F$CHAN</entry> + <entry>Load and execute a new primary module</entry> + <entry></entry> +</row> +<row> + <entry>103F 06</entry> + <entry>F$EXIT</entry> + <entry>Terminate the calling process.</entry> + <entry></entry> +</row> +<row> + <entry>103F 07</entry> + <entry>F$MEM</entry> + <entry>Resize data memory area,</entry> + <entry></entry> +</row> +<row> + <entry>103F 08</entry> + <entry>F$SEND</entry> + <entry>Send a signal to another process,</entry> + <entry></entry> +</row> +<row> + <entry>103F 09</entry> + <entry>F$ICFT</entry> + <entry>Set up a signal intercept trap.</entry> + <entry></entry> +</row> +<row> + <entry>103F 0A</entry> + <entry>F$SLEP</entry> + <entry>Put calling process to sleep.</entry> + <entry></entry> +</row> +<row> + <entry>103F 0C</entry> + <entry>F$ID</entry> + <entry>Get process ID / user ID</entry> + <entry></entry> +</row> +<row> + <entry>103F 0D</entry> + <entry>F$SPRI</entry> + <entry>Set process priority.</entry> + <entry></entry> +</row> +<row> + <entry>103F 0E</entry> + <entry>F$SSWI</entry> + <entry>Set SWI vector.</entry> + <entry></entry> +</row> +<row> + <entry>103F 0F</entry> + <entry>F$PERR</entry> + <entry>Print error message.</entry> + <entry></entry> +</row> +<row> + <entry>103F 10</entry> + <entry>F$PNAM</entry> + <entry>Parse a path name,</entry> + <entry></entry> +</row> +<row> + <entry>103F 11</entry> + <entry>F$CNAM</entry> + <entry>Compare two names</entry> + <entry></entry> +</row> +<row> + <entry>103F 12</entry> + <entry>F$SBIT</entry> + <entry>Search bit map for a free area</entry> + <entry></entry> +</row> +<row> + <entry>103F 13</entry> + <entry>F$ABIT</entry> + <entry>Set bits in an allocation bit map</entry> + <entry></entry> +</row> +<row> + <entry>103F 14</entry> + <entry>F$DBIT</entry> + <entry>Deallocate in a bit map</entry> + <entry></entry> +</row> +<row> + <entry>103F 15</entry> + <entry>F$TIME</entry> + <entry>Get system date and time.</entry> + <entry></entry> +</row> +<row> + <entry>103F 16</entry> + <entry>F$STIM</entry> + <entry>Set system date and time.</entry> + <entry></entry> +</row> +<row> + <entry>103F 17</entry> + <entry>F$CRC</entry> + <entry>Compute CRC</entry> + <entry></entry> +</row> +<row> + <entry>103F 18</entry> + <entry>F$GPrDsc</entry> + <entry>Get Process Descriptor copy </entry> + <entry></entry> +</row> +<row> + <entry>103F 19</entry> + <entry>F$GBlkMp</entry> + <entry>Get system Block Map copy</entry> + <entry></entry> +</row> +<row> + <entry>103F 1A</entry> + <entry>F$GModDr</entry> + <entry>Get Module Directory copy</entry> + <entry></entry> +</row> +<row> + <entry>103F 1B</entry> + <entry>F$CpyMem</entry> + <entry>Copy external Memory</entry> + <entry></entry> +</row> +<row> + <entry>103F 1C</entry> + <entry>F$SUser</entry> + <entry>Set User ID number</entry> + <entry></entry> +</row> +<row> + <entry>103F 1D</entry> + <entry>F$UnLoad</entry> + <entry>Unlink module by name</entry> + <entry></entry> +</row> +</tbody> +</tgroup> +</table> + + + + + +<table frame="none"> +<title>System Mode Privileged Service Requests</title> +<tgroup cols="4"> +<colspec colwidth="1.2in" colname="c1"> +<colspec colwidth="1.0in" colname="c2"> +<colspec colwidth="3.6in" colname="c3"> +<colspec colwidth="0.6in" colname="c4"> +<thead> +<row> + <entry>Code</entry> + <entry>Mnemonic</entry> + <entry>Function</entry> + <entry>Page</entry> +</row> +</thead> +<tbody> +<row> + <entry>103F 28</entry> + <entry>F$SRQM</entry> + <entry>System memory request</entry> + <entry></entry> +</row> +<row> + <entry>103F 28</entry> + <entry>F$SRqMem</entry> + <entry>System Memory Request </entry> + <entry></entry> +</row> +<row> + <entry>103F 29</entry> + <entry>F$SRTMEM</entry> + <entry>System memory request</entry> + <entry></entry> +</row> +<row> + <entry>103F 29</entry> + <entry>F$SRtMem</entry> + <entry>System Memory Return </entry> + <entry></entry> +</row> +<row> + <entry>103F 2A</entry> + <entry>F$IRQ</entry> + <entry>Add or remove device from IRQ table.</entry> + <entry></entry> +</row> +<row> + <entry>103F 2B</entry> + <entry>F$IOQU</entry> + <entry>Enter I/O queue</entry> + <entry></entry> +</row> +<row> + <entry>103F 2C</entry> + <entry>F$APRC</entry> + <entry>Insert process in active process queue</entry> + <entry></entry> +</row> +<row> + <entry>103F 2D</entry> + <entry>F$NPRC</entry> + <entry>Start next process</entry> + <entry></entry> +</row> +<row> + <entry>103F 2E</entry> + <entry>F$VMODUL</entry> + <entry>Validate module</entry> + <entry></entry> +</row> +<row> + <entry>103F 2F</entry> + <entry>F$F64</entry> + <entry>Find a 64 byte memory block</entry> + <entry></entry> +</row> +<row> + <entry>103F 30</entry> + <entry>F$A64</entry> + <entry>Allocate a 64 byte memory block</entry> + <entry></entry> +</row> +<row> + <entry>103F 31</entry> + <entry>F$R64</entry> + <entry>Deallocate a 64 byte memory block</entry> + <entry></entry> +</row> +<row> + <entry>103F 32</entry> + <entry>F$SSVC</entry> + <entry>Install function request</entry> + <entry></entry> +</row> +<row> + <entry>103F 33</entry> + <entry>F$IODL</entry> + <entry>Delete I/O device from system</entry> + <entry></entry> +</row> +<row> + <entry>103F 34</entry> + <entry>F$SLink</entry> + <entry>System Link </entry> + <entry></entry> +</row> +<row> + <entry>103F 35</entry> + <entry>F$Boot</entry> + <entry>Bootstrap system</entry> + <entry></entry> +</row> +<row> + <entry>103F 36</entry> + <entry>F$BtMem</entry> + <entry>Bootstrap Memory request</entry> + <entry></entry> +</row> +<row> + <entry>103F 37</entry> + <entry>F$GProcP</entry> + <entry>Get Process Pointer </entry> + <entry></entry> +</row> +<row> + <entry>103F 38</entry> + <entry>F$Move</entry> + <entry>Move data (low bound first)</entry> + <entry></entry> +</row> +<row> + <entry>103F 39</entry> + <entry>F$AllRAM</entry> + <entry>Allocate RAM blocks</entry> + <entry></entry> +</row> +<row> + <entry>103F 3A</entry> + <entry>F$AllImg</entry> + <entry>Allocate Image RAM blocks</entry> + <entry></entry> +</row> +<row> + <entry>103F 3B</entry> + <entry>F$DelImg</entry> + <entry>Deallocate Imaqe RAM blocks</entry> + <entry></entry> +</row> +<row> + <entry>103F 3C</entry> + <entry>F$SetImg</entry> + <entry>Set process DAT Image</entry> + <entry></entry> +</row> +<row> + <entry>103F 3D</entry> + <entry>F$FreeLB</entry> + <entry>get Free Low block </entry> + <entry></entry> +</row> +<row> + <entry>103F 3E</entry> + <entry>F$FreeHB</entry> + <entry>get Free High block </entry> + <entry></entry> +</row> +<row> + <entry>103F 3F</entry> + <entry>F$AllTsk</entry> + <entry>Allocate process Task number</entry> + <entry></entry> +</row> +<row> + <entry>103F 40</entry> + <entry>F$DelTsk</entry> + <entry>Deallocate process Task number</entry> + <entry></entry> +</row> +<row> + <entry>103F 41</entry> + <entry>F$SetTsk</entry> + <entry>Set process Task DAT registers </entry> + <entry></entry> +</row> +<row> + <entry>103F 42</entry> + <entry>F$ResTsk</entry> + <entry>Reserve Task number</entry> + <entry></entry> +</row> +<row> + <entry>103F 43</entry> + <entry>F$RelTsk</entry> + <entry>Release Task number</entry> + <entry></entry> +</row> +<row> + <entry>103F 44</entry> + <entry>F$DATLog</entry> + <entry>Convert DAT block/offset to Logical Addr</entry> + <entry></entry> +</row> +<row> + <entry>103F 45</entry> + <entry>F$DATTmp</entry> + <entry>Make Temporary DAT image</entry> + <entry></entry> +</row> +<row> + <entry>103F 46</entry> + <entry>F$LDAXY</entry> + <entry>Load A [X, [Y] ] </entry> + <entry></entry> +</row> +<row> + <entry>103F 47</entry> + <entry>F$LDAXYP</entry> + <entry>Load A [X+, [Y] ]</entry> + <entry></entry> +</row> +<row> + <entry>103F 48</entry> + <entry>F$LDDDXY</entry> + <entry>Load D [D+X, [Y] ] </entry> + <entry></entry> +</row> +<row> + <entry>103F 49</entry> + <entry>F$LDABX</entry> + <entry>Load A from 0,1 in task B </entry> + <entry></entry> +</row> +<row> + <entry>103F 4A</entry> + <entry>F$STABX</entry> + <entry>Store A at 0,X in task B</entry> + <entry></entry> +</row> +<row> + <entry>103F 4B</entry> + <entry>F$AllPrc</entry> + <entry>Allocate Process descriptor</entry> + <entry></entry> +</row> +<row> + <entry>103F 4C</entry> + <entry>F$DelPrc</entry> + <entry>Deallocate Process descriptor</entry> + <entry></entry> +</row> +<row> + <entry>103F 4D</entry> + <entry>F$ELink</entry> + <entry>Link using module directory Entry</entry> + <entry></entry> +</row> +<row> + <entry>103F 4E</entry> + <entry>F$FModul</entry> + <entry>Find Module directory entry</entry> + <entry></entry> +</row> +<row> + <entry>103F 4F</entry> + <entry>F$MapBlk</entry> + <entry>Map specific Block</entry> + <entry></entry> +</row> +<row> + <entry>103F 50</entry> + <entry>F$ClrBlk</entry> + <entry>Clear specific Block</entry> + <entry></entry> +</row> +<row> + <entry>103F 51</entry> + <entry>F$DelRam</entry> + <entry>Deallocate RAM blocks</entry> + <entry></entry> +</row> +</tbody> +</tgroup> +</table> + + + +<table frame="none"> +<title>Input/Output Service Requests</title> +<tgroup cols="4"> +<colspec colwidth="1.2in" colname="c1"> +<colspec colwidth="1.0in" colname="c2"> +<colspec colwidth="3.6in" colname="c3"> +<colspec colwidth="0.6in" colname="c4"> +<thead> +<row> + <entry>Code</entry> + <entry>Mnemonic</entry> + <entry>Function</entry> + <entry>Page</entry> +</row> +</thead> +<tbody> +<row> + <entry>103F 80</entry> + <entry>I$ATCH</entry> + <entry>Attach a new device to the system.</entry> + <entry></entry> +</row> +<row> + <entry>103F 81</entry> + <entry>I$DTCH</entry> + <entry>Remove a device from the system.</entry> + <entry></entry> +</row> +<row> + <entry>103F 82</entry> + <entry>I$DUP</entry> + <entry>Duplicate a path.</entry> + <entry></entry> +</row> +<row> + <entry>103F 83</entry> + <entry>I$CREA</entry> + <entry>Create a path to a new file.</entry> + <entry></entry> +</row> +<row> + <entry>103F 84</entry> + <entry>I$Open</entry> + <entry>Open a path to a file or device</entry> + <entry></entry> +</row> +<row> + <entry>103F 85</entry> + <entry>I$MakDir</entry> + <entry>Make a new directory</entry> + <entry></entry> +</row> +<row> + <entry>103F 86</entry> + <entry>I$CDIR</entry> + <entry>Change working directory.</entry> + <entry></entry> +</row> +<row> + <entry>103F 87</entry> + <entry>I$DLET</entry> + <entry>Delete a file.</entry> + <entry></entry> +</row> +<row> + <entry>103F 88</entry> + <entry>I$SEEK</entry> + <entry>Reposition the logical file pointer</entry> + <entry></entry> +</row> +<row> + <entry>103F 89</entry> + <entry>I$READ</entry> + <entry>Read data from a file or device</entry> + <entry></entry> +</row> +<row> + <entry>103F 8A</entry> + <entry>I$WRITE</entry> + <entry>Write Data to File or Device</entry> + <entry></entry> +</row> +<row> + <entry>103F 8B</entry> + <entry>I$RDLN</entry> + <entry>Read a text line with editing.</entry> + <entry></entry> +</row> +<row> + <entry>103F 8C</entry> + <entry>I$WRLN</entry> + <entry>Write Line of Text with Editing</entry> + <entry></entry> +</row> +<row> + <entry>103F 8D</entry> + <entry>I$GSTT</entry> + <entry>Get file device status.</entry> + <entry></entry> +</row> +<row> + <entry>103F 8E</entry> + <entry>I$SSTT</entry> + <entry>Set file/device status</entry> + <entry></entry> +</row> +<row> + <entry>103F 8F</entry> + <entry>I$CLOS</entry> + <entry>Close a path to a file/device.</entry> + <entry></entry> +</row> +<row> + <entry>103F 90</entry> + <entry>I$DeletX</entry> + <entry>Delete a file</entry> + <entry></entry> +</row> +</tbody> +</tgroup> +</table> + +<table frame="none"> +<title>Standard I/O Paths</title> +<tgroup cols="1"> + <tbody> + <row> + <entry>0 = Standard Input</entry> + </row> + <row> + <entry>1 = Standard Output</entry> + </row> + <row> + <entry>2 = Standard Error Output</entry> + </row> + </tbody> +</tgroup> +</table> <table frame="none"> <title>Module Types</title> <tgroup cols="2"> - <thead> + <tbody> <row> <entry>$1</entry> <entry>Program</entry> </row> - </thead> - <tbody> <row> <entry>$2</entry> <entry>Subroutine module</entry> @@ -8194,6 +8730,95 @@ </tbody> </tgroup> </table> + + +<table frame="none"> +<title>Module Types</title> +<tgroup cols="2"> + <tbody> + <row> + <entry>READ</entry> + <entry>$01</entry> + </row> + <row> + <entry>WRITE</entry> + <entry>$02</entry> + </row> + <row> + <entry>UPDATE</entry> + <entry>READ + WRITE</entry> + </row> + <row> + <entry>EXEC</entry> + <entry>$04</entry> + </row> + <row> + <entry>PREAD</entry> + <entry>$08</entry> + </row> + <row> + <entry>PWRIT</entry> + <entry>$10</entry> + </row> + <row> + <entry>PEXEC</entry> + <entry>$20</entry> + </row> + <row> + <entry>SHARE</entry> + <entry>$40</entry> + </row> + <row> + <entry>DIR</entry> + <entry>$80</entry> + </row> + </tbody> +</tgroup> +</table> + + +<table frame="none"> +<title>Module Languages</title> +<tgroup cols="2"> + <tbody> + <row> + <entry>$0</entry> + <entry>Data</entry> + </row> + <row> + <entry>$1</entry> + <entry>6809 Object code</entry> + </row> + <row> + <entry>$2</entry> + <entry>BASIC09 I-code</entry> + </row> + <row> + <entry>$3</entry> + <entry>Pascal P-Code</entry> + </row> + <row> + <entry>$4</entry> + <entry>Cobol I-code</entry> + </row> + </tbody> + </tgroup> +</table> + +<table frame="none"> +<title>Module Attributes</title> +<tgroup cols="2"> + <tbody> + <row> + <entry>$8</entry> + <entry>Reentrant</entry> + </row> + </tbody> + </tgroup> +</table> + + + </appendix> @@ -8218,15 +8843,15 @@ <row> <entry>$C9</entry> <entry>201</entry> - <entry>ILLEGAL PATH NUMBER - </entry></row> + <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> + <entry>INTERRUPT POLLING TABLE FULL</entry></row> <row> <entry>$CB</entry> <entry>203</entry> - <entry>ILLEGAL MODE - </entry></row> + <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> @@ -8258,7 +8883,7 @@ <row> <entry>$D3</entry> <entry>211</entry> - <entry>END OF FILE - </entry></row> + <entry>END OF FILE - End of file encountered on read.</entry></row> <row> <entry>$D4</entry> <entry>212</entry> @@ -8270,7 +8895,7 @@ <row> <entry>$D6</entry> <entry>214</entry> - <entry>NO PERMISSION - </entry></row> + <entry>NO PERMISSION - file attributes do not permit access requested.</entry></row> <row> <entry>$D7</entry> <entry>215</entry> @@ -8278,7 +8903,7 @@ <row> <entry>$D8</entry> <entry>216</entry> - <entry>PATH NAME NOT FOUND - </entry></row> + <entry>PATH NAME NOT FOUND - can't find patthlist specified.</entry></row> <row> <entry>$D9</entry> <entry>217</entry> @@ -9483,7 +10108,7 @@ </sect1> <sect1> -<title>$43* F$RelTsk Ralease Task number F$RelTsk</title> +<title>$43* F$RelTsk Release Task number F$RelTsk</title> <informaltable frame="none"> <tgroup cols="2">