.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