I just wanted to thank you so much for this new version. It's very very useful!!!
One thing I would like to propose, about showing symbols in ASM debugger: The NOI support is great, and I think it could be taken one step further for C developers: Supporting .lst files as well.
Loading the .NOI first, and then the .lst, you could show the C code at the memory address it is loaded, because the .lst file has the relative address of every single line of code (and symbols). Loading the .NOI you would have the absolute addresses for symbols, and loading the .LST after, the absolute address of the lines of code could be calculated.
An example:
In .NOI file we have:
DEF _run 0xC81
DEF _main 0xCF7
In .LST file, we have:
59 ;src/main.c:21: void run() {
60 ; ---------------------------------
61 ; Function run
62 ; ---------------------------------
0000 63 _run::
0000 DD E5 [15] 64 push ix
0002 DD 21 00 00 [14] 65 ld ix,#0
0006 DD 39 [15] 66 add ix,sp
0008 21 F9 FF [10] 67 ld hl,#-7
000B 39 [11] 68 add hl,sp
000C F9 [ 6] 69 ld sp,hl
70 ;src/main.c:24: fdc_drive = fdc_getCurrentDrive();
000D CDr00r00 [17] 71 call _fdc_getCurrentDrive
0010 FD 21r00r00 [14] 72 ld iy,#_fdc_drive
0014 FD 75 00 [19] 73 ld 0 (iy),l
74 ;src/main.c:26: setDiskType(System);
0017 AF [ 4] 75 xor a, a
0018 F5 [11] 76 push af
0019 33 [ 6] 77 inc sp
001A CDr00r00 [17] 78 call _setDiskType
001D 33 [ 6] 79 inc sp
80 ;src/main.c:27: readDirectory();
001E CDr00r00 [17] 81 call _readDirectory
82 ;src/main.c:29: initVideo();
0021 CDr00r00 [17] 83 call _initVideo
84 ;src/main.c:31: drawScore();
0024 CDr00r00 [17] 85 call _drawScore
Each line of code absolute address could be calculated as: (line in the rel file - line for the current reference symbol) + absolute address for reference symbol.
In the previous example, the reference symbol could be "_run", which is in absolute address 0x0C81 (in NOI file). So the lines of code would be at addresses:
59 ;src/main.c:21: void run() {
60 ; ---------------------------------
61 ; Function run
62 ; ---------------------------------
0000 63 _run::
Address = 0000, so the abolsute address is 0x0C81 + (0000 - 0000) = 0x0C81.
70 ;src/main.c:24: fdc_drive = fdc_getCurrentDrive();
000D CDr00r00 [17] 71 call _fdc_getCurrentDrive
[/size]Address = 000D, so the absolute address is 0x0C81 + (000D - 0000) = 0x0C8E
[/size]And so on...
[/size]What do you think? This would be invaluable for C development debugging!
[/size]And... as there will be multiple .lst files, it would be nice to be able to select a directory that holds both the .noi AND the .lst files...