Rick's b.log - 2017/06/28 |
|
It is the 21st of November 2024 You are 18.191.202.48, pleased to meet you! |
|
mailto:
blog -at- heyrick -dot- eu
Something that might require a little bit of explanation is the unofficial hijacking of a CMOS RAM byte. In this very specific case, the CMOS RAM byte allocated to the Twin editor.
Rationale for CMOS use: Because of how REdit was written and how it is expected to work, when it starts we only know two things for certain. We know that it's a version of RISC OS, and we know that there is some sort of filesystem. We know both of these because the editor was, in fact, loaded.
Rationale for using TWIN byte: CMOS RAM bytes are in short supply. I simply wouldn't even ask for a CMOS RAM allocation, not for something "niche" like this. As TWIN is sort of along the same lines as REdit, only much older and much less likely to be in use, I felt that it was an ideal candidate for appropriation.
Disagree? Still use TWIN? The solution is simple - don't press F10! Then the settings won't be saved. REdit will always start with the most logical/sensible default settings, so if you're happy with Insert mode and Special Characters not visible, you don't need to save the settings, that's how it will start each time.
I've been asked about a DOS version. While such a thing is not impossible, it is extremely unlikely. Why? The code is very much tied to the RISC OS API, the BBC-style VDU system and keyboard handling, and there is frequent use of in-line assembler throughout. The
REdit v0.03
I've made some modifications to my simple little text editor for RISC OS.
TWIN predates RISC OS, and while 32 bit versions may exist, it isn't something that is commonly used. As such, I have appropriated the CMOS RAM byte for REdit.
However, this process is not automatic. You must press F10
to save the settings, and if the byte has not previously been used by REdit, you will be asked if you wish to save the settings to CMOS RAM.
And, as it happens, that is all that we need. We cannot make further assumptions. We may be running before system boot. We may be running on Pico. We can't depend upon Choices even existing on the filesystem, never mind having been 'seen' by it.
CMOS RAM use:
Byte 8: TWIN : Bit 0 : 0 = MODE 0
1 = MODE 3
Bits 1-2 : 0 = Plain view
1 = "Time" view
2 = "Keys" view
3 = "Description" view
Bits 3-7 : Undefined
REdit: Bit 0 : Overwrite (0) or Insert (1, default) mode
Bit 1 : Display special characters if set (default = 0)
Bits 2-6 : Undefined (zero)
Bit 7 : Guard bit (set to indicate REdit, not TWIN)
#ifdef
sections for DOS or RISC OS would turn the source into a giant hulking mess. You might ask - why didn't I design the program with system specific parts in a separate bit of that could simply be replaced as necessary? It's a good question for a multi-platform executable, however REdit was, from the very first line of code, intended to be a RISC OS specific project, and absolutely no attention was paid towards making a light and simple editor that can work on other systems. There are, already, plenty of nice lightweight editors for DOS. I'm sure Google will help you find them...
(in case you hadn't guessed, that's a no)
Rob, 29th June 2017, 20:57 But will you do a version for a BBC Micro + 2P ?
I used to use Twin a lot, BITD. Having two things open at the same time (hence it's name) was pretty revolutionary!David Pilling, 30th June 2017, 02:23 I was a Twin fan. Until it would no longer run because of the hardware - Iyonix I guess. Everything I wrote I did with Twin. It was written by Sophie Wilson, and I recall the live Micronet session where he answered questions and said he'd just written a new editor.
Anyway I would be interested if anyone has done a 32 bit version, because I was supposed to be doing that - no chance now. I passed the project on to someone but also no chance now.David Pilling, 30th June 2017, 02:26 Sorry for not talking about the main event - Redit. I'd be surprised if other things had not taken over the Twin CMOS byte.
© 2017 Rick Murray |
This web page is licenced for your personal, private, non-commercial use only. No automated processing by advertising systems is permitted. RIPA notice: No consent is given for interception of page transmission. |