mirror of
https://github.com/cc65/cc65.git
synced 2024-08-17 03:29:15 +00:00
193 lines
5.9 KiB
PHP
193 lines
5.9 KiB
PHP
;
|
|
; Olli Savia <ops@iki.fi>
|
|
; 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
|