English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Coders. Asm / Hardware (https://eab.abime.net/forumdisplay.php?f=112)
-   -   AsmPro 1.19 (https://eab.abime.net/showthread.php?t=113003)

a/b 17 February 2023 23:39

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.

Photon 18 February 2023 02:01

Great initiative! :great

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 :great

oRBIT 18 February 2023 10:18

Quote:

Originally Posted by a/b (Post 1597272)
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!

kamelito 11 March 2023 15:17

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.

a/b 11 March 2023 15:30

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.

R4M 11 March 2023 20:06

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.

a/b 11 March 2023 20:57

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!

kamelito 21 April 2023 18:32

a/b it is time :) well you put a ? So who knows :)

a/b 21 April 2023 19:14

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)


kamelito 21 April 2023 20:35

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 :)

oRBIT 21 April 2023 22:05

Quote:

Originally Posted by a/b (Post 1611017)
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?

a/b 21 April 2023 22:49

That wasn't quite my intention ;P. I wouldn't accept any $$$ for this kind of work for a number of reasons.

Photon 22 April 2023 23:48

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

kamelito 23 April 2023 09:59

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.

a/b 23 April 2023 22:48

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


kamelito 24 April 2023 00:09

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 01 June 2023 22:21

@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.

Don_Adan 01 June 2023 23:20

Quote:

Originally Posted by kamelito (Post 1619920)
@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.

a/b 01 June 2023 23:31

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.

kamelito 01 June 2023 23:46

It give odd error directly using Devpac in 68000 settings.


All times are GMT +2. The time now is 01:56.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.04997 seconds with 10 queries