Brass - 1.0.5.3 update [06/02/2014]

One suite to code them all. An complete IDE and assembler for all your z80 projects!

Moderators: benryves, kv83

Post Reply
User avatar
KermMartian
Calc Wizard
Posts: 549
Joined: Tue 05 Jul, 2005 11:28 pm
Contact:

Post by KermMartian »

I've been having...shall we say... "technical difficulties" with my laptop, and I'm afraid I have to migrate DCS6 development to a new computer with my most recent backup, December 12th. That's why I didn't get it out on time. Anyway, I installed Brass, set up wappsign's environment variable, yet whenever I try to start up Brass from either explorer.exe or from a command prompt, I get "The application failed to initialize properly (0xc0000125). Click on OK to terminate the application." I seem to vaguely remember you mentioning to me at one point needing a VB6 library of some sort in order to make it work - is that what the problem is? A missing lib?
Image Image Image
User avatar
kv83
Maxcoderz Staff
Posts: 2735
Joined: Wed 15 Dec, 2004 7:26 pm
Location: The Hague, Netherlands
Contact:

Post by kv83 »

Well, vb6 was used in the old "Z80 Workshop"... you now require at least .NET 2.0 framework :)
Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

.NET 3.0 Runtimes
...installs the common language runtime...
.NET 3.0 is based around .NET 2.0 with a few additions to the class library so it should cover all .NET 2.0 apps as well. I don't know whether it covers .NET 1.0/1.1 though.

Confusingly I believe 3.5 will add new language features, so who knows WTF is up with Microsoft's version numbering system.

(Incidentally, the reason you get that rather unhelpful error is the nature of .NET applications. They are distributed as CIL, but the Microsoft compilers wrap that CIL in an EXE with a small bootstrapper for the runtimes - if you are missing the runtimes, the bootstrapper fails, and hence the error message).
User avatar
KermMartian
Calc Wizard
Posts: 549
Joined: Tue 05 Jul, 2005 11:28 pm
Contact:

Post by KermMartian »

Superb, all is well once more. Thanks guys. :)
Image Image Image
User avatar
tr1p1ea
Maxcoderz Staff
Posts: 4141
Joined: Thu 16 Dec, 2004 10:06 pm
Location: I cant seem to get out of this cryogenic chamber!
Contact:

Post by tr1p1ea »

Hey Ben, im loving Brass atm.

One thing, it seems that Brass is assembling the instructions 'OR IYL' and 'OR IYH' to the same instruction. Namely they are both being assembled as 'OR IYH'.

Code: Select all

OR IYL is .db $FD,$B5
OR IYH is .db $FD,$B4
Took me a little while to figure it out, but thats what i get for using undocumented instructions :).

I have been able to get around it by just coding the opcode bytes directly, so its no big deal.
Last edited by tr1p1ea on Wed 21 Mar, 2007 1:39 pm, edited 1 time in total.
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Image
Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

I'll look into it. :)
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Brass 1.0.4.10 (should be fixed).
Also had a look at list files; they seem to be working.

Let me know if you find any other oddities.
User avatar
tr1p1ea
Maxcoderz Staff
Posts: 4141
Joined: Thu 16 Dec, 2004 10:06 pm
Location: I cant seem to get out of this cryogenic chamber!
Contact:

Post by tr1p1ea »

Cool Ben! Listing works just fine now :).

I was wondering if you could check the .align instruction ... i seem to be having problems with it, more specifically aligning to a 256byte boundry with '.align 256'. The listing file would show that it is aligned, but when i view the contents of the page in PindurTI, that doesnt seem so. It appears that the padding may split the data at the beginning a little.
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Image
Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

You could try manually, ie

Code: Select all

.org ($ + $00FF) & $FF00
...and seeing if that helps.

If there is a bug, chances are its in the Intel Hex output rather than the actual align directive (you could verify by outputting a binary and looking for your data in a hex editor)..? I rely on it quite heavily for 256-byte aligned tables, and not had a problem yet.
King Harold
Calc King
Posts: 1513
Joined: Sat 05 Aug, 2006 7:22 am

Post by King Harold »

There appears to be a problem with .defpage, Brass 1.0.4.10 complains that .defpage should have 2 to 3 arguments, but what about the 4th argument (origin) ?

edit: nvm that, wrong documentation in LateNite..
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Sorry, the docs are out of date. I also have to look into this .align bug with apps :\
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Hi, could someone having the .align problem send me some sample source code?
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

1.0.4.11 adds a warning if the two passes go out of synch due to an instruction/label parser bug. It doesn't "fix" the parsing bug, but it does report the line and file that has caused the problem.
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Re: Brass - 1.0.5.2 update [Tuesday 24/09/2013]

Post by benryves »

It's been a while since I posted here, but there have been some updates to Brass:
  • 1.0.5.2 - .branch directive no longer aligns to 3-byte boundaries.
  • 1.0.5.1 - defined() function allows you to check whether macros are defined without needing to nest/duplicate .ifdef directives.
  • 1.0.5.0 - .appheaderpadding directive to change the application header padding (defaults to 128 bytes, allows you to reduce the size of the header and free up some space on the first page).
Download the latest version from the Brass website.
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Re: Brass - 1.0.5.3 update [06/02/2014]

Post by benryves »

Brass is now open source and hosted on GitHub: https://github.com/benryves/Brass

I've been loath to touch the code since switching development efforts over to Brass 3 as it was not very well written in the first place (it was my first project in C#) and I never used source control so didn't want to risk making breaking changes and not have a way to revert them. I found a few backups from different dates so I committed them in turn to create the repository, and dug around my hard drive for all releases and uploaded those too.

This is presented more as a historical curiosity and for archival purposes than anything else, in the off-chance anyone is still using a project that relies on it. As the README states:
Warning: This is not a good program. Please do not use it in your new projects.
That said, there was a 1.0.5.3 release from 2014 that I never posted here before:
Bugfixes
Intel HEX and TI-83 Plus application output formats now generate the correct address when there are non-contiguous addresses (e.g. after .block).
Post Reply