English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 22 November 2015, 21:33   #21
NorthWay
Registered User
 
Join Date: May 2013
Location: Grimstad / Norway
Posts: 852
Quote:
Originally Posted by meynaf View Post
I don't think Barfly would assemble my 4MB HOMM2 source file
Why not?

I was betatesting Barfly and I put it through some pretty stupid shit that made laire roll his eyes. And he fixed it all.
NorthWay is offline  
Old 22 November 2015, 22:22   #22
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,839
Quote:
Originally Posted by meynaf View Post
I don't think Barfly would assemble my 4MB HOMM2 source file
That's because you use Phxass specific functions Do you really need those?
Thorham is offline  
Old 23 November 2015, 08:32   #23
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
First I'm often writing :
Code:
 macro name
instead of :
Code:
name macro
which is supported by phxass but not by barfly (bad habit i know, but it would need many changes everywhere).

Requires cachefile.library or it will refuse to assemble (phxass does not need any lib).

I do *not* want to see that flooding the output when assembling my cpu test routines :
Warning 542: You use a supervisor command.
Warning 541: You should be aware of the Move16 problems.

Code:
 bra.s tc
Is rejected (under the fallacious pretext that "tc" is a mmu register).

Barfly does not support the EQURL directive. I don't think this is really PhxAss specific.

Of course it does not support the BASEREG directive, which is a must have for me (and no, offsets won't save me because i sometimes do var instead of var(a5) when a5 isn't available).

It also can't convert short branches into long branches when they don't fit (or at least it doesn't do this by default).

I don't know how to give it a config file like PHXOPTIONS does, which would tell it where to fetch my framework include files.

And finally the best one, enough by itself to throw the program in the bin :
Error 87: Demo limitation. If you like this product please registrate.

I got Barfly 2.00 from Aminet and checked my sources quite superficially to find this. More problems certainly exist...

Last edited by meynaf; 23 November 2015 at 08:44.
meynaf is offline  
Old 23 November 2015, 10:25   #24
NorthWay
Registered User
 
Join Date: May 2013
Location: Grimstad / Norway
Posts: 852
Quote:
Originally Posted by meynaf View Post
Warning 542: You use a supervisor command.
"super"

Quote:
Originally Posted by meynaf View Post
Warning 541: You should be aware of the Move16 problems.
"opt wm-"

Quote:
Originally Posted by meynaf View Post
Barfly does not support the EQURL directive. I don't think this is really PhxAss specific.
Don't think I know this. What does it do? Alias for a list of registers?

Quote:
Originally Posted by meynaf View Post
Of course it does not support the BASEREG directive, which is a must have for me (and no, offsets won't save me because i sometimes do var instead of var(a5) when a5 isn't available).
Also unknown. What does it do?

Quote:
Originally Posted by meynaf View Post
It also can't convert short branches into long branches when they don't fit (or at least it doesn't do this by default).
Are you sure? Might be that it assumes you know what you do when you specify size, but it will easily do 13 passes over the source to try and optimize sizes.

Quote:
Originally Posted by meynaf View Post
I don't know how to give it a config file like PHXOPTIONS does, which would tell it where to fetch my framework include files.
I typically don't use anything like that but I know it has several options for setting/using options.

But I thought the Aminet version was unlimited? It seems my version is more recent as it is 2.17.
NorthWay is offline  
Old 23 November 2015, 10:38   #25
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
Quote:
Originally Posted by NorthWay View Post
"super"

"opt wm-"
May i put that in some config file so that i don't have to use them in every source ?


Quote:
Originally Posted by NorthWay View Post
Don't think I know this. What does it do? Alias for a list of registers?
Your guess is right. I have adaptative (often included) code that may or may not trash a register, and so the reg-save list changes accordingly.


Quote:
Originally Posted by NorthWay View Post
Also unknown. What does it do?
Allows automatic register-relative access. Like this :
Code:
 basereg zbss,a5
 lea zbss,a5
 move.l var2(a5),d0

 bss
zbss
var1 ds.l 1
var2 ds.l 1
var3 ds.l 1
Asm-one also supports this directive.


Quote:
Originally Posted by NorthWay View Post
Are you sure? Might be that it assumes you know what you do when you specify size, but it will easily do 13 passes over the source to try and optimize sizes.
I sure am.
This :
Code:
 bra.s label
 ds.w $100
label
Gives :
Error 56: The Argumentvalue is larger than the operand width.


Quote:
Originally Posted by NorthWay View Post
I typically don't use anything like that but I know it has several options for setting/using options.
The doc mentions something in ENV: indeed. I have to check it more closely.


Quote:
Originally Posted by NorthWay View Post
But I thought the Aminet version was unlimited? It seems my version is more recent as it is 2.17.
Seems it's not. Basm says version 2.9. Where to fetch a more recent one ? Preferably the latest ?
meynaf is offline  
Old 23 November 2015, 11:11   #26
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,839
Quote:
Originally Posted by meynaf View Post
Requires cachefile.library or it will refuse to assemble (phxass does not need any lib).
Does that really matter? Isn't that library the program's own library? It's included in the package after all.

Anyway, I'm not trying to convert you. I just like Barfly because of it's speed.
Thorham is offline  
Old 23 November 2015, 11:39   #27
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
Quote:
Originally Posted by Thorham View Post
Does that really matter? Isn't that library the program's own library? It's included in the package after all.
If each program i use adds its own .library to libs: then my libs: will look like a windows directory...
Is this lib used for other programs beside barfly ? If not, i don't see the point in doing a .library.
It's not a big deal for a program that has its own dir and the lib can be just sitting here. But basm should be callable from everywhere and ideally sitting in C: (the amiga's regular command dir).


Quote:
Originally Posted by Thorham View Post
Anyway, I'm not trying to convert you. I just like Barfly because of it's speed.
Can't check because my large code won't assemble, but i wouldn't bet. It may be possible that phxass is indeed faster and then your choice loses its sole purpose...
meynaf is offline  
Old 23 November 2015, 13:07   #28
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,839
Quote:
Originally Posted by meynaf View Post
If each program i use adds its own .library to libs: then my libs: will look like a windows directory...
Indeed.

Quote:
Originally Posted by meynaf View Post
Is this lib used for other programs beside barfly ?
Probably not.

Quote:
Originally Posted by meynaf View Post
If not, i don't see the point in doing a .library.
I think it's part of the include cache mechanism. Of course, the program could just generate a library in memory.

Quote:
Originally Posted by meynaf View Post
It's not a big deal for a program that has its own dir and the lib can be just sitting here. But basm should be callable from everywhere and ideally sitting in C: (the amiga's regular command dir).
I use a setup script for that. That way I keep all files in the program directory. Having to type something like 'setupbarfly' isn't a problem for me.

Quote:
Originally Posted by meynaf View Post
It may be possible that phxass is indeed faster and then your choice loses its sole purpose...
Perhaps not. It has things like _MOVEMBYTES and _MOVEMREGS which represent the byte count and register mask of the last movem. These can be very nice to have.

I also like Barfly because it feels nicer than Phxass
Thorham is offline  
Old 23 November 2015, 13:25   #29
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
Quote:
Originally Posted by Thorham View Post
Perhaps not. It has things like _MOVEMBYTES and _MOVEMREGS which represent the byte count and register mask of the last movem. These can be very nice to have.
A lot of things are "nice". But among these things, not all are really useful. So i still have to see a use case for these.


Quote:
Originally Posted by Thorham View Post
I also like Barfly because it feels nicer than Phxass
For me it's the opposite.
But i am not especially attached to phxass. It's just that no other asm does the job (vasm is the only other asm that can assemble my code, but it is too slow and memory hungry for practical use).
meynaf is offline  
Old 23 November 2015, 14:05   #30
NorthWay
Registered User
 
Join Date: May 2013
Location: Grimstad / Norway
Posts: 852
Quote:
Originally Posted by meynaf View Post
Allows automatic register-relative access. Like this :
Code:
 basereg zbss,a5
 lea zbss,a5
 move.l var2(a5),d0

 bss
zbss
var1 ds.l 1
var2 ds.l 1
var3 ds.l 1
Asm-one also supports this directive.
Sounds a bit like "smalldata" directive.

Quote:
Originally Posted by meynaf View Post
Code:
 bra.s label
 ds.w $100
label
bopt wm-,O+,OG+,wo-

Quote:
Originally Posted by meynaf View Post
Seems it's not. Basm says version 2.9. Where to fetch a more recent one ? Preferably the latest ?
Sorry, don't know. I got mine from laire so I'm not gonna spread without knowing status.
NorthWay is offline  
Old 23 November 2015, 16:14   #31
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
Quote:
Originally Posted by NorthWay View Post
Sounds a bit like "smalldata" directive.
Seems so. But basereg allows the starting point anywhere in the section.
I'm usually having two baseregs on the same register : one for the app, one for my included framework. Thus both can have access to 64k.


Quote:
Originally Posted by NorthWay View Post
Sorry, don't know. I got mine from laire so I'm not gonna spread without knowing status.
Yikes. For Phxass i even have the sources somewhere...
Can that guy be contacted ?


One day or another i'll write my own asm program. Unsure it will be for 68k, though.
meynaf is offline  
Old 23 November 2015, 16:53   #32
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,839
Quote:
Originally Posted by meynaf View Post
A lot of things are "nice". But among these things, not all are really useful.
That applies to some of what you list as well.

1. Basereg -> Define a structure.
2. Regsiter lists -> Define a macro.

Many things are just conveniences.

Quote:
Originally Posted by meynaf View Post
So i still have to see a use case for these.
_MOVEMBYTES is handy for passing parameters using the stack and _MOVEMREGS is useful if you used a register list as a macro parameter and want to use the same register list in another macro without having to specify it again.

Quote:
Originally Posted by meynaf View Post
For me it's the opposite.
Typical how that works

Quote:
Originally Posted by meynaf
Seems it's not. Basm says version 2.9. Where to fetch a more recent one ? Preferably the latest ?
It seems the author released the registered version on Aminet at some point. You must've downloaded the shareware version before the registered version was released.
Thorham is offline  
Old 23 November 2015, 17:07   #33
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
Quote:
Originally Posted by Thorham View Post
1. Basereg -> Define a structure.
Can't do that. It wouldn't work for a direct access.
IOW, I'm pretty sure i have quite a few move.l label,a0 which would be converted without warning into things like move.l $8,a0.
Besides, a structure is defined prior to use, not at the end like the bss.


Quote:
Originally Posted by Thorham View Post
2. Register lists -> Define a macro.
Could be done.


Quote:
Originally Posted by Thorham View Post
Many things are just conveniences.
It's the little things that add together...


Quote:
Originally Posted by Thorham View Post
_MOVEMBYTES is handy for passing parameters using the stack and
Who does that in asm ?
Anyway if there is another MOVEM in the routine, you're in big trouble.


Quote:
Originally Posted by Thorham View Post
_MOVEMREGS is useful if you used a register list as a macro parameter and want to use the same register list in another macro without having to specify it again.
This is normally done with the EQURL directive


Quote:
Originally Posted by Thorham View Post
It seems the author released the registered version on Aminet at some point. You must've downloaded the shareware version before the registered version was released.
I got it today from http://aminet.net/package/dev/asm/BarflyDisk2_00


Another problem is this :
Error 43: You can't use this char combination in a symbol.

So barfly, too, rejects accentuated characters in symbols, which is a very big annoyance for a french coder like myself.
I bugged Frank Wille quite a lot to get support for that in Vasm, btw.
meynaf is offline  
Old 23 November 2015, 17:31   #34
Leffmann
 
Join Date: Jul 2008
Location: Sweden
Posts: 2,269
Quote:
Originally Posted by meynaf View Post
I don't think Barfly would assemble my 4MB HOMM2 source file
I doubt that's the case, but if it is then it's hardly something speaking against basm. A software consisting of 4 MB source code may be a merit, but 4 MB source code in a single file is just a case of "you're doing it wrong".

Anyway, I know of at least 1 bug in Basm 2.9 from Barfly 2.0, and there should be at least a Basm 2.16 available, and a Barfly 2.9 package, but I don't know if it's possible to find Ralph Schmidt to get hold of these.
Leffmann is offline  
Old 23 November 2015, 17:35   #35
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
Quote:
Originally Posted by Leffmann View Post
I doubt that's the case, but if it is then it's hardly something speaking against basm. A software consisting of 4 MB source code may be a merit, but 4 MB source code in a single file is just a case of "you're doing it wrong".
Apparently you have never resourced a large program, huh ?
meynaf is offline  
Old 23 November 2015, 17:54   #36
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,839
Quote:
Originally Posted by meynaf View Post
Can't do that. It wouldn't work for a direct access.
IOW, I'm pretty sure i have quite a few move.l label,a0 which would be converted without warning into things like move.l $8,a0.
Besides, a structure is defined prior to use, not at the end like the bss.
With Barfly you can do this:
Code:
a
    lea     bssdat,a0
    move.l  #$12345678,var1(a0)
    rts

    section bss

            rsset   0
var1        rs.l    1
var2        rs.l    1
var3        rs.l    1
sizeOf_bss  rs.l    0

bssdat
    ds.b    sizeOf_bss
Quote:
Originally Posted by meynaf View Post
Could be done.
Not fabulously handy, but it should indeed work.

Quote:
Originally Posted by meynaf View Post
It's the little things that add together...
That's true. After all, we're not writing everything in hex anymore.

Quote:
Originally Posted by meynaf View Post
Who does that in asm ?
What's wrong with it?

Quote:
Originally Posted by meynaf View Post
Anyway if there is another MOVEM in the routine, you're in big trouble.
Code:
label set _MOVEMBYTES
Quote:
Originally Posted by meynaf View Post
That's not the registered version?

Quote:
Originally Posted by meynaf View Post
Another problem is this :
Error 43: You can't use this char combination in a symbol.

So barfly, too, rejects accentuated characters in symbols, which is a very big annoyance for a french coder like myself.
I bugged Frank Wille quite a lot to get support for that in Vasm, btw.
Yeah, that's a good one.
Thorham is offline  
Old 23 November 2015, 18:22   #37
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
Quote:
Originally Posted by Thorham View Post
With Barfly you can do this:
Code:
a
    lea     bssdat,a0
    move.l  #$12345678,var1(a0)
    rts

    section bss

            rsset   0
var1        rs.l    1
var2        rs.l    1
var3        rs.l    1
sizeOf_bss  rs.l    0

bssdat
    ds.b    sizeOf_bss
Which is not as practical as writing :
Code:
 basereg bssdat,a5

 lea bssdat,a5
 move.l #$12345678,var1(a5)
 rts
interrupt_routine
 addq.l #1,var1
 rte

 bss
var1 ds.l 1
var2 ds.l 1
var3 ds.l 1
Quote:
Originally Posted by Thorham View Post
What's wrong with it?
Depends on the case, but it's usually better to pass them in registers.


Quote:
Originally Posted by Thorham View Post
That's not the registered version?
Seems not, as it's that version which got the message.
meynaf is offline  
Old 23 November 2015, 18:36   #38
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,839
Quote:
Originally Posted by meynaf View Post
Which is not as practical as writing :
Code:
 basereg bssdat,a5

 lea bssdat,a5
 move.l #$12345678,var1(a5)
 rts
interrupt_routine
 addq.l #1,var1
 rte

 bss
var1 ds.l 1
var2 ds.l 1
var3 ds.l 1
True, you'd need extra labels.

Quote:
Originally Posted by meynaf View Post
Depends on the case, but it's usually better to pass them in registers.
Perhaps.

Quote:
Originally Posted by meynaf View Post
Seems not, as it's that version which got the message.
That's strange because I just tried it with a one megabyte test source in WinUae. I simply made a partition out of the Barfly directory and booted with that. Then copied that big source into the directory and assembled. Worked fine. Perhaps an older Barfly is still in C:? The version on Aminet really should be the registered version.
Thorham is offline  
Old 23 November 2015, 19:08   #39
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,355
Quote:
Originally Posted by Thorham View Post
That's strange because I just tried it with a one megabyte test source in WinUae. I simply made a partition out of the Barfly directory and booted with that. Then copied that big source into the directory and assembled. Worked fine. Perhaps an older Barfly is still in C:? The version on Aminet really should be the registered version.
Well, i just dearchived the lha to a temp directory and put both the command and the library it asks to ram:. Then any sufficiently big file ends up with the error message. But i found no keyfile in the archive. How does it know it is registered ?
Anyway, you probably have a more advanced version than the one on aminet, haven't you ?
meynaf is offline  
Old 23 November 2015, 19:23   #40
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,839
Quote:
Originally Posted by meynaf View Post
Well, i just dearchived the lha to a temp directory and put both the command and the library it asks to ram:.
Do what I did. Make a partition out of the Barfly directory and boot from that. Should work.

Quote:
Originally Posted by meynaf View Post
But i found no keyfile in the archive. How does it know it is registered ?
It doesn't need one.

Quote:
Originally Posted by meynaf View Post
Anyway, you probably have a more advanced version than the one on aminet, haven't you ?
Nope. The one on Aminet is the right version.

Something strange is happening for sure
Thorham is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
4th tutorial on ASM- and HW-coding Vikke Coders. Asm / Hardware 11 10 April 2013 20:32
3rd tutorial on ASM- and HW-coding Vikke Coders. Asm / Hardware 6 26 March 2013 15:57
First tutorial on ASM- and HW-coding Vikke Coders. Asm / Hardware 46 18 March 2013 12:33
2nd tutorial on ASM- and HW-coding Vikke Coders. Asm / Hardware 10 17 March 2013 11:49
Coding for A500 / A1200 helmut request.Apps 2 26 January 2012 15:55

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 20:51.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.10715 seconds with 12 queries