Is there a Task Window command repeat key
Pages: 1 2
Mark (2737) 44 posts |
Is there a key, in Task Window, to repeat the last command? Like the up arrow in Linux. Thanks in advance. |
David Feugey (2125) 2709 posts |
Yes, if you use StrongEd or Zap to open the Task Window. Surprise: it’s the up arrow too. |
David Pitt (102) 743 posts |
Nearly! The up arrow bit is supplied by the LineEditor module within |
Steve Pampling (1551) 8170 posts |
To be more explicit, make sure StrongED has been seen by the system so that it claims the Ctrl-F12 and make sure the LineEditor1 module is loaded to give you editing on the repeated command. The barebones edit is very barebones. 1 It’s in the Zap archives |
Mark (2737) 44 posts |
Thanks for you responses. Where are the Zap Archives? Do I type the RMLoad, or do I need to put it in an obey file? Where should I put the obey file? Sorry for all the questions but I’m still new to Risc OS. Thanks again. |
Mark (2737) 44 posts |
At this point is it important that I’m running on a Raspberry PI B+? Just mentioning it in case it is. |
Jon Abbott (1421) 2651 posts |
Just be aware that there is a bug in the latest 32bit version of the LineEditor Module (2.76d) which causes the VDU command that turns the cursor off to not work, as a consequence OFF in BASIC stops working. It doesn’t seem to affect OS_RemoveCursors though. It also causes register corruption with OS_ReadLine. I’m not sure if the one bundled with Zap suffers these issues. |
Steve Pampling (1551) 8170 posts |
Various ways of doing the job, but simply dropping the module into !Boot.Choices.Boot.Predesk will cause it to be loaded during the predesktop portion of the boot sequence. |
André Timmermans (100) 655 posts |
I don’t know about your issues but I remember at the time’s ROL released RISC OS 6 that the LineEditor module from the Zap 1.47 distro made a complete mess of the RO 6 desktop and one had to revert to an older version of the module. |
Mark (2737) 44 posts |
The last thing I want is to install buggy code. The up-arrow would be nice, but it’s just not worth the risk. If anyone knows of a bug-free version let me know. Thanks for your time and responses. |
Rick Murray (539) 13840 posts |
??? I’m using the one supplied with Zap (Tank’s version) on my Pi – can’t say I’ve noticed any particular problems. Granted, I’ve never tried to turn the cursors off, but I don’t think you can in a TaskWindow… |
Steve Pampling (1551) 8170 posts |
??? I think the problem is that, slightly confusingly, André mentioned that there were problems when used with RISC OS 6 and corruption of the desktop. Mark should note that it may well have been bugs in the OS rather than LineEditor.
Maybe in RO6? Maybe that is/was buggy? |
Mark (2737) 44 posts |
Jon Abbot mentions bugs without referencing RO6. He mentions register corruption with OS_ReadLine. Is Tank’s version the one at zap.tartarus.org? I assume I want the stable one not the beta version. Do I just need to copy LineEditor from !Zap.Code.Extensions.LineEditor into !Boot.Choices.Boot.Predesk? Thanks for everyone trying to help me. I really appreciate it. |
Jon Abbott (1421) 2651 posts |
It’s across all OS versions, essentially it corrupts R4 whenever the ReadLineV vector is called and may be why it fails on RO6. It’s easily fixed though, download the source code, find the ReadLineV section and add R4 to the STM/LDM surrounding it. Fixing OFF however isn’t so straightforward as this behaviour is down to the OS providing no means to determine the current cursor state, so the code ends up resetting the cursor on exit. I believe this is also why OS_SpriteOp 3 (*ScreenLoad) doesn’t preserve the cursor state when it forces a mode change for no reason – this was a “feature” introduced with RO3.5 and continues to this day. |
Mark (2737) 44 posts |
It’s easily fixed though, download the source code, find the ReadLineV section and add R4 to the STM/LDM surrounding it. I could make that kind of source change, but rebuilding the module is beyond me at this point. Thanks for the information. |
David Pitt (102) 743 posts |
I think it may be even easier than than that and also avoid the necessity of finding the source code. StrongED in Dump Mode can edit assembler instructions. I have done that here and added R4. As I have so far not worked out how to replicate the bug Jon referred to the change has not at this point been tested but the module still works and the Pi hasn’t exploded. Double click on the Module to load it into StrongED’s Dump Mode then select click on the ‘i’ leftmost icon in the top toolbar for the instructions. Zap can do something similar, see “Editing in binary modes” in the Help. Edit Have now found the original report which includes a test. |
Steve Pampling (1551) 8170 posts |
That original report contains the specific words:
RO5 is most definitely not 26 bit. End of problem or is it hiding better? |
Mark (2737) 44 posts |
Fascinating. I followed the link in the original report for LineEditor and downloaded it. I’ve opened it in StrongED in dump mode. What I can’t find is any labels to tell me where ReadLineV is. How do I find the lines that need editing? EDIT: I missed the post before this as I was posting. Does this mean that version of LineEditor is no good for RO5? |
Steve Pampling (1551) 8170 posts |
No, it means it has problems in certain circumstances on 26 bit OS versions. It doesn’t guarantee things, just eliminates that specific error circumstance and we don’t know of any others. |
David Pitt (102) 743 posts |
ReadLineV is a vector called by number, &0E in this case, with OS_Claim. See Vectors and OS_Claim
Not at all, there is a potential issue, as far as I could see with the OS_ReadLine test LineEditor 2.76d did not corrupt R4, but that does mean it never will.
R4 may appear not to be corrupted on OS5 but it isn’t preserved over the call either, so better safe etc. Hope this helps, otherwise just ask away. |
David Pitt (102) 743 posts |
For completeness this is Jon’s test as used here :- PRINT "Now type something followed by RETURN" DIM Z% 256 SYS "OS_ReadLine", Z%, 128, 32, 128, &1234 TO ,,,,E% PRINT ~E% END With an unmodified LineEditor :- *Help LineEditor ==> Help on keyword LineEditor Module is: Line Editor 2.76d (03 Mar 2003) [test version - don't distribute without permission] Olly Betts *R4test Now type something followed by RETURN something 1234 * |
David Pitt (102) 743 posts |
To add to any pre-existing confusion :-
R4 is not in the Exit list for OS_Claim so should be preserved, and R4 is listed as preserved over OS_ReadLine. |
Steve Pampling (1551) 8170 posts |
One question: plus the matching edit of line 4391 to pull back the same number of registers Or am I missing something? |
David Pitt (102) 743 posts |
Though I regard my answer to modify the stacking around the OS_Claim call to be a truly elegant solution to a problem that might not actually exist on OS5, there is just one small caveat, it didn’t work on OS4.39, R4 was still corrupted. It is the merest trifle but R4 actually, or possibly not on OS5, needs to be preserved around the code inserted at the vector, the address of which is given in the OS_Claim code, &3800, and it corresponding exit at &3888. All good on OS4.39 now! As I understand it the actual bug is in OS4.39, the ‘fix’ to LineEditor is a work around. All done in StrongED and done in seconds too, no searching for the source, no downloading the source and no recompiling. This method is obviously only good for simple over-writes, if it were required to add anything then that would alter the addressing and necessitating compiling from source. |
Mark (2737) 44 posts |
I put the LineEditor module into !Boot.Choices.Boot.Predesk, rebooted, and now the up arrow works in the StrongED CLI. I have no idea if R4 is being corrupted. I’m not sure I understand the basic test code given. Shouldn’t E% be set before the call to OS_ReadLine? I’ll try writing some assembler to test it when I get around to it. Thanks everyone for the depth and breadth of your replies. |
Pages: 1 2