Zap Disassemble
Bryan Hogan (339) 593 posts |
Or because they don’t have the problems? Zap is probably the only program that has always been present on my iconbar for the past 25+ years and I’ve never had any issues with it. However I haven’t yet used it on the newest hardware (Pi3,Ti,etc) and I don’t really do any programming these days so won’t be exercising some of its more interesting features! I get the impression a lot of the bugs are in the add on mode modules rather than the core? |
nemo (145) 2556 posts |
+1 |
Steve Pampling (1551) 8172 posts |
Zap is probably the only program that has always been present on my iconbar for the past 25+ years and I’ve never had any issues with it. Ah, yes. Now where have I heard the “it never caused me any problems” refrain before? On which line of thought I have actually wondered whether if I was to use a clean (zero page clean) version it would behave. |
Jan-Jaap van der Geer (123) 63 posts |
Not sure if this is new but I am seeing Abort on datatransfers (at &0003440c) when I press shift-arrow-right in a text window. Does anyone else see this? |
David Pitt (3386) 1248 posts |
Yes with tim-01 but not with tnk-11. |
Colin Ferris (399) 1818 posts |
Which version of RO/Zap are you using? Are you using ’Rick’s’ version? For ’Rick – it would be nice if editing a source file Text – clicking on Ctrl/Right Arrow key would respond like in a ARM code file and be able to jump ie like a Goto line. ie like in your Windows ARM file viewer. [edit] Or for Fred – with ref to !StrongEd. |
Rick Murray (539) 13850 posts |
I’ve just tried this in normal text mode and C mode (using rick-04 build), and the cursor skips word to word as expected. Were you using normal text mode or something else? What was on the line where the cursor was, and where was the cursor at the time?
Probably not, for two reasons. The first is that I’m not that au fait with how Zap does things internally; and the second much bigger problem is the issue of extracting the label and then knowing where to go. Code mode is simpler, it’s an address reference which can be easily bounds checked… |
Jan-Jaap van der Geer (123) 63 posts |
I was in C mode but I saw it in another mode as well, I think that was a message file, this has some kind of mode as well I think.
Hm, I don’t really recall. I think maybe when I was in the message file there were no spaces in the line, that may be a slightly special case when trying to jump to the next word. But I’m somewhat guessing now. I’m not planning to be near a powered up RISC OS machine this weekend, so it will probably be monday at the earliest I can answer your questions with some more confidence. |
Jan-Jaap van der Geer (123) 63 posts |
I was on the rick-03 build. |
Colin Ferris (399) 1818 posts |
Sometime back with a older version of !Zap – it used to get taken out by some Text ‘Messages’ files. |
Fred Graute (114) 645 posts |
StrongED already supports jumping to labels/function definitions. For most modes this is tied to c-G (searches current text) and cs-G (searches all texts). There’s also a toolbar icon (showing two footprints), click on it with Select (current text) or Adjust (all texts). |
Rick Murray (539) 13850 posts |
In Zap, if the mode is a programming one, Ctrl-Shift-H will generate a list of headers (or labels if assembler). You can use that to jump around functions. Or F4 to search. Remember it’s a simple option on the left of the window to search all files, and a tick box upper middle to list all of the matches in a window. I use this a lot when rummaging in the RISC OS sources. Oh, an that list of matches window? Double click an item to jump to it in the editor, treble click and item to bring the window to the front and jump to the appropriate line (works the same with throwback, BTW). Not that I’m using Zap right now… https://www.youtube.com/watch?v=jvto_DF86aI |
Matthew Phillips (473) 721 posts |
I can help with the Perl, but are you building it on RISC OS or Linux? It seems to have make files for either. The Perl is just taking the lists of elements or entities and outputting some source code, I guess, to be compiled into the mode. |
Rick Murray (539) 13850 posts |
Building on RISC OS. |
Tristan M. (2946) 1039 posts |
In C++ uap, pressing the tab key at the end of the line, and some other conditions I couldn’t quite work out causes undefined instruction at &00038314 |
David Pitt (3386) 1248 posts |
What version of Zap? This seems good here, http://heyrick.ddns.net/files/zap-rick04.zip |
Rick Murray (539) 13850 posts |
There was something a bit nuts in the Tab code… https://www.heyrick.co.uk/blog/index.php?diary=20180501 |
nemo (145) 2556 posts |
“nero”? |
Rick Murray (539) 13850 posts |
<facepalm> That’s what happens when you sit out in the sun (re. previous video) and write the draft version on an Android phone… You don’t catch all of the times the autocorrect turns what you wrote into what it thinks you meant to write… It’s embarrassing to get a name wrong and not catch it in the read-through. Fired up the PC just to fix that. Done. Sorry again. |
Colin Ferris (399) 1818 posts |
Emperor Nero (latin for black?) I seem to remember in the early version of !Zap – you could easily search for Hex numbers? Should this be possible now – with the latest version? &FFF00000 |
Rick Murray (539) 13850 posts |
How do you mean? Can it not find them via normal search? Just omit the & prefix if the file in question uses a different protocol (‘h’ suffix, “0x” prefix, etc). |
Steve Pampling (1551) 8172 posts |
Slightly more megalomaniac1 than Nemo.
“Autodumb” is one of my descriptions2. Damned things auto alter a valid word because their makers were too under-educated to know the one I wanted. 1 Label used by lesser species to describe people of greater talent or worth. :) |
Colin Ferris (399) 1818 posts |
Load a module ‘ARM Code’ – say Internet – and try and search for a Hex number. |
Colin Ferris (399) 1818 posts |
I was wondering if anyone wrote a module like ‘swi PrintPC’. That would print out the pc address at the top left of the screen – without upsetting flags and regs. ie if the computer locks up – there is a record of where the ‘PC’ was last at. If the computer is still running – saving the ‘PC’ to the free for all memory under &8000 – as suggested before – is there a good choice of memory – that the OS doesn’t use? |
nemo (145) 2556 posts |
As if that could be possible.
I have a module called WriteReg that has the following SWIs:
Write_X must be the most self-referential SWI ever written, as its only purpose is to tell whether you called Write_X or XWrite_X (which is cleverer than it sounds). Actually Write_R9-Write_R14 are pretty clever too. |