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 > Badass - New 6502 Assembler
2020-06-28 17:47
Sasq

Registered: Apr 2004
Posts: 155
Badass - New 6502 Assembler

The last couple of months I've created a new 6502 Assembler called bass (or Badass).

The basic idea is for it to be as advanced as Kickassembler, but with a less complex, more unified syntax.

And it also has unit tests in an internal emulator.

You can find it at https://github.com/sasq64/bass

I've started a tutorial here: http://apone.org/bass/part1.html

Here is an example C64 source http://apone.org/bass/example.asm.html
 
... 106 posts hidden. Click here to view all posts....
 
2021-04-13 13:17
Krill

Registered: Apr 2002
Posts: 2839
Just came across something which might or might not be a sensible and valuable feature for a 6502 assembler:

Interleaving code.

Sometimes, you really want to mix two "unrelated" sources at build time, with various constraints.

E.g., intermingling multispeed/sample-replay with VIC raster stuff and other (branch-less unrolled) code as to minimise context-switching overhead.

Or, putting little NMI handlers into pages which also happen to hold some other (fully branching) code.

The question would be, should an assembler handle that (instead of some higher-level compiler-like thing), and how to formalise/formulate the constraints.
2021-04-13 13:18
chatGPZ

Registered: Dec 2001
Posts: 11114
support for interleave code with fpp data? yes please :)
2021-04-13 13:23
Krill

Registered: Apr 2002
Posts: 2839
Quoting Groepaz
support for interleave code with fpp data? yes please :)
Indeed, mixing executable code with other data is also something you need here and there. :)
2021-04-13 14:35
map

Registered: Feb 2002
Posts: 27
'Some higher-level compiler-like thing' for this problem seems to be invented it seems.
At least according to Raistlins comment here:
https://csdb.dk/release/?id=195841&show=notes#notes

Quoting name
**Raistlin’s Code Generator**
Note that most of Raistlin’s parts used his C++ tool for generating highly optimised/unrolled ASM. It’s able to neatly interleave any “grunt” code (such as bitmap/char/sprite plotting) into accurately timed IRQ code (eg. For border opening). With this, opening borders and such is very simple - allowing the coder to concentrate on optimising the plotting algorithms. Without the tool, we shudder to think how someone might go about achieving some of the things we made for this demo ;-)


Actually I'm wondering if Raistlin would like to share that tool, or at least some more details. :-)
2021-04-13 14:39
JackAsser

Registered: Jun 2002
Posts: 1989
See S:T Lars Meeting III - Invite source
2021-04-13 14:42
Krill

Registered: Apr 2002
Posts: 2839
Quoting map
'Some higher-level compiler-like thing' for this problem seems to be invented it seems.
Why yes, that kind of stuff is something like a d64 image tool, in that every coder sooner or later rolls their own custom implementation (and repeats all the mistakes done by others before). :)

But an open and generic tool for that would be nice, and possibly included with an actual assembler.
2021-04-13 14:50
chatGPZ

Registered: Dec 2001
Posts: 11114
yes - and to be useful for the generic case it really needs support by the assembler. and its a quite tricky problem to solve too, similar to jackassers recent pack-code-into-banks challenge :)
2021-04-13 15:25
JackAsser

Registered: Jun 2002
Posts: 1989
Quote: See S:T Lars Meeting III - Invite source

This one tracks register usage and cycles in the speed code in one code base and nops in another timed codebase and merges them while maintaining critical timing.
2021-04-13 15:26
JackAsser

Registered: Jun 2002
Posts: 1989
Quote: yes - and to be useful for the generic case it really needs support by the assembler. and its a quite tricky problem to solve too, similar to jackassers recent pack-code-into-banks challenge :)

Which worked extremely well. I now have a prelinker scripts that digests all .o and .lib files and actually generates the link file for ld65. A prelinker. Freed up alot of space.
2021-04-13 15:37
Krill

Registered: Apr 2002
Posts: 2839
Quoting JackAsser
This one tracks register usage and cycles in the speed code in one code base and nops in another timed codebase and merges them while maintaining critical timing.
Yes, and that kind of stuff would have to be formalised for a generic tool. =)
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 - 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
hedning/G★P
Higgie/Kraze/Onslaught
The Human Co../Maste..
Apollyon/ALD
t0m3000/ibex-crew
Sentinel/Excess/TREX
Mythus/Delysid
Rutterkin
rexbeng
Guests online: 153
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Bromance  (9.6)
10 Memento Mori  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Onscreen 5k  (9.5)
8 Wafer Demo  (9.5)
9 Dawnfall V1.1  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

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