English Amiga Board


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

 
 
Thread Tools
Old 10 January 2023, 20:05   #21
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,099
Seems like there's an issue where it can "soft hang" (WB is still usable). After assembling (doesn't seem to happen before) and getting an error, I hold shift+arrow up to get to the top and it gets stuck.

Dunno if it depends on the filesize or w/e. But with the attached file (using a WinUAE JIT config in case that matters), after assembling and getting an error for a missing incbin, holding down shift+arrow up it locks up.


(And not bug, but noticed that most other assemblers e.g. AsmOne v.148 accepts cmp.l (a0)+,(a1)+ and translates it into cmpm, but that's more like a feature request since earlier versions didn't handle that either)
Attached Files
File Type: s rotozoom4.s (19.8 KB, 66 views)
paraj is offline  
Old 10 January 2023, 20:39   #22
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
Quote:
Originally Posted by paraj View Post
Seems like there's an issue where it can "soft hang" (WB is still usable). After assembling (doesn't seem to happen before) and getting an error, I hold shift+arrow up to get to the top and it gets stuck.
I was able to reproduce it with 1.18, so it's an old bug. I'll look into it.
a/b is offline  
Old 10 January 2023, 20:57   #23
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,099
Quote:
Originally Posted by a/b View Post
I was able to reproduce it with 1.18, so it's an old bug. I'll look into it.
Thanks! Now that I think about it, maybe running into this issue was what kept me on 1.17 so maybe it isn't that old of a bug (comparatively speaking). Could be that there was issues as well in earlier versions that I just never noticed (e.g. if it's corrupting random memory), but trying to fix include directories without saving is a quite common start for me.
paraj is offline  
Old 12 January 2023, 08:55   #24
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
Update 1.19c is on aminet, thank you guys for bugreports.
a/b is offline  
Old 12 January 2023, 19:12   #25
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,099
Issues I reported are fixed, thanks! Just to be difficult I tried again with the above rotozoom4.s code (I used vasm to develop it fwiw), and after fixing the incbin error (you can just comment it out, it'll just look wrong) it gives an "undefined symbol" error for the waitblit macro. It seems to be related to the use of ".\@" (changing it to ".x" works) but I can't reproduce it easily in a smaller example for some reason.
paraj is offline  
Old 12 January 2023, 20:38   #26
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
Yeah, that's a problem with macros within conditionals that use \@. Kind of "by design".
Unique number generator used for \@ is a simple ctr++, and since the system includes are protected from multi-including (the usual #ifdef stuff), they are only evaluated in pass1. In pass2+, since all the values are defined, ctr++ is not executed the same number of times (it's reset to 0 at the start of every pass to ensure everything is in sync, but everything isn't in sync :P ) all those anonymous labels are consequently different and symbols are not found.
a/b is offline  
Old 17 January 2023, 22:52   #27
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
I've thinking about that one for a while now... Came up with a hopefully happy medium solution. While it's still not globally unique (that would be possible but it's... complicated), it shouldn't cause problems with system includes (which is a pretty big dealbreaker I'd guess).
There's a new build in the zone, it can assemble your rotozoom source without errors now.
a/b is offline  
Old 18 January 2023, 18:49   #28
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,099
Seems to work like a charm, and also seems to fix some other issues I didn't report (because I wasn't sure if it was my code that was causing it).

A few observations - note that they are just that, and I know it's always worked like this, so it's not bug reports - just for your consideration:

- If you do "!r" to restart, the prompt for unsaved changes only comes after accepting the new workspace settings
- If you have a source file (F1) that includes another file that you also have open (e.g. F2), changes to the included file don't show until you restart even if you save the other file.
-
incdir drive:dir
doesn't work, you have to use
incdir drive:dir/
(i.e. add '/' to the end)

Incdir... There can be only one! And there's no default (unless I'm mistaken, which is quite likely). As you can see from the "rotozoom4" example both of those things are slightly annoying. I think I'd be happy 99.5% of the time if 1) the directory where the source file is located is searched 2) there was a default include path. Doesn't have to have fancy gui, defaulting to include: or whatever would be fine. Search order really doesn't matter for me.
paraj is offline  
Old 19 January 2023, 00:48   #29
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
Quote:
Originally Posted by paraj View Post
... also seems to fix some other issues I didn't report...
If it's not too complicated I'd like to hear what they are.

If you are changing the "include" files, you have to ZI (zap cached includes), and then the latest version will be loaded from the disk.
Default dir can be set in the prefs (amiga-[). If you are not doing any directory jumping to fetch the includes and other stuff, then it's simple. Otherwise, yeah it can be annoying if you don't have it set up specifically for asmpro&co. For example, if you want to grab the includes from elsewhere and have to use INCDIR, there goes your default dir. And you have to use another INCDIR to switch back to where you were originally.
If clearly wasn't designed with includes in mind ;p. I'll see what can be done about the things you mentioned...
a/b is offline  
Old 19 January 2023, 19:42   #30
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,099
Quote:
Originally Posted by a/b View Post
If it's not too complicated I'd like to hear what they are.
One of the (now fixed or at least no longer showing) issues was that my system restore code didn't work properly (screen was restored, but hung before prompt reappeared). Didn't want to report that without checking it wasn't my mistake. The other one was another source using more macro stuff, and I figured if the simpler one didn't work there was no point in reporting that as well.

Quote:
Originally Posted by a/b View Post
If you are changing the "include" files, you have to ZI (zap cached includes), and then the latest version will be loaded from the disk.
Default dir can be set in the prefs (amiga-[). If you are not doing any directory jumping to fetch the includes and other stuff, then it's simple. Otherwise, yeah it can be annoying if you don't have it set up specifically for asmpro&co. For example, if you want to grab the includes from elsewhere and have to use INCDIR, there goes your default dir. And you have to use another INCDIR to switch back to where you were originally.
If clearly wasn't designed with includes in mind ;p. I'll see what can be done about the things you mentioned...
Ah right, user error, forgot about zap includes

Yeah, I realize it's not how the program was designed to be used, and it's fine if you have one directory/disk with your stuff on. These days I just don't want one huge directory with all my sources & maintain my own "common defines" file. You shouldn't change the nature of the program to fit my needs, and certainly not break existing code. Just some user feedback.
paraj is offline  
Old 23 January 2023, 22:28   #31
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
I've put another version in the zone. Restart, trailing "/" fixed (if someone has a problem with this, let me know; you can't do "weird" things any more but it's called INCDIR and not INCBASE so...), more optimizations.
About working on the includes and the whole ZI stuff: the alternative (I didn't know about this either) is to use INCSRC <index> to include a source buffer directly and bypass caching and disk I/O.

Now to the main thing, includes (this also works with INCBIN, INCLINK, and INCIFF*) are now searched in this order:
- INCDIR (if not specified: default dir set in the prefs), this basically is the old method so the existing code should load the same files,
- source dir (where the current source file is),
- for INCLUDE files only, INCLUDE: assign if there's one (this is checked once per assemble until found so performance will be ok), this is mainly to take care of system includes without causing extra INCDIR gymnastics.
a/b is offline  
Old 23 January 2023, 22:36   #32
Pyromania
Moderator
 
Pyromania's Avatar
 
Join Date: Jan 2002
Location: Chicago, IL
Posts: 3,375
Is it turbo boosted for V4?
Pyromania is offline  
Old 23 January 2023, 23:04   #33
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
As in OS4? As far as I know, PPC support is not finished (assembler is partially implemented, but no support for debugger, mixed binaries etc.). Code it still there but it's #ifdef-ed out. I never owned any ppc hardware, and yeah winuae emulation is there but I have zero experience with it, so I'm not touching that part.
a/b is offline  
Old 23 January 2023, 23:48   #34
Pyromania
Moderator
 
Pyromania's Avatar
 
Join Date: Jan 2002
Location: Chicago, IL
Posts: 3,375
Quote:
Originally Posted by a/b View Post
As in OS4? As far as I know, PPC support is not finished (assembler is partially implemented, but no support for debugger, mixed binaries etc.). Code it still there but it's #ifdef-ed out. I never owned any ppc hardware, and yeah winuae emulation is there but I have zero experience with it, so I'm not touching that part.
Nope, I meant V4 as in Vampire V4 from Apollo Team. That platform caters to and promotes ASM coding. I think OS 4.1 focuses on C coding.
Pyromania is offline  
Old 24 January 2023, 00:11   #35
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
Support for Apollo specific stuff had been added in v1.18 ~10 years ago, by a member of their team at the time. I took that version as my starting point, so it's still there.
Now if there's anything new, new opcodes etc., a lot could've happened in the meanwhile, I don't know.
a/b is offline  
Old 24 January 2023, 02:03   #36
Pyromania
Moderator
 
Pyromania's Avatar
 
Join Date: Jan 2002
Location: Chicago, IL
Posts: 3,375
With almost certainty things have changed a lot in 100 years.
Pyromania is offline  
Old 24 January 2023, 19:51   #37
paraj
Registered User
 
paraj's Avatar
 
Join Date: Feb 2017
Location: Denmark
Posts: 1,099
Quote:
Originally Posted by a/b View Post
I've put another version in the zone. Restart, trailing "/" fixed (if someone has a problem with this, let me know; you can't do "weird" things any more but it's called INCDIR and not INCBASE so...), more optimizations.
About working on the includes and the whole ZI stuff: the alternative (I didn't know about this either) is to use INCSRC <index> to include a source buffer directly and bypass caching and disk I/O.

Now to the main thing, includes (this also works with INCBIN, INCLINK, and INCIFF*) are now searched in this order:
- INCDIR (if not specified: default dir set in the prefs), this basically is the old method so the existing code should load the same files,
- source dir (where the current source file is),
- for INCLUDE files only, INCLUDE: assign if there's one (this is checked once per assemble until found so performance will be ok), this is mainly to take care of system includes without causing extra INCDIR gymnastics.
Very nice, seems to work more or less exactly like I wanted! Hope it doesn't break existing code.

Putting QA cap back on (this is minor stuff):
- Incdir seems to persist (even if you use "zi"), i.e. assemble file with incdir foo: / include bar.i (it correctly includes foo:bar.i), then remove incdir, update files, zap includes, assemble again and it finds "foo:bar.i" (restart works).
- Ancient issue (present in many assemblers): You include a file that also includes other stuff and the transitive includes can't be found - first file is reported for "file error" (e.g. set include path to $INCLUDES$/exec and include exec.i - it says "file error" for exec.i, but issue is with first file included from that). No problem, but can be confusing.
- Including non-file tries to do weird stuff (e.g. "include dh0:") - solution is obviously "don't do that" but there you are
paraj is offline  
Old 17 February 2023, 13:46   #38
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
a/b any date for the release of 1.20?
kamelito is offline  
Old 17 February 2023, 14:39   #39
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
A couple of months...? I was able to dedicate more time during the holiday season but now it's back to the usual pace.
There's ~10 new bugfixes for exotics so I haven't released any new updates since the include stuff.
a/b is offline  
Old 17 February 2023, 21:42   #40
oRBIT
Zone Friend
 
Join Date: Apr 2006
Location: Gothenburg/Sweden
Age: 48
Posts: 339
Very cool with new Asm-Pro updates, I've waited along time for this. Tried it tonight very briefly with my A/NES sourcecode:

"illegal operand"
move.b d0,(a0,$3f00.l) won't assemble in Asm-Pro. Is it supposed to look differently?

"Default dir" in preferences annoys me. Feature request. Make it remember last directory you last visited instead?

Thanks again for continuing to work on this project!
oRBIT 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
ASMPro 1.18 on A500/A600? Antiriad_UK Coders. Asm / Hardware 11 28 December 2022 10:49
AsmPro Macro REAKTOR BEAR Coders. Asm / Hardware 2 04 October 2022 13:19
AsmPro and INCLUDE sources OCrowley Coders. General 2 06 July 2014 11:42
AsmPro copse Coders. Asm / Hardware 4 25 April 2012 11:41
AsmPro CmdrVimes Coders. General 5 01 September 2010 12:40

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 22:22.

Top

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