Kernel Jump Table
The MEGA65 kernel jump table provides stable addresses you can call to access kernel routines from your program. The table addresses are guaranteed not to change, even if other changes in the ROM change the actual code locations.
Addresses $ff4d-$ff7d are compatible with the Commodore 128 jump table. Addresses $ff80-$fff3 are compatible with the Commodore 64 jump table. Neither C65 nor MEGA65 have added new jump table entries.
Address | ROM jump | Comment | Notes |
---|---|---|---|
ff4d | jmp spin_spout | setup fast serial port for input or output | Â |
ff50 | jmp close_all | close all logical files for a given device | Â |
ff53 | jmp c64mode | reconfigure system as a c/64 (no return!) | Â |
ff56 | jmp monitor_call | map in Monitor & call it | Â |
ff59 | jmp bootsys | boot alternate system from disk  [910110] |  |
ff5c | jmp phoenix | call carts' cold start routines, disk boot loader | Â |
ff5f | jmp lkupla | search tables for given la | Â |
ff62 | jmp lkupsa | search tables for given sa | Â |
ff65 | jmp swapper | swap to alternate display device  (editor) |  |
ff68 | jmp pfkey | program function key   (editor) |  |
ff6b | jmp setbnk | set bank for load/save/verify/open | Â |
ff6e | jmp jsr_far | JSR to any bank, RTS to calling bank | Â |
ff71 | jmp jmp_far | JMP to any bank | Â |
ff74 | jmp lda_far | LDA (X),Y from bank Z | Â |
ff77 | jmp sta_far | STA (X),Y to  bank Z |  |
ff7a | jmp cmp_far | CMP (X),Y to  bank Z |  |
ff7d | jmp primm | print immediate (always JSR to this routine!) |  |
ff81 | jmp cint | init screen editor & display chips  (editor) |  |
ff84 | jmp ioinit | init I/O devices (ports, timers, etc.) | Â |
ff87 | jmp ramtas | initialize RAM for system | Â |
ff8a | jmp restor | restore vectors to initial system | Â |
ff8d | jmp vector | change vectors for user | Â |
ff90 | jmp setmsg | control o.s. messages | Â |
ff93 | jmp (isecond) | send sa after listen | Â |
ff96 | jmp (italksa) | send sa after talk | Â |
ff99 | jmp memtop | set/read top of memory | Â |
ff9c | jmp membot | set/read bottom of memory | Â |
ff9f | jmp key | scan keyboard   (editor) |  |
ffa2 | jmp monexit | monitor exit to BASIC (monitor) | Â |
ffa5 | jmp (iacptr) | read a byte from active serial bus talker | Â |
ffa8 | jmp (iciout) | send a byte to active serial bus listener | Â |
ffab | jmp (iuntalk) | command serial bus device to stop talking | Â |
ffae | jmp (iunlisten) | command serial bus device to stop listening | Â |
ffb1 | jmp (ilisten) | command serial bus device to listen | Â |
ffb4 | jmp (italk) | command serial bus device to talk | Â |
ffb7 | jmp readss | return I/O status byte | Â |
ffba | jmp setlfs | set la, fa, sa | Â |
ffbd | jmp setnam | set length and fn adr | Â |
ffc0 | jmp (iopen) | open logical file | Â |
ffc3 | jmp (iclose) | close logical file | Â |
ffc6 | jmp (ichkin) | open channel in | Â |
ffc9 | jmp (ickout) | open channel out | Â |
ffcc | jmp (iclrch) | close I/O channel | Â |
ffcf | jmp (ibasin) | input from channel | Â |
ffd2 | jmp (ibsout) | output to channel | Â |
ffd5 | jmp load | load from file | Â |
ffd8 | jmp save | save to file | Â |
ffdb | jmp Set_Time | set internal clock | Â |
ffde | jmp Read_Time | read internal clock | Â |
ffe1 | jmp (istop) | scan stop key | Â |
ffe4 | jmp (igetin) | get char from queue | Â |
ffe7 | jmp (iclall) | clear all logical files (see close_all) | Â |
ffea | jmp ScanStopKey | (was increment clock) & scan stop key | Â |
ffed | jmp scrorg | return current screen window size  (editor) |  |
fff0 | jmp plot | read/set x,y coord   (editor) |  |
fff3 | jmp iobase | return I/O base | Â |
Â