&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 |