News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_roudoudou

ACE for Linux,Mac, Windows

Started by roudoudou, 06:30, 27 October 23

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Fessor

Is there a limitation in the debugger regarding the number of symbols it can display or process? From an unknown point onwards it does not resolve the symbol data.
2526 symbols are passed in the .rasm file
You cannot view this attachment.

roudoudou

Quote from: Fessor on 07:16, 09 June 24Is there a limitation in the debugger regarding the number of symbols it can display or process? From an unknown point onwards it does not resolve the symbol data.
2526 symbols are passed in the .rasm file
You cannot view this attachment.
no limitation, so i guess your symbols are not located in the same memory space
in "precise location" mode, labels must be to the exact location they were assembled
you can change the "Strictly respect label location with RASM symbol file" in the Miscellaneous options

that said, sometimes it's not possible to use symbol where they were declared because you want to copy a code from ROM to RAM
so i added some label options to RASM => http://rasm.wikidot.com/label:labels

Export labels
Since version 2.1, rasm is exporting chunks and special symbol files to work with the ACE emulator.
Exported labels are precisely positioned in the emulator (in RAM if declared in RAM, in ROM if declared in ROM).
However, you may need to relocate code (necessarily in RAM) from ROM.
It is therefore possible to declare labels as local (global by default) when they are relocated, in order to see them in the emulator
LABEL LOCAL ; all following labels will be considered in the 64K addressable space
LABEL GLOBAL; all the following labels will be considered at their compilation location

When assembling single files or from temporary spaces (using BANK without memory specificity), you can assign the current temporary space a precise location for the emulator
LOCALISATION RAM,4 ; all space labels will be assigned on page 4 of RAM
LOCALISATION ROM,LOWER ; all space labels will be assigned on Lower ROM
LOCALISATION ROM,14 ; all space labels will be assigned on ROM 14


i cant say more without seing the definition of your missing symbols in the rasm file (it's a text file), tell me if you have still trouble (and give me more informations)
My pronouns are RASM and ACE

Fessor

I use a single large assembler file in which I have several ORGs to assemble routines in different areas. At first I simply defined "LABEL LOCAL" in the header of the file because the code only assembles over the normal 64k address range. I had not expected or thought that the ORG statements would limit "LABEL LOCAL". I had relied too much on the description of the 64k address range.

With "LABEL GLOBAL" all labels are now displayed.

roudoudou

Quote from: Fessor on 11:36, 09 June 24I use a single large assembler file in which I have several ORGs to assemble routines in different areas. At first I simply defined "LABEL LOCAL" in the header of the file because the code only assembles over the normal 64k address range. I had not expected or thought that the ORG statements would limit "LABEL LOCAL". I had relied too much on the description of the 64k address range.

With "LABEL GLOBAL" all labels are now displayed.
i read again the documentation, i think i switch the definitions, ooops :picard:
My pronouns are RASM and ACE

ago

Is there a full screen option???

I cannot find it ???

roudoudou

Quote from: ago on 13:37, 11 June 24Is there a full screen option???

I cannot find it ???


nope, do not want to spend my time on windows troubles (+there is kind of impossibility to intercept special keys without OS specific code => again, 3x the dev time)
My pronouns are RASM and ACE

ago

Quote from: roudoudou on 14:50, 11 June 24
Quote from: ago on 13:37, 11 June 24Is there a full screen option???

I cannot find it ???


nope, do not want to spend my time on windows troubles (+there is kind of impossibility to intercept special keys without OS specific code => again, 3x the dev time)

Cool, I just wanted to double check. I wasn't aware of this kind of windows troubles, never had to deal with it, so I learned something new today :laugh: . Thanks for your work on this, really nice emu!!

Fessor

A small wish list:
Graphics Explorer:
If you select in Econding: Screen that the setting of R12/R13 is used for the address instead of always using 0xc000 as standard. (And perhaps also a switch that allows the graphical representation and address to dynamically follow R12/R13 so that you can always see what the crtc is pointing to)

Tracer/Disassembling Explorer and RASM.
Winape allows you to mark address ranges as data ranges and then displays the corresponding bytes not as opcodes but as data directives. It would be nice if ACE could do that too. On the one hand, manual marking in ACE but, as an extension and improvement of the interaction with RASM, with -rasm, the data addresses and types of the declarations are passed in the .rasmfile so you can get an almost 1:1 representation of the source code in ace.

roudoudou

Quote from: Fessor on 23:01, 11 June 24A small wish list:
Graphics Explorer:
If you select in Econding: Screen that the setting of R12/R13 is used for the address instead of always using 0xc000 as standard. (And perhaps also a switch that allows the graphical representation and address to dynamically follow R12/R13 so that you can always see what the crtc is pointing to)

Tracer/Disassembling Explorer and RASM.
Winape allows you to mark address ranges as data ranges and then displays the corresponding bytes not as opcodes but as data directives. It would be nice if ACE could do that too. On the one hand, manual marking in ACE but, as an extension and improvement of the interaction with RASM, with -rasm, the data addresses and types of the declarations are passed in the .rasmfile so you can get an almost 1:1 representation of the source code in ace.
nice suggestions, thanks

about the 1:1 representation, i thought about this a long time ago but this will need a bigger window or slides. Do not want that in trace but it can be an option for disassembling window
My pronouns are RASM and ACE

roudoudou

it's coming...

but it will need more than that to fully explain how to use it


My pronouns are RASM and ACE

Fessor

I'm very curious. These functions could really help me with my project right now.

Prodatron

I wonder if a performance profiler feature could be added to the debugger.

In the most simple way...
- you would just mark a code area (start, end, banking config)
- define a breakpoint
- reset two cycle counters and run the emulation

The first cycle counter is always increased, the second cycle counter is only increased inside the marked code area.

When you reach the breakpoint, you can check both cycle counters and have an understanding how much % of the total CPU time was used inside the marked code.
That would be great to identify, for which routines an optimization would make sense or not, if you have a more complex program flow.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

roudoudou

Quote from: Prodatron on 12:27, 28 June 24I wonder if a performance profiler feature could be added to the debugger.
there is already a mecanism like that in the breakpoints with min and max since last breakpoint (you set breakpoints as watcher to not break) and place breakpoints at strategic locations

My pronouns are RASM and ACE

Prodatron


GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

selethomass345

Hi,
Thanks for sharing this information.

Powered by SMFPacks Menu Editor Mod