| |
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.... |
| |
tlr
Registered: Sep 2003 Posts: 1790 |
The worst thing about java command line utilities is the terrible command line they require.
java -jar program.jar ...
Sure you could do an alias, but it leaves a bad aftertaste.
That said, Kick Assembler looks very good, and I intend to try it out.
|
| |
Viktor Account closed
Registered: Apr 2002 Posts: 78 |
I have read the documentation too. Is it poosible, to put your macros avaible? :)
Viktor |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
Tlr: No, not yet. There where some technical dificulties that made it not that simple to do. But its still on my list :-). DTV opcodes is rather quick to implement so send me a list of the opcodes an they will be in the next release.
Bastet Furry: I selected java because its a nice language :-) Its easy to support multiple operating systems, its guards you against adressing invalid memory and it will be easy for others to write plugins for kickass in java (I have plans of giving the user access to write his own functions in java)
Viktor: I havn't distibuted my macros since I then would have to intensely test/debug them. One exception is the :BasicUpstart(address) macro I guess its will be used alot.
However. If anybody writes a tested library Ill be willing to distribute it with Kick Assembler / Insert it as standard library
|
| |
Danzig
Registered: Jun 2002 Posts: 440 |
I once had to debug/fix/finish a large SWING-Application (for those who don't know, SWING is the "successor" :D to AWT). And it was PAIN IN THE ASS, SLOW, RAM-INTENSIVE...
Later on I had to implement a Webserver-driven huge data-conversion-programm (fyi:running on ColdFusionMX) and JAVA was the way to go to create this MASSIVE amount of "commandline-tools" (non-GUI) triggered by the Webserver to be run in a JVM. And it was fast :)
for me, the only reason JAVA exists is to create CMDline-Tools ;) and its the right choice for KickAssembler.. Check it out and you will NOT encounter any "speedproblems"... Its fast!
|
| |
enthusi
Registered: May 2004 Posts: 677 |
I developed my own view on 'fast' :)
Im ok with waiting - still lovin' tapes.
But when something runs either idling or due to real heavy maths, I'd hate to be inefficient. So Id be ok if Kickasm would run in brainfuck. But due to Java I can run it at work and at home and blabla. First time something of importance used that advantage of java (actually C ist THE language for portable commandline if you keep ansi C99 :).
So Im happy to see this asm being so well designed apparently. Btw, Ophis-asm was in Python and quite fast/nice (simple) too.:) |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
So, people stop being lame.... Since when couldn't you afford to waste 80M on your harddrive when 300Gb costs like 100euro max?!? Just install JRE1.5.x and you have Java whenever you need it for tools like this. |
| |
Shadow Account closed
Registered: Apr 2002 Posts: 355 |
This seems like it could be a damn good assembler, going to give it a try.
Anyone happened to create a syntax-highlight-wordfile for UltraEdit yet? I'm so spoiled nowadays that I have trouble looking at non-highlighted code...
|
| |
Viktor Account closed
Registered: Apr 2002 Posts: 78 |
Yes, it is good, and the documentation is good enough.
Do somebody have a display routine for the Vector section?
Slammmer:
Are the Vector calculations usable on a multicolor picture too?
|
| |
Jetboy
Registered: Jul 2006 Posts: 337 |
@Victor: those are VECTOR calculations. They give you operations over vectors, there is nothing that actualy draws any vectors. That you need to implement yourself. Those Vector objects are only so you can easily prepare precalcs. |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
Victor: Look in the examples that comes with the assembler. There is a full running vector example :-) |
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ... | 26 | 27 - Next |