Solution: MASTER SPY without covering whole screen (no other progs visible)
Solution: MASTER SPY without covering whole screen (no other progs visible)
I want besides MicroEMACS (the most powerful editor for the QL) another small editor. Albeit I formerly (20 years ago) used Metacomco ED (or) compatible editors like The Editor or Jan's QED, I now don't know the commands anymore. So I want an editor with optional menus.
On QPC2 I normally used Ralf's S_EDIT, but this does not work on Minerva and the old version, which is compatible with Minerva, cannot be repositioned. I formerly (20 years ago) was happy with MASTER SPY (extremly fast, has menus via F3), but it's not usable anymore, cause it covers the whole screen (i.e. no other program windows, Button Frame visible). But now I have succeeded to use it :‑D
http://peter-sulzer.bplaced.net
GERMAN! QL-Download page also available in English: GETLINE$() function, UNIX-like "ls" command, improved DIY-Toolkit function EDLINE$ - All with source. AND a good Python 3 Tutorial (German) for Win/UNIX
GERMAN! QL-Download page also available in English: GETLINE$() function, UNIX-like "ls" command, improved DIY-Toolkit function EDLINE$ - All with source. AND a good Python 3 Tutorial (German) for Win/UNIX

Re: Solution: MASTER SPY without covering whole screen (no other progs visible)
What annoys me more than the window size (which is easily changed if you bother to read the manual) is that MasterSpy does not use default directories. If I get my head around it, I might develop a bodge that makes it do that - MasterSpy is such a nice editor that It would definitely be worth it.
ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
Re: Solution: MASTER SPY without covering whole screen (no other progs visible)
I have now tried to patch MasterSpy, so that it does not cover the whole screen, but didn't succeed. What I have found in the manual Section 11 is:
"1. Supported screen resolutions now include: 512 x 256. 512 x 288.512 x 384. 512 x 480. 640 x 200. 640
x 288,640 x 320, 640 x 350, 640 x 480, 768 x 288, 768 x 384, 768 x 480, 768 x 576, 800 x 600, 1024 x
288, 1024x480, 1024 x 512, 1024x576, 1024x768, 1152 x 864. 1152x882,1280x 1024, 1600 x
1200.1600 x 1280. 1880 x 1410. 1880 x 1440. and 2048 x 1536.
2. The screen mode is no longer automatically changed to mode 0 (4 colours) unless you request this (
check the Parameter List for flag CH )
3. The first window is now set to open to the full size of the available screen by default. you can overide
this by changing the dimensions in the Parameter List."
But in the Parameter List there is no parameter for the screen size. What I have tried (wanted to use 512x480): I changed all resolutions in the binary file (they are all near the top of the file) after the 512x480 to 512x480 (of course I changed the length byte before (to 15), and changed the bytes not used after it to 0 (for those resolutions which originally where longer than 15 bytes). I checked it a second time, that I does'nt have had a typo. But after these changes MasterSpy didn't start anymore.
"1. Supported screen resolutions now include: 512 x 256. 512 x 288.512 x 384. 512 x 480. 640 x 200. 640
x 288,640 x 320, 640 x 350, 640 x 480, 768 x 288, 768 x 384, 768 x 480, 768 x 576, 800 x 600, 1024 x
288, 1024x480, 1024 x 512, 1024x576, 1024x768, 1152 x 864. 1152x882,1280x 1024, 1600 x
1200.1600 x 1280. 1880 x 1410. 1880 x 1440. and 2048 x 1536.
2. The screen mode is no longer automatically changed to mode 0 (4 colours) unless you request this (
check the Parameter List for flag CH )
3. The first window is now set to open to the full size of the available screen by default. you can overide
this by changing the dimensions in the Parameter List."
But in the Parameter List there is no parameter for the screen size. What I have tried (wanted to use 512x480): I changed all resolutions in the binary file (they are all near the top of the file) after the 512x480 to 512x480 (of course I changed the length byte before (to 15), and changed the bytes not used after it to 0 (for those resolutions which originally where longer than 15 bytes). I checked it a second time, that I does'nt have had a typo. But after these changes MasterSpy didn't start anymore.
http://peter-sulzer.bplaced.net
GERMAN! QL-Download page also available in English: GETLINE$() function, UNIX-like "ls" command, improved DIY-Toolkit function EDLINE$ - All with source. AND a good Python 3 Tutorial (German) for Win/UNIX
GERMAN! QL-Download page also available in English: GETLINE$() function, UNIX-like "ls" command, improved DIY-Toolkit function EDLINE$ - All with source. AND a good Python 3 Tutorial (German) for Win/UNIX

Re: Solution: MASTER SPY without covering whole screen (no other progs visible)
This is probably the only program for the QL that can be configured this way. An INI file would have been more effective here. Not to mention CONFIG.
7000 4E75
Re: Solution: MASTER SPY without covering whole screen (no other progs visible)
Note there is a reason why MasterSpy wants the whole screen: It is a multi-window text editor, and basically uses the whole screen as a desktop, offering multiple windows that can edit multiple files at the same time. This would obviously not work well (especially not with the PE) if the console is only of limited size. Press "<ctrl>"V" to open a new view and <F4> to resize and move the view, <CTRL>"Z" to close a view. MasterSpy effectively creates its own window manager without PE - that is why. (MasterSpy is a relatively early QL program and was released before the PE had got a foothold)
If you don't like this, you should use the less sophisticated "Spy" editor which has approximately the same feature set but without multiple window support (Spy can also edit multiple files at the same time, but shows them in the same window).
If you absolutely want to patch the program to use a smaller "root window", only changing the console names is not enough. You need to change the assignment to the x and y resolution variables as well.

If you don't like this, you should use the less sophisticated "Spy" editor which has approximately the same feature set but without multiple window support (Spy can also edit multiple files at the same time, but shows them in the same window).
If you absolutely want to patch the program to use a smaller "root window", only changing the console names is not enough. You need to change the assignment to the x and y resolution variables as well.
- Change only the first console name to your liking (in my version, this is at offset $228), for example "CON_512x256a0x0". Don't forget to adapt the string length (to 15, in my example)
- Change the x resolution variable assignment for the first console size entry to the chosen x window size. (in my version, this is a word at offset $78c). Change this from $800 to your chosen x size (in my example, $200)
- Change the y resolution variable assignment for the first console size entry to the chosen y window size (in my version, this is a word at offset $792). Change this from $600 to your chosen y size (in my example, $100)

ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
Re: Solution: MASTER SPY without covering whole screen (no other progs visible)
Okay I see the advantage (I think i understand what you mean). But I think this must not be used so often (of course it's great!). But what IMHO more often is needed is something like this (and that is possible with my trick, and it seems to work):
BTW: Detected a bug in MasterSpy 3.3 (which as far as I can remember was not present in the version I have had used on my real Goldcard QL):
If you press a hotkey (e.g. my hotkey to wake the Wake menu), it does not work in MasterSpy. If you press it multiple times, you may have "luck" (the Wake menu comes up). Afterwards MasterSpy has crashed. Cursor Up/Down keys do not work correctly, some keys give strange results, ...
Tested on UQLX under WSL2 on Windows (Ubuntu) with Minerva.
And one improvement would be, if the Window of MasterSpy would not fill the whole screen but would leave at least the Button Frame and the Sysmon visible at top.BTW: Detected a bug in MasterSpy 3.3 (which as far as I can remember was not present in the version I have had used on my real Goldcard QL):
If you press a hotkey (e.g. my hotkey to wake the Wake menu), it does not work in MasterSpy. If you press it multiple times, you may have "luck" (the Wake menu comes up). Afterwards MasterSpy has crashed. Cursor Up/Down keys do not work correctly, some keys give strange results, ...
Tested on UQLX under WSL2 on Windows (Ubuntu) with Minerva.
http://peter-sulzer.bplaced.net
GERMAN! QL-Download page also available in English: GETLINE$() function, UNIX-like "ls" command, improved DIY-Toolkit function EDLINE$ - All with source. AND a good Python 3 Tutorial (German) for Win/UNIX
GERMAN! QL-Download page also available in English: GETLINE$() function, UNIX-like "ls" command, improved DIY-Toolkit function EDLINE$ - All with source. AND a good Python 3 Tutorial (German) for Win/UNIX

Re: Solution: MASTER SPY without covering whole screen (no other progs visible)
Unfortunately it seems, that 2 different jobs with different windows are not working. I have had misbehaviour in MasterSpy. With just one job (perhaps more, but with the same window size and position) it seems to work (to close the guardian window).
http://peter-sulzer.bplaced.net
GERMAN! QL-Download page also available in English: GETLINE$() function, UNIX-like "ls" command, improved DIY-Toolkit function EDLINE$ - All with source. AND a good Python 3 Tutorial (German) for Win/UNIX
GERMAN! QL-Download page also available in English: GETLINE$() function, UNIX-like "ls" command, improved DIY-Toolkit function EDLINE$ - All with source. AND a good Python 3 Tutorial (German) for Win/UNIX

Re: Solution: MASTER SPY without covering whole screen (no other progs visible)
I see, that you EXEC Masterspy twice. Have you tried to load it as a Thing then start it twice with a hotkey, so to just exec the code one time?
7000 4E75
Re: Solution: MASTER SPY without covering whole screen (no other progs visible)
Not yet. But if it fails when started 2 times with ex ... it would IMHO most probably fail, if I start it as a thing (where the code is only loaded once). I'm happy that I can start it once and then close it's guardian window, which seems to work (you can load multiple files, even multiple views for the same file). Would be nice if SEDIT could be used with Minerva, would have the advantage, that the window could be repositioned at any time. With my trick you must first position the MasterSpy window first, then close the guardian window. After that you MUST NOT reposition/resize the MasterSpy window(!) with F4.
BTW: I don't know if MasterSpy is reentrant (can e.g. be HOT_CHPed without the "I"[gitit] option), but I think it is.
BTW2: Would be interessting what Compiler was used by PSION, cause the Psion Office programs where all reentrant and are written in C. AND they are larger than 32 KByte, which IMO is the limit for reentrant programs written with EJC (albeit here I'm not absolutely sure). Is XCHANGE also reentrant? Never tested it (IMHO not necessary, as it can handle multiple files).
BTW: I don't know if MasterSpy is reentrant (can e.g. be HOT_CHPed without the "I"[gitit] option), but I think it is.
BTW2: Would be interessting what Compiler was used by PSION, cause the Psion Office programs where all reentrant and are written in C. AND they are larger than 32 KByte, which IMO is the limit for reentrant programs written with EJC (albeit here I'm not absolutely sure). Is XCHANGE also reentrant? Never tested it (IMHO not necessary, as it can handle multiple files).
http://peter-sulzer.bplaced.net
GERMAN! QL-Download page also available in English: GETLINE$() function, UNIX-like "ls" command, improved DIY-Toolkit function EDLINE$ - All with source. AND a good Python 3 Tutorial (German) for Win/UNIX
GERMAN! QL-Download page also available in English: GETLINE$() function, UNIX-like "ls" command, improved DIY-Toolkit function EDLINE$ - All with source. AND a good Python 3 Tutorial (German) for Win/UNIX

Re: Solution: MASTER SPY without covering whole screen (no other progs visible)
Wouldn't help you much unless you had a DEC VAX at home - Psion reportedly cross-compiled their 68k software there.ql_freak wrote: Thu Aug 07, 2025 11:25 pm BTW2: Would be interessting what Compiler was used by PSION, cause the Psion Office programs where all reentrant and are written in C. AND they are larger than 32 KByte, which IMO is the limit for reentrant programs written with EJC (albeit here I'm not absolutely sure). Is XCHANGE also reentrant? Never tested it (IMHO not necessary, as it can handle multiple files).
ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO