| |
mankeli
Registered: Oct 2010 Posts: 146 |
LHB Assymblur (early test version)
<Post edited by moderator on 9/12-2013 18:10>
Hello,
I made this small assembler ( https://github.com/mankeli/hashembler ) during last few days.
It's kind-of a spiritual successor to KickAssembler by Slammer/Camelot, but this one actually has a fully-fledged C++ parser as it's preprocessor. It's in very early stage, but some early tests showed that all addressing modes should work properly.
Story-time:
So there I was at the Zoo party smoking and drinking, and trying to implement Electric's idea of a color-cycling effect. I don't like making separate converter progs for datas, so I was of course trying to do these with my favourite assembler. Too bad some Java-magic happened, and the conversion routine always ran out of memory. So then I thought that since C/C++ gives pretty good syntax for low-level ops, I thought it would be pretty nice if it could be used for a preprocessor.
So when I got back from the party, I started to think of a way how this could be implemented without re-inventing the wheel, and here it is now.
With this, you can actually run quake 1, and output the data directly as sprites. :-D
I would be very pleased if I could hear your thoughts about this.
And please mind the current state of implementation, which is pretty hackish.
Among other things, my TODO list contains the addition of picture converters, ditching of the python-preprocessor, Clang/LLVM jit integration, and I'll probably invent some object file format as well if CC65 is not enough.
TY for reading.
- mankeli/Extend^LHB
edit: fixed link /gpz |
|
| |
Beastifire Account closed
Registered: Mar 2013 Posts: 40 |
Interesting! I'm working on something similar with an assembler as a function in the awk scripting language. (It's common in the Unix world, and I feel that it's important to keep up the Unix/Windows terror balance here on CSDb.) |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
nice job, but my general thought that I its an overkill. its not much more complicated to setup a c++ env, or your fave precalc lang/script and then .incbin what it spits out in whatever assembler. same goes for pic converters.
anyway I am as oldskool as it gets when it comes to c64 dev, others will find it mighty useful I bet. |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
Nice, Will check it out once I get the time.
Oswald: If you are as old school as it gets then you should program in monitor (Otherwise Crossbow has you beaten according to the latest interview ;-) ) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
also your releases should be basic DATA loaders =) |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
well, I've never coded in monitor, because I had no cart, I've ripped music and checked code by using a fork to reset the machine, then loaded a monitor program from basic to check stuff. is that Hardcore enough ? :) My first assembly stuff was done in help plus assembler, which meant write your code in basic editor, then save and compile was from disk :P :)
nowadays I use 64tass and vb6 for precalc, works for me. but guess its as close to c64 env on a pc as it gets these days. |
| |
mankeli
Registered: Oct 2010 Posts: 146 |
Let me just point out that this is not about trying to convert anyone.
I know that many C64 sceners have already their favourite tools, and I respect that. However I made this tool because KickAssembler started to feel too restricted, and I want to have a simple coding environment which is compatible with intoxicated partycoding. ;-)
I thought that maybe people would like throw in some ideas, but I didn't realize that I should make the package a bit more easier to run first. |
| |
add Account closed
Registered: Dec 2013 Posts: 2 |
Quote: Let me just point out that this is not about trying to convert anyone.
I know that many C64 sceners have already their favourite tools, and I respect that. However I made this tool because KickAssembler started to feel too restricted, and I want to have a simple coding environment which is compatible with intoxicated partycoding. ;-)
I thought that maybe people would like throw in some ideas, but I didn't realize that I should make the package a bit more easier to run first.
"Restricted"? And here I thought it had more than enough of everything, even too much of some things..
Well, I am kinda conservative I guess..
I like 64tass (maybe it's just my newbie view of it) because it's simple to understand, use and doesn't have a lot of bloat. |
| |
mankeli
Registered: Oct 2010 Posts: 146 |
Quote: "Restricted"? And here I thought it had more than enough of everything, even too much of some things..
Well, I am kinda conservative I guess..
I like 64tass (maybe it's just my newbie view of it) because it's simple to understand, use and doesn't have a lot of bloat.
In this case, "restricted" refers to it's speed, memory usage and available data types in the macro language. |
| |
add Account closed
Registered: Dec 2013 Posts: 2 |
Quoting mankeliIn this case, "restricted" refers to it's speed, memory usage and available data types in the macro language.
Aah, right, I guess I can agree about that.
I think I sounded a bit too negative towards your project.. I think making an assembler like you are is a good experience.
Good job so far. |
| |
mankeli
Registered: Oct 2010 Posts: 146 |
Quote: Quoting mankeliIn this case, "restricted" refers to it's speed, memory usage and available data types in the macro language.
Aah, right, I guess I can agree about that.
I think I sounded a bit too negative towards your project.. I think making an assembler like you are is a good experience.
Good job so far.
Writing an assembler itself is pretty I think, but getting the macro language right is pretty problematic. Coming up with good programming languages isn't exactly easy. I've tried to avert the problem by just hacking a C++ compiler.
And feedback is always good, being it good or bad. That's why I put this online so early, since I hoped it would create some conversation. But still it's worth remembering that it's a tool which I created for myself, and if somebody still wants to code with tass/monitor/basic/whatever they can and should do so. :-) |