|CPM or |CPM,<drive> - Boot CPM from drive A, or chosen drive. A=0,B=1,D=3,E=4,F=5,G=6. Can boot from D,E,F,G if HD is detected. Can't boot from drive C.
== Booting CPM ==
The process to boot cpm is the same on floppy discs and hard disk and uses a common read sector function that re-directs to low-level functions based on the chosen drive.
Using |CPM,<drive> you can define which drive to boot from.
When |CPM is executed:
* on 2.10 and later, the hard disc is detected and be4b is set to ff if detected, 00 if not detected.
* the bios jumpblock is copied to be80 from c07b.
* iobyte (0003) is set to 81
* the current drive is written to &0004. A = 0, B = 1, D=3 etc.
* ad33 'enter firmware' is setup.
* the XDPB is queried to find the location of the boot sector
* the boot sector is loaded to &100.
* if the boot sector has code, then the boot sector is executed from &100.
== Floppy Discs ==