.MB +5
.MT -3
.LL 65
.PN 116
.HE MP/M User's Guide
.FT   (All Information Herein is Proprietary to Digital Research.)
.sp 2
.ce
APPENDIX A:  Flag Assignments
.LI


	+----+
	|  0 |   Reserved
	+----+
	|  1 |   System time unit tick
	+----+
	|  2 |   One second interval
	+----+
	|  3 |   One minute interval
	+----+
	|  4 |   Undefined

	|    |   Undefined
	+----+
	| 31 |   Undefined
	+----+

.AD
.bp
.sp 2
.ce
APPENDIX B:  Process Priority Assignments
.LI

	  0 -  31 : Interrupt handlers

	 32 -  63 : System processes

	 64 - 197 : Undefined

	      198 : Teminal message processes

	      199 : Command line interpreter

	      200 : Default user priority

	201 - 254 : User processes

	      255 : Idle process

.AD
.bp
.sp 2
.ce
APPENDIX C:  BDOS Function Summary
.sp 2
.li
FUNC FUNCTION NAME         INPUT PARAMETERS  OUTPUT RESULTS
---- --------------------- ----------------  --------------
 0   System Reset          none              none
 1   Console Input         none              A = char
 2   Console Output        E = char          none
 3   Raw Console Input     none              A = char
 4   Raw Console Output    E = char          none
 5   List Output           E = char          none
 6   Direct Console I/O    see def           see def
 7   ** Not supported **
 8   ** Not supported **
 9   Print String          DE = .Buffer      none
10   Read Console Buffer   DE = .Buffer      see def
11   Get Console Status    none              A = 00/01
12   Return Version Number none              HL= Version #
13   Reset Disk System     none              see def
14   Select Disk           E = Disk Number   see def
15   Open File             DE = .FCB         A = Dir Code
16   Close File            DE = .FCB         A = Dir Code
17   Search for First      DE = .FCB         A = Dir Code
18   Search for Next       none              A = Dir Code
19   Delete File           DE = .FCB         A = Dir Code
20   Read Sequential       DE = .FCB         A = Err Code
21   Write Sequential      DE = .FCB         A = Err Code
22   Make File             DE = .FCB         A = Dir Code
23   Rename File           DE = .FCB         A = Dir Code
24   Return Login Vector   none              HL= Login Vect*
25   Return Current Disk   none              A = Cur Disk#
26   Set DMA Address       DE = .DMA         none
27   Get Addr(Alloc)       none              HL= .Alloc
28   Write Protect Disk    none              see def
29   Get R/O Vector        none              HL= R/O Vect*
30   Set File Attributes   DE = .FCB         see def
31   Get Addr(disk parms)  none              HL= .DPB
32   Set/Get User Code     see def           see def
33   Read Random           DE = .FCB         A = Err Code
34   Write Random          DE = .FCB         A = Err Code
35   Compute File Size     DE = .FCB         r0, r1, r2
36   Set Random Record     DE = .FCB         r0, r1, r2
37   Reset Drive           DE = drive vctr   A = Err Code
38   Access Drive          DE = drive vctr   none
39   Free Drive            DE = drive vctr   none
40   Write Random zerofill DE = .FCB         A = Err Code
.sp 2
* Note that A = L, and B = H upon return
.bp
.sp 2
.ce
APPENDIX D:  XDOS Function Summary
.sp 3
.li
FUNC FUNCTION NAME         INPUT PARAMETERS  OUTPUT RESULTS
---- --------------------- ----------------  --------------
128  Absolute Memory Rqst  DE = .MD          A = err code
129  Relocatable Mem Rqst  DE = .MD          A = err code
130  Memory Free           DE = .MD          none
131  Poll                  E = Device        none
132  Flag Wait             E = Flag          A = err code
133  Flag Set              E = Flag          A = err code
134  Make Queue            DE = .QCB         none
135  Open Queue            DE = .UQCB        A = err code
136  Delete Queue          DE = .QCB         A = err code
137  Read Queue            DE = .UQCB        none
138  Conditional Read Que  DE = .UQCB        A = err code
139  Write Queue           DE = .UQCB        none
140  Conditional Write Que DE = .UQCB        A = err code
141  Delay                 DE = #ticks       none
142  Dispatch              none              none
143  Terminate Process     E = Term. code    none
144  Create Process        DE = .PD          none
145  Set Priority          E = Priority      none
146  Attach Console        none              none
147  Detach Console        none              none
148  Set Console           E = Console       none
149  Assign Console        DE = .APB         A = err code
150  Send CLI Command      DE = .CLICMD      none
151  Call Resident Sys Pr  DE = .CPB         HL = result
152  Parse Filename        DE = .PFCB        see def
153  Get Console Number    none              A = console #
154  System Data Address   none              HL = sys data adr
155  Get Date and Time     DE = .TOD         none
156  Return Proc. Dsc. Adr none              HL = proc descr adr
157  Abort Spec. Process   DE = .ABTPB       A = err code
.ad
.sp
.bp
.sp 2
.ce
APPENDIX E:  Memory Segment Base Page Reserved Locations
.sp
.pp
Each memory segment base page, between locations 00H and 0FFH, contains
code and data which are used during MP/M
processing.  The code and data areas are given below for reference purposes.
.sp
.in 4
Locations                              Contents
.br
from     to
.in 22
.ti 4
0000H - 0002H     Contains a jump instruction to XDOS which terminates
the process.  This allows simple process termination by executing a
JMP 0000H.
.sp
.ti 4
0005H - 0007H     Contains a jump instruction to the BDOS & XDOS, and serves
two purposes:  JMP 0005H provides the primary entry point to the
BDOS & XDOS, and LHLD
0006H brings the address field of the instruction to the HL register
pair.  This value is the top of the memory segment in which the
program is executing.  Note that the DDT program
will change the address field to reflect the reduced memory size in
debug mode.
.sp
.ti 4
0008H - 003AH     (interrupt locations 1 through 7 not used)
However, one restart must be selected for use by the debugger and
specified during system generation.
.sp
.ti 4
003BH - 003FH     (not currently used - reserved)
.sp
.ti 4
0040H - 004FH     16 byte area reserved for scratch, but is
not used for any purpose in the distribution version of MP/M
.sp
.ti 4
0050H - 005BH     (not currently used - reserved)
.sp 
.ti 4
005CH - 007CH     default file control block produced for a transient
program by the command line interpreter.
.sp
.ti 4
007DH - 007FH     Optional default random record position
.sp
.ti 4
0080H - 00FFH     default 128 byte disk buffer (also filled with the
command line when a transient is loaded under the CLI).
.qi
.bp
.sp 2
.ce
Appendix F:  Operation of MP/M on the Intel MDS-800
.sp 2
.pp
This section gives operating procedures for using MP/M on the Intel
MDS microcomputer development system.  A basic knowledge of the MDS
hardware and software systems is assumed.
.pp
MP/M is initiated in essentially the same manner as Intel's ISIS
operating system.  The disk drives labelled 0 through 3 on the MDS,
correspond to MP/M drives A through D, respectively.  The MP/M
system diskette is inserted into drive 0, and the BOOT and RESET
switches are depressed in sequence.  The interrupt 2 light should go
on at this point.  The space bar is then depressed on either console
device, and the light should go out.  The BOOT switch is then turned
off, and the MP/M sign-on message should appear at both consoles,
followed by the "0A>" for the CRT or "1A>" for the TTY.  The user
can then issue MP/M commands.
.pp
Use of the interrupt switches on the front panel is not recommended.
Effective 'warm-starts' should be initiated at the console by
aborting the running program rather than pushing the INT 0 switch.
Also, depending on the choice of restart for the debugger the INT
switch which will invoke the debugger is not necessarily #7.
.pp
Diskettes should not be removed from the drives until the user verifies
that there are no other users with open files on the disk.  This can
be done with the 'DSKRESET' command.
.pp
When performing GENSYS operations on the MDS-800, make certain that
a negative response is always made to the Z80 CPU question.  Responding
with a 'Y' will lead to unpredictable results.
.br
