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


Forums > C64 Coding > Badass - New 6502 Assembler
2020-06-28 17:47
Sasq

Registered: Apr 2004
Posts: 106
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
 
... 59 posts hidden. Click here to view all posts....
 
2020-06-29 16:46
Golara

Registered: Jan 2018
Posts: 206
Quote: @Golara: There are Windows releases on the git-page, built using MSVC.

Binaries for Linux is usually not a good idea.
And for most people it is just "clone" and "make" and you are done.


I must have missed it then. Normaly there's a "releases" tab at the top, next to issues, pull requests etc. But it's not there now...

As for linux binaries. I know what you mean, but these problems arise when you use dynamic linking and your program wants glib 2.14.2 but you have 2.14.1 so it's not compatible :P This is a static build (that's why it's 22mb) and it should work on anything.

The only thing I can see potentially breaking is trying to run this binary on an older kernel than mine... I don't know if that's a problem but if doesn't work my vote is on that.
2020-06-29 16:47
Sasq

Registered: Apr 2004
Posts: 106
@Golara: I think both those links are for the windows build...
2020-06-29 17:06
Frantic

Registered: Mar 2003
Posts: 1437
@sasq: changing the ReadOnly state on the fly sounds like a convenient solution, that doesn't overcomplicate things.

As for other uses of a parent-child type of structure, it is probably not necessary. Benefits of having it, that I can think of, may include:

* Local labels within a "section". If I remember correctly, DASM is pretty strong in this domain. (But you already had something like that in the assembler I think? Some sort of "blocks"? I confess I haven't looked into the details of your assembler yet — so all of what I say is just a bunch of general thoughts based on the discussion in this thread.)

* The grouping of statements that you mentioned, so the assembler knows where to "bank break" (e.g. not in the middle of a section), if you were thinking of some sort of automatic handling of rom banks. In this regard, a "section" could perhaps be defined as "floating", to allow the assembler to place it in any (according to some definition) available space in the ROM banks, rather than necessarily put it where it occurs in the source.

Anyway.. The support for banks/cartridges shouldn't be taken too far. If it comes at the cost of making all kinds of things more complicated in the assembler, it is probably not worth it. Personally I am happy as long as an assembler at least has some basic support for banking/cartridges that makes projects like that a bit easier.
2020-06-29 17:19
Golara

Registered: Jan 2018
Posts: 206
Quote: @Golara: I think both those links are for the windows build...

yes, my bad. Here it is https://mega.nz/file/exYzBCLZ#1KnI4ZkpL-Wk-qtwLkVv1oJtmsw4a_5o0..
2020-06-29 18:19
Oswald

Registered: Apr 2002
Posts: 4585
Quote: Quoting Sasq
My "vague" plan about sections and linking is not to have linking, but rather something more "javascript" like where you can have sources that "export" symbols and then you can import those sources.

And instead of a link script you can choose to have a top level source file that lays out everything.
Sounds like this could be achieved with separate section-declare/collect and section directives, as 64tass does.

These allow the position in the source code to be independent of the position in the output binary.

Rest (splitting up source files) can be done via regular include semantics.


*= allows that aswell, I dont really see advantage of sectons for this :P
2020-06-29 19:34
JackAsser

Registered: Jun 2002
Posts: 1685
Quote: *= allows that aswell, I dont really see advantage of sectons for this :P

Nah. You have position in rom, positioning in ram and positioning in the actual binary (i.e. Bank)
2020-06-29 21:41
Oswald

Registered: Apr 2002
Posts: 4585
Quote: Nah. You have position in rom, positioning in ram and positioning in the actual binary (i.e. Bank)

I mean this part "section-declare/collect and section directives, as 64tass does. These allow the position in the source code to be independent of the position in the output binary."
2020-06-29 21:57
Krill

Registered: Apr 2002
Posts: 1481
Just like chisel and hammer also work to write your next novel, yes.
2020-06-30 05:56
Oswald

Registered: Apr 2002
Posts: 4585
Quote: Just like chisel and hammer also work to write your next novel, yes.

same effor frankly to change section or *= addresses.
2020-06-30 08:34
Krill

Registered: Apr 2002
Posts: 1481
The point is that the current program counter is just one of many attributes of a program section/segment. Once you commit to using them, you have better and more elegant control. Then you also prefer to manipulate section attributes rather than rely on the old blunt tool that is "* =".

And besides, can you easily continue right where some other part of code ended, just by using "* ="? That is, without having gaps in your code or awkwardly saving current output PC in some variable to reuse it for some other "* =" further down or similar.
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 - 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
DemongerX/Style
rytone
Radd Maxx/SWIM
Wolk/Software of Swe..
Barfly/Extend
Guests online: 46
Top Demos
1 Comaland 100%  (9.7)
2 Uncensored  (9.7)
3 Edge of Disgrace  (9.7)
4 Coma Light 13  (9.6)
5 Unboxed  (9.6)
6 The Shores of Reflec..  (9.6)
7 Lunatico  (9.5)
8 Remains  (9.5)
9 NGC 1277 100%  (9.5)
10 C=Bit 18  (9.4)
Top onefile Demos
1 Listen to Your Eyes  (9.6)
2 MD202006 - Get Well ..  (9.6)
3 The Tuneful Eight [u..  (9.5)
4 Smile to the Sky  (9.5)
5 Crystal Gazer  (9.5)
6 Dawnfall V1.1  (9.5)
7 Instinct  (9.5)
8 Coro(l)na Nuthouse  (9.5)
9 Rewind  (9.5)
10 Bad Boy  (9.5)
Top Groups
1 PriorArt  (9.6)
2 Performers  (9.5)
3 Booze Design  (9.4)
4 Fossil  (9.4)
5 Censor Design  (9.4)
Top Sysops
1 Optic Freeze  (10)
2 pcollins  (9.9)
3 Pudwerx  (9.8)
4 Aycee  (9.6)
5 Taper  (9.3)

Home - Disclaimer
Copyright © No Name 2001-2020
Page generated in: 0.093 sec.