![]() |
![]() |
#41 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,097
|
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. |
![]() |
![]() |
#42 |
Moderator
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,759
|
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 ![]() |
![]() |
![]() |
#43 |
Zone Friend
Join Date: Apr 2006
Location: Gothenburg/Sweden
Age: 48
Posts: 347
|
|
![]() |
![]() |
#44 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,894
|
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. |
![]() |
![]() |
#45 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,097
|
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. |
![]() |
![]() |
#46 |
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. |
![]() |
![]() |
#47 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,097
|
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 Thanks! |
![]() |
![]() |
#48 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,894
|
a/b it is time
![]() ![]() |
![]() |
![]() |
#49 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,097
|
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) |
![]() |
![]() |
#50 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,894
|
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 ![]() |
![]() |
![]() |
#51 |
Zone Friend
Join Date: Apr 2006
Location: Gothenburg/Sweden
Age: 48
Posts: 347
|
|
![]() |
![]() |
#52 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,097
|
That wasn't quite my intention ;P. I wouldn't accept any $$$ for this kind of work for a number of reasons.
|
![]() |
![]() |
#53 | ||||
Moderator
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,759
|
Quote:
![]() Quote:
Quote:
Quote:
|
||||
![]() |
![]() |
#54 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,894
|
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. |
![]() |
![]() |
#55 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,097
|
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 |
![]() |
![]() |
#56 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,894
|
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.
|
![]() |
![]() |
#57 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,894
|
@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. |
![]() |
![]() |
#58 |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 56
Posts: 2,129
|
|
![]() |
![]() |
#59 |
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,097
|
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.
|
![]() |
![]() |
#60 |
Zone Friend
Join Date: May 2006
Location: France
Posts: 1,894
|
It give odd error directly using Devpac in 68000 settings.
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
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 |
|
|