.mt 6 .mb 6 .pl 66 .ll 65 .po 10 .nf .hm 2 .fm 2 .he ********** MP/M-86 Seminar Notes ********** .fô Alì Informatioî Hereiî ió Proprietarù Tï Digitaì Research¬ Inc. .nf .bp 1 .sp 2 .ce .sh C O N T E N T S .ce .sh =============== .sp 2 o MP/M-86 Overview o MP/M-86 Plug Compatible Modules o MP/M-86 Memory Layout o Common Module Interfaces o Sysdat Data Area (SYSDAT) o SUP o MP/M-86 Table Driven Functions o CLI Command o Program Chain o Parse Filename o Program Load o Call Resident Procedure Library o RTM o Queues o Process Descriptor o Parent-Child Relationship o MEM o Program Interface o Extended Fixed Partitions o MAU o Shared Memory, Shared Code o CIO o Raw console mode o RSP's o Memory Models o Multiple Copies o TMP o Functional Description o LOGIN, Autoload, User Protection o Run Time Systems o XIOS o INIT o ENTRY o Polled I/O o Flag Set/Wait o Interrupt handlers o Console, List Device functions o Memory functions o Real Time, Clock functions o Disk functions o GENSYS o MPMLDR o LDRBIOS o XIOS Debugging o Memory Layout o MP/M-86 under CP/M-86 using DDT-86 o MP/M-86 under MP/M-86 o Interrupts o Appendices o XIOS listing o TMP listing o ECHO listing o CLOCK listing .pa .ce 100 .sp 5 .sh M P / M - 8 6 O V E R V I E W .sh =============================== .sp 2 +-------+ +-----------+ +--------+ \ | | | | | | \ USER --> | TMP | --> | MP/M-86 | --> | XIOS | --> HARDWARE\ | | | | | | \ +-------+ +-----------+ +--------+ \ .sp 8 .sh MP/M-86 "Plug-Compatible" Modules .sh --------------------------------- .sp 2 +-------+ +--------+ +--------+\ | | <--> | RTM | <--> | |\ | | +--------+ | |\ | | | |\ | | +--------+ | |\ | | <--> | MEM | <--> | |\ | | +--------+ | |\ | SUP | | XIOS |\ | | +--------+ | |\ | | <--> | CIO | <--> | |\ | | +--------+ | |\ | | | |\ | | +--------+ | |\ | | <--> | BDOS | <--> | |\ +-------+ +--------+ +--------+\ .ce 0 .pa .sp 2 .ce 100 .sh MP/M-86 Memory Layout .sh --------------------- .sp 2 +-------------------+ HIGH \ | | \ /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/ \ /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/ \ | | \ | TPA | \ | | \ +---+---------------+ \ | | | \ | | RSP's | \ | | | \ + |---------------+ \ | O | Table | | \ | p |-----------| | \ | e | XIOS | | \ | r |-----------| D | \ | a | BDOS | | \ | t |-----------| A | \ | i | MEM | | \ | n |-----------| T | \ | g | RTM | | \ | |-----------| A | \ | S | SUP | | \ | y |-----------| | \ | s | SYSDAT | | \ + t |-----------+---+ \ | e | XIOS | | \ | m |-----------| | \ | | BDOS | C | \ | A |-----------| | \ | r | CIO | O | \ | e |-----------| | \ | a | MEM | D | \ | |-----------| | \ | | RTM | E | \ | |-----------| | \ | | SUP | | \ +---+---------------+ \ | | \ | TPA | \ | | \ /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/ \ /\\/\\/\\/\\/\\/\\/\\/\\/\\/\\/ \ | | \ +-------------------+ \ | Interrupt Vectors | \ +-------------------+ LOW \ .ce 0 .pa .sp 2 .ce 2 .sh MP/M-86 Module Interface .sh ------------------------ .sp 5 CSEG ORG 0 JMP INIT ; Initialization Routine JMP ENTRY ; Module Entry Point SYSDAT RW 1 ; Sysdat Segment Address SUPERVISOR RW 2 ; Far Address to Supervisor Entry Point INIT: ; Initialization Code . . . RETF ENTRY: ; Intermodule Entry Point . . . RETF .pa .sp 2 .ce 2 .sh MP/M-86 System Data Area (SYSDAT) .sh --------------------------------- .sp .ce 100 +------+------+------+------+------+------+------+------+\ 00 | SUP Entry | SUP Init |\ +------+------+------+------+------+------+------+------+\ 08 | RTM Entry | RTM Init |\ +------+------+------+------+------+------+------+------+\ 10 | MEM Entry | MEM Init |\ +------+------+------+------+------+------+------+------+\ 18 | CIO Entry | CIO Init |\ +------+------+------+------+------+------+------+------+\ 20 | BDOS Entry | BDOS Init |\ +------+------+------+------+------+------+------+------+\ 28 | XIOS Entry | XIOS Init |\ +------+------+------+------+------+------+------+------+\ 30 | NETWORK Entry | NETWORK Init |\ +------+------+------+------+------+------+------+------+\ 38 | DISPATCHER | PDISP |\ +------+------+------+------+------+------+------+------+\ 40 | MPMSEG | RSPSEG | ENDSEG | MOD- | NCNS |\ | | | | MAP | |\ +------+------+------+------+------+------+------+------+\ 48 | NLST | NCCB | NUM- |SYS- | MMP | RES- | DAY |\ | | | FLAGS| DRIVE| | ERVED| FILE |\ +------+------+------+------+------+------+------+------+\ 50 | TEMP | TICKS| FREE-ROOT | CCB | FLAGS |\ | DISK | /SEC |LOCKED-UNUSED| | |\ +------+------+------+------+------+------+------+------+\ 58 | MDUL | MFL | PUL | QUL |\ +------+------+------+------+------+------+------+------+\ 60 | QMAU |\ +------+------+------+------+------+------+------+------+\ 68 | RLR | DLR | DRL | PLR |\ +------+------+------+------+------+------+------+------+\ 70 | RESERVED | THRDRT | QLR | MAL |\ +------+------+------+------+------+------+------+------+\ 78 | VERSION | VERNUM | MPM VERNUM | TOD-DAY |\ +------+------+------+------+------+------+------+------+\ 80 | TOD- | TOD- | TOD- | NCON-| NLST-| NCIO-| RESERVED |\ | HR | MIN | SEC | DEV | DEV | DEV | |\ +------+------+------+------+------+------+------+------+\ 88 | RESERVED | LOCK-MAX | OPEN-MAX | RESERVED |\ +------+------+------+------+------+------+------+------+\ 90 | RESERVED |\ +------+------+------+------+------+------+------+------+\ 98 | RESERVED |\ +------+------+------+------+------+------+------+------+\ A0 | FUNCTION TABLE |\ | |\ +------+------+------+------+------+------+------+------+\ .ce 0 .pa .sp 2 .ce 2 .sh MP/M-86 Supervisor Module (SUP) .sh =============================== .sp 2 o Maps user functions into module functions o Contains non-kernel functions o Supports the network interface o Intermodule function interface o Initialization o User Program Interface o Contains non-kernel functions (do not use resources directly) o Command Line Interpreter (CLI) o Program Chain o Parse Filename o Program Load o Call Resident Procedure Library o Version functions o Call BIOS function o Get Sysdat Address o Get TOD Address o Return Serial Number