&B900 | KL U ROM ENABLE |
Action | Enables the current upper ROM |
Entry | No entry conditions |
Exit | A contains the previous state of the ROM, the flags are corrupt, and all other registers are preserved |
Notes | After this routine has been called, all reading from addresses between &C000 and &FFFF refers to the upper ROM, and not the top 16K of RAM which is usually the screen memory; any writing to these addresses still affects the RAM as, by its nature, ROM cannot be written to |
&B903 | KL U ROM DISABLE |
Action | Disables the upper ROM |
Entry | No entry conditions |
Exit | A contains the previous state of the ROM, the flags are corrupt, and all other registers are preserved |
Notes | After this routine has been called, all reading from addresses between &C000 and &FFFF refers to the top 16K of RAM which is usually the screen memory |
&B906 | KL L ROM ENABLE |
Action | Enables the lower ROM |
Entry | No entry conditions |
Exit | A contains the previous state of the ROM, the flags are corrupt, and all other registers are preserved |
Notes | After this routine has been called, all reading from addresses between &0000 and &4000 refers to the lower ROM, and not the bottom 16K of RAM; any writing to these addresses still affects the RAM as a ROM cannot be written to; the lower ROM is automatically enabled when a firmware routine is called, and is then disabled when the routine returns |
&B909 | KL L ROM DISABLE |
Action | Disables the lower ROM |
Entry | No entry conditions |
Exit | A contains the previous state of the ROM, the flags are corrupt, and all other registers are preserved |
Notes | After this routine has been called, all reading from addresses between &0000 and &4000 refers to the bottom 16K of RAM; the lower ROM is automatically enabled when a firmware routine is called, and is then disabled when the routine returns |
&B90C | KL ROM RESTORE |
Action | Restores the ROM to its previous state |
Entry | A contains the previous state of the ROM |
Exit | AF is corrupt, and all other registers are preserved |
Notes | The previous four routines all return values in the A register which are suitable for use by KL ROM RESTORE |
&B90F | KL ROM SELECT |
Action | Selects an upper ROM and also enables it |
Entry | C contains the ROM select address of the required ROM |
Exit | C contains the ROM select address of the previous ROM, and B contains the state of the previous ROM |
&B912 | KL CURR SELECTION |
Action | Gets the ROM select address of the current ROM |
Entry | No entry conditions |
Exit | A contains the ROM select address of the current ROM, and all other registers are preserved |
&B915 | KL PROBE ROM |
Action | Gets the class and version of a specified ROM |
Entry | C contains the ROM select address of the required ROM |
Exit | A contains the class of the ROM, H holds the version number, L holds me mark number, B and the flags are corrupt, and all other registers are preserved |
Notes | The ROM class may be one of the following: &00 - a foregroumd ROM &01 - a background ROM &02 - an extension foreground ROM &80 - the built in ROM (ie the BASIC ROM) |
&B918 | KL ROM DESELECT |
Action | Selects the previous upper ROM and sets its state |
Entry | C contains me ROM select address of the ROM to be reselected, and B contains the state of the required ROM |
Exit | C contains the ROM select address of me current ROM, B is corrupt, and all others are preserved |
Notes | This routine reverses the acoon of KL ROM SELECT, and uses the values that it returns in B and C |
&B91B | KL LDIR |
Action | Switches off the upper and lower ROMs, and moves a block of memory |
Entry | As for a standard LDIR instruction (ie DE holds the destination location, HL points to the first byte to be moved, and BC holds the length of the block to be moved) |
Exit | F, BC, DE amd HL are set as for a normal LDIR instruction, and all other registers are preserved |
&B91E | KL LDDR |
Action | Switches off the upper and lower ROMs, amd moves a block of memory |
Entry | As for a standard LDDR instruction (ie DE holds the first desination location, HL points to the highest byte lit in memory to be moved, amd BC holds the number of bytes to be moved) |
Exit | F, BC, DE amd HL, are set as for a nommal LDDR instruction, and all other registers are preserved |
&B921 | KL POLL SYNCHRONOUS |
Action | Tests whether an event with a higher priority than the current event is waiting to be dealt with |
Entry | No entry conditions |
Exit | If there is a higher priority event, then Carry is false; if there is no higher priority event, then Carry is true; in either case, A and the other flags are corrupt, and all other registers are preserved |
&B92A | KL SCAN NEEDED |
Action | Ensures that the keyboard is scanned when the next ticker interrupt occurs |
Entry | No entry conditions |
Exit | AF amd HL are corrupt, amd all other registers are preserved |
Notes | This routine is useful for scanning the keyboard when interrupts are disabled and normal key scanning is not occuring |