| &BD13 | MC BOOT PROGRAM |
| Action | Loads a program into RAM and then executes it |
| Entry | HL contains the address of the routine which is used to load the program |
| Exit | Control is handed over to the program and so the routine is not returned from |
| Notes | All events, sounds and interrupts are turned off, the firmware indirections are returned to their default settings, and the stack is reset; the routine to run the program should be in the central block of memory, and should obey the following exit conditions: if the program was loaded successfully, then Carry is true, and HL contains the prograrn entry point; if the program failed to load, then Carry is false, and HL is corrupt; in either case, A, BC, DE, IX, IY and the other flags are all corrupt Should the program fail to load, control is returned to the previous foreground program |
| &BD16 | MC START PROGRAM |
| Action | Runs a foreground program |
| Entry | HL contains the entry point for the program, and C contains the ROM selection number |
| Exit | Control is handed over to the prograrn and so the routine is not returned from |
| &BD19 | MC WAIT FLYBACK |
| Action | Waits until a frame flyback occurs |
| Entry | No entry conditions |
| Exit | All registers are preserved |
| Notes | When the frame flyback occurs the screen is not being written to and so the screen c~n be manipulated during this period without any flickering or ghosting on the screen |
| &BD1C | MC SET MODE |
| Action | Sets the screen mode |
| Entry | A contains the required mode |
| Exit | AF is corrupt, and all other registers are preserved |
| Notes | Although this routine changes the screen mode it does not inform the routines which write to the screen that the mode has been changed; therefore these routines will write to the screen as if the mode had not been changed; however as the hardware is now interpreting these signals differently, unusual effects may occur |
| &BD1F | MC SCREEN OFFSET |
| Action | Sets the screen offset |
| Entry | A contains the screen base, and HL contains the screen offset |
| Exit | AF is corrupt, and all other registers are preserved |
| Notes | As with MC SET MODE, this routine changes the hardware setting without telling the routines that write to the screen; therefore these routines may cause unpredictable effects if called; the default screen base is &C0 |
| &BD22 | MC CLEAR INKS |
| Action | Sets all the PENs and the border to one colour, so making it seem as if the screen has been cleared |
| Entry | DE contains the address of the ink vector |
| Exit | AF is corrupt, and all other registers are preserved |
| Notes | The ink vector takes the following form: byte 0 - holds the colour for the border byte 1 - holds the colour for all of the PENs The values for the colours are all given as hardware values |
| &BD25 | MC SET INKS |
| Action | Sets the colours of all the PENs and the border |
| Entry | DE contains the address of the ink vector |
| Exit | AF is corrupt, and all other registers are preserved |
| Notes | The ink vector takes the following form: byte 0 - holds the colour for the border byte 1 - holds the colour for PEN 0... byte 16 - holds the colour for PEN 15. The values for the colours are all given as hardware values; the routine sets all sixteen PEN's |
| &BD28 | MC RESET PRINTER |
| Action | Sets the MC WAIT PRINTER indirection to its original routine |
| Entry | No entry conditions |
| Exit | AF, BC, DE and HL are corrupt, and all others are preserved |
| &BD2B | MC PRINT CHAR |
| Action | Sends a character to the printer and detects if it is busy for too long (more than 0.4 seconds) |
| Entry | A contains the character to be printed - only characters upto ASCII 127 can be printed |
| Exit | If the character was sent properly, then Carry is true; if the printer was busy, then Carry is false; in either case, A and the other flags are corrupt, and all other registers are preserved |
| Notes | This routine uses the MC WAIT PRINTER indirection |
| &BD2E | MC BUSY PRINTER |
| Action | Tests to see if the printer is busy |
| Entry | No entry conditions |
| Exit | If the printer is busy, then Carry is true; if the printer is not busy, then Carry is false; in both cases, the other flags are corrupt, and all other registers are preserved |
| &BD31 | MC SEND PRINTER |
| Action | Sends a character to the printer, which must not be busy |
| Entry | A contains tlle character to be printed - only characters up to ASCII 127 can be printed |
| Exit | Carry is true, A and the other flags are corrupt, and all other registers are preserved |
| &BD34 | MC SOUND REGISTER |
| Action | Sends data to a sound chip register |
| Entry | A contains the register nurnber, and C contains the data to be sent |
| Exit | AF and BC are corrupt, and all other registers are preserved |
| &BD37 | JUMP RESTORE |
| Action | Restores the jumpblock to its default state |
| Entry | No entry conditions |
| Exit | AF, BC, DE and HL are corrupt, and all other registers are preserved |
| Notes | This routine does not affect the indirections jumpblock, but restores all entries in the main jumpblock |