To Boot a standard IMDOS IBM 8 inch disk image in drive A:(or the CPM 1.31 for IMSAI)
 Load printer(dev8) properties with file IMPrinter.pio (if you want to use it)
 Set TTY (dev0) byte size to 7 bits (CRT (dev1) also, if you want to use)
 Set drive properties of Drives A:-D: to IBM3740
 Load memory with file D800.HEX
 Load IOmap file IMSAIFIF.IOM
 Goto D800 (goto address should already be set by D800.HEX)
 
The monitor at D800 first attempts to boot... 
if it fails , then it waits for a space to be input (to set baud rate) 

WARNING the auto run function will defeat the Console Selection in IMDOS

The monitor boot command is B (majuscule B)

IMSAI131.IMG, IMDOS.IMG are bootable and were created by Larry Greene (larrygr510@gmail.com)
  CPM reads the FrontPanel to set the initial IOBYTE.. IOBYTE is permanetly mapped to return 0. 
  You can LOAD FPimsai.iop (from Lights and Switches) to set up a panel to simulate the FrontPanel.
	LPT is 2 0x80 in panel |pr|pu|rd|cn| 
			        10 00 00 00

IMDOS205.IMG is IMDOS.IMG with some added programs..

IMDOS_a, IMDOS_b, and IMDOS_c are from z80 altair simulator

DRI-MAC.IMG contains DRI asm, mac, and rmac; and can be used to redo IMDOS bios.

The disks that come from the Z80Altair emulator and contain programs that are designed 
  specifically for the Z80Altair simulator. R(READ), w(WRITE), and FTP, do NOT function on the Z80 Emulator

Use dload and uload to transfer files on z80 emulator..the Uload and Dload supplied with IMDOS will work on IMDOS, CPM 1, CPM 2 and CPM 3. It is written in assembly and uses only CPM 1 calls. (the C versions would not run on CPM 1)

-----------

The implementation of the FIF FDC is a guess based on infomation gathered from source boot loaders and source BIOSes, along with information found by studying source from other emulators. It is NOT complete, but appears good enough to run IMDOS.

FIF Controller PORT is at 0x2A in the map 6, and must be remapped to 0xFD.

 bits	7654	3210
	CMD	DRIVE/StrPTR 	Function
	 0	 StrPtr		 execute IOPBT(StrPtr)
	 1	 StrPtr		 set IOPBT(StrPtr) to next two bytes
	 2	 DV		 home drive(s)

IOPB (I/O Parameter Block, pointed to by IOPBT(StrPtr) {IOPB Table} )

 bits	7654	3210
	CMD	DRIVE	Function
	 0	 DV	 none
	 1	 DV	 write 
	 2	 DV	 read
	 3	 DV	 format

DV is a vector of drives 

 bits	3 2 1 0
  	D C B A

Currently format returns success without doing anything
  (should be fine. Just use already formatted disks)

FIF errors (returned in IOPB+1)
 0x00	busy
 0x01 	OK,fine
 0xa1	not ready

additional errors added (should be OK , except that software may interpret incorrectly)
 these are NOT standard FIF error codes..
 do NOT use in new code... they will change as i discover the correct values

 0x02 '? ' Invalid disk
 0x21 '? ' RNF (record not found)
 0x31 '? ' WP, WF (Write Protect, Write Fault)
 0x41 '? ' clk, dens, trk ,cyl, head, sector 
 0x51 '? ' everything else

if you have IMSAI manuals for FIF and/or IMDOS please send digital copies... 

