Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Kick Assembler
2006-06-07 21:34
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 doesn’t 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 it’s 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....
 
2008-01-07 23:17
Conrad

Registered: Nov 2006
Posts: 849
Hey Mads.

I've managed to get the code working using hashtable as you shown, so thank you so much for your help! :) much appreciated.

Looking forward to your next version, once complete of course.
2008-01-08 06:05
JackAsser

Registered: Jun 2002
Posts: 2014
@conrad: I've never actually used Kick Assembler, but I suggest you put your encryption scheme directly into the Hashtable also, thus making the Hashtable-hack a little bit less ugly and a bit more justified. ;D

Anyways Slammer, this seems to be a great assembler. As I've stated earlier, I'd like Kick Assembler joined with the linking from CC65... ;D
2008-01-08 13:11
Conrad

Registered: Nov 2006
Posts: 849
@Ja: Point taken, thanks! - even though the encryption I'm including is nothing more than just a simple addition/subtraction of so many bytes ;)
2008-02-13 20:13
Ricky

Registered: Jan 2008
Posts: 3
Just converted some source from my old patched a6-assembler to kickass today...

Thanks Mads! Your assembler will be my prime choice from now on!

/Ricky
2008-02-15 17:18
Slammer

Registered: Feb 2004
Posts: 416
Thanks, good to hear.
2008-02-22 16:47
Iapetus/Algarbi/Wood

Registered: Dec 2004
Posts: 71
Thx for the export symbol functionality :)
2008-03-31 11:57
Burglar

Registered: Dec 2004
Posts: 1101
I found a small bug in v2.25, when you import a c64 file say ranging from $1000-$1fff, I can't set the .pc to $2000 without causing an overlap warning. seems its off by 1...
2008-03-31 14:56
JackAsser

Registered: Jun 2002
Posts: 2014
Quote: I found a small bug in v2.25, when you import a c64 file say ranging from $1000-$1fff, I can't set the .pc to $2000 without causing an overlap warning. seems its off by 1...

Sorry for the really really stupid question but isn't a "c64 file" a .prg-file? A .prg-file ranging from $1000-$1fff would take exactly $2002 bytes on disk due to the start address, and thus overlap by 2 bytes.

But then again I'm probably completely wrong since I've never used Kick-Ass. ;D
2008-03-31 15:22
Slammer

Registered: Feb 2004
Posts: 416
KickAssembler supports imports from source, binary, c64 and text files. So if you write:
    .import c64 “myfile.prg” 
It will skip the first two bytes. I will check it out if there is an error.
2008-03-31 16:25
Burglar

Registered: Dec 2004
Posts: 1101
Quote: KickAssembler supports imports from source, binary, c64 and text files. So if you write:
    .import c64 “myfile.prg” 
It will skip the first two bytes. I will check it out if there is an error.


yes but

.pc = $1000 "Bla"
.import c64 "bla.prg"

.pc = $2000 "Bla 2"

jmp *

will throw a warning if bla.prg is a prg from $1000-$1fff (including $1fff)
Previous - 1 | ... | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Peacemaker/CENSOR/Hi..
MWR/Visdom
Mike
Acidchild/Padua
Alakran_64
bexxx
Slajerek/Samar
Andy/AEG
E$G/HF ⭐ 7
lotus_skylight
iceout/Avatar/HF
Naufr4g0
iAN CooG/HVSC
Guests online: 113
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Crackers
1 Mr. Z  (9.9)
2 Antitrack  (9.8)
3 OTD  (9.8)
4 Fungus  (9.8)
5 S!R  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.059 sec.