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....
 
2020-06-29 16:45
Sasq

Registered: Apr 2004
Posts: 155
@Frantic: I am hoping to avoid multiple levels with both segments and section because it complicates things...

For that particular case you can either mark the section as not ReadOnly and live without the extra checking. But better probably to add support for changing also the ReadOnly state on the fly, like the PC.

I'm wondering if there are other cases that are harder to handle with only one level of sections. Can you think of a situation where you really need the parent/child relationship ?
2020-06-29 16:46
Golara
Account closed

Registered: Jan 2018
Posts: 212
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: 155
@Golara: I think both those links are for the windows build...
2020-06-29 17:06
Frantic

Registered: Mar 2003
Posts: 1627
@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
Account closed

Registered: Jan 2018
Posts: 212
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: 5017
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: 1989
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: 5017
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: 2839
Just like chisel and hammer also work to write your next novel, yes.
2020-06-30 05:56
Oswald

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

same effor frankly to change section or *= addresses.
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
Andy/AEG
Didi/Laxity
Martin Piper
jcompton
Alakran_64
Jammer
Bieno/Commodore Plus
Apollyon/ALD
visionvortex
apprentix
Mason/Unicess
megasoftargentina
Krill/Plush
Guests online: 123
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 The Ghost  (9.6)
9 Wonderland XIV  (9.6)
10 Bromance  (9.6)
Top onefile Demos
1 It's More Fun to Com..  (9.8)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 Rainbow Connection  (9.5)
6 TRSAC, Gabber & Pebe..  (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.066 sec.