Compass for dummies

Door The Apeman

Master (165)

afbeelding van The Apeman

22-05-2021, 20:30

I'm following the awesome ChibiAkumas course of cross platform Z80 programming, but it uses WinAPE because of its integrated assembler/debugger, so I wanted a to do a Hello World on MSX with Compass 1.2. and I found https://www.msx.org/wiki/Z80_Assembler_for_Dummies, so I tried to build the first of those samples.

Assembling passed, reporting a start at #0100 and end at #0115, so I did Go and filled out #0100, but all I get is a black screen and the assembly window returns. When I put a breakpoint at #0100 (or #0103) it doesn't stop at all. When I do a Assemble to Disk, I get a file called hello.com of 22 bytes that says "Hello World!" when I start it.

Compass tells me the Hello_TXT label lives at #0109, but when I go to that address in the monitor, I would expect that text to appear in the rightmost column, but it doesn't. Perhaps I'm in the wrong memory page? In that case, how do I check this and go to the right one? I'm not using MemMan.

Most of Compass seems pretty obvious, but perhaps if someone has a manual (or a PDF thereof) that would still be excellent (especially for the editor). But in any case when I want to use the debugger, I obviously need to start the code from inside Compass. Can someone tell me what I'm missing?

Also, when I start Compass, it calls me an Illegal user. Could it be locked functionality? I would love to pay but to whom?

Thanks for any help!

Aangemeld of registreer om reacties te plaatsen

Van AxelF

Champion (389)

afbeelding van AxelF

23-05-2021, 12:50

A quote from another topic (https://www.msx.org/forum/msx-talk/development/compass-debug...)

wouter_ wrote:

You first have to select RAM in page 0 (0x0000-0x3fff). You do this in the menu 'System > memory', then navigate to the 'memory page 0' section, press space, use cursor left/right to select the correct memory segment and press space again. IIRC you can save this setting via the menu 'Installations < Main install', so that you don't have to repeat this step next time you use compass.

Van The Apeman

Master (165)

afbeelding van The Apeman

23-05-2021, 21:22

Thanks!

Van The Apeman

Master (165)

afbeelding van The Apeman

24-05-2021, 11:18

In the memory window, the leftmost column tells me where the source is, so if I put Page 0 at the same numbers, the debugger window will indeed show my code, even if it is at 0100h. Thanks!

However, I don't think Compass is suited for DOS apps, because I still can't run it, much less debug it, while code starting at 8000h works fine.

Another reason my breakpoints weren't triggered is that they are only triggered when the code is started from the debugger window.

Van ducasp

Champion (462)

afbeelding van ducasp

24-05-2021, 15:13

I would recommend using either BlueMSX or OpenMSX to debug code... That is so, so, so much more powerful. There is no need to endure the pain of debugging on the local system unless it is something you can´t reproduce on Blue/Open MSX. Develop and test there, then you can make a final test on target real machines (as even though both emulators, but specially Open MSX, are really well made, there is always some corner case scenarios that might not pop up on the emulated machines). It really makes no sense in my mind to get the learning curve way more difficult by not adopting the wonderful possibilities and tools that Open MSX and Blue MSX debuggers add to your toolset. Wink