| |
Slammer
Registered: Feb 2004 Posts: 416 |
Kick Assembler
I recently did a new 6510 assembler and I hereby make it open to the public so you can use it too.
Kick Assembler is the combination of an assembler for doing 6510 machine code and a high level script language. With the assembler functionalities, you can write your assembler programs, and with the script language, you can write programs that generate data to use in the assembler programs. This could be data such as sine waves, coordinates for a vector object, or graphic converters. In addition, you can combine assembler commands and scripting commands which is a powerful combination. A little example: Where other assemblers can do simple unrolling of loops, Kick Assembler can base the unrolling of a loop on a list generated by the script language and select the content of the loop body based on the content of the list. This makes it more flexible when generating speed code.
The script language can handle values such as Numbers, Booleans, Strings, Lists, Vectors, Hashtables, Matrixes and you can define your own structures if the build in doesnt meet your needs. The assembler contains a replica of the java math library + a special 3d library for doing vector math (Rotation, move and projection matrixes). You can also define your own functions.
Finally, I want to mention that the assembler contains some special objects that makes it easy to import graphics (and convert it into you own spooky format which fits into the part you are working on) and music. Since finding the correct play address for a tune has recently been an issue in the *stupid* ASM Sid Player Example- thread I will here show how its done in kick Assembler. You simply load you PSID file into a variable in the script language and then read the things you need to know from the variable.
// Load the music into an object in the script language
.var music = LoadSid("C:/C64Music/Tel_Jeroen/Closing_In.sid")
// init the music
lda #music.startSong-1
jsr music.init
// play the music
jsr music.play
(The full example is listed in the manual)
Feel free to check out the assembler at http://www.theweb.dk/KickAssembler.htm
|
|
... 251 posts hidden. Click here to view all posts.... |
| |
LordNikon
Registered: Dec 2001 Posts: 42 |
Slammer: ... second ;) I want to have overlapping memory segments. |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
LordNikon: Here is a little christmas present. Release number 20: http://www.theweb.dk/KickAssembler.htm. The -aom option will do the trick and the -warningsoff option will turn off the warnings if you get tired of looking at them..
Cruzer: I don't think the list solution will work in Nikon's case. It sounds like he will replace bytes with source code, which means that he should assemble the code by hand before storing it into the list.
|
| |
LordNikon
Registered: Dec 2001 Posts: 42 |
THANX!
yeah "replace" was the right word for my case ;) |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
using overlapping memory segments is silly. use one 64k segment and forget about the whole concept if you want to do that. |
| |
Case
Registered: Aug 2002 Posts: 142 |
I have just decided to have a go at coding again after a few years break and would like to use this assembler, however i'm using crimson editor and i cannot get it to assemble anything, not even the example files.
I would be grateful if someone could help me with this. |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
What kinda error do you get? |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
I suggest that as a start, you try to assemble the example files from a command promt.
|
| |
Case
Registered: Aug 2002 Posts: 142 |
It's ok now, I've switched to ReLaunch64 and started to reformat my source code.
I'm still having some problems assembling my code, getting silly errors:
cannot resolve symbol "anext" but i have defined it. If anyone can help me please contact me.
|
| |
Style
Registered: Jun 2004 Posts: 498 |
post code here (or in a new thread) if you like.
|
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
My guess would be that you refer to it before you define it, or it could be a case error - KickAss is case sensitive, so "anext" and "aNext" are two different things.
But as Style said - post the code. |
Previous - 1 | ... | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ... | 27 - Next |