Chapter 1. Introduction

Welcome to Kick Assembler, an advanced MOS 65xx assembler combined with a Java Script like script language.

The assembler has all the features you would expect of a modern assembler like macros, illegal and DTV opcodes and commands for unrolling loops. It also has features like pseudo commands, import of SID files, import of standard graphic formats and support for 3rd party Java plugins. The script language makes it easy to generate data for your programs. This could be data such as sine waves, coordinates for a vector object, or graphic converters. Writing small data generating programs directly in you assembler source code is much handier than writing them in external languages like Java or C++.The script language and the assembler is integrated. Unlike other solutions, where scripts are prepassed, the script code and the assembler directives works together giving a more complete solution.

As seen by the size of this manual, Kick Assembler has a lot of functionality. You don't need to know it all to use the assembler, and getting to know all the features may take some time. If you are new to Kick Assembler, a good way to start is to read Chapter 2, Getting Started, Chapter 3, Basic Assembler Functionality and Chapter 4, Introducing the Script Language and then supplement with the features you need. Also notice the quick reference appendix which contains lists of directives, options and values.

This is the fifth version of Kick Assembler. The first version (1.x) was a normal 6510 cross assembler developed around 2003 and was never made public. The second version (2.x) was developed in 2006 and combined the assembler with a script language, giving you the opportunity to write programs that generate data for the assembler code. Finally in august 2006 the project went public. The third version (3.x) improved the underlying assembling mechanism using a flexible pass algorithm, recording of side effects and handling of invalid values. This gave better performance, and made it possible make more advanced feature. The fourth version (4.x) replaced the parsing mechanism, which where made using a parser generator, with a handwritten one which is faster, more flexible and included a preprocessor. This made it possible to do new language constructs and have better error handling. It also replaced the scoping system so it includes all entities, not just symbols. The fifth version (5.x) added segments which give the opportunity to manage the output of directives and channel it to files, disk images and other segments.

Through the years the project have grown quite big, with a professional setup including a its own code repository, a large automated test suite and automatic building and deploying.

A lot of people have contributed with valuable comments and suggestions by mail and on CSDB. Thanks guys. Your feedback is greatly appreciated. Also thanks to Gerwin Klein for doing JFlex (the lexical analyser used for this assembler); Scott Hudson, Frank Flannery and C. Scott Ananian for doing CUP (The parser generator). And finally, Thanks to XMLMind for sponsoring the project with a pro version of their XML editor in which this manual is written.

I would like to hear from people that use Kick Assembler so do not hesitate to write your comments to kickassembler@no.spam.theweb.dk (<- Remove no.spam. for real address).

I wish you happy coding..