1
0
mirror of https://github.com/cc65/cc65.git synced 2025-01-12 17:30:50 +00:00
cc65/asminc/cbm_kernal.inc

138 lines
3.7 KiB
PHP
Raw Normal View History

2018-06-21 18:32:38 +03:00
;
; Olli Savia <ops@iki.fi>
;
; Commodore Kernal functions
2018-06-21 18:32:38 +03:00
;
.if .def(__CX16__)
; CX16 extended jump table
GETJOY := $FF06
MOUSE := $FF09
SCRMOD := $FF5F
.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
JSRFAR := $FF6E
INDFET := $FF74
INDSTA := $FF77
INDCMP := $FF7A
PRIMM := $FF7D
.endif
.if .def(__C64__) || .def(__C128__) || .def(__C16__) || .def(__CX16__)
2018-06-21 18:32:38 +03:00
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.
2018-06-21 18:32:38 +03:00
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.
2018-06-21 18:32:38 +03:00
.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
2018-06-21 18:32:38 +03:00
.endif
.if .def(__CBM510__) || .def(__CBM610__) || .def(__VIC20__) || .def(__C64__) || .def(__C128__) || .def(__C16__) || .def(__CX16__)
2018-06-21 18:32:38 +03:00
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
2018-08-14 21:09:03 +03:00
CHKOUT := $FFC9
2018-06-21 18:32:38 +03:00
CLRCH := $FFCC
2018-08-14 21:09:03 +03:00
CLRCHN := $FFCC
2018-06-21 18:32:38 +03:00
BASIN := $FFCF
CHRIN := $FFCF
BSOUT := $FFD2
CHROUT := $FFD2
.if .def(__CBM510__) || .def(__CBM610__) || .def(__VIC20__) || .def(__C64__) || .def(__C128__) || .def(__C16__) || .def(__CX16__)
2018-06-21 18:32:38 +03:00
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__)
2018-06-21 18:32:38 +03:00
SCREEN := $FFED
2018-06-22 11:29:03 +03:00
PLOT := $FFF0
2018-06-21 18:32:38 +03:00
IOBASE := $FFF3
.endif
2018-11-25 10:28:37 +02:00
; ---------------------------------------------------------------------------
; 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.
;
2018-11-25 10:28:37 +02:00
.if .def(__VIC20__)
CLRSCR := $E55F
KBDREAD := $E5CF
UPDCRAMPTR := $EAB2
2018-11-25 10:28:37 +02:00
.elseif .def(__C64__)
CLRSCR := $E544
KBDREAD := $E5B4
NMIEXIT := $FEBC
UPDCRAMPTR := $EA24
2018-11-25 10:28:37 +02:00
.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