English Amiga Board


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

 
 
Thread Tools
Old 17 February 2023, 23:39   #41
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
That is supposed to be memory indirect with index and displacement (d16/32,ax/pc,ry.w/l), and supressed index?
Just checked with 1.18 and apparently it doesn't work. Base supression works, index doesn't. OK, thanks for reporting it. I'll look into it.
a/b is offline  
Old 18 February 2023, 02:01   #42
Photon
Moderator
 
Photon's Avatar
 
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,602
Great initiative!

The problem for me using Asm-One 1.48/AsmPro 1.17 has been that the startup/handover (after allocating memory), debugger, level 7 button/recovery and execute/return sometimes gurus/freezes/does nothing on some modern and some old accelerators.

Some versions also had a 'padded' environment different from CLI when executing/returning, which would give a big surprise when a program was finished.

I'm not sure if these points have been worked on, or which changes have been made to these code parts over the years. But it would improve AsmPro and make it more robust if you could test those and fix what you can provoke with knowledge
Photon is offline  
Old 18 February 2023, 10:18   #43
oRBIT
Zone Friend
 
Join Date: Apr 2006
Location: Gothenburg/Sweden
Age: 48
Posts: 339
Quote:
Originally Posted by a/b View Post
That is supposed to be memory indirect with index and displacement (d16/32,ax/pc,ry.w/l), and supressed index?
Just checked with 1.18 and apparently it doesn't work. Base supression works, index doesn't. OK, thanks for reporting it. I'll look into it.
Fantastic!
oRBIT is offline  
Old 11 March 2023, 15:17   #44
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
a/b
I did a fresh install of AmigaOS 3.2.2 and when I start Asmpro 1.9b I get a recoverable address. Once Reqtools is installed the error no longuer appears so there’s something wrong in the code.
kamelito is offline  
Old 11 March 2023, 15:30   #45
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
Maybe something wrong with asl.library handling (that's the fallback if reqtools if not found). I've been using a patched asl (to redirect everything to reqtools) since forever so I'll have to install a proper one and check what's going on. Thanks for reporting.

EDIT:
OK, asl is only used to select a font. The file/screen stuff goes either through reqtools or you have to type it all out.
I tried:
- w/ and w/o asl, w/o reqtools: no recoverable alert, only a message that reqtools v38+ is not found
- w/o asl, w/ reqtools: no problems, prefs -> select font expectedly doesn't work (since no asl)
Is the problem reproducible on your end? I was testing with OS 3.1 software, that's all I got.

Last edited by a/b; 11 March 2023 at 15:48.
a/b is offline  
Old 11 March 2023, 20:06   #46
R4M
Registered User
 
Join Date: Jan 2019
Location: /home
Posts: 122
I found a little error in the 68030 MMU instructions:

pmove.w MMUSR,(a0)

will be translated to

F0105200 (pmove.b cal, (a0))

instead of

F0106200

so there seems to be a wrong bit in some lookup table. AsmOne 1.48 gets that right.
R4M is offline  
Old 11 March 2023, 20:57   #47
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
Hmm, this was OK in some older version and then it was changed from 6 to 5 (it's not documented in the history file, can't tell when or why).
This is in the original 1.18 source:
Code:
AsmP_PMOVE:
	move.l	#$F0005000,d6	;For MMUSR register	;was $F0006000
	br	Pmove_MMUSR
I'll change it back to 6. Disassembler correctly prints MMUSR.
Thanks!
a/b is offline  
Old 21 April 2023, 18:32   #48
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
a/b it is time well you put a ? So who knows
kamelito is offline  
Old 21 April 2023, 19:14   #49
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
I'm not getting paid for this, so it's done when it's done ;p.

I can post the latest development version, there's been a few practical changes and bugfixes, but haven't really started seriously working on broken disassembler stuff (which is the main objective). Did some minor work, there's a lot of code duplication, it looks like it's using similar code twice, to calculate opcode length and to actually disassemble. And those two aren't fully in sync to begin with. So it's one big mess that will have to wait...

Here is my unformatted list of changes since 1.19c, if you see anything useful let me know I'll post the latest exe:
Code:
; ==== modifications
; 1. ui: reqtools.library requires v38 instead of any version
; 2. disasm: show fnop instead of fbf.w with 0 displacement
; 3. asm: cmp is accepted as alias for cmpm if (ax)+,(ay)+
; 4. asm: new \@ (macro) implementation that works with system includes
; 5. asm: predef symbol ASMPRO, value is version: major*256+minor
; 6. asm: append / to incdir path if needed
; 7. asm: use srcdir as fallback when incxxx-ing files, additionally use INCLUDE: assign as fallback when include-ing files
; 8: asm: new symbol REPTN (vasm-style), 0 to (N-1) inside REPT and -1 outside
; 9: asm: new directive EQUA, reloc to abs value conversion

; ==== bugfixes
; 1. ui: crash if diskfont.library couldn't be opened
; 2. disasm: dbcc.l (apollo) crash on 000/010 if 2-char ccode
; 3. edit: page-up freeze at source top if asm errors
; 4. disasm: callm abs/pc modes broken, immed hex operand without $
; 5. disasm: chk2/cmp2 broken modes
; 6. asm: chk2/cmp2 generates wrong opcodes, broken modes
; 7. disasm: cinv/cpush nc is displayed as bc
; 8. asm: cinv/cpush doesn't allow nc
; 9. disasm: moves dst abs32 mode broken
;10. disasm: pmove tt0 and tt1 switched
;11. asm: fmovem and some fmove variations allow (d16,pc) as dst
;12. ui: restart checks for changed sources too late
;13. asm: no warning for callm if 030+ (it's 020 only)
;14: asm: INCDIR isn't reset when assembling
;15: asm: including a dir prints trash
;16: moni: scrolling left/right (alt-left/right) hides the cursor
;17: asm: pmove mmusr outputs the wrong reg
;18: dbg: usp/ssp mixup and wrong stack used when debugging

; also:
; - fixed a few instances of unsafe code that relied on scratch registers being preserved (undocumented) after a system call
; - fixed a few instances of (harmless) byte/word mismatch with OpperantSize (next byte CURRENT_SECTION_TYPE was stacked/restored along)
a/b is offline  
Old 21 April 2023, 20:35   #50
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
Thanks for the info about the latest development. Did you checked the disassembler library on Aminet ?it is still maintained, I read the Trash’M One Pro author wanted to use it.
Take your time sorry for asking too much
kamelito is offline  
Old 21 April 2023, 22:05   #51
oRBIT
Zone Friend
 
Join Date: Apr 2006
Location: Gothenburg/Sweden
Age: 48
Posts: 339
Quote:
Originally Posted by a/b View Post
I'm not getting paid for this, so it's done when it's done ;p.
I'm pretty sure people would be happy to donate to a PayPal account to support your work?
oRBIT is offline  
Old 21 April 2023, 22:49   #52
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
That wasn't quite my intention ;P. I wouldn't accept any $$$ for this kind of work for a number of reasons.
a/b is offline  
Old 22 April 2023, 23:48   #53
Photon
Moderator
 
Photon's Avatar
 
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,602
Quote:
Originally Posted by a/b
I'm not getting paid for this, so it's done when it's done ;p.
We do it because it needs to be done and those who appreciate do.
Quote:
Originally Posted by a/b
; 6. asm: append / to incdir path if needed
In my mind, paths must end with / or : or it's not a path. Wish it were so in all OSes. Probably won't cause issues.
Quote:
Originally Posted by a/b
; 7. asm: use srcdir as fallback when incxxx-ing files, additionally use INCLUDE: assign as fallback when include-ing files
This one could lead to head-scratchers and wrong file included. But as long as full path of included file is printed, should not. (Well, maybe if 20 files are included and scroll by unnoticed.)
Quote:
Originally Posted by a/b
; ==== bugfixes
;14: asm: INCDIR isn't reset when assembling
Yeah, 'INCDIR ""' was a strange one, good fix. It should definitely be relative as default and support e.g. "//" as equivalent of "../../" in Win/Linux.
Photon is offline  
Old 23 April 2023, 09:59   #54
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
a/b Why is Asmpro throwing illegal order at
fmovem (sp)+, fp7/fp6/fp5/fp4/fp3/fp2?
This was produced by GCC and Devpac assemble it without error.

Monam show the corresponding code though

fmovem.x (a7)+, fp2-fp7 so I assume it reorder the code during assembling.
kamelito is offline  
Old 23 April 2023, 22:48   #55
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
Because it's only able to handle ascending ranges, and it enforces the same rule to individual regs.
Did a refactoring of the whole thing plus movem, add these to the pile above. Latest dev exe is in the zone.
Code:
; ==== modifications
;10: asm: allow movem descending reg lists
;11: asm: allow .L size if fmovem with ctrl regs
;12: asm: allow fmovem descending reg lists
; ==== bugfixes
;19: disasm: fmovem trailing "/" in some cases
;20: asm: fmovem allows size .X with ctrl reg
a/b is offline  
Old 24 April 2023, 00:09   #56
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
Nice thanks, is it possible to make Asmpro run on WB screen optionally? It would be then easier to use other tools and doc in the same screen without having to go back and forth between screen.
kamelito is offline  
Old 01 June 2023, 22:21   #57
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
@a/b
Set AsmOne to 68000
The code : move.w $bd.w, d0 should not be accepted an odd address error should be given instead.
kamelito is offline  
Old 01 June 2023, 23:20   #58
Don_Adan
Registered User
 
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 55
Posts: 1,960
Quote:
Originally Posted by kamelito View Post
@a/b
Set AsmOne to 68000
The code : move.w $bd.w, d0 should not be accepted an odd address error should be given instead.
Why? Some programs especially called odd address errors. Errors are handled.
Don_Adan is offline  
Old 01 June 2023, 23:31   #59
a/b
Registered User
 
Join Date: Jun 2016
Location: europe
Posts: 1,039
That (operand alignment) is not checked. There might be some very specific cases, so I won't say it's 100% but in general it's not checked. It will only check instruction and directive alignment (DC, DS, ...), and if 68020+ odd data is not enabled (asm prefs) it will error out.
a/b is offline  
Old 01 June 2023, 23:46   #60
kamelito
Zone Friend
 
kamelito's Avatar
 
Join Date: May 2006
Location: France
Posts: 1,801
It give odd error directly using Devpac in 68000 settings.
kamelito 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 15:01.

Top

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