MaxCoderz

for your 1 bit pleasure!

All times are UTC




Post new topic Reply to topic  [ 104 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next
Author Message
 Post subject: Brass 3.0.0.0 Beta 13
PostPosted: Mon 05 Nov, 2007 12:17 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Brass 3 Website.

I've released a beta for Brass 3. I'm sure it is full of bugs and incomplete features, but it mostly works and can output working binaries.

I strongly recommend you use the Windows installer (it doesn't do anything evil, honest); failing that there's a zip archive of the files included in the installer.

Source code and information for developers wishing to extend the assembler will be forthcoming. :)

Once installed, you can test Brass with this crude demo. It relies on environment variables being set (Brass.Include) so you might need to kill all Explorer instances first (or just log out then in again). EDIT: Do not use this demo, there's a better one in Beta 2.

Image

Click "Build" on the toolbar (or right-click, "Build" in previous Windows versions).

If there are any messages, warnings, or errors the following dialog will appear:

Image

There are some more tools to write (graphical project editor) as well as compiler features (importing project templates and multiple build configurations) but I hope this is a good start. :)


Last edited by benryves on Thu 07 Feb, 2008 11:01 am, edited 12 times in total.

Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue 06 Nov, 2007 11:38 am 
Offline
Calc King
User avatar

Joined: Sun 23 Jan, 2005 12:37 am
Posts: 1727
Location: Netherlands
OMG, Ben is going crazy with this one :mrgreen:
Explorer integration, oh my :)

How's the Nautilus/Konquerer integration coming along? :evil:

_________________
http://clap.timendus.com/ - The Calculator Link Alternative Protocol
http://api.timendus.com/ - Make your life easier, leave the coding to the API
http://vera.timendus.com/ - The calc lover's OS


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue 06 Nov, 2007 11:55 am 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Timendus wrote:
OMG, Ben is going crazy with this one :mrgreen:
Explorer integration, oh my :)
It's just registering a file association, but Vista displays these in a rather nicer fashion than older Windows ever did (ie, a nifty button with a dropdown arrow).

Quote:
How's the Nautilus/Konquerer integration coming along? :evil:
Hm, you get a zip file. ;) I don't know if any of the graphical tools (the help viewer, the GUI builder) even work at all under Linux as they both use WinForms and IE.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue 06 Nov, 2007 2:12 pm 
Offline
Calc King
User avatar

Joined: Sun 23 Jan, 2005 12:37 am
Posts: 1727
Location: Netherlands
It shouldn't be too much trouble to get something equally nifty working under Nautilus and Konquerer now I come to think of it... They both know file associations just as well, and I believe one of them also allows you to add arbitrary scripts to the context menu. All you'd need to do it remake the feedback window with GTK or something. But then again, how often do you want to compile something that way..?

_________________
http://clap.timendus.com/ - The Calculator Link Alternative Protocol
http://api.timendus.com/ - Make your life easier, leave the coding to the API
http://vera.timendus.com/ - The calc lover's OS


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed 07 Nov, 2007 11:39 am 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Probably. It's hassle enough creating a zip file, to be honest, and I don't really want to start trying to support installers for environments I am ignorant of. :)

I don't know what the best solution for Linux users would be; some sort of shell script that automates associations?

Anyhow; I've released beta 2 that makes a few improvements, including better build support. I'll try to add support for other shells as soon as possible, but currently 83 (no shell), 83 Ion, 83 Venus, 83+ (no shell), 83+ Ion and 83+ MirageOS are supported.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed 07 Nov, 2007 3:31 pm 
Offline
Extreme Poster
User avatar

Joined: Thu 17 May, 2007 4:49 pm
Posts: 395
Location: $4080
Ben, this is amazing!!!
I'll see if I can find some bugs.

It would be cool if Brass manual/plugin docs are donwloadable


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed 07 Nov, 2007 4:09 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
There is no manual at the moment, sorry, you'll pretty much have to look at the sample code (and plugin examples) or just ask me here. :(

Both packages (Windows installer and zip package) come with a help viewer; if you prefer HTML you can export HTML files directly from it (that's how I created the online version).

If the sample project complains about missing files, close all Explorer instances then try again; if that still doesn't work log out then in again (or reboot). This only needs to be done the first time you install the software!

The sample code is just this assembly source:

Code:
   ; Clear the screen.
   bcall(_clrLcdFull)
   
   ; Move cursor to (0,0).
   xor a
   ld (curCol),a
   ld (curRow),a
   
   ; Display the message.
   ld hl,Message
   bcall(_putS)
   bcall(_newLine)
   
   ; Poll the keyboard until we receive a key.
-
   bcall(_getCSC)
   or a
   jr z,-
   
   ; Exit.
   ret

; Message to be displayed.
Message .byte "Brass 3 Demo", 0


The project file is just this (I would like to make a GUI editor for these):

Code:
<?xml version="1.0" encoding="utf-8" ?>
<brassproject version="3">
   <template source="TI/Program.brassproj" />
   <input source="Demo.asm">   
      <label name="Program.Description" type="string" value="Demo Project" />
      <label name="Program.Name" type="string" value="DEMOPROJ" />
   </input>
</brassproject>


No header/include noise, no macro defines for ROM calls (bcall is a function plugin) and templates are stored in a simple, standardised location that hopefully makes upgrading them easier.

I know some will complain that this hides implementation details, but I'm not too fussed about that myself. :)

One thing I haven't mentioned (or really decided) is how to handle shell/OS differences. Here's a rough idea of what you can currently do:

Code:
#if !defined(ionFastCopy)
   ionFastCopy:
   .if strlower(outputwriter()) == "ti8x"
      bcall(_grBufCpy)
   .else
      ; ... do something else on the 83 ...
   .endif
   ret
#endif
(I obviously need to provide better functions to establish which plugins are in use rather than that strlower() hack). :)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed 07 Nov, 2007 4:35 pm 
Offline
Extreme Poster
User avatar

Joined: Thu 17 May, 2007 4:49 pm
Posts: 395
Location: $4080
Ah, didn't saw the help.exe...

Ok, the demo doesn't want to work (maybe because you said "EDIT: Do not use this demo, there's a better one in Beta 2."?)
Brass 3 builder wrote:
Invalid data before the the header.
.ionheader "Brass Demo"

Source: Demo.asm, line 3.


Ok, what are the .brassproj xml files for? Do I need one?

Neither am I seeing any explorer integration? I use Windows XP SP2
EDIT: ah, of course:
benryves wrote:
Click "Build" on the toolbar (or right-click, "Build" in previous Windows versions).


Aaaw, these questions sound dumb...


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed 07 Nov, 2007 5:12 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
driesguldolf wrote:
Brass 3 builder wrote:
Invalid data before the the header.
.ionheader "Brass Demo"

Source: Demo.asm, line 3.
I changed the way the plugin worked slightly (it used to insert the AsmPrgm header for you, it doesn't anymore).

Quote:
Ok, what are the .brassproj xml files for? Do I need one?
Brass works entirely with project files, you can't just run it with command-line arguments. A project file tells Brass which plugins to load and use, defines multiple build configurations or points at other project files to use as base templates. They can also create labels as well as insert headers and footers for you.

Take a look at "C:\Program Files\Brass\Templates\TI\Program.brassproj" for an example of a fairly complete one.

Quote:
Neither am I seeing any explorer integration? I use Windows XP SP2
You can also get away with double-clicking the project file. :)

I'm sure there are loads of bugs, including sample code in the plugin documentation that no longer works due to a bugfix or changed feature made yonks ago! A buggy Brass in the wild is better than a buggy Brass that only exists on my hard disk drive, really. :)

A bjump function needs to be added, and I'll probably add ".bcall nz,_label" style directives to complement "bcallnz(_label)". Wider shell support is also needed, as is TI-82 stuff. Apps need supporting too... Lots of work for me to get busy on. :)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed 07 Nov, 2007 11:50 pm 
Offline
Calc Guru

Joined: Thu 27 Oct, 2005 8:28 pm
Posts: 962
o.o graphical is nice.

will this work on Vista?

_________________
Image Image Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu 08 Nov, 2007 12:46 am 
Offline
Extreme Poster
User avatar

Joined: Thu 17 May, 2007 4:49 pm
Posts: 395
Location: $4080
Liazon wrote:
o.o graphical is nice.

will this work on Vista?

Yes, as the screenshots are made in Vista ;)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu 08 Nov, 2007 11:10 am 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
Aye, I use Vista. I should probably install an older copy of Windows in a VM for testing purposes, really. A few days ago Timendus tried a cruder beta on Linux and said it worked there too, hopefully I haven't broken anything since. :)

3.0.0.0 Beta 3 wrote:
New Texas Instruments functions and directives for ROM calls and error handlers.

The Help Viewer's code to convert newlines to HTML paragraphs has been fixed, and it shows the DisplayName for plugins rather than the default name (which appears to be randomly selected).

Projects no longer raise warnings if no string encoder is set.

I've added a Sega Master System / Game Gear 32KB ROM template and sample program. The SDSC tag directive has been fixed to work with strings passed in labels.

The .echochar directive has been removed.

The project file format and GUI builder have been extended to support display name attributes on build configurations (you get "Sega Master System" instead of "SMS" and "TI-83 Plus, MirageOS" instead of "TI8X.MirageOS").


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 12 Nov, 2007 12:04 pm 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
3.0.0.0 Beta 4 wrote:
Major bug fixed where directives calling an internal method to leave temporary modules wouldn't actually leave the module, resulting in bizarre label name resolution bugs.

Internal functionality to easily retrieve tokens between parentheses added, resulting in easier and more reliable plugin development - and fixing bugs in .define in the process.

#macro/#endmacro added to complement #function/#endfunction. Performs exactly the same job, except that arguments are passed as macro replacements by default rather than by value.

Ability to break code into sections that can be linked together in a particular order via the .section/.endsection and .incsection directives (see the bug note in Known Issues).

Added basic DoorsCS 6 support with a header writer and template.

Improved flexibility in the Help Viewer, including support for "documentation-only" plugins (and hiding plugins that aren't end-user accessible).


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon 12 Nov, 2007 8:04 pm 
Offline
Extreme Poster
User avatar

Joined: Thu 17 May, 2007 4:49 pm
Posts: 395
Location: $4080
W00t, finally have some time to test :D

Is it normal that the same error is shown twice?
It doubles every error I've thrown at it
Brass 3 Builder wrote:
Invalid directive '.rst'.
.rst 28h

Source: Demo.asm, line 12.

Invalid directive '.rst'.
.rst 28h

Source: Demo.asm, line 12


Now that is cryptic
Code:
   ld exit, duke

Brass 3 Builder wrote:
Value does not fall within the expected range.
Source: Demo.asm, line 20.


Also, brass builder gives a lot of whitespace, and if you have a lot of errors things get very large (9 errors, all but the .include were doubled):
Image
If you could remove the 'red arrowed' enters or just all of them (I'm sure you'll find a nice layout) I'd be very happy ;)

Also, I cannot use Ctrl-c to copy the error messages... Though I was able to drag&drop them, neither can you right-click or Ctrl-a.

Idea: would it be possible to leave out the brackets in functions/macros? like:
Code:
   load de, hl
; instead of
   load(de, hl)


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue 13 Nov, 2007 10:59 am 
Offline
Maxcoderz Staff
User avatar

Joined: Thu 16 Dec, 2004 10:06 pm
Posts: 3064
Location: Croydon, England
driesguldolf wrote:
Is it normal that the same error is shown twice?
It doesn't stop if it hits any errors, and it runs through your code twice (two passes) and so yes, errors are shown twice.

I'll stop it doing that. :)

Quote:
Now that is cryptic
Code:
   ld exit, duke

Brass 3 Builder wrote:
Value does not fall within the expected range.
Source: Demo.asm, line 20.
You're only allowed to use the Z80 plugin if you're a qualified .NET programmer who would have easily spotted a mile off that that's the default message for an ArgumentException. ;)

I kid, of course, and will update it to display something rather more meaningful.

Quote:
Also, brass builder gives a lot of whitespace, and if you have a lot of errors things get very large (9 errors, all but the .include were doubled)

...

Also, I cannot use Ctrl-c to copy the error messages... Though I was able to drag&drop them, neither can you right-click or Ctrl-a.
I'll attack the stylesheet (that's a web page displayed in IE) and restore the shortcut keys.

Quote:
Idea: would it be possible to leave out the brackets in functions/macros? like:
Code:
   load de, hl
; instead of
   load(de, hl)

I'd thought about this, but also thought about some potential problems.

Code:
#function something(x)
   ; ...
#endfunction

something = 1

.echoln something +1 ; Is that something(+1) or the label something+1?

I agree that it would be a nice feature, though, for example:
Code:
#macro b_call(label)
    rst $28
    eval(".dw _" + strtoken(label))
#endmacro

b_call puts ; Like in the official ti83plus.inc


Hmm. One to ponder. :)


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 104 posts ]  Go to page 1, 2, 3, 4, 5 ... 7  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB ® Forum Software © phpBB Group | DVGFX2 by: Matt