Brass 3.0.0.0 Beta 13

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

Moderators: benryves, kv83

Post Reply
Spencer
Extreme Poster
Posts: 346
Joined: Mon 17 Jan, 2005 8:56 am
Location: Indiana

Post by Spencer »

Ah very nice, I didn't know you modify the context menu items with registry alone.
benryves wrote:The "Build" menu option/verb is carried over from when it would just build the project and exit immediately (or remain open if there were any errors).
That's what I was expecting. If you can separate the two actions, maybe a double click would open without building.
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Certain verbs (open, edit, print - not sure if they have to be lowercase or not) will also be automatically translated into the OS language for you.

I don't actually know how you detect which verb was used to run an application via the Win32 API, though. (It's part of the Process class in the .NET environment).
User avatar
driesguldolf
Extreme Poster
Posts: 395
Joined: Thu 17 May, 2007 4:49 pm
Location: $4080
Contact:

Post by driesguldolf »

[inserts last 2 posts from here]
driesguldolf wrote:Now I'm confused, in which thread am I supposed to post bug reports now? :P

anyway, not really a bug, just an inconvenience.
If you forget an end quote (of a string) then brass thinks the next lines are all part of the string.
This might be intended, but a warning would be better I think.

Code: Select all

Duplicate label 'bytes'.
	.include "XBall\\engine.inc

.echoln "XBall:      ", $-start_of_code, " bytes (engine: ", engine.size, " bytes)."
.endmodule

;====================
; End of file
;====================
Also while writing this I found out that brass is too attached to shortcut keys, ctrl-c doesn't work, neither does right clicking. Drag and drop does work however. :mrgreen:

Suggestion: It might be interesting if brass gave a warning if a local label stretches multiple files.
Something like this:
File "file1.txt"

Code: Select all

-  jp +
File "file2.txt"

Code: Select all

+  jp -
Is perfectly valid and could cause some severe headaches ;)
(same for modules/sections etc.)

More on that:

Code: Select all

-  jp {-}
gives an error... I haven't tested it in an expression however. (brass 3 doesn't like the {})

EDIT: the forum also formats text wrong in quotes if that quote includes code :P
benryves wrote:You should really use the other thread for bug reports (this is a pretty much a dead thread).

Strings constants continuing past the end of the line is by design, maybe I could C#-ise this capability with an @ sign in front of the string, eg:

Code: Select all

.db @"This
is
a
multiline
string", 0
I disabled all shortcut keys in IE again, I think I need to reenable them again and hopefully it'll work this time..!

Triggering an event when you leave the current file (when assembling) could be used to detect cross-file problems I suppose. Reusable labels could be an especially big problem. :D
I don't see how enters in strings can be useful? "\n" does the job as well.
Or do you mean it's just for stylish code? :)

EDIT:
apparently labels aren't cooperating a lot, don't they?

Code: Select all

.module x
y
.module z
y
.endmodule
.endmodule
Gives a duplicate label error (label x.y already exists)
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

As I'm using the assembler pretty heavily for my current project I'm fixing some of the bugs as I'm going (though not on the ones others have reported just yet, sorry, only ones I need - selfish, I know).

Due to the hacky and erratic way I'm doing this I haven't released any new binaries; for the moment you'll need to check out and build the source yourself.

This isn't really intended as an official update, just a heads-up that if you are really desperate to have some of the bugs fixed then you can update manually. I will release a proper binary package at some point in the future containing these minor fixes and the ones other have reported.
User avatar
driesguldolf
Extreme Poster
Posts: 395
Joined: Thu 17 May, 2007 4:49 pm
Location: $4080
Contact:

Post by driesguldolf »

Eh, Ben, I believe you did something wrong with the app header generator in brass3 because pindurti (tios to be precise) removes my app after I've ran it 16 times :P
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Really? Just tried with my app here and it, well, doesn't. :| Could you send me a copy of the code?
User avatar
driesguldolf
Extreme Poster
Posts: 395
Joined: Thu 17 May, 2007 4:49 pm
Location: $4080
Contact:

Post by driesguldolf »

Image

I'll send the app via PM in a sec.


The only explanation I could find was that it must be the number of times an app can be executed app header thing...
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 »

There is a known emulator bug (both pindurti and wabbit) that will cause a defrag when you use variable creation calls (to make appvars etc).

Have you tested it on hardware?
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Image
Image
User avatar
driesguldolf
Extreme Poster
Posts: 395
Joined: Thu 17 May, 2007 4:49 pm
Location: $4080
Contact:

Post by driesguldolf »

tr1p1ea wrote:There is a known emulator bug (both pindurti and wabbit) that will cause a defrag when you use variable creation calls (to make appvars etc).

Have you tested it on hardware?
Ah, that explains everything :) (Hmm known bug? Is there a list of bugs somewhere? (Google attempt failed))
A long time ago I had the same problem where pti would delete the app after while (I never got around to check how many times it took) but it would work just fine on hardware.
Thanks for clearing that up :)
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

I can't install apps at all on the later versions of PindurTI (it seems to install but doesn't appear on the list of apps). I use one of the old builds with two screens instead, where they install fine.
User avatar
calc84maniac
Regular Member
Posts: 112
Joined: Wed 18 Oct, 2006 7:34 pm
Location: The ex-planet Pluto
Contact:

Post by calc84maniac »

benryves wrote:I can't install apps at all on the later versions of PindurTI (it seems to install but doesn't appear on the list of apps). I use one of the old builds with two screens instead, where they install fine.
If I remember correctly, you have to reset the RAM to make new apps show up. I just use Wabbitemu now, though. :P
~calc84maniac has spoken.

Projects:
F-Zero 83+
Project M (Super Mario for 83+)
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 »

Im not sure anyone knows why the defrag bug appears tho.

Also sometimes you have to reset ram and/or delete the .pti file for APPs to sho up in PTI :S.
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."
Image
Image
User avatar
driesguldolf
Extreme Poster
Posts: 395
Joined: Thu 17 May, 2007 4:49 pm
Location: $4080
Contact:

Post by driesguldolf »

Besides the defrag bug, everything works like a charm with pti.
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

However, in your case it appears to be the OS doing the correct thing, albeit due to a corrupted header on your 8xk :\
User avatar
driesguldolf
Extreme Poster
Posts: 395
Joined: Thu 17 May, 2007 4:49 pm
Location: $4080
Contact:

Post by driesguldolf »

Nah, it's more likely pti is correctly handling the corrupted hex file.
Even TIConnect likes my app :mrgreen: (I was able to successfully send it to a ti84+ and run it without problems (besides the bugs that were also happening in pti))

EDIT:
PM by benryves wrote:Ah, that makes sense! You've got the .appheader directive in your own source, which means that the header gets written twice (as .appheader is also defined in the template). That would probably explain the two records at the start of the file that both point to the same address ($4000).

All you need in your own source is .page 0, followed by code. :)
Erm, it appears I was mistaken. This was the .brassproj I was using:

Code: Select all

<?xml version="1.0" encoding="utf-8" ?>
<brassproject version="0">
	<plugins>
		<collection source="Core.dll" />
		<collection source="Z80.dll" />
		<collection source="TiCalc.dll" />
	</plugins>
	<input source="puzzact.asm" assembler="z80" />
	<output destination="puzzact.8xk" writer="ti8xapp" />
</brassproject>
Of course I forgot something when I replaced it with the correct content:
(I forgot to replace "Main.asm" with the correct source file)
Image
That's... Nice :P
Post Reply