Changes

CP/M 2.2

532 bytes added, 12:05, 15 December 2019
/* Console Output */
First check if a file exists before deleting it:
ld c,&11 ;; search for first
ld de,fcb
call BDOS
jr z,doesnt_exist
ld c,&13 ;; delete file
ld de,fcb
call BDOS
CPM2.2 doesn't use any extra memory, and since it runs in configuration 'C0' accessing extra memory is much quicker and easier than under CPM3.0.
You should ensure your code (within the TPA) is in a safe region (0000-3fff, 8000-ffff), you can then page in the memory and copy it out to your destination directly as long as the destination is also within the safe area. It is much safer and simpler to use.
 
NOTE: This can't be used on other CPM2.2 variants on the CPC.
==== Console Input ====
==== Console Output ====
Console output (via BDOS functions) ultimately uses TXT OUTPUT so executes has the potential to execute firmware control codes and displays display CPC firmware characters.  However, BDOS function 2 (Console output), which has control before TXT OUTPUT, looks for some specific characters and will perform specific processing regardless of whether it is part of a control character sequence or not.  Fore example, Console Output looks for TAB (&09). Therefore use BDOS function 6 (Direct console input/output) to avoid this processing. With this function you can use the control codes to define windows, change modes, change colours etc.
==== Serial number ====
otherwise you're using the stack set for CCP.
==== MOVCPM .COM ====
MOVCPM .COM is used to change the size of the TPA which is the area used by programs. This relocates CCP and BDOS. SYSGEN then writes this to a disc so that when this disc is booted CP/M has a different sized TPA. By reducing the TPA, memory is freed up which is not touched by CPM and which can be used by the user.
CPM 2.2 is generated using MOVCPM on the CPM 2.2 disc as follows:
2,541
edits