| CP/M 2.2, CP/M 3.0, MP/M 2.1 Compiled by Jim Lopushinsky Notation: .something means the address of something. |
| Supported by (X) | ||||||
|---|---|---|---|---|---|---|
| FUNC | CP/M 2.2 | CP/M 3.0 | MP/M 2.1 | FUNCTION NAME | INPUT PARAMETERS | RETURNED VALUES |
| 0 | X | X | X | System Reset | none | none |
| 1 | X | X | X | Console Input | none | A = char |
| 2 | X | X | X | Console Output | E = char | none |
| 3 | X | X | - | Auxiliary Input | none | A = char |
| 3 | - | - | X | Raw Console Input | none | A = char |
| 4 | X | X | - | Auxiliary Output | E = char | none |
| 4 | - | - | X | Raw Console Output | E = char | none |
| 5 | X | X | X | List Output | E = char | none |
| 6 | X | X | X | Direct Console I/O | E = 0FFH/ 0FEH/ 0FDH/ char |
A = char/ status/ none |
| 7 | X | - | - | Get I/O Byte | none | A = IOBYTE |
| 7 | - | X | - | Auxiliary Input Status | none | A = 00/0FFH |
| 8 | X | - | - | Set I/O Byte | E = IOBYTE | none |
| 8 | - | X | - | Auxiliary Output Status | none | A = 00/0FFH |
| 9 | X | X | X | Print String | DE = .String | none |
| 10 | X | X | X | Read Console Buffer | DE = .Buffer | Characters in buffer |
| 11 | X | X | X | Get Console Status | none | A = 00/01 |
| 12 | X | X | X | Return Version Number | none | HL = Version |
| 13 | X | X | X | Reset Disk System | none | see def |
| 14 | X | X | X | Select Disk | E = Disk Number | see def |
| 15 | X | X | X | Open File | DE = .FCB | A = Dir Code |
| 16 | X | X | X | Close File | DE = .FCB | A = Dir Code |
| 17 | X | X | X | Search for First | DE = .FCB | A = Dir Code |
| 18 | X | X | X | Search for Next | none | A = Dir Code |
| 19 | X | X | X | Delete File | DE = .FCB | A = Dir Code |
| 20 | X | X | X | Read Sequential | DE = .FCB | A = Err Code |
| 21 | X | X | X | Write Sequential | DE = .FCB | A = Err Code |
| 22 | X | X | X | Make File | DE = .FCB | A = Dir Code |
| 23 | X | X | X | Rename File | DE = .FCB | A = Dir Code |
| 24 | X | X | X | Return Login Vector | none | HL= Login Vector |
| 25 | X | X | X | Return Current Disk | none | A = Cur Disk # |
| 26 | X | X | X | Set DMA Address | DE = .DMA | none |
| 27 | X | X | X | Get Addr (Alloc) | none | HL= .Alloc |
| 28 | X | X | X | Write Protect Disk | none | none |
| 29 | X | X | X | Get R/O Vector | none | HL= R/O Vector |
| 30 | X | X | X | Set File Attributes | DE = .FCB | A = Dir Code |
| 31 | X | X | X | Get Addr (DPB) | none | HL= .DPB |
| 32 | X | X | X | Set/Get User Code | E = 0FFH/ user number |
A = Curr User/ none |
| 33 | X | X | X | Read Random | DE = .FCB | A = Err Code |
| 34 | X | X | X | Write Random | DE = .FCB | A = Err Code |
| 35 | X | X | X | Compute File Size | DE = .FCB | r0, r1, r2 |
| 36 | X | X | X | Set Random Record | DE = .FCB | r0, r1, r2 |
| 37 | X | X | X | Reset Drive | DE = Drive Vector | A = Err Code |
| 38 | - | X | X | Access Drive | DE = Drive Vector | none |
| 39 | - | X | X | Free Drive | DE = Drive Vector | none |
| 40 | X | X | X | Write Random with Zero Fill | DE = .FCB | A = Err Code |
| 41 | - | - | X | Test and Write Record | DE = .FCB | HL= Err Code |
| 41 | - | X | - | Test and Write Record | DE = .FCB | A = 0FFH |
| 42 | - | X | X | Lock Record | DE = .FCB | HL = Err Code |
| 43 | - | X | X | Unlock Record | DE = .FCB | HL = Err Code |
| 44 | - | X | X | Set Multi-sector Count | E = # Sectors | A = Return Code |
| 45 | - | X | X | Set BDOS Error Mode | E = Err Mode | none |
| 46 | - | X | X | Get Disk Free Space | E = Drive # | Number of Free Sectors |
| 47 | - | X | X | Chain to Program | E = Chain Flg | none |
| 48 | - | X | X | Flush Buffers | E = Purge Flg | A = Err Flag |
| 49 | - | X | - | Get/Set System Control | DE = .SCB PB Block | A = Returned Byte HL= Returned Word |
| 50 | - | X | - | Direct Bios Calls | DE = .BIOS PB | BIOS Return |
| 59 | - | X | - | Load Overlay | DE = .FCB | A = Err Code |
| 60 | - | X | - | Call Resident System Extension | DE = .RSX PB | A = Err Code |
| 98 | - | X | - | Free Blocks | none | none |
| 99 | - | X | - | Truncate File | DE = .FCB | A = Dir Code |
| 100 | - | X | X | Set Directory Label | DE = .FCB | A = Dir Code |
| 101 | - | X | X | Return Directory Label Data | E = Drive | A = Label Data |
| 102 | - | X | X | Read File Date Stamps and Password Mode | DE = .FCB | A = Dir Code |
| 103 | - | X | X | Write File XFCB | DE = .FCB | A = Dir Code |
| 104 | - | X | X | Set Date and Time | DE = .DAT | none |
| 105 | - | X | X | Get Date and Time | DE = .DAT | Date and Time A = seconds |
| 106 | - | X | X | Set Default Password | DE = .Passwrd | none |
| 107 | - | X | X | Return Serial Number | none | DE = .Serial # Serial Number field |
| 108 | - | X | - | Get/Set Program Return Code | DE = 0FFFFH/ Code |
HL= Ret Code/ none |
| 109 | - | X | - | Get/Set Console Mode | DE = 0FFFFH/ Mode |
HL= Console Mode/ none |
| 110 | - | X | - | Get/Set Output Delimiter | DE = 0FFFFH/ E = Delimiter |
A = Output Delim/ none |
| 111 | - | X | - | Print Block | DE = .CCB | none |
| 112 | - | X | - | List Block | DE = .CCB | none |
| The MP/M functions | ||||||
| 128 | - | - | X | Absolute Memory Request | DE = .MD | A = Err Code |
| 129 | - | - | X | Relocatable Memory Request | DE = .MD | A = Err Code |
| 130 | - | - | X | Memory Free | DE = .MD | none |
| 131 | - | - | X | Poll | E = Device | none |
| 132 | - | - | X | Flag Wait | E = Flag | A = Err Code |
| 133 | - | - | X | Flag Set | E = Flag | A = Err Code |
| 134 | - | - | X | Make Queue | DE = .QCB | none |
| 135 | - | - | X | Open Queue | DE = .UQCB | A = Err Code |
| 136 | - | - | X | Delete Queue | DE = .QCB | A = Err Code |
| 137 | - | - | X | Read Queue | DE = .UQCB | none |
| 138 | - | - | X | Conditional Read Queue | DE = .UQCB | A = Err Code |
| 139 | - | - | X | Write Queue | DE = .UQCB | none |
| 140 | - | - | X | Conditional Write Queue | DE = .UQCB | A = Err Code |
| 141 | - | - | X | Delay | DE = # ticks | none |
| 142 | - | - | X | Dispatch | none | none |
| 143 | - | - | X | Terminate Process | E = Term. Code | none |
| 144 | - | - | X | Create Process | DE = .PD | none |
| 145 | - | - | X | Set Priority | E = Priority | none |
| 146 | - | - | X | Attach Console | none | none |
| 147 | - | - | X | Detach Console | none | none |
| 148 | - | - | X | Set Console | E = Console | none |
| 149 | - | - | X | Assign Console | DE = .APB | A = Err Code |
| 150 | - | - | X | Send CLI Command | DE = .CLICMD | none |
| 151 | - | - | X | Call Resident Sys Proc | DE = .CPB | HL= result |
| 152 | - | X | X | Parse Filename | DE = .PFCB | see def |
| 153 | - | - | X | Get Console Number | none | A = Console # |
| 154 | - | - | X | System Data Address | none | HL= Sys Data Addr |
| 155 | - | - | X | Get Date and Time | DE = .TOD | date and time |
| 156 | - | - | X | Return Process Descriptor | none | HL= PD Addr |
| 157 | - | - | X | Abort Specified Process | DE = .ABT PB | A = Err Code |
| 158 | - | - | X | Attach List | none | none |
| 159 | - | - | X | Detach List | none | none |
| 160 | - | - | X | Set List | E = List # | none |
| 161 | - | - | X | Conditional Attach List | none | A = Err Code |
| 162 | - | - | X | Conditional Attach Console | none | A = Err Code |
| 163 | - | - | X | MPM Version Number | none | HL= Version # |
| 164 | - | - | X | Get List Number | none | A = List # |