High Kernel Jumpblock


&B900KL U ROM ENABLE
ActionEnables the current upper ROM
EntryNo entry conditions
ExitA contains the previous state of the ROM, the flags are corrupt, and all other registers are preserved
NotesAfter 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
&B903KL U ROM DISABLE
ActionDisables the upper ROM
EntryNo entry conditions
ExitA contains the previous state of the ROM, the flags are corrupt, and all other registers are preserved
NotesAfter 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
&B906KL L ROM ENABLE
ActionEnables the lower ROM
EntryNo entry conditions
ExitA contains the previous state of the ROM, the flags are corrupt, and all other registers are preserved
NotesAfter 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
&B909KL L ROM DISABLE
ActionDisables the lower ROM
EntryNo entry conditions
ExitA contains the previous state of the ROM, the flags are corrupt, and all other registers are preserved
NotesAfter 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
&B90CKL ROM RESTORE
ActionRestores the ROM to its previous state
EntryA contains the previous state of the ROM
ExitAF is corrupt, and all other registers are preserved
NotesThe previous four routines all return values in the A register which are suitable for use by KL ROM RESTORE
&B90FKL ROM SELECT
ActionSelects an upper ROM and also enables it
EntryC contains the ROM select address of the required ROM
ExitC contains the ROM select address of the previous ROM, and B contains the state of the previous ROM
&B912KL CURR SELECTION
ActionGets the ROM select address of the current ROM
EntryNo entry conditions
ExitA contains the ROM select address of the current ROM, and all other registers are preserved
&B915KL PROBE ROM
ActionGets the class and version of a specified ROM
EntryC contains the ROM select address of the required ROM
ExitA 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
NotesThe 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)
&B918KL ROM DESELECT
ActionSelects the previous upper ROM and sets its state
EntryC contains me ROM select address of the ROM to be reselected, and B contains the state of the required ROM
ExitC contains the ROM select address of me current ROM, B is corrupt, and all others are preserved
NotesThis routine reverses the acoon of KL ROM SELECT, and uses the values that it returns in B and C
&B91BKL LDIR
ActionSwitches off the upper and lower ROMs, and moves a block of memory
EntryAs 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)
ExitF, BC, DE amd HL are set as for a normal LDIR instruction, and all other registers are preserved
&B91EKL LDDR
ActionSwitches off the upper and lower ROMs, amd moves a block of memory
EntryAs 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)
ExitF, BC, DE amd HL, are set as for a nommal LDDR instruction, and all other registers are preserved
&B921KL POLL SYNCHRONOUS
ActionTests whether an event with a higher priority than the current event is waiting to be dealt with
EntryNo entry conditions
ExitIf 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
&B92AKL SCAN NEEDED
ActionEnsures that the keyboard is scanned when the next ticker interrupt occurs
EntryNo entry conditions
ExitAF amd HL are corrupt, amd all other registers are preserved
NotesThis routine is useful for scanning the keyboard when interrupts are disabled and normal key scanning is not occuring


David Cantrell, March 1996