; ; Olli Savia ; Greg King ; ; Commodore-compatibles Kernal functions ; .if .def(__CX16__) ; CX16 extended jump table KBDBUF_PEEK := $FEBD KBDBUF_GET_MODIFIERS := $FEC0 KBDBUF_PUT := $FEC3 I2C_READ_BYTE := $FEC6 I2C_WRITE_BYTE := $FEC9 CX_MONITOR := $FECC ENTROPY_GET := $FECF CONSOLE_SET_PAGE_MSG := $FED5 CONSOLE_PUT_IMAGE := $FED8 CONSOLE_INIT := $FEDB CONSOLE_PUT_CHAR := $FEDE CONSOLE_GET_CHAR := $FEE1 MEMORY_FILL := $FEE4 MEMORY_COPY := $FEE7 MEMORY_CRC := $FEEA MEMORY_DECOMPRESS := $FEED SPRITE_SET_IMAGE := $FEF0 SPRITE_SET_POSITION := $FEF3 FB_INIT := $FEF6 FB_GET_INFO := $FEF9 FB_SET_PALETTE := $FEFC FB_CURSOR_POSITION := $FEFF FB_CURSOR_NEXT_LINE := $FF02 FB_GET_PIXEL := $FF05 FB_GET_PIXELS := $FF08 FB_SET_PIXEL := $FF0B FB_SET_PIXELS := $FF0E FB_SET_8_PIXELS := $FF11 FB_SET_8_PIXELS_OPAQUE := $FF14 FB_FILL_PIXELS := $FF17 FB_FILTER_PIXELS := $FF1A FB_MOVE_PIXELS := $FF1D GRAPH_INIT := $FF20 GRAPH_CLEAR := $FF23 GRAPH_SET_WINDOW := $FF26 GRAPH_SET_COLORS := $FF29 GRAPH_DRAW_LINE := $FF2C GRAPH_DRAW_RECT := $FF2F GRAPH_MOVE_RECT := $FF32 GRAPH_DRAW_OVAL := $FF35 GRAPH_DRAW_IMAGE := $FF38 GRAPH_SET_FONT := $FF3B GRAPH_GET_CHAR_SIZE := $FF3E GRAPH_PUT_CHAR := $FF41 MULTI_ACPTR := $FF44 RESTORE_BASIC := $FF47 CLOCK_SET_DATE_TIME := $FF4D CLOCK_GET_DATE_TIME := $FF50 JOYSTICK_SCAN := $FF53 JOYSTICK_GET := $FF56 SCREEN_MODE := $FF5F SCREEN_SET_CHARSET := $FF62 MOUSE_CONFIG := $FF68 MOUSE_GET := $FF6B .endif .if .def(__C128__) ; C128 extended jump table C64MODE := $FF4D SWAPPER := $FF5F SETBNK := $FF68 .endif .if .def(__C128__) || .def(__CX16__) ; Extended jump table CLSALL := $FF4A LKUPLA := $FF59 LKUPSA := $FF5C PFKEY := $FF65 JSRFAR := $FF6E INDFET := $FF74 INDSTA := $FF77 INDCMP := $FF7A PRIMM := $FF7D .endif .if .def(__C64__) || .def(__C128__) || .def(__C16__) || .def(__CX16__) CINT := $FF81 IOINIT := $FF84 RAMTAS := $FF87 .elseif .def(__VIC20__) CINT := $E518 ; No entries are in the Kernal jump table of the VIC-20 for these three (3) functions. IOINIT := $FDF9 ; The entries for these functions have been set to point directly to the functions RAMTAS := $FD8D ; in the Kernal, to maintain compatibility with the other Commodore platforms. .elseif .def(__CBM510__) || .def(__CBM610__) IOINIT := $FF7B CINT := $FF7E .endif .if .def(__VIC20__) || .def(__C64__) || .def(__C128__) || .def(__C16__) || .def(__CX16__) RESTOR := $FF8A VECTOR := $FF8D .elseif .def(__CBM510__) || .def(__CBM610__) VECTOR := $FF84 RESTOR := $FF87 .endif .if .def(__CBM510__) || .def(__CBM610__) || .def(__VIC20__) || .def(__C64__) || .def(__C128__) || .def(__C16__) || .def(__CX16__) SETMSG := $FF90 SECOND := $FF93 TKSA := $FF96 MEMTOP := $FF99 MEMBOT := $FF9C SCNKEY := $FF9F SETTMO := $FFA2 ACPTR := $FFA5 CIOUT := $FFA8 UNTLK := $FFAB UNLSN := $FFAE LISTEN := $FFB1 TALK := $FFB4 READST := $FFB7 SETLFS := $FFBA SETNAM := $FFBD OPEN := $FFC0 CLOSE := $FFC3 .endif ; Available on all platforms including PET CHKIN := $FFC6 CKOUT := $FFC9 CHKOUT := $FFC9 CLRCH := $FFCC CLRCHN := $FFCC BASIN := $FFCF CHRIN := $FFCF BSOUT := $FFD2 CHROUT := $FFD2 .if .def(__CBM510__) || .def(__CBM610__) || .def(__VIC20__) || .def(__C64__) || .def(__C128__) || .def(__C16__) || .def(__CX16__) LOAD := $FFD5 SAVE := $FFD8 SETTIM := $FFDB RDTIM := $FFDE .endif ; Available on all platforms including PET STOP := $FFE1 GETIN := $FFE4 CLALL := $FFE7 UDTIM := $FFEA .if .def(__CBM510__) || .def(__CBM610__) || .def(__VIC20__) || .def(__C64__) || .def(__C128__) || .def(__C16__) || .def(__CX16__) SCREEN := $FFED PLOT := $FFF0 IOBASE := $FFF3 .endif ; --------------------------------------------------------------------------- ; Kernal routines, direct entries ; ; Unlike the above, these are not standard functions with entries in the jump ; table. They do not exist in all Kernals, and where they do the entry point is ; specific to that particular machine and possibly even Kernal version. ; ; This list is not comprehensive: missing items for particular machines ; should be added as needed. ; ; UPDCRAMPTR: Updates the color RAM pointer to match the screen RAM pointer. ; .if .def(__VIC20__) CLRSCR := $E55F KBDREAD := $E5CF UPDCRAMPTR := $EAB2 .elseif .def(__C64__) CLRSCR := $E544 KBDREAD := $E5B4 NMIEXIT := $FEBC UPDCRAMPTR := $EA24 .elseif .def(__C128__) CLRSCR := $C142 KBDREAD := $C006 NMIEXIT := $FF33 NEWLINE := $C363 PRINT := $C322 CURS_SET := $CD57 CURS_ON := $CD6F CURS_OFF := $CD9F .elseif .def(__C16__) CLRSCR := $D88B KBDREAD := $D8C1 .endif