Changes

Jump to: navigation, search

CP/M 2.2

376 bytes added, 19:11, 5 May 2018
/* Memory Map */
TPA is from &100-&96ff (38400 bytes, 37KB TPA). Then:
* &9700 - &acff => CPM 2.2 CCP/BDOS (This can be moved with MOVCPM.)
* &ad00 - &ad32 => CPM BIOS jumpblock. (This can be moved with MOVCPM.)
Each entry is a JP instruction. (The address of this can be calculated from CP/M if you need to patch it. Take the address at &0001/&0002 and subtract 3 to give the address of the boot JP instruction). These jumps including enter/exit firmware can be patched.
If you plan to patch it for additional hardware and need memory then you will need to use MOVCPM to reduce the TPA size.
 
The memory allocated by MOVCPM follows the CPM BIOS jumpblock up to &ad33 in RAM.
For CPC AMSDOS the BIOS jumpblock has the following addresses in it:
listst - c2cd
sectran - c55a
"enter firmware" - c0fa
 * &ad33 - &ad36 => "enter firmware" jump. This doesn't move when MOVCPM is used.* &ad37 - &ad42 => used by "enter firmware" for storage of registers etc for transitioning to firmware and restoring back.
* &ad43 - &bb00 => used by AMSDOS.
* &bec0 - &bfff => stack
* &c000 - &ffff => screen
 
When MOVCPM is used the memory looks like this:
 
low firmware jumpblock, &100..<top of TPA>, CCP/BDOS, BIOS jumpblock, <free space>, &AD33 "enter firmware", firmware etc.
== Download ==
2,541
edits