; See the LICENSE file for distribution terms (Apache 2.0). ; ; Parts taken from multiple sources: ; cc65 2.17, libsrc/c65/kernal.s ; Copyright Ullrich von Bassewitz (BSD license) ; "Commodore 64 ROM Addresses", author unknown; found on web: ; http://commodore64.se/wiki/index.php/Commodore_64_ROM_Addresses ; "Important JSRs", by Vbas ; https://www.lemon64.com/forum/viewtopic.php?t=68960 *SYNOPSIS C64 Kernal addresses and constants ; ; C64 Kernal jump table ; CINT @ $FF81 ;init editor & video chip IOINIT @ $FF84 ;init I/O devices, ports, and timers RAMTAS @ $FF87 ;init ram and buffers RESTOR @ $FF8A ;restore default I/O vectors VECTOR @ $FF8D ;read/set I/O vector table SETMSG @ $FF90 ;set Kernal message control flag SECOND @ $FF93 ;send SA after listen TKSA @ $FF96 ;send SA after talk MEMTOP @ $FF99 ;set/read system RAM top MEMBOT @ $FF9C ;set/read system RAM bottom SCNKEY @ $FF9F ;scan keyboard SETTMO @ $FFA2 ;set timeout for IEEE bus ACPTR @ $FFA5 ;handshake serial byte in CIOUT @ $FFA8 ;handshake serial byte out UNTLK @ $FFAB ;command serial bus UNTALK UNLSN @ $FFAE ;command serial bus UNLISTEN LISTEN @ $FFB1 ;command serial bus LISTEN TALK @ $FFB4 ;command serial bus TALK READST @ $FFB7 ;read I/O status word SETLFS @ $FFBA ;set logical file parameters SETNAM @ $FFBD ;set filename OPEN @ $FFC0 ;($031A/iopen) open logical file CLOSE @ $FFC3 ;($031C/iclose) close logical file CHKIN @ $FFC6 ;($031E/ichkin) define input channel CKOUT @ $FFC9 ;($0320/ichkout) define output channel CLRCH @ $FFCC ;($0322/iclrch) restore default devices BASIN @ $FFCF ;($0324/ichrin) input vector, chrin BSOUT @ $FFD2 ;($0326/ichrout) output vector, chrout LOAD @ $FFD5 ;load from device SAVE @ $FFD8 ;save to device SETTIM @ $FFDB ;set real-time clock RDTIM @ $FFDE ;read real-time clock STOP @ $FFE1 ;($0328/istop) check the STOP key GETIN @ $FFE4 ;($032A/igetin) get from keyboard CLALL @ $FFE7 ;($032C/iclall) close all channels and files UDTIM @ $FFEA ;update real-time clock SCREEN @ $FFED ;return screen organization PLOT @ $FFF0 ;read/set cursor X/Y position IOBASE @ $FFF3 ;return I/O base address