Command table, DOS+ ver 2.5 All returned values are in HL, with BA a copy. Thus 8 bit values are also returned in A. Function 0 ignores the pointer at 1, and can be used to force system reloading. "*" marks differences or enhancements from CPM 2.2 FUNC NAME INPUT PARAMS RETURNED VALUES 0 Boot none none 1 Console input (echo) " char 2 Console output E=char 0 3 Reader input none char 4 Punch output E=char 0 5 List output E=char 0 * 6 Direct console i/o E=0FFH input char * 0 if no char ready * E=0FEH console status (0/ffh) * E=0FDH input char, wait * E=0FCH look-ahead input char * output char E=000H..0FBH xy posn (if bios) 7 Get i/o byte none i/o byte (ramlow+03H) 8 Set i/o byte E=i/o byte 0 9 Print string DE=addr string 0 * 10 Read console buffer DE=addr buffer 0 11 Get console status none 0 if no char ready & check for CTL-S pause ffh if char ready * 12 DOS+ version number " version num (025H) (compatible mode 022h) * 13 Reset disk system " 0 if no A0:$*.* file 0FFH $*.* file present 14 Select disk E=disk number 0 * 15 Open file DE=addr. FCB directory code (Uses path, can return byte count) 16 Close file DE=addr. FCB directory code 17 Search for first file " " 18 Search for next file " " 19 Delete file " error code 20 Read sequential " read/write code 21 Write sequential " " 22 Make file " directory code 23 Rename file " error code 24 Get login vector none login vector 25 Get current disk " current disk 26 Set DMA address DE=DMA address DMA address 27 Get allocation address none addr alloc vector 28 Write protect disk " 0 29 Get R/O vector " R/O vector * 30 Set file attributes DE=addr. FCB error code (can set byte count) 31 Get address DPB none addr. DPB * 32 Set/get user code E=0FFH get user number E=0..0feh (set) e MOD 32 * 33 Read random DE=addr. FCB read/write code * 34 Write random " " (random ops to rcd 262,143) * 35 Compute file size " error code * 36 Set random record " 0 37 Reset multiple drive DE=mask 0 * 40 Write random, zero fill DE=addr. FCB read/write code * 104 Set time (as CPM3) DE^= time rcd. 0 * 105 Get time " " Seconds field (BCD) * 210 Get info E=subcommand 0 BDOS base address 1 DMA setting 2 0, flush cons. input 3 list status 4 punch status (if bios) 5 rdr status (if bios) * 211 Type Decimal DE=value write to console, suppress lead zeroes. Notes Call 210 subcommand 0 can discriminate between CPM2.2 and DOS+ running in compatibility mode. CPM returns 0, DOS+ non-zero. in h All other commands return 0 (unless RSX's provide a value/action) Directory code : 00H,01H,02H,03H if no error 0FFH if error Error code : 00H if no error 0FFH if error Read/write code : 00H if no error 01H read => end of file write => directory full 02H disk full 03h cannot close current extent 04h attempt to (random) read unwritten data 05h No available directory space (random write) 06h random record no. out of range Time Stamps : Access set on file open, modified on close, create on make (when time stamping enabled and directory formatted). Archive bit reset only on those extents modified (on file close). r†