====== Extensions ====== **XC=BASIC** supports third-party extensions since version 2.2. Extensions are includable source files that define * new COMMANDS * new FUNCTIONS * new CONSTANTS * new VARIABLES Extensions can be written in assembly language or in **XC=BASIC** as well if speed is not crucial. ===== Currently available extensions ===== * [[https://github.com/neilsf/xcb-ext-sprite|xcb-ext-sprite]] - commands for all sprite operations and functions for polling collisions * [[https://github.com/neilsf/xcb-ext-hires|xcb-ext-hires]] - commands for hi-res drawing * [[https://github.com/neilsf/xcb-ext-joystick|xcb-ext-joystick]] - functions for polling joystick states * [[https://github.com/neilsf/xcb-ext-rasterinterrupt|xcb-ext-rasterinterrupt]] - raster interrupts * [[https://github.com/neilsf/xcb-ext-sfx|xcb-ext-sfx]] - routines to play S.E.U.C.K sound effects * [[https://github.com/Thraka/xcb-ext-io|xcb-ext-io]] - extension that handles I/O routines ===== How to use extensions ===== Just use the [[include|INCLUDE]] directive to include the extension into your program: include "path/to/extension.bas" After this point you can use all the new symbols that the extension defines. ===== How to write extensions ===== Please refer to [[extensions_tutorial|this tutorial]]. ===== Wanted extensions ===== Here are some extensions that would be cool to have: * Music and sound FX commands * Commands to play SID tunes * Multicolor drawing * Library for fast character graphics and scrolling * Number formatting, i. e. converting numbers of different types to strings in decimal, hex, etc * Packing/crunching * Math functions