Updates
Version 3.x
- 13/3-2010 : New beta release (v3.13):
- The main(java) version and the .exe version is now split in two files to ease the download for non exe users
- Corrected a few typos in the manual, Thank to Mace for pointing them out.
- Corrected progress bug in the for loop that occurred when the program only needs one pass. Also thanks to Mace for this one
- Corrected current directory bug in the .exe version. Thanks to Nitro for pointing this out
- 9/12-2009 : New beta release (v3.12):
- Added an exe file version. You no longer need to install java under windows to run Kick Assembler
- Made minor fitting to support config file in exefiles
- 28/10-2009 : New beta release (v3.11):
- Bugfix: Under certain conditions labels where not reachable within a pseudopc command. This is now fixed. Thanks to Algarbi for pointing this out.
- 19/10-2009 : New beta release (v3.10):
- Bugfix: Definition of Macros and pseudocommands was skipped if they were defined inside the pseudopc directive. Thanks to Pantaloon for pointing this out
- 9/10-2009 : New beta release (v3.9):
- Bugfix: The import source directive set the programcounter to the default position ($2000). This is now corrected so the program counter is left unchanged
- 27/9-2009 : New beta release (v3.8):
- A label followed by a macro or pseudo command execution now generates a namespace that lets you access the inner labels of the macro or pseudocommand
- The new filenamespace directive gives you an easy way to namespace an entire sourcefile
- More user friendly error messages on unterminated { and [. Thanks to Martin 'Cruzer' Kristensen for pointing this out
- A new config file (KickAss.cfg) lets you set up standard options that will be used at every assembling.
- The -symbolfile option lets you export all label to a file that can be imported in other assembler sources
- 15/9-2009 : New beta release (v3.7):
- You can now access arguments given on the commandline by the cmdLineVars hastable
- String now have an asNumber() and asBoolean() function that converts them into strings and booleans if possible
- The uminus function now works on floats and not integers (-7.4 was rounded to -7.0 etc)
- The new .printnow directive prints a message directly to the console instead of waiting for the output pass. This is good for debugging
- 17/8-2009 : New beta release (v3.6):
- Inlcuded BasicUpstart2, a better version of the BasicUpstart macro
- Better debug text on unterminated strings
- Upgraded to JFlex 1.4.3 (JFlex is the lexical analyzer)
- Bugfix : Invalidated Pc on invalid argument in .text directive
- Extended sid file support. You can now load RSID files and the following fields have been added : header, version, flags, speed, startpage, pagelength
- 12/8-2009 : New beta release (v3.5):
- Bugfix. It's now possible to use byte $ffff. Thanks to Alex Kazik for pointing this out.
- It's now possible to write user defined files to the disk with the createFile command. This is useful for making breakpoints for VICE.
- 18/7-2009 : New beta release (v3.4):
- Removed java-stacktrace that appeared on parser errors. I always use a special debug mode when I code where its supposed to be shown. Sorry to all who wondered what this was.
- 15/7-2009 : New beta release (v3.3):
- Kick ass now automatically generate label namespaces when a label is combined with a scope. It's really nice - check it out!
- Corrected a bug in the evaluation of macro arguments. It would appear if a label inside the macro had the same name as a symbol used in one of the arguments of the macro call + some other conditions.
- The -binfile switch lets you generate bin files instead of prg files as output.
- 31/5-2009 : New beta release (v3.2):
- You can now use define labels with the .label directive : .label borderColor = $d020
- The virtual memory blocks are now back in the memory map. Thanks to Mix256 for pointing out they where missing.
- Manual bruch up - Again a big thanks to Gunni (Dragnet/Rabiez) for proofreading.
- 24/5-2009 : New beta release (v3.1):
- Chars - You can now use chars like : lda #'a'
- Namespaces - You can now create namespaces with the .namespace directive. More advanced namespace features will follow.
- Corrected error in the .import directives introduced in 3.0. Import binary and text didn't advance the program counter in pass 2. Thanks to Logan for pointing this out.
- 10/5-2009 : The first beta release of KickAssembler 3 (v3.0):
-
Core Changes:
- New 'flexible pass' assembling algorithm
- Sideeffects of the scriptlanguage are recorded so the same calculations won't be repeated in several passes
- Invalid value calculations
-
New Directives / Features:
- Stacktrace - Kick Assembler now shows a stacktrace on errors when possible instead of an inclusion trace.
- Assert code directive
- Assert error directive
- Assert error code directive
- Define directive
- Lock Function on all values. You can now lock the contents of mutable values, such as lists, with the lock function
- Manual bruch up - Big thanks to Gunni (Dragnet/Rabiez) for proofreading
-
Changes / Error Corrections:
- .var now works without assignment. You can write .var x, instead of .var x=0
- Correct function scope (when a function calls a function the parrents scope is the global scope, not the scope of the calling function)
- The current directory is now set to the directory of the sourcefile. If you use a '.import source' directive then the current directory is set to the imported file's directory.
- The if directive now has its own scope (like in java).
- The getPixel function on picture values now mask out the alfa channel.
Version 2.x
- 23/9-2007 : New beta release (v2.25):
- toIntString(x), toOctalString(x) and toBinaryString(x) now returns the Integer/binary/octal string representation of a number
- Removed pointer bug in the BasicUpstart macro - thanks to tlr for the help
- toIntString is now used in the Basic upstart macro to get rid of ".0" at the end of the sys address
- The -vicesymbols option now generates a symboltable which can be loaded into VICE with the load_labels command
- 19/8-2007 : Second alfa release (v2.24)
- The assembler now supports virtual memory blocks (use the virtual option on the .pc directive). These are blocks that are assembled as normal blocks but aren't stored in the resulting prg file. Virtual blocks can overlap other blocks and you can reference labels defined inside virtual blocks. They are useful when you want to reserve memory where your program can generate datatables, unrolled loops etc.
- You can now import c64 files with the import directive
- You can now import text files with the import directive
- You can now get the length af an instruction by using the asmCommandSize function
- Lists now have a shuffle function that puts the elements in random order
- An extra bitmap fractal exampe has been added.
- A bug in the '<' and '>' operators has been corrected. Thanks to Cruzer for pointing this out
- You can now use the name of assembler commands as the name of your pseudocommands
- Btw. Remember it's easter! (Well it was a couple of months ago :-)
- 4/3-2007 : New beta release (v2.23):
- Optimization - After profiling the assembler there was found perfomance issues with certain aspects of the looping mechanism. Improving this gave a MAJOR speedup! Thanks to Cruzer for bringing this up.
- 27/2-2007 : New beta release (v2.22):
- The -time option now displays the assembling time
- Some optimizations where made to the scoping mekanism to speed up the assembling time.
- 4/2-2007 : New beta release (v2.21):
- Corrected reference bug. When calling object functions the arguments wasn't dereferenced. This meant that changing a variable used in an object function call after the call, could change the passed argument in some special cases. Thanks to Cruzer for pointing this out!
- 10/12-2006 : New beta release (v2.20):
- Added a warningsoff option
- Added a aom option (aom = allow overlapping memoryblocks)
- 3/12-2006 : New beta release (v2.19):
- Added an modulo function (mod) to the math library. Code done by JackAsser :-)
- Corrected a bug in the .error directive. (Only people who downloaded v2.18 on the 29th would have gotten this bug since I made a new v2.18 where this were corrected the day after. )
- 29/11-2006 : New beta release (v2.18):
- Added an .error directive
- Corrected a bug in the LoadBinary command. When loading a C64FILE the blocksize of the last block was two bytes too high. Thanks to Frantic for pointing this out
- 29/10-2006 : New beta release (v2.17):
- The assembler now returns an errorcode when exiting. This is useful for people who are using 'make' to run the assembler
- 22/10-2006 : New beta release (v2.16):
- Added user defined scoping { .. }. This feature is made on the way home from X2006 in Holland. I was asked for this functionality in exchange for a beer, and here it is. I can only say that the Kick Assembler development team is very open to any kind of bribe and will encourage this kind of behaviour in the future! ;-)
- 24/9-2006 : New beta release (v2.15):
- Added user defined pseudo commands. You can now define you own 16 bit instruction set etc.
- 10/9-2006 : New beta release (v2.14):
- Added opcode constants. These are useful when unrolling speed code or generating self-modifying code
- Added colour constants
- Fixed macro bug – in some special cases macro calls to the same macro would share local variables
- 3/9-2006 : New beta release (v2.13):
- Added support for DTV commands. Thanks to TLR for testing.
- 25/8-2006 : The first alfa release was released on CSDB (v2.12):
- Added some more examples: Koala Shower, Pre Calculated Vector, PSID Import and Char Converting + Scroll
- 24/8-2006 : New beta release (v2.12):
- Added missing addressing modes for the illegal opcode lax
- Added anc2
- Corrected the warning message that comes when two memory blocks collide. The message now gives the correct memory block
- 6/8-2006 : New beta release(v2.11):
- Added a macro for doing basic upstart programs
- Added a LoadBinary command. You can now load any binary file and there are build in support for KOALA and FLI. You can create support for your own formats just by writing a template string
- Added PI and E as constants in the math library
- Added some tips in the manual
- 3/8-2006 : New beta release:
- Corrected scoping error when using .return from a function in a for loop
- Made better display of errors. When a chain of errors makes the assembling fail, the first error in the chain will be shown (previously it was the last error, which could be confusing)
- 15/7-2006 : New beta release:
- Added * as reference to the current memory location
- Added better PETSCII support in the .text command
- 14/6-2006 : New beta release:
- Added functionality to support Relaunch64
- Added .pseudopc command
- 8/6-2006 : First official beta release of Kick Assembler (This page was announced on CSDB)