Status of Zap
Steve Drain (222) 1620 posts |
I cannot emphasise how easy this is compared to all other methods of generating BASIC throwback, and I have written some myself, including Basalt’s |
Steve Drain (222) 1620 posts |
A man after my own heart, or more correctly, the other way round. ;-) |
Steve Drain (222) 1620 posts |
Looking back to before I could use Reporter, I sometimes had this quite simple error routine: DEFPROCerror:REM main error routine - throwback ON ERROR OFF SYS"XDDEUtils_ThrowbackStart" SYS"DDEUtils_ThrowbackSend",1,,$(PAGE+6),ERL,1,STR$ERR+" "+REPORT$ SYS"XDDEUtils_ThrowbackEnd" END Originally this was used with DDEUtilsCy from 1995, until I had the official DDEUtils. |
GavinWraith (26) 1563 posts |
That was the sticky fingers consideration. I think a lot of people forget that the educational environment was a significant factor in the design of RISC OS, so much has the world changed since then. Many facilities were unaffordable then. Large quantities of RAM in particular. |
Alan Adams (2486) 1149 posts |
That cannot happen. StrongEd behaves as if the line number increment is 1, and BASIC does the same so the numbers match. |
Rick Murray (539) 13840 posts |
Both common and often quite easy. At college the network was a crappy bunch of Nimbus 286 machines hooked to a 10base2 setup administered by twats 1. It was “down” often as much as it was up. Later I got TurboC, which was like TP for grown ups. ;-) 1 Absolutely no love loss here. I was banned from the network for “playing games”, they even had a date and time. Might have been almost convincing had they not picked the day I bunked off to go to Wells to get a copy of ARCbbs from Hugo. But, alas, trying to get that sorted out was a Kafkaesque mess of people saying “not me, see him”. In the end I filed a formal complaint with the local council (sod running in circles, who is your boss’s boss’s boss? right, I’m talking to her…). |
Chris Hall (132) 3554 posts |
That cannot happen. StrongEd behaves as if the line number increment is 1, and BASIC does the same so the numbers match. StrongEd is therefore useless to me. I number my lines in increments of 10 so that I can add lines without affecting the numbering of the other lines. That is how I was taught to use BASIC in 1972 and I see no reason to change. Where I have more than 6500 lines, I drop to an increment of 5. Where I have more than 65536 lines, I number each line as zero. |
GavinWraith (26) 1563 posts |
Most impressive. I wonder whether anybody has implemented versions of BASIC that use floating point line numbers? You would always be able to insert new lines between old ones, with never any need to renumber. Of course line numbers are ordinals rather than cardinals – they measure an ordering rather than the size of anything. It would be quite feasible for implementors to venture further up the ordinal hierarchy. With a big program, if you wanted a line number allowing an indefinite number of yet-to-be-written lines to precede it you could number it as omega and … well you know where that can lead. For myself, even when I started using BASIC (1978?) I avoided line numbers if I could. Now text colour, as a semantic element of programs, that would be much more to my taste. What about background music? There must be some beazer possibilities there, surely? |
Clive Semmens (2335) 3276 posts |
Logically, not quite. Unless you allow unlimited precision floating point… 8~) |
GavinWraith (26) 1563 posts |
True. I was thinking of real numbers. FORTRAN and BASIC got it in the neck from some quarters for confusing things that did not need to be confused. Booleans with numbers, text-editing with program structure, to name but two. But behind the kidding there is a point. Elementary arithmetic gets it in the neck, too, for confusing different kinds of number. I never could accept, at kindergarten, that the two in two apples was the same as that in two pears . And that was at least half a century before I heard about type theory . Ex oribus infantium, but I needed special coaching in mental arithmetic. |
Clive Semmens (2335) 3276 posts |
We’ve just received a video of our 19 month old grandson proudly pointing to a bold sans serif 1 (one) on an envelope and a light serif 1 (one) in his “reference manual” and announcing, “Same! It’s a one!” |
Rick Murray (539) 13840 posts |
Um, Chris…
Followed immediately by:
So there’s no reason to change unless there’s a reason to change? That’s a logic flaw right there.
Oh, FFS. Fred will tell you that I’m a die-hard Zap fan so have no reason whatsoever to support StrongEd, however I couldn’t believe that an editor with the scope of possibilities as offered by StrongEd couldn’t manage to sort out line numbers sensibly. Iconbar → Choices. Options:
The last two? Easily increment of 10 starting with line 10. Or just don’t strip line numbers? [edit: just tried SE4.70, there are more options, but the ones I’ve mentioned are there] Is StrongEd a little more useful now? |
Rick Murray (539) 13840 posts |
Hmm… Don’t untick “Convert to Text”. The result is… not terribly useful. Oh, I see. StrongEd doesn’t have an obvious keypress to blind-load a file. What I mean – dragging a BASIC file to Zap will load it in BASIC mode. However dragging the file while holding Ctrl (either) will override the mode and load it as just pure data in text mode. |
Colin Ferris (399) 1814 posts |
Hmm – if you like Zap – just continue using it :-) |
Chris Hall (132) 3554 posts |
floating point line numbers? Including surds? |
Rick Murray (539) 13840 posts |
Just tried SE 4.70a13. Better. Once I had reconfigured the disassembly to look more like Zap and not all that garish white. A few thoughts.
By the way, I’ve found out how to change the condition codes to be uppercase (like they should be ;-) ), but how do I make this stick? It seems I need to Menu → Dump → Lowercase CCs every single time I load a file. |
Steve Pampling (1551) 8170 posts |
There’s a setting for that flashy stuff
But it’s not broken like ZapRedraw?
Sounds familiar, the answer may be yes – but I’m a touch tired and can’t be |
Steve Pampling (1551) 8170 posts |
Is that the stuff they use on lathes and milling machines or the brown stuff you flush? :) |
Steve Pampling (1551) 8170 posts |
Chris:
Really? Not a wind up, super troll exercise? You still haven’t clicked that unless you have something like GOTO in there the line numbers are irrelevant? Adding a line and knowing that everything in the program knows where everything else is? Just hit the return key when you’re at the right spot. Really, really, no one cares what line number it was, is now, or will be next week. Not even remotely cares. |
Colin Ferris (399) 1814 posts |
Long ADR Still broken in Zap (doesn’t ADD/SUB the value of the following instruction to get the correct address) Is this fault in Zap code – or external code? |
Fred Graute (114) 645 posts |
Thanks. You can switch to a white-on-black colour scheme using Global Choices > Display > Alternative colour scheme.
Not at the moment as the caret flashing is a global setting. However I do take your point that Dump might need an exception given the size of the caret.
Correct.
Hmm, might not be so easy to change or make optional as there’s other things that tie into this but definitely something to think about.
Yeah, bringing bitmap redraw up to ZapRedraw level is one of the bits I’m most proud of. Original code wasn’t that nice, lots of self-modification going on.
Yes, there is a link to StrongFont on the download page of the website. It will convert ZapRedraw or BDF font file to a StrongED font file (which is just a sprite really). It can also split a StrongED font file into a file with one sprite per character and vice versa (handy for modifying or creating a font). As an aside, there is a really nice BDF font called Spleen (available at various sizes). Its 16×32 variant seems very suitable for ex0,ey0 modes (ARMbok’s big mode).
No, I did look at Zap’s mode4 code but felt I’d probably end up copying too much from it to get this to work in StrongED so left it out for now.
Are you starting to get won over now? :-P
There is a cog icon on the toolbar. Click on that, set the options the way you want them then click on ‘Save as defaults’.
Besides the menu, you can also use c-O,c-C or the above mention cog icon. Thank for the feedback Rick. Some more food for thought. :-) |
Chris Hall (132) 3554 posts |
When I am debugging a programme I use a modified form of throwback, more a throwinto. I load the programme using !MultiTask and RUN it from there. It then operates as a multi-tasking application. When it produces an error it displays the error and quits. I then type MODE MODE to get a blank screen. I LIST the lines each side of the ERL and examine them on screen. This means that I can do things like PRINT !fred% as all the variables are still intact as well as all the memory. I add an intermediate line to help track down the bug and then RUN the programme again. I’ll also refer to a printout of the programme before any extra lines have been added. I also have some programmes that run on a machine with no monitor, keyboard or mouse and they either log the error to disc or show it on an OLED display. So when I edit the programme it is on a different machine after a night’s sleep to mull over the problem. I hardly ever fix the bug the same day that the error occurs. |
Colin Ferris (399) 1814 posts |
Fred is there a way of sorting out ‘Pointers Data Text etc’ automatically? Would if writing ARM code – putting TXT0 DAT0 POI0 at the beginning of each section help with automation? |
Fred Graute (114) 645 posts |
What do you mean with sorting out ‘Pointers Data Text etc’? The amount of analysis that StrongED can do is limited as it all has to be done during redraw. Quick annotations are fine but anything more in-depth may take too long. So whether it’s feasible or not depends on what you want exactly. Let me know and I can give you a more definitive answer. |