Home » Archimedes archive » Micro User » MU 1991-04.adf » PD-Stuff » VDUSaver/SaverDoc
VDUSaver/SaverDoc
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Archimedes archive » Micro User » MU 1991-04.adf » PD-Stuff |
Filename: | VDUSaver/SaverDoc |
Read OK: | ✔ |
File size: | 4D0B bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
Documentation for VDU Saver Module V2.03 ---------------------------------------- ********************** Incredibly boring Copyright Notice ********************* * * * All program code is the exclusive copyright of Richard K. Lloyd. * * The program (source and binary) and documentation for VDU Saver are * * freely distributable and should not be charged for under ANY circumstances. * * * ******************************************************************************* Version V2.02 onwards --------------------- Due to the sterling work of people like Philip Colmer of Acorn, I have decided to make the source code of the VDU Saver publicly available. It's not a fantastic example of ARM code programming by any means, but it provides some useful tips (such as how to call lots of OS routines from inside interrupts with the minimum of fuss). Please, please, please report any bugs or improve- ments to the address at the bottom of this document - I will *not* support 'hacked' versions that I don't know about. Installing VDU Saver (Now requires RISC OS) ------------------------------------------- Because VDU Saver is a relocatable module, you can install it by typing *VDUSaver, assuming that you have sufficient RMA available and the filetype is set to Module. To activate it once it is installed, type *VDUSaver [params]. This * command is explained in greater detail later in this document. So what does VDU Saver do ? --------------------------- Acorn standard 14" monitors have a tendency to 'snap' occasionally (actually, the blame lies with Philips, but that's another story). Why this happens is beyond my limited electronic know-how (I'm of the 'bash-it-and-see' school of thinking), but I personally blame bright colours on the screen for prolonged periods of time (not a game, honest !). This is where VDU Saver comes in. It is a relocatable module that sits in the background waiting for a specified period of non-activity. When this occurs, the current palette is saved and all logical colours in the current MODE are set to black, the mouse pointer is saved and the border is set to black. A 'Smiley' face bounces around the screen to indicate that the screen has been blacked. This looks more impressive in the 320*256 MODEs (e.g. MODE 1) because the face appears circular rather than elliptical ! Instead of a 'Smiley' face, the current time in 24-hour clock format can be displayed instead. See the *Configure SaverType command and the Technical Details section. VDU Saver now works in all screen MODEs including the 256-colour and teletext MODEs. In 256-colour MODEs, the border colour will 'throb' in varying intensities of the RGB colour specified when the *VDUSaver command was issued. You can, if you wish, control the speed of the Smiley face or time, its colour and whether or not the screen is restored on VDU output. The palette, border and mouse pointer are all restored on any key event (yes, that includes SHIFT, Alt etc...), mouse movement, mouse button press or (optionally) VDU output. *Help VDUSaver will give you plenty of on-line help - in fact all of the following command descriptions are available via *Help. The *VDUSaver command --------------------- Syntax: *VDUSaver [<Minutes>] [<Speed>] [<Type>] [<VDUTrap>] [<Red>] [<Green>] [<Blue>] The (optional) parameters have the following meaning: <Minutes> Minutes (1-63) of inactivity before activation. A value of 0 will completely disable VDUSaver. If omitted, then the *Configure SaverDelay value is used. <Speed> Speed of Smiley face (1 = slowest, 3 = fastest). A value of 0 will plot the Smiley face randomly. If omitted, then the *Configure SaverSpeed value is used. <Type> What type of mouse shape will be plotted. 0 will always plot the (now infamous) Smiley face. 1 will plot the current time in 24-hour format. If omitted, then the *Configure SaverType value is used. <VDUTrap> Signifies if VDU output will restore the screen. 0 will ignore VDU output, 1 will restore the screen on VDU output. If omitted, then the *Configure SaverTrap value is used. V1.03 onwards now recognises MODE changes as a screen restoration by the OS, even when VDUTrap = 0. <R> <G> <B> Quantities of RGB in the Smiley face. 0 0 0 gives black (invisible) and 3 3 3 gives white. If any omitted, then the *Configure SaverRGB values are used. The *VDUStatus Command *NEW TO V2.03* ---------------------- Syntax: *VDUStatus Because *Status only reveals the VDU Saver CMOS RAM (i.e. permanent) settings, I decided to supplement this with a command that shows BOTH the currently active settings supplied with *VDUSaver and the *Configure ones. The current settings obviously cannot be shown until an activating *VDUSaver command is issued, so "Inactive" is displayed in the Current column until such a command occurs. The *Configure SaverDelay Command --------------------------------- Syntax: *Configure SaverDelay <Minutes> This command alters the permanent SaverDelay value (saved to CMOS RAM byte 35). <Minutes> should be an integer value between 1 and 63. A value of 0 is NOT permitted and if your CMOS RAM is set to that value, VDUSaver will force it to a more sensible value of 15 (minutes). The *Configure SaverSpeed Command --------------------------------- Syntax: *Configure SaverSpeed <Speed> This command alters the permanent SaverSpeed value (saved to CMOS RAM byte 36). <Speed> should be an integer value between 0 and 3. The *Configure SaverType Command -------------------------------- Syntax: *Configure SaverType <Type> This command alters the permanent SaverType value (saved to CMOS RAM byte 35). <Type> should be either 0 or 1. The *Configure SaverTrap Command -------------------------------- Syntax: *Configure SaverTrap <VDUTrap> This command alters the permanent SaverTrap value (saved to CMOS RAM byte 35). <VDUTrap> should be either 0 or 1. The *Configure SaverRGB Command ------------------------------- Syntax: *Configure SaverRGB <Red> <Green> <Blue> This command alters the permanent SaverRGB values (saved to CMOS RAM byte 36). <Red>, <Green>, <Blue> should be integer values between 0 and 3. Some Tips whilst using VDU Saver -------------------------------- 1. I've just noticed that moving the pointer over various areas of the icon bar causes the VDU Saver to stop working. Further investigation has shown that that VDU output occurs ! Hence, people may prefer to set VDUTrap to 0 if they spend most of their time in the Desktop. 2. When SaverType is 1, the mouse shape is defined once a minute when the screen is blanked - this causes a 'glitch' if SaverSpeed is non-zero due to the lengthy time OS_Word 21 (param 0) takes to execute. Hence, I recommend a setting of SaverSpeed 0 (randomly plot) when SaverType is set to 1. 3. For those of you who have dead batteries or faulty clocks (mine falls into the latter), DON'T PANIC ! The program has been written so that it only reads the current time ONCE each time the screen is blanked. Minute updates are achieved by using an internal counter - this may eventually lead to slight inaccuracies over a long period of time. Technical Details of VDU Saver ------------------------------ Initially, I tried to use OS_CallAfter and OS_RemoveTickerEvent, but these seemed to carry on regardless (maybe they don't work in SVC Mode 3 ?). I ended up using a simple decrementing counter inside a Vsync event routine. I now blank the screen in two possible ways, depending on the MODE : 1. Non-Teletext/256-colour MODEs ----------------------------- The number of logical colours is found using the NColour (3) value supplied to OS_ReadVduVariables. It is assumed that it will be a maximum of 15 in this case. The palette is read and stored in a (logical colours+2)*4-byte area. The extra 8 bytes are for the border colour and mouse logical colour 1 in case you're wondering. In the same loop, each colour is set to black after its original colour is safely stored. I now use OS_RemoveCursors and OS_RestoreCursors to make sure the cursor doesn't remain. 2. Teletext (currently only MODE 7) and 256-colour MODEs ----------------------------------------------------- This is the case when bit 1 of ModeFlags (0) is set to indicate teletext or when NColour (3) is set to 63. Less work has to be done here, because the ONLY KNOWN WAY to blank/restore the screen in these MODEs is to use the following bit of code (of course, I do the ARM equivalent...) : SYS "OS_UpdateMEMC",&300,&700 TO oldval : blanks the screen SYS "OS_UpdateMEMC",oldval,&700 : restores it. Thanks to Tolli's Blanker (available on SID) for this information. Annoyingly, the mouse also gets blanked - hence there is no 'Smiley' face or time in these MODEs. The only palette saves/restores that still have to be done are the border colour and the background colour (0), the latter of which I forgot to do in V1.03 ! For V2.01 onwards, I've added a 'throbbing' border colour to at least indicate that something is going on. This cycles up and down the palette according to the SaverRGB values specified. The 'Smiley' face is simply mouse pointer shape 2 (the system usually uses shape 1) re-programmed and using colour 1 set to the SaverRGB values * &50. The following vectors are trapped to avoid mouse shape change during blanking: * OS_Byte vector to check for *FX 106,<value>. The value is stored (but NOT executed to prevent shape change) and then used, when the screen is restored, to restore the new pointer shape number. * OS_Word vector to check for OS_Word 12 (write palette) for physical colour 25 (mouse). Again, this is saved and restored later on. Oh, by the way, there's no call to read the current mouse shape (its pixel pattern in other words), so shape 2 is overwritten I'm afraid. *NEW TO V2.03* Also missing is a call to find the current mouse rectangle bounds, so I have to set them to ( 0 , 0 ) - ( X , Y ) where: X = ( XWindLimit << XEigFactor ) and } As read by Y = ( ( YWindLimit - 12 ) << YEigFactor ) } OS_ReadVduVariables When the screen is blanked, the WrchV (restore screen on any VDU output) and EventV (restore on Event 10 - Mouse Button pressed - or 11 - Key pressed) vectors reactivate the screen. OS_OS_Ose is also checked to see if the mouse position has changed. If it has, the screen is restored. The Service Call &46 (Mode Change) is now recognised so as to permit a MODE change to be a valid screen restoration (by the OS rather than VDU Saver). This is independent of the VDUTrap setting or screen MODE. The new 24-hour clock feature isn't as easy as it sounds because I've specially defined the digits 0 to 9 and the string "TIME" as mouse shape data. I call OS_Word 14 (param 1) to get the current time in BCD. I do some shifting and use the value of the digits to get the offset into the data, which is poked into the mouse shape definition. V2.00 onwards now uses CMOS RAM in the following way: +---------+-------+-------+-------+-------+-------+-------+-------+-------+ | Bits: | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | +---------+-------+-------+-------+-------+-------+-------+-------+-------+ | Byte 35 |<Trap->|<Type->|<--------------- SaverDelay ---------------->| +---------+-------+-------+-------+-------+-------+-------+-------+-------+ | Byte 36 |<--- Blue ---->|<--- Green --->|<---- Red ---->|<-SaverSpeed-->| +---------+-------+-------+-------+-------+-------+-------+-------+-------+ CPU utilisation *UPDATED FOR RISC OS* --------------- Someone enquired about the amount of CPU time used when the VDU Saver was active. Here's some (crude, but effective) benchmarks done on my A310 running BASIC 1.04 and RISC OS 2.00 : VDUTrap? Inactive Active Diff Slower 10 MODE 0:TIME=0 20 FOR A%=1 TO 4000000:NEXT Irrelevant 58.99s 59.06s 00.07s 00.12% 30 PRINT TIME/100 10 MODE 0:TIME=0 Yes 51.32s 61.40s 10.08s 19.64% 20 FOR A%=1 TO 300000:PRINT"*";:NEXT No 51.32s 51.38s 00.06s 00.12% 30 PRINT TIME/100 As you can see, there is a hefty CPU grab (nearly one-fifth) if continuous VDU output occurs when the VDU Saver is active and the VDUTrap is switched on. This would seem to indicate that claiming WriteCV (but not doing much) appears to be a no-no if you want fast VDU output - blame Acorn, not me ! In normal situations, however, the CPU grab will be well under 1%, so there is no need to panic at the alarming 19.64% figure (yes, I was shocked at this too)... The code in V2.00 onwards has been extensively re-organised to use the minimum amount of CPU time when the module is loaded and either active or inactive. Previous versions would actually use up CPU time as soon as the module was loaded ! In particular, V2.00 onwards does not claim any vectors or enable events until a *VDUSaver command is issued. Revision History of VDU Saver ----------------------------- Version 2.03 ------------ * A new *VDUStatus command has been added so that users can check what values they've just supplied to the latest *VDUSaver command. * To tie in with the new command, a soft reset now performs the equivalent of a *VDUSaver 0 command so that *VDUStatus will report the correct status (Inactive) rather than the last active values. * Used OS_ReadVduVariables to find the MODE-independent mouse rectangle, so those people with hi-res B&W monitors should (hopefully...anyone care to test this ?) have a proper rectangle. * Due to above change, support for Arthur 1.20 has now been dropped. RISC OS has been generally available for more than 6 months now, so there's no excuse (and you can now readily order the new PRM's too - I've got mine). Version 2.02 ------------ * Prevented the mouse shape number (2) used by VDU Saver from changing during screen blanking (but still changes to requested shape number on screen restoration). Ditto for mouse colour 1 (for OS_Word 12 calls only). * The check for 0 delay value in CMOS RAM was not working correctly. Although the value of 15 (minutes) would be used (and shown in *Status), a faulty MOVEQS instruction meant that the actual CMOS RAM would not be forced to the value of 15. This has been fixed. * Slightly changed the random number seeding routine. Version 2.01 ------------ * Philip Colmer (of Acorn no less) spotted a bug: V2.00 would incorrectly restore the palette in 256-colour MODEs. In fact, everything started turning green (mouldy old programming perhaps ?)... Investigation revealed that I'd moved two statements further down in the code, but the first of them, MOV R2,#0, should have remained where it was. *BUG FIXED WITH VAPONA FLY SPRAY* * Philip also put forward the suggestion that the user should see something happening in the 256-colour MODEs e.g. the border colour should change. I implemented his suggestion - I hope nobody objects too much. He also hinted at the possibility of VDU Saver appearing on SID...fingers crossed. *VERSION 2.01 IS NOW AVAILABLE ON SID* Version 2.00 ------------ * Due to the extra mouse pointer definitions, V2.00 is now 7K long. Some people may consider this big for a screen saver, but think of that pretty time plotted on the screen and you might forgive me... * Re-organised the code to use less CPU time generally, especially when the module has been loaded but not activated. * Fixed the bug whereby colour 0 (background) wasn't restored properly in 256-colour MODEs. * Fully (ho hum - I lied here) tested and working in RISC OS (yes, I now have it !). * Modified the MEMC poke to make it 'safer'. * Now allow either the current time or the Smiley face to be plotted... you have a choice at last ! * Added *Configure SaverType to go with the new mouse shape choice. * Reduced the maximum SaverDelay to 63 minutes because Bit 6 of Byte 35 is now used for the SaverType. Also made doubly sure that the version I release specifies the delay in minutes (rather than seconds, which I use for test purposes and accidentally forgot to change to minutes in V1.03 !). Version 1.03 ------------ * Make a special check for Teletext MODEs, so that the screen saving is performed in the same way as 256-colour MODEs. * 256-colour MODEs now toggle the Video/Cursor DMA Enable flag in MEMC's control register to blank the screen. In plain English, VDU Saver now works in 256-colour MODEs but without the dubious benefit of a Smiley face (because the mouse is unfortunately blanked in these MODEs as well). * MODE changes are now recognised as a screen restoration without the intervention of VDU Saver. This takes care of the case when VDUTrap = 0 and the MODE is changed in a program whilst the screen is blanked. Earlier versions would have, after the appropriate delay, restored the OLD palette (prior to the MODE change) to the NEW MODE. * OK, a little bugette here folks. A friend ran VDU Saver on RISC OS and claimed erratic behaviour with the screen restoring at random intervals..!?! Due to laziness on my part, I had assumed that all events are disabled unless enabled by user programs (it's the case in Arthur 1.20). My theory is that RISC OS (probably the Desktop) enables events which Arthur 1.20 didn't use to. To remedy this problem, I've specifically checked for events 4,10 and 11 in my event routine, so this behaviour should have been eliminated *CONFIRMED - OK IN RISC OS*. Version 1.02 ------------ * A soft reset no longer causes the *VDUSaver command to fail to activate. * Uses 2 bytes of CMOS RAM (35 and 36) to permanently store VDUSaver settings. * Allows finer control over the Smiley face in terms of colour, speed and plotting method. * The text cursor is now switched off and restored correctly during blanking. * Screen restoration on VDU output is now optional, because some users may have a clock running that uses the VDU drivers (especially Twin and graphicky Desktop clocks). Version 1.01 ------------ * Shows a bouncing 'Smiley' face when the screen is blacked. * Restores the screen on mouse movement as well as mouse button presses. Version 1.00 ------------ * Written as a relocatable module that traps vectors. * Properly switches off and restores the mouse pointer and border colour. Future Improvements to VDU Saver V2.03 -------------------------------------- * Although OS_Word 12 is trapped to check for mouse colour 1 being changed, I later discovered that the *Pointer 1 command actually bypasses this call (it uses VDU 19 instead) when changing the mouse colour ! I guess I'll have to add yet more code to cope with this... * At some point, I might make it install itself on the icon bar and act proper like wot all programs should do. There again, I might not...nope, I haven't bothered yet. Where to find me to report bugs or improvements to the VDU Saver ---------------------------------------------------------------- Snail Mail JANET e-mail ---------- ------------ Richard K. Lloyd, rkl@uk.ac.liv.cs.mva 1, Banks Road, Lower Heswall, Wirral, Merseyside.
00000000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000010 20 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 | Documentation | 00000020 66 6f 72 20 56 44 55 20 53 61 76 65 72 20 4d 6f |for VDU Saver Mo| 00000030 64 75 6c 65 20 56 32 2e 30 33 0a 20 20 20 20 20 |dule V2.03. | 00000040 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 2d 2d | ---| 00000050 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000070 2d 2d 2d 2d 2d 0a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a |-----..*********| 00000080 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 49 6e |************* In| 00000090 63 72 65 64 69 62 6c 79 20 62 6f 72 69 6e 67 20 |credibly boring | 000000a0 43 6f 70 79 72 69 67 68 74 20 4e 6f 74 69 63 65 |Copyright Notice| 000000b0 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a | ***************| 000000c0 2a 2a 2a 2a 2a 2a 0a 2a 20 20 20 20 20 20 20 20 |******.* | 000000d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000110 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 41 | *.* A| 00000120 6c 6c 20 70 72 6f 67 72 61 6d 20 63 6f 64 65 20 |ll program code | 00000130 69 73 20 74 68 65 20 65 78 63 6c 75 73 69 76 65 |is the exclusive| 00000140 20 63 6f 70 79 72 69 67 68 74 20 6f 66 20 52 69 | copyright of Ri| 00000150 63 68 61 72 64 20 4b 2e 20 4c 6c 6f 79 64 2e 20 |chard K. Lloyd. | 00000160 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 54 68 65 | *.* The| 00000170 20 70 72 6f 67 72 61 6d 20 28 73 6f 75 72 63 65 | program (source| 00000180 20 61 6e 64 20 62 69 6e 61 72 79 29 20 61 6e 64 | and binary) and| 00000190 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 | documentation f| 000001a0 6f 72 20 56 44 55 20 53 61 76 65 72 20 61 72 65 |or VDU Saver are| 000001b0 20 20 20 20 20 2a 0a 2a 20 66 72 65 65 6c 79 20 | *.* freely | 000001c0 64 69 73 74 72 69 62 75 74 61 62 6c 65 20 61 6e |distributable an| 000001d0 64 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 |d should not be | 000001e0 63 68 61 72 67 65 64 20 66 6f 72 20 75 6e 64 65 |charged for unde| 000001f0 72 20 41 4e 59 20 63 69 72 63 75 6d 73 74 61 6e |r ANY circumstan| 00000200 63 65 73 2e 20 2a 0a 2a 20 20 20 20 20 20 20 20 |ces. *.* | 00000210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000250 20 20 20 20 20 2a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a | *.*********| 00000260 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 000002a0 2a 2a 2a 2a 2a 2a 0a 0a 20 20 20 20 20 20 20 20 |******.. | 000002b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000002c0 20 20 20 20 56 65 72 73 69 6f 6e 20 56 32 2e 30 | Version V2.0| 000002d0 32 20 6f 6e 77 61 72 64 73 0a 20 20 20 20 20 20 |2 onwards. | 000002e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000002f0 20 20 20 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ----------| 00000300 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 44 75 65 20 |-----------.Due | 00000310 74 6f 20 74 68 65 20 73 74 65 72 6c 69 6e 67 20 |to the sterling | 00000320 77 6f 72 6b 20 6f 66 20 70 65 6f 70 6c 65 20 6c |work of people l| 00000330 69 6b 65 20 50 68 69 6c 69 70 20 43 6f 6c 6d 65 |ike Philip Colme| 00000340 72 20 6f 66 20 41 63 6f 72 6e 2c 20 49 20 68 61 |r of Acorn, I ha| 00000350 76 65 20 64 65 63 69 64 65 64 0a 74 6f 20 6d 61 |ve decided.to ma| 00000360 6b 65 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f |ke the source co| 00000370 64 65 20 6f 66 20 74 68 65 20 56 44 55 20 53 61 |de of the VDU Sa| 00000380 76 65 72 20 70 75 62 6c 69 63 6c 79 20 61 76 61 |ver publicly ava| 00000390 69 6c 61 62 6c 65 2e 20 49 74 27 73 20 6e 6f 74 |ilable. It's not| 000003a0 20 61 0a 66 61 6e 74 61 73 74 69 63 20 65 78 61 | a.fantastic exa| 000003b0 6d 70 6c 65 20 6f 66 20 41 52 4d 20 63 6f 64 65 |mple of ARM code| 000003c0 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 62 79 20 | programming by | 000003d0 61 6e 79 20 6d 65 61 6e 73 2c 20 62 75 74 20 69 |any means, but i| 000003e0 74 20 70 72 6f 76 69 64 65 73 20 73 6f 6d 65 0a |t provides some.| 000003f0 75 73 65 66 75 6c 20 74 69 70 73 20 28 73 75 63 |useful tips (suc| 00000400 68 20 61 73 20 68 6f 77 20 74 6f 20 63 61 6c 6c |h as how to call| 00000410 20 6c 6f 74 73 20 6f 66 20 4f 53 20 72 6f 75 74 | lots of OS rout| 00000420 69 6e 65 73 20 66 72 6f 6d 20 69 6e 73 69 64 65 |ines from inside| 00000430 20 69 6e 74 65 72 72 75 70 74 73 0a 77 69 74 68 | interrupts.with| 00000440 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 6f 66 20 | the minimum of | 00000450 66 75 73 73 29 2e 20 50 6c 65 61 73 65 2c 20 70 |fuss). Please, p| 00000460 6c 65 61 73 65 2c 20 70 6c 65 61 73 65 20 72 65 |lease, please re| 00000470 70 6f 72 74 20 61 6e 79 20 62 75 67 73 20 6f 72 |port any bugs or| 00000480 20 69 6d 70 72 6f 76 65 2d 0a 6d 65 6e 74 73 20 | improve-.ments | 00000490 74 6f 20 74 68 65 20 61 64 64 72 65 73 73 20 61 |to the address a| 000004a0 74 20 74 68 65 20 62 6f 74 74 6f 6d 20 6f 66 20 |t the bottom of | 000004b0 74 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 2d 20 |this document - | 000004c0 49 20 77 69 6c 6c 20 2a 6e 6f 74 2a 20 73 75 70 |I will *not* sup| 000004d0 70 6f 72 74 0a 27 68 61 63 6b 65 64 27 20 76 65 |port.'hacked' ve| 000004e0 72 73 69 6f 6e 73 20 74 68 61 74 20 49 20 64 6f |rsions that I do| 000004f0 6e 27 74 20 6b 6e 6f 77 20 61 62 6f 75 74 2e 0a |n't know about..| 00000500 0a 49 6e 73 74 61 6c 6c 69 6e 67 20 56 44 55 20 |.Installing VDU | 00000510 53 61 76 65 72 20 28 4e 6f 77 20 72 65 71 75 69 |Saver (Now requi| 00000520 72 65 73 20 52 49 53 43 20 4f 53 29 0a 2d 2d 2d |res RISC OS).---| 00000530 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00000550 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 42 65 63 61 75 73 |--------..Becaus| 00000560 65 20 56 44 55 20 53 61 76 65 72 20 69 73 20 61 |e VDU Saver is a| 00000570 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 6d 6f 64 | relocatable mod| 00000580 75 6c 65 2c 20 79 6f 75 20 63 61 6e 20 69 6e 73 |ule, you can ins| 00000590 74 61 6c 6c 20 69 74 20 62 79 20 74 79 70 69 6e |tall it by typin| 000005a0 67 0a 2a 56 44 55 53 61 76 65 72 2c 20 61 73 73 |g.*VDUSaver, ass| 000005b0 75 6d 69 6e 67 20 74 68 61 74 20 79 6f 75 20 68 |uming that you h| 000005c0 61 76 65 20 73 75 66 66 69 63 69 65 6e 74 20 52 |ave sufficient R| 000005d0 4d 41 20 61 76 61 69 6c 61 62 6c 65 20 61 6e 64 |MA available and| 000005e0 20 74 68 65 20 66 69 6c 65 74 79 70 65 0a 69 73 | the filetype.is| 000005f0 20 73 65 74 20 74 6f 20 4d 6f 64 75 6c 65 2e 20 | set to Module. | 00000600 54 6f 20 61 63 74 69 76 61 74 65 20 69 74 20 6f |To activate it o| 00000610 6e 63 65 20 69 74 20 69 73 20 69 6e 73 74 61 6c |nce it is instal| 00000620 6c 65 64 2c 20 74 79 70 65 20 2a 56 44 55 53 61 |led, type *VDUSa| 00000630 76 65 72 20 5b 70 61 72 61 6d 73 5d 2e 0a 54 68 |ver [params]..Th| 00000640 69 73 20 2a 20 63 6f 6d 6d 61 6e 64 20 69 73 20 |is * command is | 00000650 65 78 70 6c 61 69 6e 65 64 20 69 6e 20 67 72 65 |explained in gre| 00000660 61 74 65 72 20 64 65 74 61 69 6c 20 6c 61 74 65 |ater detail late| 00000670 72 20 69 6e 20 74 68 69 73 20 64 6f 63 75 6d 65 |r in this docume| 00000680 6e 74 2e 0a 0a 53 6f 20 77 68 61 74 20 64 6f 65 |nt...So what doe| 00000690 73 20 56 44 55 20 53 61 76 65 72 20 64 6f 20 3f |s VDU Saver do ?| 000006a0 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |.---------------| 000006b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 41 63 |------------..Ac| 000006c0 6f 72 6e 20 73 74 61 6e 64 61 72 64 20 31 34 22 |orn standard 14"| 000006d0 20 6d 6f 6e 69 74 6f 72 73 20 68 61 76 65 20 61 | monitors have a| 000006e0 20 74 65 6e 64 65 6e 63 79 20 74 6f 20 27 73 6e | tendency to 'sn| 000006f0 61 70 27 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 |ap' occasionally| 00000700 20 28 61 63 74 75 61 6c 6c 79 2c 0a 74 68 65 20 | (actually,.the | 00000710 62 6c 61 6d 65 20 6c 69 65 73 20 77 69 74 68 20 |blame lies with | 00000720 50 68 69 6c 69 70 73 2c 20 62 75 74 20 74 68 61 |Philips, but tha| 00000730 74 27 73 20 61 6e 6f 74 68 65 72 20 73 74 6f 72 |t's another stor| 00000740 79 29 2e 20 57 68 79 20 74 68 69 73 20 68 61 70 |y). Why this hap| 00000750 70 65 6e 73 20 69 73 0a 62 65 79 6f 6e 64 20 6d |pens is.beyond m| 00000760 79 20 6c 69 6d 69 74 65 64 20 65 6c 65 63 74 72 |y limited electr| 00000770 6f 6e 69 63 20 6b 6e 6f 77 2d 68 6f 77 20 28 49 |onic know-how (I| 00000780 27 6d 20 6f 66 20 74 68 65 20 27 62 61 73 68 2d |'m of the 'bash-| 00000790 69 74 2d 61 6e 64 2d 73 65 65 27 20 73 63 68 6f |it-and-see' scho| 000007a0 6f 6c 20 6f 66 0a 74 68 69 6e 6b 69 6e 67 29 2c |ol of.thinking),| 000007b0 20 62 75 74 20 49 20 70 65 72 73 6f 6e 61 6c 6c | but I personall| 000007c0 79 20 62 6c 61 6d 65 20 62 72 69 67 68 74 20 63 |y blame bright c| 000007d0 6f 6c 6f 75 72 73 20 6f 6e 20 74 68 65 20 73 63 |olours on the sc| 000007e0 72 65 65 6e 20 66 6f 72 20 70 72 6f 6c 6f 6e 67 |reen for prolong| 000007f0 65 64 0a 70 65 72 69 6f 64 73 20 6f 66 20 74 69 |ed.periods of ti| 00000800 6d 65 20 28 6e 6f 74 20 61 20 67 61 6d 65 2c 20 |me (not a game, | 00000810 68 6f 6e 65 73 74 20 21 29 2e 0a 0a 54 68 69 73 |honest !)...This| 00000820 20 69 73 20 77 68 65 72 65 20 56 44 55 20 53 61 | is where VDU Sa| 00000830 76 65 72 20 63 6f 6d 65 73 20 69 6e 2e 20 49 74 |ver comes in. It| 00000840 20 69 73 20 61 20 72 65 6c 6f 63 61 74 61 62 6c | is a relocatabl| 00000850 65 20 6d 6f 64 75 6c 65 20 74 68 61 74 20 73 69 |e module that si| 00000860 74 73 20 69 6e 0a 74 68 65 20 62 61 63 6b 67 72 |ts in.the backgr| 00000870 6f 75 6e 64 20 77 61 69 74 69 6e 67 20 66 6f 72 |ound waiting for| 00000880 20 61 20 73 70 65 63 69 66 69 65 64 20 70 65 72 | a specified per| 00000890 69 6f 64 20 6f 66 20 6e 6f 6e 2d 61 63 74 69 76 |iod of non-activ| 000008a0 69 74 79 2e 20 57 68 65 6e 20 74 68 69 73 0a 6f |ity. When this.o| 000008b0 63 63 75 72 73 2c 20 74 68 65 20 63 75 72 72 65 |ccurs, the curre| 000008c0 6e 74 20 70 61 6c 65 74 74 65 20 69 73 20 73 61 |nt palette is sa| 000008d0 76 65 64 20 61 6e 64 20 61 6c 6c 20 6c 6f 67 69 |ved and all logi| 000008e0 63 61 6c 20 63 6f 6c 6f 75 72 73 20 69 6e 20 74 |cal colours in t| 000008f0 68 65 20 63 75 72 72 65 6e 74 0a 4d 4f 44 45 20 |he current.MODE | 00000900 61 72 65 20 73 65 74 20 74 6f 20 62 6c 61 63 6b |are set to black| 00000910 2c 20 74 68 65 20 6d 6f 75 73 65 20 70 6f 69 6e |, the mouse poin| 00000920 74 65 72 20 69 73 20 73 61 76 65 64 20 61 6e 64 |ter is saved and| 00000930 20 74 68 65 20 62 6f 72 64 65 72 20 69 73 20 73 | the border is s| 00000940 65 74 20 74 6f 0a 62 6c 61 63 6b 2e 0a 0a 41 20 |et to.black...A | 00000950 27 53 6d 69 6c 65 79 27 20 66 61 63 65 20 62 6f |'Smiley' face bo| 00000960 75 6e 63 65 73 20 61 72 6f 75 6e 64 20 74 68 65 |unces around the| 00000970 20 73 63 72 65 65 6e 20 74 6f 20 69 6e 64 69 63 | screen to indic| 00000980 61 74 65 20 74 68 61 74 20 74 68 65 20 73 63 72 |ate that the scr| 00000990 65 65 6e 20 68 61 73 20 62 65 65 6e 0a 62 6c 61 |een has been.bla| 000009a0 63 6b 65 64 2e 20 54 68 69 73 20 6c 6f 6f 6b 73 |cked. This looks| 000009b0 20 6d 6f 72 65 20 69 6d 70 72 65 73 73 69 76 65 | more impressive| 000009c0 20 69 6e 20 74 68 65 20 33 32 30 2a 32 35 36 20 | in the 320*256 | 000009d0 4d 4f 44 45 73 20 28 65 2e 67 2e 20 4d 4f 44 45 |MODEs (e.g. MODE| 000009e0 20 31 29 20 62 65 63 61 75 73 65 0a 74 68 65 20 | 1) because.the | 000009f0 66 61 63 65 20 61 70 70 65 61 72 73 20 63 69 72 |face appears cir| 00000a00 63 75 6c 61 72 20 72 61 74 68 65 72 20 74 68 61 |cular rather tha| 00000a10 6e 20 65 6c 6c 69 70 74 69 63 61 6c 20 21 0a 0a |n elliptical !..| 00000a20 49 6e 73 74 65 61 64 20 6f 66 20 61 20 27 53 6d |Instead of a 'Sm| 00000a30 69 6c 65 79 27 20 66 61 63 65 2c 20 74 68 65 20 |iley' face, the | 00000a40 63 75 72 72 65 6e 74 20 74 69 6d 65 20 69 6e 20 |current time in | 00000a50 32 34 2d 68 6f 75 72 20 63 6c 6f 63 6b 20 66 6f |24-hour clock fo| 00000a60 72 6d 61 74 20 63 61 6e 20 62 65 0a 64 69 73 70 |rmat can be.disp| 00000a70 6c 61 79 65 64 20 69 6e 73 74 65 61 64 2e 20 53 |layed instead. S| 00000a80 65 65 20 74 68 65 20 2a 43 6f 6e 66 69 67 75 72 |ee the *Configur| 00000a90 65 20 53 61 76 65 72 54 79 70 65 20 63 6f 6d 6d |e SaverType comm| 00000aa0 61 6e 64 20 61 6e 64 20 74 68 65 20 54 65 63 68 |and and the Tech| 00000ab0 6e 69 63 61 6c 0a 44 65 74 61 69 6c 73 20 73 65 |nical.Details se| 00000ac0 63 74 69 6f 6e 2e 0a 0a 56 44 55 20 53 61 76 65 |ction...VDU Save| 00000ad0 72 20 6e 6f 77 20 77 6f 72 6b 73 20 69 6e 20 61 |r now works in a| 00000ae0 6c 6c 20 73 63 72 65 65 6e 20 4d 4f 44 45 73 20 |ll screen MODEs | 00000af0 69 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 32 35 |including the 25| 00000b00 36 2d 63 6f 6c 6f 75 72 20 61 6e 64 20 74 65 6c |6-colour and tel| 00000b10 65 74 65 78 74 0a 4d 4f 44 45 73 2e 20 49 6e 20 |etext.MODEs. In | 00000b20 32 35 36 2d 63 6f 6c 6f 75 72 20 4d 4f 44 45 73 |256-colour MODEs| 00000b30 2c 20 74 68 65 20 62 6f 72 64 65 72 20 63 6f 6c |, the border col| 00000b40 6f 75 72 20 77 69 6c 6c 20 27 74 68 72 6f 62 27 |our will 'throb'| 00000b50 20 69 6e 20 76 61 72 79 69 6e 67 0a 69 6e 74 65 | in varying.inte| 00000b60 6e 73 69 74 69 65 73 20 6f 66 20 74 68 65 20 52 |nsities of the R| 00000b70 47 42 20 63 6f 6c 6f 75 72 20 73 70 65 63 69 66 |GB colour specif| 00000b80 69 65 64 20 77 68 65 6e 20 74 68 65 20 2a 56 44 |ied when the *VD| 00000b90 55 53 61 76 65 72 20 63 6f 6d 6d 61 6e 64 20 77 |USaver command w| 00000ba0 61 73 20 69 73 73 75 65 64 2e 0a 0a 59 6f 75 20 |as issued...You | 00000bb0 63 61 6e 2c 20 69 66 20 79 6f 75 20 77 69 73 68 |can, if you wish| 00000bc0 2c 20 63 6f 6e 74 72 6f 6c 20 74 68 65 20 73 70 |, control the sp| 00000bd0 65 65 64 20 6f 66 20 74 68 65 20 53 6d 69 6c 65 |eed of the Smile| 00000be0 79 20 66 61 63 65 20 6f 72 20 74 69 6d 65 2c 20 |y face or time, | 00000bf0 69 74 73 20 63 6f 6c 6f 75 72 0a 61 6e 64 20 77 |its colour.and w| 00000c00 68 65 74 68 65 72 20 6f 72 20 6e 6f 74 20 74 68 |hether or not th| 00000c10 65 20 73 63 72 65 65 6e 20 69 73 20 72 65 73 74 |e screen is rest| 00000c20 6f 72 65 64 20 6f 6e 20 56 44 55 20 6f 75 74 70 |ored on VDU outp| 00000c30 75 74 2e 0a 0a 54 68 65 20 70 61 6c 65 74 74 65 |ut...The palette| 00000c40 2c 20 62 6f 72 64 65 72 20 61 6e 64 20 6d 6f 75 |, border and mou| 00000c50 73 65 20 70 6f 69 6e 74 65 72 20 61 72 65 20 61 |se pointer are a| 00000c60 6c 6c 20 72 65 73 74 6f 72 65 64 20 6f 6e 20 61 |ll restored on a| 00000c70 6e 79 20 6b 65 79 20 65 76 65 6e 74 20 28 79 65 |ny key event (ye| 00000c80 73 2c 0a 74 68 61 74 20 69 6e 63 6c 75 64 65 73 |s,.that includes| 00000c90 20 53 48 49 46 54 2c 20 41 6c 74 20 65 74 63 2e | SHIFT, Alt etc.| 00000ca0 2e 2e 29 2c 20 6d 6f 75 73 65 20 6d 6f 76 65 6d |..), mouse movem| 00000cb0 65 6e 74 2c 20 6d 6f 75 73 65 20 62 75 74 74 6f |ent, mouse butto| 00000cc0 6e 20 70 72 65 73 73 20 6f 72 0a 28 6f 70 74 69 |n press or.(opti| 00000cd0 6f 6e 61 6c 6c 79 29 20 56 44 55 20 6f 75 74 70 |onally) VDU outp| 00000ce0 75 74 2e 0a 0a 2a 48 65 6c 70 20 56 44 55 53 61 |ut...*Help VDUSa| 00000cf0 76 65 72 20 77 69 6c 6c 20 67 69 76 65 20 79 6f |ver will give yo| 00000d00 75 20 70 6c 65 6e 74 79 20 6f 66 20 6f 6e 2d 6c |u plenty of on-l| 00000d10 69 6e 65 20 68 65 6c 70 20 2d 20 69 6e 20 66 61 |ine help - in fa| 00000d20 63 74 20 61 6c 6c 20 6f 66 20 74 68 65 0a 66 6f |ct all of the.fo| 00000d30 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 |llowing command | 00000d40 64 65 73 63 72 69 70 74 69 6f 6e 73 20 61 72 65 |descriptions are| 00000d50 20 61 76 61 69 6c 61 62 6c 65 20 76 69 61 20 2a | available via *| 00000d60 48 65 6c 70 2e 0a 0a 54 68 65 20 2a 56 44 55 53 |Help...The *VDUS| 00000d70 61 76 65 72 20 63 6f 6d 6d 61 6e 64 0a 2d 2d 2d |aver command.---| 00000d80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00000d90 2d 2d 0a 0a 53 79 6e 74 61 78 3a 20 2a 56 44 55 |--..Syntax: *VDU| 00000da0 53 61 76 65 72 20 5b 3c 4d 69 6e 75 74 65 73 3e |Saver [<Minutes>| 00000db0 5d 20 5b 3c 53 70 65 65 64 3e 5d 20 5b 3c 54 79 |] [<Speed>] [<Ty| 00000dc0 70 65 3e 5d 20 5b 3c 56 44 55 54 72 61 70 3e 5d |pe>] [<VDUTrap>]| 00000dd0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00000de0 20 20 20 5b 3c 52 65 64 3e 5d 20 5b 3c 47 72 65 | [<Red>] [<Gre| 00000df0 65 6e 3e 5d 20 5b 3c 42 6c 75 65 3e 5d 0a 0a 54 |en>] [<Blue>]..T| 00000e00 68 65 20 28 6f 70 74 69 6f 6e 61 6c 29 20 70 61 |he (optional) pa| 00000e10 72 61 6d 65 74 65 72 73 20 68 61 76 65 20 74 68 |rameters have th| 00000e20 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d 65 61 6e |e following mean| 00000e30 69 6e 67 3a 0a 0a 3c 4d 69 6e 75 74 65 73 3e 20 |ing:..<Minutes> | 00000e40 20 20 4d 69 6e 75 74 65 73 20 28 31 2d 36 33 29 | Minutes (1-63)| 00000e50 20 6f 66 20 69 6e 61 63 74 69 76 69 74 79 20 62 | of inactivity b| 00000e60 65 66 6f 72 65 20 61 63 74 69 76 61 74 69 6f 6e |efore activation| 00000e70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 20 |.. A | 00000e80 76 61 6c 75 65 20 6f 66 20 30 20 77 69 6c 6c 20 |value of 0 will | 00000e90 63 6f 6d 70 6c 65 74 65 6c 79 20 64 69 73 61 62 |completely disab| 00000ea0 6c 65 20 56 44 55 53 61 76 65 72 2e 0a 20 20 20 |le VDUSaver.. | 00000eb0 20 20 20 20 20 20 20 20 20 49 66 20 6f 6d 69 74 | If omit| 00000ec0 74 65 64 2c 20 74 68 65 6e 20 74 68 65 20 2a 43 |ted, then the *C| 00000ed0 6f 6e 66 69 67 75 72 65 20 53 61 76 65 72 44 65 |onfigure SaverDe| 00000ee0 6c 61 79 20 76 61 6c 75 65 20 69 73 20 75 73 65 |lay value is use| 00000ef0 64 2e 0a 0a 3c 53 70 65 65 64 3e 20 20 20 20 20 |d...<Speed> | 00000f00 53 70 65 65 64 20 6f 66 20 53 6d 69 6c 65 79 20 |Speed of Smiley | 00000f10 66 61 63 65 20 28 31 20 3d 20 73 6c 6f 77 65 73 |face (1 = slowes| 00000f20 74 2c 20 33 20 3d 20 66 61 73 74 65 73 74 29 2e |t, 3 = fastest).| 00000f30 0a 20 20 20 20 20 20 20 20 20 20 20 20 41 20 76 |. A v| 00000f40 61 6c 75 65 20 6f 66 20 30 20 77 69 6c 6c 20 70 |alue of 0 will p| 00000f50 6c 6f 74 20 74 68 65 20 53 6d 69 6c 65 79 20 66 |lot the Smiley f| 00000f60 61 63 65 20 72 61 6e 64 6f 6d 6c 79 2e 0a 20 20 |ace randomly.. | 00000f70 20 20 20 20 20 20 20 20 20 20 49 66 20 6f 6d 69 | If omi| 00000f80 74 74 65 64 2c 20 74 68 65 6e 20 74 68 65 20 2a |tted, then the *| 00000f90 43 6f 6e 66 69 67 75 72 65 20 53 61 76 65 72 53 |Configure SaverS| 00000fa0 70 65 65 64 20 76 61 6c 75 65 20 69 73 20 75 73 |peed value is us| 00000fb0 65 64 2e 0a 0a 3c 54 79 70 65 3e 20 20 20 20 20 |ed...<Type> | 00000fc0 20 57 68 61 74 20 74 79 70 65 20 6f 66 20 6d 6f | What type of mo| 00000fd0 75 73 65 20 73 68 61 70 65 20 77 69 6c 6c 20 62 |use shape will b| 00000fe0 65 20 70 6c 6f 74 74 65 64 2e 0a 20 20 20 20 20 |e plotted.. | 00000ff0 20 20 20 20 20 20 20 30 20 77 69 6c 6c 20 61 6c | 0 will al| 00001000 77 61 79 73 20 70 6c 6f 74 20 74 68 65 20 28 6e |ways plot the (n| 00001010 6f 77 20 69 6e 66 61 6d 6f 75 73 29 20 53 6d 69 |ow infamous) Smi| 00001020 6c 65 79 20 66 61 63 65 2e 0a 20 20 20 20 20 20 |ley face.. | 00001030 20 20 20 20 20 20 31 20 77 69 6c 6c 20 70 6c 6f | 1 will plo| 00001040 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 69 |t the current ti| 00001050 6d 65 20 69 6e 20 32 34 2d 68 6f 75 72 20 66 6f |me in 24-hour fo| 00001060 72 6d 61 74 2e 0a 20 20 20 20 20 20 20 20 20 20 |rmat.. | 00001070 20 20 49 66 20 6f 6d 69 74 74 65 64 2c 20 74 68 | If omitted, th| 00001080 65 6e 20 74 68 65 20 2a 43 6f 6e 66 69 67 75 72 |en the *Configur| 00001090 65 20 53 61 76 65 72 54 79 70 65 20 76 61 6c 75 |e SaverType valu| 000010a0 65 20 69 73 20 75 73 65 64 2e 0a 0a 3c 56 44 55 |e is used...<VDU| 000010b0 54 72 61 70 3e 20 20 20 53 69 67 6e 69 66 69 65 |Trap> Signifie| 000010c0 73 20 69 66 20 56 44 55 20 6f 75 74 70 75 74 20 |s if VDU output | 000010d0 77 69 6c 6c 20 72 65 73 74 6f 72 65 20 74 68 65 |will restore the| 000010e0 20 73 63 72 65 65 6e 2e 0a 20 20 20 20 20 20 20 | screen.. | 000010f0 20 20 20 20 20 30 20 77 69 6c 6c 20 69 67 6e 6f | 0 will igno| 00001100 72 65 20 56 44 55 20 6f 75 74 70 75 74 2c 20 31 |re VDU output, 1| 00001110 20 77 69 6c 6c 20 72 65 73 74 6f 72 65 20 74 68 | will restore th| 00001120 65 20 73 63 72 65 65 6e 20 6f 6e 20 56 44 55 20 |e screen on VDU | 00001130 6f 75 74 70 75 74 2e 0a 20 20 20 20 20 20 20 20 |output.. | 00001140 20 20 20 20 49 66 20 6f 6d 69 74 74 65 64 2c 20 | If omitted, | 00001150 74 68 65 6e 20 74 68 65 20 2a 43 6f 6e 66 69 67 |then the *Config| 00001160 75 72 65 20 53 61 76 65 72 54 72 61 70 20 76 61 |ure SaverTrap va| 00001170 6c 75 65 20 69 73 20 75 73 65 64 2e 0a 20 20 20 |lue is used.. | 00001180 20 20 20 20 20 20 20 20 20 56 31 2e 30 33 20 6f | V1.03 o| 00001190 6e 77 61 72 64 73 20 6e 6f 77 20 72 65 63 6f 67 |nwards now recog| 000011a0 6e 69 73 65 73 20 4d 4f 44 45 20 63 68 61 6e 67 |nises MODE chang| 000011b0 65 73 20 61 73 20 61 20 73 63 72 65 65 6e 20 72 |es as a screen r| 000011c0 65 73 74 6f 72 61 74 69 6f 6e 0a 20 20 20 20 20 |estoration. | 000011d0 20 20 20 20 20 20 20 62 79 20 74 68 65 20 4f 53 | by the OS| 000011e0 2c 20 65 76 65 6e 20 77 68 65 6e 20 56 44 55 54 |, even when VDUT| 000011f0 72 61 70 20 3d 20 30 2e 0a 0a 3c 52 3e 20 3c 47 |rap = 0...<R> <G| 00001200 3e 20 3c 42 3e 20 51 75 61 6e 74 69 74 69 65 73 |> <B> Quantities| 00001210 20 6f 66 20 52 47 42 20 69 6e 20 74 68 65 20 53 | of RGB in the S| 00001220 6d 69 6c 65 79 20 66 61 63 65 2e 0a 20 20 20 20 |miley face.. | 00001230 20 20 20 20 20 20 20 20 30 20 30 20 30 20 67 69 | 0 0 0 gi| 00001240 76 65 73 20 62 6c 61 63 6b 20 28 69 6e 76 69 73 |ves black (invis| 00001250 69 62 6c 65 29 20 61 6e 64 20 33 20 33 20 33 20 |ible) and 3 3 3 | 00001260 67 69 76 65 73 20 77 68 69 74 65 2e 0a 20 20 20 |gives white.. | 00001270 20 20 20 20 20 20 20 20 20 49 66 20 61 6e 79 20 | If any | 00001280 6f 6d 69 74 74 65 64 2c 20 74 68 65 6e 20 74 68 |omitted, then th| 00001290 65 20 2a 43 6f 6e 66 69 67 75 72 65 20 53 61 76 |e *Configure Sav| 000012a0 65 72 52 47 42 20 76 61 6c 75 65 73 20 61 72 65 |erRGB values are| 000012b0 20 75 73 65 64 2e 0a 0a 54 68 65 20 2a 56 44 55 | used...The *VDU| 000012c0 53 74 61 74 75 73 20 43 6f 6d 6d 61 6e 64 20 20 |Status Command | 000012d0 20 20 20 20 2a 4e 45 57 20 54 4f 20 56 32 2e 30 | *NEW TO V2.0| 000012e0 33 2a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |3*.-------------| 000012f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 53 79 6e 74 61 |---------..Synta| 00001300 78 3a 20 2a 56 44 55 53 74 61 74 75 73 0a 0a 42 |x: *VDUStatus..B| 00001310 65 63 61 75 73 65 20 2a 53 74 61 74 75 73 20 6f |ecause *Status o| 00001320 6e 6c 79 20 72 65 76 65 61 6c 73 20 74 68 65 20 |nly reveals the | 00001330 56 44 55 20 53 61 76 65 72 20 43 4d 4f 53 20 52 |VDU Saver CMOS R| 00001340 41 4d 20 28 69 2e 65 2e 20 70 65 72 6d 61 6e 65 |AM (i.e. permane| 00001350 6e 74 29 20 73 65 74 74 69 6e 67 73 2c 0a 49 20 |nt) settings,.I | 00001360 64 65 63 69 64 65 64 20 74 6f 20 73 75 70 70 6c |decided to suppl| 00001370 65 6d 65 6e 74 20 74 68 69 73 20 77 69 74 68 20 |ement this with | 00001380 61 20 63 6f 6d 6d 61 6e 64 20 74 68 61 74 20 73 |a command that s| 00001390 68 6f 77 73 20 42 4f 54 48 20 74 68 65 20 63 75 |hows BOTH the cu| 000013a0 72 72 65 6e 74 6c 79 0a 61 63 74 69 76 65 20 73 |rrently.active s| 000013b0 65 74 74 69 6e 67 73 20 73 75 70 70 6c 69 65 64 |ettings supplied| 000013c0 20 77 69 74 68 20 2a 56 44 55 53 61 76 65 72 20 | with *VDUSaver | 000013d0 61 6e 64 20 74 68 65 20 2a 43 6f 6e 66 69 67 75 |and the *Configu| 000013e0 72 65 20 6f 6e 65 73 2e 20 54 68 65 20 63 75 72 |re ones. The cur| 000013f0 72 65 6e 74 0a 73 65 74 74 69 6e 67 73 20 6f 62 |rent.settings ob| 00001400 76 69 6f 75 73 6c 79 20 63 61 6e 6e 6f 74 20 62 |viously cannot b| 00001410 65 20 73 68 6f 77 6e 20 75 6e 74 69 6c 20 61 6e |e shown until an| 00001420 20 61 63 74 69 76 61 74 69 6e 67 20 2a 56 44 55 | activating *VDU| 00001430 53 61 76 65 72 20 63 6f 6d 6d 61 6e 64 20 69 73 |Saver command is| 00001440 0a 69 73 73 75 65 64 2c 20 73 6f 20 22 49 6e 61 |.issued, so "Ina| 00001450 63 74 69 76 65 22 20 69 73 20 64 69 73 70 6c 61 |ctive" is displa| 00001460 79 65 64 20 69 6e 20 74 68 65 20 43 75 72 72 65 |yed in the Curre| 00001470 6e 74 20 63 6f 6c 75 6d 6e 20 75 6e 74 69 6c 20 |nt column until | 00001480 73 75 63 68 20 61 20 63 6f 6d 6d 61 6e 64 0a 6f |such a command.o| 00001490 63 63 75 72 73 2e 0a 0a 54 68 65 20 2a 43 6f 6e |ccurs...The *Con| 000014a0 66 69 67 75 72 65 20 53 61 76 65 72 44 65 6c 61 |figure SaverDela| 000014b0 79 20 43 6f 6d 6d 61 6e 64 0a 2d 2d 2d 2d 2d 2d |y Command.------| 000014c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000014d0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 53 79 6e |-----------..Syn| 000014e0 74 61 78 3a 20 2a 43 6f 6e 66 69 67 75 72 65 20 |tax: *Configure | 000014f0 53 61 76 65 72 44 65 6c 61 79 20 3c 4d 69 6e 75 |SaverDelay <Minu| 00001500 74 65 73 3e 0a 0a 54 68 69 73 20 63 6f 6d 6d 61 |tes>..This comma| 00001510 6e 64 20 61 6c 74 65 72 73 20 74 68 65 20 70 65 |nd alters the pe| 00001520 72 6d 61 6e 65 6e 74 20 53 61 76 65 72 44 65 6c |rmanent SaverDel| 00001530 61 79 20 76 61 6c 75 65 20 28 73 61 76 65 64 20 |ay value (saved | 00001540 74 6f 20 43 4d 4f 53 20 52 41 4d 20 62 79 74 65 |to CMOS RAM byte| 00001550 20 33 35 29 2e 0a 3c 4d 69 6e 75 74 65 73 3e 20 | 35)..<Minutes> | 00001560 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 69 6e 74 |should be an int| 00001570 65 67 65 72 20 76 61 6c 75 65 20 62 65 74 77 65 |eger value betwe| 00001580 65 6e 20 31 20 61 6e 64 20 36 33 2e 20 41 20 76 |en 1 and 63. A v| 00001590 61 6c 75 65 20 6f 66 20 30 20 69 73 20 4e 4f 54 |alue of 0 is NOT| 000015a0 0a 70 65 72 6d 69 74 74 65 64 20 61 6e 64 20 69 |.permitted and i| 000015b0 66 20 79 6f 75 72 20 43 4d 4f 53 20 52 41 4d 20 |f your CMOS RAM | 000015c0 69 73 20 73 65 74 20 74 6f 20 74 68 61 74 20 76 |is set to that v| 000015d0 61 6c 75 65 2c 20 56 44 55 53 61 76 65 72 20 77 |alue, VDUSaver w| 000015e0 69 6c 6c 20 66 6f 72 63 65 20 69 74 0a 74 6f 20 |ill force it.to | 000015f0 61 20 6d 6f 72 65 20 73 65 6e 73 69 62 6c 65 20 |a more sensible | 00001600 76 61 6c 75 65 20 6f 66 20 31 35 20 28 6d 69 6e |value of 15 (min| 00001610 75 74 65 73 29 2e 0a 0a 54 68 65 20 2a 43 6f 6e |utes)...The *Con| 00001620 66 69 67 75 72 65 20 53 61 76 65 72 53 70 65 65 |figure SaverSpee| 00001630 64 20 43 6f 6d 6d 61 6e 64 0a 2d 2d 2d 2d 2d 2d |d Command.------| 00001640 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001650 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 53 79 6e |-----------..Syn| 00001660 74 61 78 3a 20 2a 43 6f 6e 66 69 67 75 72 65 20 |tax: *Configure | 00001670 53 61 76 65 72 53 70 65 65 64 20 3c 53 70 65 65 |SaverSpeed <Spee| 00001680 64 3e 0a 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 |d>..This command| 00001690 20 61 6c 74 65 72 73 20 74 68 65 20 70 65 72 6d | alters the perm| 000016a0 61 6e 65 6e 74 20 53 61 76 65 72 53 70 65 65 64 |anent SaverSpeed| 000016b0 20 76 61 6c 75 65 20 28 73 61 76 65 64 20 74 6f | value (saved to| 000016c0 20 43 4d 4f 53 20 52 41 4d 20 62 79 74 65 20 33 | CMOS RAM byte 3| 000016d0 36 29 2e 0a 3c 53 70 65 65 64 3e 20 73 68 6f 75 |6)..<Speed> shou| 000016e0 6c 64 20 62 65 20 61 6e 20 69 6e 74 65 67 65 72 |ld be an integer| 000016f0 20 76 61 6c 75 65 20 62 65 74 77 65 65 6e 20 30 | value between 0| 00001700 20 61 6e 64 20 33 2e 0a 0a 54 68 65 20 2a 43 6f | and 3...The *Co| 00001710 6e 66 69 67 75 72 65 20 53 61 76 65 72 54 79 70 |nfigure SaverTyp| 00001720 65 20 43 6f 6d 6d 61 6e 64 0a 2d 2d 2d 2d 2d 2d |e Command.------| 00001730 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001740 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 53 79 6e 74 |----------..Synt| 00001750 61 78 3a 20 2a 43 6f 6e 66 69 67 75 72 65 20 53 |ax: *Configure S| 00001760 61 76 65 72 54 79 70 65 20 3c 54 79 70 65 3e 0a |averType <Type>.| 00001770 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 61 6c |.This command al| 00001780 74 65 72 73 20 74 68 65 20 70 65 72 6d 61 6e 65 |ters the permane| 00001790 6e 74 20 53 61 76 65 72 54 79 70 65 20 76 61 6c |nt SaverType val| 000017a0 75 65 20 28 73 61 76 65 64 20 74 6f 20 43 4d 4f |ue (saved to CMO| 000017b0 53 20 52 41 4d 20 62 79 74 65 20 33 35 29 2e 0a |S RAM byte 35)..| 000017c0 3c 54 79 70 65 3e 20 73 68 6f 75 6c 64 20 62 65 |<Type> should be| 000017d0 20 65 69 74 68 65 72 20 30 20 6f 72 20 31 2e 0a | either 0 or 1..| 000017e0 0a 54 68 65 20 2a 43 6f 6e 66 69 67 75 72 65 20 |.The *Configure | 000017f0 53 61 76 65 72 54 72 61 70 20 43 6f 6d 6d 61 6e |SaverTrap Comman| 00001800 64 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |d.--------------| 00001810 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001820 2d 2d 0a 0a 53 79 6e 74 61 78 3a 20 2a 43 6f 6e |--..Syntax: *Con| 00001830 66 69 67 75 72 65 20 53 61 76 65 72 54 72 61 70 |figure SaverTrap| 00001840 20 3c 56 44 55 54 72 61 70 3e 0a 0a 54 68 69 73 | <VDUTrap>..This| 00001850 20 63 6f 6d 6d 61 6e 64 20 61 6c 74 65 72 73 20 | command alters | 00001860 74 68 65 20 70 65 72 6d 61 6e 65 6e 74 20 53 61 |the permanent Sa| 00001870 76 65 72 54 72 61 70 20 76 61 6c 75 65 20 28 73 |verTrap value (s| 00001880 61 76 65 64 20 74 6f 20 43 4d 4f 53 20 52 41 4d |aved to CMOS RAM| 00001890 20 62 79 74 65 20 33 35 29 2e 0a 3c 56 44 55 54 | byte 35)..<VDUT| 000018a0 72 61 70 3e 20 73 68 6f 75 6c 64 20 62 65 20 65 |rap> should be e| 000018b0 69 74 68 65 72 20 30 20 6f 72 20 31 2e 0a 0a 54 |ither 0 or 1...T| 000018c0 68 65 20 2a 43 6f 6e 66 69 67 75 72 65 20 53 61 |he *Configure Sa| 000018d0 76 65 72 52 47 42 20 43 6f 6d 6d 61 6e 64 0a 2d |verRGB Command.-| 000018e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000018f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a |--------------..| 00001900 53 79 6e 74 61 78 3a 20 2a 43 6f 6e 66 69 67 75 |Syntax: *Configu| 00001910 72 65 20 53 61 76 65 72 52 47 42 20 3c 52 65 64 |re SaverRGB <Red| 00001920 3e 20 3c 47 72 65 65 6e 3e 20 3c 42 6c 75 65 3e |> <Green> <Blue>| 00001930 0a 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 61 |..This command a| 00001940 6c 74 65 72 73 20 74 68 65 20 70 65 72 6d 61 6e |lters the perman| 00001950 65 6e 74 20 53 61 76 65 72 52 47 42 20 76 61 6c |ent SaverRGB val| 00001960 75 65 73 20 28 73 61 76 65 64 20 74 6f 20 43 4d |ues (saved to CM| 00001970 4f 53 20 52 41 4d 20 62 79 74 65 20 33 36 29 2e |OS RAM byte 36).| 00001980 0a 3c 52 65 64 3e 2c 20 3c 47 72 65 65 6e 3e 2c |.<Red>, <Green>,| 00001990 20 3c 42 6c 75 65 3e 20 73 68 6f 75 6c 64 20 62 | <Blue> should b| 000019a0 65 20 69 6e 74 65 67 65 72 20 76 61 6c 75 65 73 |e integer values| 000019b0 20 62 65 74 77 65 65 6e 20 30 20 61 6e 64 20 33 | between 0 and 3| 000019c0 2e 0a 0a 53 6f 6d 65 20 54 69 70 73 20 77 68 69 |...Some Tips whi| 000019d0 6c 73 74 20 75 73 69 6e 67 20 56 44 55 20 53 61 |lst using VDU Sa| 000019e0 76 65 72 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |ver.------------| 000019f0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001a00 2d 2d 2d 2d 0a 0a 31 2e 20 49 27 76 65 20 6a 75 |----..1. I've ju| 00001a10 73 74 20 6e 6f 74 69 63 65 64 20 74 68 61 74 20 |st noticed that | 00001a20 6d 6f 76 69 6e 67 20 74 68 65 20 70 6f 69 6e 74 |moving the point| 00001a30 65 72 20 6f 76 65 72 20 76 61 72 69 6f 75 73 20 |er over various | 00001a40 61 72 65 61 73 20 6f 66 20 74 68 65 20 69 63 6f |areas of the ico| 00001a50 6e 20 62 61 72 0a 20 20 20 63 61 75 73 65 73 20 |n bar. causes | 00001a60 74 68 65 20 56 44 55 20 53 61 76 65 72 20 74 6f |the VDU Saver to| 00001a70 20 73 74 6f 70 20 77 6f 72 6b 69 6e 67 2e 20 46 | stop working. F| 00001a80 75 72 74 68 65 72 20 69 6e 76 65 73 74 69 67 61 |urther investiga| 00001a90 74 69 6f 6e 20 68 61 73 20 73 68 6f 77 6e 20 74 |tion has shown t| 00001aa0 68 61 74 0a 20 20 20 74 68 61 74 20 56 44 55 20 |hat. that VDU | 00001ab0 6f 75 74 70 75 74 20 6f 63 63 75 72 73 20 21 20 |output occurs ! | 00001ac0 48 65 6e 63 65 2c 20 70 65 6f 70 6c 65 20 6d 61 |Hence, people ma| 00001ad0 79 20 70 72 65 66 65 72 20 74 6f 20 73 65 74 20 |y prefer to set | 00001ae0 56 44 55 54 72 61 70 20 74 6f 20 30 20 69 66 0a |VDUTrap to 0 if.| 00001af0 20 20 20 74 68 65 79 20 73 70 65 6e 64 20 6d 6f | they spend mo| 00001b00 73 74 20 6f 66 20 74 68 65 69 72 20 74 69 6d 65 |st of their time| 00001b10 20 69 6e 20 74 68 65 20 44 65 73 6b 74 6f 70 2e | in the Desktop.| 00001b20 0a 0a 32 2e 20 57 68 65 6e 20 53 61 76 65 72 54 |..2. When SaverT| 00001b30 79 70 65 20 69 73 20 31 2c 20 74 68 65 20 6d 6f |ype is 1, the mo| 00001b40 75 73 65 20 73 68 61 70 65 20 69 73 20 64 65 66 |use shape is def| 00001b50 69 6e 65 64 20 6f 6e 63 65 20 61 20 6d 69 6e 75 |ined once a minu| 00001b60 74 65 20 77 68 65 6e 20 74 68 65 0a 20 20 20 73 |te when the. s| 00001b70 63 72 65 65 6e 20 69 73 20 62 6c 61 6e 6b 65 64 |creen is blanked| 00001b80 20 2d 20 74 68 69 73 20 63 61 75 73 65 73 20 61 | - this causes a| 00001b90 20 27 67 6c 69 74 63 68 27 20 69 66 20 53 61 76 | 'glitch' if Sav| 00001ba0 65 72 53 70 65 65 64 20 69 73 20 6e 6f 6e 2d 7a |erSpeed is non-z| 00001bb0 65 72 6f 20 64 75 65 20 74 6f 0a 20 20 20 74 68 |ero due to. th| 00001bc0 65 20 6c 65 6e 67 74 68 79 20 74 69 6d 65 20 4f |e lengthy time O| 00001bd0 53 5f 57 6f 72 64 20 32 31 20 28 70 61 72 61 6d |S_Word 21 (param| 00001be0 20 30 29 20 74 61 6b 65 73 20 74 6f 20 65 78 65 | 0) takes to exe| 00001bf0 63 75 74 65 2e 20 48 65 6e 63 65 2c 20 49 20 72 |cute. Hence, I r| 00001c00 65 63 6f 6d 6d 65 6e 64 0a 20 20 20 61 20 73 65 |ecommend. a se| 00001c10 74 74 69 6e 67 20 6f 66 20 53 61 76 65 72 53 70 |tting of SaverSp| 00001c20 65 65 64 20 30 20 28 72 61 6e 64 6f 6d 6c 79 20 |eed 0 (randomly | 00001c30 70 6c 6f 74 29 20 77 68 65 6e 20 53 61 76 65 72 |plot) when Saver| 00001c40 54 79 70 65 20 69 73 20 73 65 74 20 74 6f 20 31 |Type is set to 1| 00001c50 2e 0a 0a 33 2e 20 46 6f 72 20 74 68 6f 73 65 20 |...3. For those | 00001c60 6f 66 20 79 6f 75 20 77 68 6f 20 68 61 76 65 20 |of you who have | 00001c70 64 65 61 64 20 62 61 74 74 65 72 69 65 73 20 6f |dead batteries o| 00001c80 72 20 66 61 75 6c 74 79 20 63 6c 6f 63 6b 73 20 |r faulty clocks | 00001c90 28 6d 69 6e 65 20 66 61 6c 6c 73 20 69 6e 74 6f |(mine falls into| 00001ca0 0a 20 20 20 74 68 65 20 6c 61 74 74 65 72 29 2c |. the latter),| 00001cb0 20 44 4f 4e 27 54 20 50 41 4e 49 43 20 21 20 54 | DON'T PANIC ! T| 00001cc0 68 65 20 70 72 6f 67 72 61 6d 20 68 61 73 20 62 |he program has b| 00001cd0 65 65 6e 20 77 72 69 74 74 65 6e 20 73 6f 20 74 |een written so t| 00001ce0 68 61 74 20 69 74 20 6f 6e 6c 79 0a 20 20 20 72 |hat it only. r| 00001cf0 65 61 64 73 20 74 68 65 20 63 75 72 72 65 6e 74 |eads the current| 00001d00 20 74 69 6d 65 20 4f 4e 43 45 20 65 61 63 68 20 | time ONCE each | 00001d10 74 69 6d 65 20 74 68 65 20 73 63 72 65 65 6e 20 |time the screen | 00001d20 69 73 20 62 6c 61 6e 6b 65 64 2e 20 4d 69 6e 75 |is blanked. Minu| 00001d30 74 65 20 75 70 64 61 74 65 73 0a 20 20 20 61 72 |te updates. ar| 00001d40 65 20 61 63 68 69 65 76 65 64 20 62 79 20 75 73 |e achieved by us| 00001d50 69 6e 67 20 61 6e 20 69 6e 74 65 72 6e 61 6c 20 |ing an internal | 00001d60 63 6f 75 6e 74 65 72 20 2d 20 74 68 69 73 20 6d |counter - this m| 00001d70 61 79 20 65 76 65 6e 74 75 61 6c 6c 79 20 6c 65 |ay eventually le| 00001d80 61 64 20 74 6f 0a 20 20 20 73 6c 69 67 68 74 20 |ad to. slight | 00001d90 69 6e 61 63 63 75 72 61 63 69 65 73 20 6f 76 65 |inaccuracies ove| 00001da0 72 20 61 20 6c 6f 6e 67 20 70 65 72 69 6f 64 20 |r a long period | 00001db0 6f 66 20 74 69 6d 65 2e 0a 0a 54 65 63 68 6e 69 |of time...Techni| 00001dc0 63 61 6c 20 44 65 74 61 69 6c 73 20 6f 66 20 56 |cal Details of V| 00001dd0 44 55 20 53 61 76 65 72 0a 2d 2d 2d 2d 2d 2d 2d |DU Saver.-------| 00001de0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001df0 2d 2d 2d 2d 2d 2d 2d 0a 0a 49 6e 69 74 69 61 6c |-------..Initial| 00001e00 6c 79 2c 20 49 20 74 72 69 65 64 20 74 6f 20 75 |ly, I tried to u| 00001e10 73 65 20 4f 53 5f 43 61 6c 6c 41 66 74 65 72 20 |se OS_CallAfter | 00001e20 61 6e 64 20 4f 53 5f 52 65 6d 6f 76 65 54 69 63 |and OS_RemoveTic| 00001e30 6b 65 72 45 76 65 6e 74 2c 20 62 75 74 20 74 68 |kerEvent, but th| 00001e40 65 73 65 0a 73 65 65 6d 65 64 20 74 6f 20 63 61 |ese.seemed to ca| 00001e50 72 72 79 20 6f 6e 20 72 65 67 61 72 64 6c 65 73 |rry on regardles| 00001e60 73 20 28 6d 61 79 62 65 20 74 68 65 79 20 64 6f |s (maybe they do| 00001e70 6e 27 74 20 77 6f 72 6b 20 69 6e 20 53 56 43 20 |n't work in SVC | 00001e80 4d 6f 64 65 20 33 20 3f 29 2e 20 49 0a 65 6e 64 |Mode 3 ?). I.end| 00001e90 65 64 20 75 70 20 75 73 69 6e 67 20 61 20 73 69 |ed up using a si| 00001ea0 6d 70 6c 65 20 64 65 63 72 65 6d 65 6e 74 69 6e |mple decrementin| 00001eb0 67 20 63 6f 75 6e 74 65 72 20 69 6e 73 69 64 65 |g counter inside| 00001ec0 20 61 20 56 73 79 6e 63 20 65 76 65 6e 74 20 72 | a Vsync event r| 00001ed0 6f 75 74 69 6e 65 2e 0a 0a 49 20 6e 6f 77 20 62 |outine...I now b| 00001ee0 6c 61 6e 6b 20 74 68 65 20 73 63 72 65 65 6e 20 |lank the screen | 00001ef0 69 6e 20 74 77 6f 20 70 6f 73 73 69 62 6c 65 20 |in two possible | 00001f00 77 61 79 73 2c 20 64 65 70 65 6e 64 69 6e 67 20 |ways, depending | 00001f10 6f 6e 20 74 68 65 20 4d 4f 44 45 20 3a 0a 0a 31 |on the MODE :..1| 00001f20 2e 20 4e 6f 6e 2d 54 65 6c 65 74 65 78 74 2f 32 |. Non-Teletext/2| 00001f30 35 36 2d 63 6f 6c 6f 75 72 20 4d 4f 44 45 73 0a |56-colour MODEs.| 00001f40 20 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------| 00001f50 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00001f60 0a 0a 20 20 20 54 68 65 20 6e 75 6d 62 65 72 20 |.. The number | 00001f70 6f 66 20 6c 6f 67 69 63 61 6c 20 63 6f 6c 6f 75 |of logical colou| 00001f80 72 73 20 69 73 20 66 6f 75 6e 64 20 75 73 69 6e |rs is found usin| 00001f90 67 20 74 68 65 20 4e 43 6f 6c 6f 75 72 20 28 33 |g the NColour (3| 00001fa0 29 20 76 61 6c 75 65 20 73 75 70 70 6c 69 65 64 |) value supplied| 00001fb0 0a 20 20 20 74 6f 20 4f 53 5f 52 65 61 64 56 64 |. to OS_ReadVd| 00001fc0 75 56 61 72 69 61 62 6c 65 73 2e 20 49 74 20 69 |uVariables. It i| 00001fd0 73 20 61 73 73 75 6d 65 64 20 74 68 61 74 20 69 |s assumed that i| 00001fe0 74 20 77 69 6c 6c 20 62 65 20 61 20 6d 61 78 69 |t will be a maxi| 00001ff0 6d 75 6d 20 6f 66 20 31 35 20 69 6e 0a 20 20 20 |mum of 15 in. | 00002000 74 68 69 73 20 63 61 73 65 2e 20 54 68 65 20 70 |this case. The p| 00002010 61 6c 65 74 74 65 20 69 73 20 72 65 61 64 20 61 |alette is read a| 00002020 6e 64 20 73 74 6f 72 65 64 20 69 6e 20 61 20 28 |nd stored in a (| 00002030 6c 6f 67 69 63 61 6c 20 63 6f 6c 6f 75 72 73 2b |logical colours+| 00002040 32 29 2a 34 2d 62 79 74 65 0a 20 20 20 61 72 65 |2)*4-byte. are| 00002050 61 2e 20 54 68 65 20 65 78 74 72 61 20 38 20 62 |a. The extra 8 b| 00002060 79 74 65 73 20 61 72 65 20 66 6f 72 20 74 68 65 |ytes are for the| 00002070 20 62 6f 72 64 65 72 20 63 6f 6c 6f 75 72 20 61 | border colour a| 00002080 6e 64 20 6d 6f 75 73 65 20 6c 6f 67 69 63 61 6c |nd mouse logical| 00002090 20 63 6f 6c 6f 75 72 0a 20 20 20 31 20 69 6e 20 | colour. 1 in | 000020a0 63 61 73 65 20 79 6f 75 27 72 65 20 77 6f 6e 64 |case you're wond| 000020b0 65 72 69 6e 67 2e 20 49 6e 20 74 68 65 20 73 61 |ering. In the sa| 000020c0 6d 65 20 6c 6f 6f 70 2c 20 65 61 63 68 20 63 6f |me loop, each co| 000020d0 6c 6f 75 72 20 69 73 20 73 65 74 20 74 6f 20 62 |lour is set to b| 000020e0 6c 61 63 6b 0a 20 20 20 61 66 74 65 72 20 69 74 |lack. after it| 000020f0 73 20 6f 72 69 67 69 6e 61 6c 20 63 6f 6c 6f 75 |s original colou| 00002100 72 20 69 73 20 73 61 66 65 6c 79 20 73 74 6f 72 |r is safely stor| 00002110 65 64 2e 20 49 20 6e 6f 77 20 75 73 65 20 4f 53 |ed. I now use OS| 00002120 5f 52 65 6d 6f 76 65 43 75 72 73 6f 72 73 20 61 |_RemoveCursors a| 00002130 6e 64 0a 20 20 20 4f 53 5f 52 65 73 74 6f 72 65 |nd. OS_Restore| 00002140 43 75 72 73 6f 72 73 20 74 6f 20 6d 61 6b 65 20 |Cursors to make | 00002150 73 75 72 65 20 74 68 65 20 63 75 72 73 6f 72 20 |sure the cursor | 00002160 64 6f 65 73 6e 27 74 20 72 65 6d 61 69 6e 2e 0a |doesn't remain..| 00002170 0a 32 2e 20 54 65 6c 65 74 65 78 74 20 28 63 75 |.2. Teletext (cu| 00002180 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 4d 4f 44 |rrently only MOD| 00002190 45 20 37 29 20 61 6e 64 20 32 35 36 2d 63 6f 6c |E 7) and 256-col| 000021a0 6f 75 72 20 4d 4f 44 45 73 0a 20 20 20 2d 2d 2d |our MODEs. ---| 000021b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000021e0 2d 2d 0a 0a 20 20 20 54 68 69 73 20 69 73 20 74 |--.. This is t| 000021f0 68 65 20 63 61 73 65 20 77 68 65 6e 20 62 69 74 |he case when bit| 00002200 20 31 20 6f 66 20 4d 6f 64 65 46 6c 61 67 73 20 | 1 of ModeFlags | 00002210 28 30 29 20 69 73 20 73 65 74 20 74 6f 20 69 6e |(0) is set to in| 00002220 64 69 63 61 74 65 20 74 65 6c 65 74 65 78 74 20 |dicate teletext | 00002230 6f 72 0a 20 20 20 77 68 65 6e 20 4e 43 6f 6c 6f |or. when NColo| 00002240 75 72 20 28 33 29 20 69 73 20 73 65 74 20 74 6f |ur (3) is set to| 00002250 20 36 33 2e 20 4c 65 73 73 20 77 6f 72 6b 20 68 | 63. Less work h| 00002260 61 73 20 74 6f 20 62 65 20 64 6f 6e 65 20 68 65 |as to be done he| 00002270 72 65 2c 20 62 65 63 61 75 73 65 20 74 68 65 0a |re, because the.| 00002280 20 20 20 4f 4e 4c 59 20 4b 4e 4f 57 4e 20 57 41 | ONLY KNOWN WA| 00002290 59 20 74 6f 20 62 6c 61 6e 6b 2f 72 65 73 74 6f |Y to blank/resto| 000022a0 72 65 20 74 68 65 20 73 63 72 65 65 6e 20 69 6e |re the screen in| 000022b0 20 74 68 65 73 65 20 4d 4f 44 45 73 20 69 73 20 | these MODEs is | 000022c0 74 6f 20 75 73 65 20 74 68 65 0a 20 20 20 66 6f |to use the. fo| 000022d0 6c 6c 6f 77 69 6e 67 20 62 69 74 20 6f 66 20 63 |llowing bit of c| 000022e0 6f 64 65 20 28 6f 66 20 63 6f 75 72 73 65 2c 20 |ode (of course, | 000022f0 49 20 64 6f 20 74 68 65 20 41 52 4d 20 65 71 75 |I do the ARM equ| 00002300 69 76 61 6c 65 6e 74 2e 2e 2e 29 20 3a 0a 20 20 |ivalent...) :. | 00002310 20 0a 20 20 20 53 59 53 20 22 4f 53 5f 55 70 64 | . SYS "OS_Upd| 00002320 61 74 65 4d 45 4d 43 22 2c 26 33 30 30 2c 26 37 |ateMEMC",&300,&7| 00002330 30 30 20 54 4f 20 6f 6c 64 76 61 6c 20 20 20 20 |00 TO oldval | 00002340 20 20 20 20 20 20 3a 20 62 6c 61 6e 6b 73 20 74 | : blanks t| 00002350 68 65 20 73 63 72 65 65 6e 0a 20 20 20 53 59 53 |he screen. SYS| 00002360 20 22 4f 53 5f 55 70 64 61 74 65 4d 45 4d 43 22 | "OS_UpdateMEMC"| 00002370 2c 6f 6c 64 76 61 6c 2c 26 37 30 30 20 20 20 20 |,oldval,&700 | 00002380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 20 | : | 00002390 72 65 73 74 6f 72 65 73 20 69 74 2e 0a 20 20 20 |restores it.. | 000023a0 54 68 61 6e 6b 73 20 74 6f 20 54 6f 6c 6c 69 27 |Thanks to Tolli'| 000023b0 73 20 42 6c 61 6e 6b 65 72 20 28 61 76 61 69 6c |s Blanker (avail| 000023c0 61 62 6c 65 20 6f 6e 20 53 49 44 29 20 66 6f 72 |able on SID) for| 000023d0 20 74 68 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f | this informatio| 000023e0 6e 2e 0a 0a 20 20 20 41 6e 6e 6f 79 69 6e 67 6c |n... Annoyingl| 000023f0 79 2c 20 74 68 65 20 6d 6f 75 73 65 20 61 6c 73 |y, the mouse als| 00002400 6f 20 67 65 74 73 20 62 6c 61 6e 6b 65 64 20 2d |o gets blanked -| 00002410 20 68 65 6e 63 65 20 74 68 65 72 65 20 69 73 20 | hence there is | 00002420 6e 6f 20 27 53 6d 69 6c 65 79 27 20 66 61 63 65 |no 'Smiley' face| 00002430 0a 20 20 20 6f 72 20 74 69 6d 65 20 69 6e 20 74 |. or time in t| 00002440 68 65 73 65 20 4d 4f 44 45 73 2e 20 54 68 65 20 |hese MODEs. The | 00002450 6f 6e 6c 79 20 70 61 6c 65 74 74 65 20 73 61 76 |only palette sav| 00002460 65 73 2f 72 65 73 74 6f 72 65 73 20 74 68 61 74 |es/restores that| 00002470 20 73 74 69 6c 6c 20 68 61 76 65 20 74 6f 0a 20 | still have to. | 00002480 20 20 62 65 20 64 6f 6e 65 20 61 72 65 20 74 68 | be done are th| 00002490 65 20 62 6f 72 64 65 72 20 63 6f 6c 6f 75 72 20 |e border colour | 000024a0 61 6e 64 20 74 68 65 20 62 61 63 6b 67 72 6f 75 |and the backgrou| 000024b0 6e 64 20 63 6f 6c 6f 75 72 20 28 30 29 2c 20 74 |nd colour (0), t| 000024c0 68 65 20 6c 61 74 74 65 72 20 6f 66 0a 20 20 20 |he latter of. | 000024d0 77 68 69 63 68 20 49 20 66 6f 72 67 6f 74 20 74 |which I forgot t| 000024e0 6f 20 64 6f 20 69 6e 20 56 31 2e 30 33 20 21 20 |o do in V1.03 ! | 000024f0 46 6f 72 20 56 32 2e 30 31 20 6f 6e 77 61 72 64 |For V2.01 onward| 00002500 73 2c 20 49 27 76 65 20 61 64 64 65 64 20 61 20 |s, I've added a | 00002510 27 74 68 72 6f 62 62 69 6e 67 27 0a 20 20 20 62 |'throbbing'. b| 00002520 6f 72 64 65 72 20 63 6f 6c 6f 75 72 20 74 6f 20 |order colour to | 00002530 61 74 20 6c 65 61 73 74 20 69 6e 64 69 63 61 74 |at least indicat| 00002540 65 20 74 68 61 74 20 73 6f 6d 65 74 68 69 6e 67 |e that something| 00002550 20 69 73 20 67 6f 69 6e 67 20 6f 6e 2e 20 54 68 | is going on. Th| 00002560 69 73 20 63 79 63 6c 65 73 0a 20 20 20 75 70 20 |is cycles. up | 00002570 61 6e 64 20 64 6f 77 6e 20 74 68 65 20 70 61 6c |and down the pal| 00002580 65 74 74 65 20 61 63 63 6f 72 64 69 6e 67 20 74 |ette according t| 00002590 6f 20 74 68 65 20 53 61 76 65 72 52 47 42 20 76 |o the SaverRGB v| 000025a0 61 6c 75 65 73 20 73 70 65 63 69 66 69 65 64 2e |alues specified.| 000025b0 0a 0a 54 68 65 20 27 53 6d 69 6c 65 79 27 20 66 |..The 'Smiley' f| 000025c0 61 63 65 20 69 73 20 73 69 6d 70 6c 79 20 6d 6f |ace is simply mo| 000025d0 75 73 65 20 70 6f 69 6e 74 65 72 20 73 68 61 70 |use pointer shap| 000025e0 65 20 32 20 28 74 68 65 20 73 79 73 74 65 6d 20 |e 2 (the system | 000025f0 75 73 75 61 6c 6c 79 20 75 73 65 73 0a 73 68 61 |usually uses.sha| 00002600 70 65 20 31 29 20 72 65 2d 70 72 6f 67 72 61 6d |pe 1) re-program| 00002610 6d 65 64 20 61 6e 64 20 75 73 69 6e 67 20 63 6f |med and using co| 00002620 6c 6f 75 72 20 31 20 73 65 74 20 74 6f 20 74 68 |lour 1 set to th| 00002630 65 20 53 61 76 65 72 52 47 42 20 76 61 6c 75 65 |e SaverRGB value| 00002640 73 20 2a 20 26 35 30 2e 0a 0a 54 68 65 20 66 6f |s * &50...The fo| 00002650 6c 6c 6f 77 69 6e 67 20 76 65 63 74 6f 72 73 20 |llowing vectors | 00002660 61 72 65 20 74 72 61 70 70 65 64 20 74 6f 20 61 |are trapped to a| 00002670 76 6f 69 64 20 6d 6f 75 73 65 20 73 68 61 70 65 |void mouse shape| 00002680 20 63 68 61 6e 67 65 20 64 75 72 69 6e 67 20 62 | change during b| 00002690 6c 61 6e 6b 69 6e 67 3a 0a 2a 20 4f 53 5f 42 79 |lanking:.* OS_By| 000026a0 74 65 20 76 65 63 74 6f 72 20 74 6f 20 63 68 65 |te vector to che| 000026b0 63 6b 20 66 6f 72 20 2a 46 58 20 31 30 36 2c 3c |ck for *FX 106,<| 000026c0 76 61 6c 75 65 3e 2e 0a 20 20 54 68 65 20 76 61 |value>.. The va| 000026d0 6c 75 65 20 69 73 20 73 74 6f 72 65 64 20 28 62 |lue is stored (b| 000026e0 75 74 20 4e 4f 54 20 65 78 65 63 75 74 65 64 20 |ut NOT executed | 000026f0 74 6f 20 70 72 65 76 65 6e 74 20 73 68 61 70 65 |to prevent shape| 00002700 20 63 68 61 6e 67 65 29 20 61 6e 64 20 74 68 65 | change) and the| 00002710 6e 20 75 73 65 64 2c 0a 20 20 77 68 65 6e 20 74 |n used,. when t| 00002720 68 65 20 73 63 72 65 65 6e 20 69 73 20 72 65 73 |he screen is res| 00002730 74 6f 72 65 64 2c 20 74 6f 20 72 65 73 74 6f 72 |tored, to restor| 00002740 65 20 74 68 65 20 6e 65 77 20 70 6f 69 6e 74 65 |e the new pointe| 00002750 72 20 73 68 61 70 65 20 6e 75 6d 62 65 72 2e 0a |r shape number..| 00002760 2a 20 4f 53 5f 57 6f 72 64 20 76 65 63 74 6f 72 |* OS_Word vector| 00002770 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 20 4f 53 | to check for OS| 00002780 5f 57 6f 72 64 20 31 32 20 28 77 72 69 74 65 20 |_Word 12 (write | 00002790 70 61 6c 65 74 74 65 29 20 66 6f 72 20 70 68 79 |palette) for phy| 000027a0 73 69 63 61 6c 20 63 6f 6c 6f 75 72 0a 20 20 32 |sical colour. 2| 000027b0 35 20 28 6d 6f 75 73 65 29 2e 20 41 67 61 69 6e |5 (mouse). Again| 000027c0 2c 20 74 68 69 73 20 69 73 20 73 61 76 65 64 20 |, this is saved | 000027d0 61 6e 64 20 72 65 73 74 6f 72 65 64 20 6c 61 74 |and restored lat| 000027e0 65 72 20 6f 6e 2e 0a 0a 4f 68 2c 20 62 79 20 74 |er on...Oh, by t| 000027f0 68 65 20 77 61 79 2c 20 74 68 65 72 65 27 73 20 |he way, there's | 00002800 6e 6f 20 63 61 6c 6c 20 74 6f 20 72 65 61 64 20 |no call to read | 00002810 74 68 65 20 63 75 72 72 65 6e 74 20 6d 6f 75 73 |the current mous| 00002820 65 20 73 68 61 70 65 20 28 69 74 73 20 70 69 78 |e shape (its pix| 00002830 65 6c 0a 70 61 74 74 65 72 6e 20 69 6e 20 6f 74 |el.pattern in ot| 00002840 68 65 72 20 77 6f 72 64 73 29 2c 20 73 6f 20 73 |her words), so s| 00002850 68 61 70 65 20 32 20 69 73 20 6f 76 65 72 77 72 |hape 2 is overwr| 00002860 69 74 74 65 6e 20 49 27 6d 20 61 66 72 61 69 64 |itten I'm afraid| 00002870 2e 0a 0a 2a 4e 45 57 20 54 4f 20 56 32 2e 30 33 |...*NEW TO V2.03| 00002880 2a 0a 41 6c 73 6f 20 6d 69 73 73 69 6e 67 20 69 |*.Also missing i| 00002890 73 20 61 20 63 61 6c 6c 20 74 6f 20 66 69 6e 64 |s a call to find| 000028a0 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 6f 75 | the current mou| 000028b0 73 65 20 72 65 63 74 61 6e 67 6c 65 20 62 6f 75 |se rectangle bou| 000028c0 6e 64 73 2c 20 73 6f 20 49 20 68 61 76 65 20 74 |nds, so I have t| 000028d0 6f 0a 73 65 74 20 74 68 65 6d 20 74 6f 20 28 20 |o.set them to ( | 000028e0 30 20 2c 20 30 20 29 20 2d 20 28 20 58 20 2c 20 |0 , 0 ) - ( X , | 000028f0 59 20 29 20 77 68 65 72 65 3a 0a 58 20 3d 20 28 |Y ) where:.X = (| 00002900 20 58 57 69 6e 64 4c 69 6d 69 74 20 3c 3c 20 58 | XWindLimit << X| 00002910 45 69 67 46 61 63 74 6f 72 20 29 20 61 6e 64 20 |EigFactor ) and | 00002920 20 20 20 20 20 20 20 20 7d 20 41 73 20 72 65 61 | } As rea| 00002930 64 20 62 79 0a 59 20 3d 20 28 20 28 20 59 57 69 |d by.Y = ( ( YWi| 00002940 6e 64 4c 69 6d 69 74 20 2d 20 31 32 20 29 20 3c |ndLimit - 12 ) <| 00002950 3c 20 59 45 69 67 46 61 63 74 6f 72 20 29 20 20 |< YEigFactor ) | 00002960 20 20 7d 20 4f 53 5f 52 65 61 64 56 64 75 56 61 | } OS_ReadVduVa| 00002970 72 69 61 62 6c 65 73 0a 0a 57 68 65 6e 20 74 68 |riables..When th| 00002980 65 20 73 63 72 65 65 6e 20 69 73 20 62 6c 61 6e |e screen is blan| 00002990 6b 65 64 2c 20 74 68 65 20 57 72 63 68 56 20 28 |ked, the WrchV (| 000029a0 72 65 73 74 6f 72 65 20 73 63 72 65 65 6e 20 6f |restore screen o| 000029b0 6e 20 61 6e 79 20 56 44 55 20 6f 75 74 70 75 74 |n any VDU output| 000029c0 29 20 61 6e 64 0a 45 76 65 6e 74 56 20 28 72 65 |) and.EventV (re| 000029d0 73 74 6f 72 65 20 6f 6e 20 45 76 65 6e 74 20 31 |store on Event 1| 000029e0 30 20 2d 20 4d 6f 75 73 65 20 42 75 74 74 6f 6e |0 - Mouse Button| 000029f0 20 70 72 65 73 73 65 64 20 2d 20 6f 72 20 31 31 | pressed - or 11| 00002a00 20 2d 20 4b 65 79 20 70 72 65 73 73 65 64 29 0a | - Key pressed).| 00002a10 76 65 63 74 6f 72 73 20 72 65 61 63 74 69 76 61 |vectors reactiva| 00002a20 74 65 20 74 68 65 20 73 63 72 65 65 6e 2e 20 4f |te the screen. O| 00002a30 53 5f 4f 53 5f 4f 73 65 20 69 73 20 61 6c 73 6f |S_OS_Ose is also| 00002a40 20 63 68 65 63 6b 65 64 20 74 6f 20 73 65 65 20 | checked to see | 00002a50 69 66 20 74 68 65 20 6d 6f 75 73 65 0a 70 6f 73 |if the mouse.pos| 00002a60 69 74 69 6f 6e 20 68 61 73 20 63 68 61 6e 67 65 |ition has change| 00002a70 64 2e 20 49 66 20 69 74 20 68 61 73 2c 20 74 68 |d. If it has, th| 00002a80 65 20 73 63 72 65 65 6e 20 69 73 20 72 65 73 74 |e screen is rest| 00002a90 6f 72 65 64 2e 0a 0a 54 68 65 20 53 65 72 76 69 |ored...The Servi| 00002aa0 63 65 20 43 61 6c 6c 20 26 34 36 20 28 4d 6f 64 |ce Call &46 (Mod| 00002ab0 65 20 43 68 61 6e 67 65 29 20 69 73 20 6e 6f 77 |e Change) is now| 00002ac0 20 72 65 63 6f 67 6e 69 73 65 64 20 73 6f 20 61 | recognised so a| 00002ad0 73 20 74 6f 20 70 65 72 6d 69 74 20 61 20 4d 4f |s to permit a MO| 00002ae0 44 45 0a 63 68 61 6e 67 65 20 74 6f 20 62 65 20 |DE.change to be | 00002af0 61 20 76 61 6c 69 64 20 73 63 72 65 65 6e 20 72 |a valid screen r| 00002b00 65 73 74 6f 72 61 74 69 6f 6e 20 28 62 79 20 74 |estoration (by t| 00002b10 68 65 20 4f 53 20 72 61 74 68 65 72 20 74 68 61 |he OS rather tha| 00002b20 6e 20 56 44 55 20 53 61 76 65 72 29 2e 0a 54 68 |n VDU Saver)..Th| 00002b30 69 73 20 69 73 20 69 6e 64 65 70 65 6e 64 65 6e |is is independen| 00002b40 74 20 6f 66 20 74 68 65 20 56 44 55 54 72 61 70 |t of the VDUTrap| 00002b50 20 73 65 74 74 69 6e 67 20 6f 72 20 73 63 72 65 | setting or scre| 00002b60 65 6e 20 4d 4f 44 45 2e 0a 0a 54 68 65 20 6e 65 |en MODE...The ne| 00002b70 77 20 32 34 2d 68 6f 75 72 20 63 6c 6f 63 6b 20 |w 24-hour clock | 00002b80 66 65 61 74 75 72 65 20 69 73 6e 27 74 20 61 73 |feature isn't as| 00002b90 20 65 61 73 79 20 61 73 20 69 74 20 73 6f 75 6e | easy as it soun| 00002ba0 64 73 20 62 65 63 61 75 73 65 20 49 27 76 65 20 |ds because I've | 00002bb0 73 70 65 63 69 61 6c 6c 79 0a 64 65 66 69 6e 65 |specially.define| 00002bc0 64 20 74 68 65 20 64 69 67 69 74 73 20 30 20 74 |d the digits 0 t| 00002bd0 6f 20 39 20 61 6e 64 20 74 68 65 20 73 74 72 69 |o 9 and the stri| 00002be0 6e 67 20 22 54 49 4d 45 22 20 61 73 20 6d 6f 75 |ng "TIME" as mou| 00002bf0 73 65 20 73 68 61 70 65 20 64 61 74 61 2e 20 49 |se shape data. I| 00002c00 20 63 61 6c 6c 0a 4f 53 5f 57 6f 72 64 20 31 34 | call.OS_Word 14| 00002c10 20 28 70 61 72 61 6d 20 31 29 20 74 6f 20 67 65 | (param 1) to ge| 00002c20 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 69 |t the current ti| 00002c30 6d 65 20 69 6e 20 42 43 44 2e 20 49 20 64 6f 20 |me in BCD. I do | 00002c40 73 6f 6d 65 20 73 68 69 66 74 69 6e 67 20 61 6e |some shifting an| 00002c50 64 0a 75 73 65 20 74 68 65 20 76 61 6c 75 65 20 |d.use the value | 00002c60 6f 66 20 74 68 65 20 64 69 67 69 74 73 20 74 6f |of the digits to| 00002c70 20 67 65 74 20 74 68 65 20 6f 66 66 73 65 74 20 | get the offset | 00002c80 69 6e 74 6f 20 74 68 65 20 64 61 74 61 2c 20 77 |into the data, w| 00002c90 68 69 63 68 20 69 73 20 70 6f 6b 65 64 0a 69 6e |hich is poked.in| 00002ca0 74 6f 20 74 68 65 20 6d 6f 75 73 65 20 73 68 61 |to the mouse sha| 00002cb0 70 65 20 64 65 66 69 6e 69 74 69 6f 6e 2e 0a 0a |pe definition...| 00002cc0 56 32 2e 30 30 20 6f 6e 77 61 72 64 73 20 6e 6f |V2.00 onwards no| 00002cd0 77 20 75 73 65 73 20 43 4d 4f 53 20 52 41 4d 20 |w uses CMOS RAM | 00002ce0 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 |in the following| 00002cf0 20 77 61 79 3a 0a 0a 2b 2d 2d 2d 2d 2d 2d 2d 2d | way:..+--------| 00002d00 2d 2b 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d |-+-------+------| * 00002d40 2d 2b 0a 7c 20 42 69 74 73 3a 20 20 20 7c 20 20 |-+.| Bits: | | 00002d50 20 37 20 20 20 7c 20 20 20 36 20 20 20 7c 20 20 | 7 | 6 | | 00002d60 20 35 20 20 20 7c 20 20 20 34 20 20 20 7c 20 20 | 5 | 4 | | 00002d70 20 33 20 20 20 7c 20 20 20 32 20 20 20 7c 20 20 | 3 | 2 | | 00002d80 20 31 20 20 20 7c 20 20 20 30 20 20 20 7c 0a 2b | 1 | 0 |.+| 00002d90 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d |---------+------| 00002da0 2d 2b 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d |-+-------+------| * 00002dd0 2d 2b 2d 2d 2d 2d 2d 2d 2d 2b 0a 7c 20 42 79 74 |-+-------+.| Byt| 00002de0 65 20 33 35 20 7c 3c 54 72 61 70 2d 3e 7c 3c 54 |e 35 |<Trap->|<T| 00002df0 79 70 65 2d 3e 7c 3c 2d 2d 2d 2d 2d 2d 2d 2d 2d |ype->|<---------| 00002e00 2d 2d 2d 2d 2d 2d 20 20 53 61 76 65 72 44 65 6c |------ SaverDel| 00002e10 61 79 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |ay ------------| 00002e20 2d 2d 2d 2d 3e 7c 0a 2b 2d 2d 2d 2d 2d 2d 2d 2d |---->|.+--------| 00002e30 2d 2b 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d |-+-------+------| * 00002e70 2d 2b 0a 7c 20 42 79 74 65 20 33 36 20 7c 3c 2d |-+.| Byte 36 |<-| 00002e80 2d 2d 20 42 6c 75 65 20 2d 2d 2d 2d 3e 7c 3c 2d |-- Blue ---->|<-| 00002e90 2d 2d 20 47 72 65 65 6e 20 2d 2d 2d 3e 7c 3c 2d |-- Green --->|<-| 00002ea0 2d 2d 2d 20 52 65 64 20 2d 2d 2d 2d 3e 7c 3c 2d |--- Red ---->|<-| 00002eb0 53 61 76 65 72 53 70 65 65 64 2d 2d 3e 7c 0a 2b |SaverSpeed-->|.+| 00002ec0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d |---------+------| 00002ed0 2d 2b 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d |-+-------+------| * 00002f00 2d 2b 2d 2d 2d 2d 2d 2d 2d 2b 0a 0a 43 50 55 20 |-+-------+..CPU | 00002f10 75 74 69 6c 69 73 61 74 69 6f 6e 20 20 20 20 2a |utilisation *| 00002f20 55 50 44 41 54 45 44 20 46 4f 52 20 52 49 53 43 |UPDATED FOR RISC| 00002f30 20 4f 53 2a 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | OS*.-----------| 00002f40 2d 2d 2d 2d 0a 0a 53 6f 6d 65 6f 6e 65 20 65 6e |----..Someone en| 00002f50 71 75 69 72 65 64 20 61 62 6f 75 74 20 74 68 65 |quired about the| 00002f60 20 61 6d 6f 75 6e 74 20 6f 66 20 43 50 55 20 74 | amount of CPU t| 00002f70 69 6d 65 20 75 73 65 64 20 77 68 65 6e 20 74 68 |ime used when th| 00002f80 65 20 56 44 55 20 53 61 76 65 72 20 77 61 73 0a |e VDU Saver was.| 00002f90 61 63 74 69 76 65 2e 20 48 65 72 65 27 73 20 73 |active. Here's s| 00002fa0 6f 6d 65 20 28 63 72 75 64 65 2c 20 62 75 74 20 |ome (crude, but | 00002fb0 65 66 66 65 63 74 69 76 65 29 20 62 65 6e 63 68 |effective) bench| 00002fc0 6d 61 72 6b 73 20 64 6f 6e 65 20 6f 6e 20 6d 79 |marks done on my| 00002fd0 20 41 33 31 30 20 72 75 6e 6e 69 6e 67 0a 42 41 | A310 running.BA| 00002fe0 53 49 43 20 31 2e 30 34 20 61 6e 64 20 52 49 53 |SIC 1.04 and RIS| 00002ff0 43 20 4f 53 20 32 2e 30 30 20 3a 0a 0a 20 20 20 |C OS 2.00 :.. | 00003000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00003020 20 56 44 55 54 72 61 70 3f 20 20 49 6e 61 63 74 | VDUTrap? Inact| 00003030 69 76 65 20 41 63 74 69 76 65 20 20 44 69 66 66 |ive Active Diff| 00003040 20 20 20 20 53 6c 6f 77 65 72 0a 31 30 20 4d 4f | Slower.10 MO| 00003050 44 45 20 30 3a 54 49 4d 45 3d 30 0a 32 30 20 46 |DE 0:TIME=0.20 F| 00003060 4f 52 20 41 25 3d 31 20 54 4f 20 34 30 30 30 30 |OR A%=1 TO 40000| 00003070 30 30 3a 4e 45 58 54 20 20 20 20 20 20 20 20 49 |00:NEXT I| 00003080 72 72 65 6c 65 76 61 6e 74 20 20 35 38 2e 39 39 |rrelevant 58.99| 00003090 73 20 20 35 39 2e 30 36 73 20 20 30 30 2e 30 37 |s 59.06s 00.07| 000030a0 73 20 20 30 30 2e 31 32 25 0a 33 30 20 50 52 49 |s 00.12%.30 PRI| 000030b0 4e 54 20 54 49 4d 45 2f 31 30 30 0a 0a 31 30 20 |NT TIME/100..10 | 000030c0 4d 4f 44 45 20 30 3a 54 49 4d 45 3d 30 20 20 20 |MODE 0:TIME=0 | 000030d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000030e0 20 20 20 59 65 73 20 20 20 20 20 20 35 31 2e 33 | Yes 51.3| 000030f0 32 73 20 20 36 31 2e 34 30 73 20 20 31 30 2e 30 |2s 61.40s 10.0| 00003100 38 73 20 20 31 39 2e 36 34 25 0a 32 30 20 46 4f |8s 19.64%.20 FO| 00003110 52 20 41 25 3d 31 20 54 4f 20 33 30 30 30 30 30 |R A%=1 TO 300000| 00003120 3a 50 52 49 4e 54 22 2a 22 3b 3a 4e 45 58 54 20 |:PRINT"*";:NEXT | 00003130 20 4e 6f 20 20 20 20 20 20 20 35 31 2e 33 32 73 | No 51.32s| 00003140 20 20 35 31 2e 33 38 73 20 20 30 30 2e 30 36 73 | 51.38s 00.06s| 00003150 20 20 30 30 2e 31 32 25 0a 33 30 20 50 52 49 4e | 00.12%.30 PRIN| 00003160 54 20 54 49 4d 45 2f 31 30 30 0a 0a 41 73 20 79 |T TIME/100..As y| 00003170 6f 75 20 63 61 6e 20 73 65 65 2c 20 74 68 65 72 |ou can see, ther| 00003180 65 20 69 73 20 61 20 68 65 66 74 79 20 43 50 55 |e is a hefty CPU| 00003190 20 67 72 61 62 20 28 6e 65 61 72 6c 79 20 6f 6e | grab (nearly on| 000031a0 65 2d 66 69 66 74 68 29 20 69 66 20 63 6f 6e 74 |e-fifth) if cont| 000031b0 69 6e 75 6f 75 73 0a 56 44 55 20 6f 75 74 70 75 |inuous.VDU outpu| 000031c0 74 20 6f 63 63 75 72 73 20 77 68 65 6e 20 74 68 |t occurs when th| 000031d0 65 20 56 44 55 20 53 61 76 65 72 20 69 73 20 61 |e VDU Saver is a| 000031e0 63 74 69 76 65 20 61 6e 64 20 74 68 65 20 56 44 |ctive and the VD| 000031f0 55 54 72 61 70 20 69 73 20 73 77 69 74 63 68 65 |UTrap is switche| 00003200 64 20 6f 6e 2e 0a 54 68 69 73 20 77 6f 75 6c 64 |d on..This would| 00003210 20 73 65 65 6d 20 74 6f 20 69 6e 64 69 63 61 74 | seem to indicat| 00003220 65 20 74 68 61 74 20 63 6c 61 69 6d 69 6e 67 20 |e that claiming | 00003230 57 72 69 74 65 43 56 20 28 62 75 74 20 6e 6f 74 |WriteCV (but not| 00003240 20 64 6f 69 6e 67 20 6d 75 63 68 29 20 61 70 70 | doing much) app| 00003250 65 61 72 73 0a 74 6f 20 62 65 20 61 20 6e 6f 2d |ears.to be a no-| 00003260 6e 6f 20 69 66 20 79 6f 75 20 77 61 6e 74 20 66 |no if you want f| 00003270 61 73 74 20 56 44 55 20 6f 75 74 70 75 74 20 2d |ast VDU output -| 00003280 20 62 6c 61 6d 65 20 41 63 6f 72 6e 2c 20 6e 6f | blame Acorn, no| 00003290 74 20 6d 65 20 21 0a 0a 49 6e 20 6e 6f 72 6d 61 |t me !..In norma| 000032a0 6c 20 73 69 74 75 61 74 69 6f 6e 73 2c 20 68 6f |l situations, ho| 000032b0 77 65 76 65 72 2c 20 74 68 65 20 43 50 55 20 67 |wever, the CPU g| 000032c0 72 61 62 20 77 69 6c 6c 20 62 65 20 77 65 6c 6c |rab will be well| 000032d0 20 75 6e 64 65 72 20 31 25 2c 20 73 6f 20 74 68 | under 1%, so th| 000032e0 65 72 65 20 69 73 0a 6e 6f 20 6e 65 65 64 20 74 |ere is.no need t| 000032f0 6f 20 70 61 6e 69 63 20 61 74 20 74 68 65 20 61 |o panic at the a| 00003300 6c 61 72 6d 69 6e 67 20 31 39 2e 36 34 25 20 66 |larming 19.64% f| 00003310 69 67 75 72 65 20 28 79 65 73 2c 20 49 20 77 61 |igure (yes, I wa| 00003320 73 20 73 68 6f 63 6b 65 64 20 61 74 20 74 68 69 |s shocked at thi| 00003330 73 0a 74 6f 6f 29 2e 2e 2e 0a 0a 54 68 65 20 63 |s.too).....The c| 00003340 6f 64 65 20 69 6e 20 56 32 2e 30 30 20 6f 6e 77 |ode in V2.00 onw| 00003350 61 72 64 73 20 68 61 73 20 62 65 65 6e 20 65 78 |ards has been ex| 00003360 74 65 6e 73 69 76 65 6c 79 20 72 65 2d 6f 72 67 |tensively re-org| 00003370 61 6e 69 73 65 64 20 74 6f 20 75 73 65 20 74 68 |anised to use th| 00003380 65 20 6d 69 6e 69 6d 75 6d 0a 61 6d 6f 75 6e 74 |e minimum.amount| 00003390 20 6f 66 20 43 50 55 20 74 69 6d 65 20 77 68 65 | of CPU time whe| 000033a0 6e 20 74 68 65 20 6d 6f 64 75 6c 65 20 69 73 20 |n the module is | 000033b0 6c 6f 61 64 65 64 20 61 6e 64 20 65 69 74 68 65 |loaded and eithe| 000033c0 72 20 61 63 74 69 76 65 20 6f 72 20 69 6e 61 63 |r active or inac| 000033d0 74 69 76 65 2e 0a 50 72 65 76 69 6f 75 73 20 76 |tive..Previous v| 000033e0 65 72 73 69 6f 6e 73 20 77 6f 75 6c 64 20 61 63 |ersions would ac| 000033f0 74 75 61 6c 6c 79 20 75 73 65 20 75 70 20 43 50 |tually use up CP| 00003400 55 20 74 69 6d 65 20 61 73 20 73 6f 6f 6e 20 61 |U time as soon a| 00003410 73 20 74 68 65 20 6d 6f 64 75 6c 65 20 77 61 73 |s the module was| 00003420 0a 6c 6f 61 64 65 64 20 21 20 49 6e 20 70 61 72 |.loaded ! In par| 00003430 74 69 63 75 6c 61 72 2c 20 56 32 2e 30 30 20 6f |ticular, V2.00 o| 00003440 6e 77 61 72 64 73 20 64 6f 65 73 20 6e 6f 74 20 |nwards does not | 00003450 63 6c 61 69 6d 20 61 6e 79 20 76 65 63 74 6f 72 |claim any vector| 00003460 73 20 6f 72 20 65 6e 61 62 6c 65 0a 65 76 65 6e |s or enable.even| 00003470 74 73 20 75 6e 74 69 6c 20 61 20 2a 56 44 55 53 |ts until a *VDUS| 00003480 61 76 65 72 20 63 6f 6d 6d 61 6e 64 20 69 73 20 |aver command is | 00003490 69 73 73 75 65 64 2e 0a 0a 52 65 76 69 73 69 6f |issued...Revisio| 000034a0 6e 20 48 69 73 74 6f 72 79 20 6f 66 20 56 44 55 |n History of VDU| 000034b0 20 53 61 76 65 72 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d | Saver.---------| 000034c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000034d0 2d 2d 2d 2d 0a 0a 56 65 72 73 69 6f 6e 20 32 2e |----..Version 2.| 000034e0 30 33 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a |03.------------.| 000034f0 0a 2a 20 41 20 6e 65 77 20 2a 56 44 55 53 74 61 |.* A new *VDUSta| 00003500 74 75 73 20 63 6f 6d 6d 61 6e 64 20 68 61 73 20 |tus command has | 00003510 62 65 65 6e 20 61 64 64 65 64 20 73 6f 20 74 68 |been added so th| 00003520 61 74 20 75 73 65 72 73 20 63 61 6e 20 63 68 65 |at users can che| 00003530 63 6b 20 77 68 61 74 20 76 61 6c 75 65 73 0a 20 |ck what values. | 00003540 20 74 68 65 79 27 76 65 20 6a 75 73 74 20 73 75 | they've just su| 00003550 70 70 6c 69 65 64 20 74 6f 20 74 68 65 20 6c 61 |pplied to the la| 00003560 74 65 73 74 20 2a 56 44 55 53 61 76 65 72 20 63 |test *VDUSaver c| 00003570 6f 6d 6d 61 6e 64 2e 0a 0a 2a 20 54 6f 20 74 69 |ommand...* To ti| 00003580 65 20 69 6e 20 77 69 74 68 20 74 68 65 20 6e 65 |e in with the ne| 00003590 77 20 63 6f 6d 6d 61 6e 64 2c 20 61 20 73 6f 66 |w command, a sof| 000035a0 74 20 72 65 73 65 74 20 6e 6f 77 20 70 65 72 66 |t reset now perf| 000035b0 6f 72 6d 73 20 74 68 65 20 65 71 75 69 76 61 6c |orms the equival| 000035c0 65 6e 74 0a 20 20 6f 66 20 61 20 2a 56 44 55 53 |ent. of a *VDUS| 000035d0 61 76 65 72 20 30 20 63 6f 6d 6d 61 6e 64 20 73 |aver 0 command s| 000035e0 6f 20 74 68 61 74 20 2a 56 44 55 53 74 61 74 75 |o that *VDUStatu| 000035f0 73 20 77 69 6c 6c 20 72 65 70 6f 72 74 20 74 68 |s will report th| 00003600 65 20 63 6f 72 72 65 63 74 20 73 74 61 74 75 73 |e correct status| 00003610 0a 20 20 28 49 6e 61 63 74 69 76 65 29 20 72 61 |. (Inactive) ra| 00003620 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 6c 61 |ther than the la| 00003630 73 74 20 61 63 74 69 76 65 20 76 61 6c 75 65 73 |st active values| 00003640 2e 0a 0a 2a 20 55 73 65 64 20 4f 53 5f 52 65 61 |...* Used OS_Rea| 00003650 64 56 64 75 56 61 72 69 61 62 6c 65 73 20 74 6f |dVduVariables to| 00003660 20 66 69 6e 64 20 74 68 65 20 4d 4f 44 45 2d 69 | find the MODE-i| 00003670 6e 64 65 70 65 6e 64 65 6e 74 20 6d 6f 75 73 65 |ndependent mouse| 00003680 20 72 65 63 74 61 6e 67 6c 65 2c 20 73 6f 0a 20 | rectangle, so. | 00003690 20 74 68 6f 73 65 20 70 65 6f 70 6c 65 20 77 69 | those people wi| 000036a0 74 68 20 68 69 2d 72 65 73 20 42 26 57 20 6d 6f |th hi-res B&W mo| 000036b0 6e 69 74 6f 72 73 20 73 68 6f 75 6c 64 20 28 68 |nitors should (h| 000036c0 6f 70 65 66 75 6c 6c 79 2e 2e 2e 61 6e 79 6f 6e |opefully...anyon| 000036d0 65 20 63 61 72 65 20 74 6f 0a 20 20 74 65 73 74 |e care to. test| 000036e0 20 74 68 69 73 20 3f 29 20 68 61 76 65 20 61 20 | this ?) have a | 000036f0 70 72 6f 70 65 72 20 72 65 63 74 61 6e 67 6c 65 |proper rectangle| 00003700 2e 0a 0a 2a 20 44 75 65 20 74 6f 20 61 62 6f 76 |...* Due to abov| 00003710 65 20 63 68 61 6e 67 65 2c 20 73 75 70 70 6f 72 |e change, suppor| 00003720 74 20 66 6f 72 20 41 72 74 68 75 72 20 31 2e 32 |t for Arthur 1.2| 00003730 30 20 68 61 73 20 6e 6f 77 20 62 65 65 6e 20 64 |0 has now been d| 00003740 72 6f 70 70 65 64 2e 20 52 49 53 43 20 4f 53 0a |ropped. RISC OS.| 00003750 20 20 68 61 73 20 62 65 65 6e 20 67 65 6e 65 72 | has been gener| 00003760 61 6c 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 66 |ally available f| 00003770 6f 72 20 6d 6f 72 65 20 74 68 61 6e 20 36 20 6d |or more than 6 m| 00003780 6f 6e 74 68 73 20 6e 6f 77 2c 20 73 6f 20 74 68 |onths now, so th| 00003790 65 72 65 27 73 20 6e 6f 0a 20 20 65 78 63 75 73 |ere's no. excus| 000037a0 65 20 28 61 6e 64 20 79 6f 75 20 63 61 6e 20 6e |e (and you can n| 000037b0 6f 77 20 72 65 61 64 69 6c 79 20 6f 72 64 65 72 |ow readily order| 000037c0 20 74 68 65 20 6e 65 77 20 50 52 4d 27 73 20 74 | the new PRM's t| 000037d0 6f 6f 20 2d 20 49 27 76 65 20 67 6f 74 20 6d 69 |oo - I've got mi| 000037e0 6e 65 29 2e 0a 0a 56 65 72 73 69 6f 6e 20 32 2e |ne)...Version 2.| 000037f0 30 32 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a |02.------------.| 00003800 0a 2a 20 50 72 65 76 65 6e 74 65 64 20 74 68 65 |.* Prevented the| 00003810 20 6d 6f 75 73 65 20 73 68 61 70 65 20 6e 75 6d | mouse shape num| 00003820 62 65 72 20 28 32 29 20 75 73 65 64 20 62 79 20 |ber (2) used by | 00003830 56 44 55 20 53 61 76 65 72 20 66 72 6f 6d 20 63 |VDU Saver from c| 00003840 68 61 6e 67 69 6e 67 20 64 75 72 69 6e 67 0a 20 |hanging during. | 00003850 20 73 63 72 65 65 6e 20 62 6c 61 6e 6b 69 6e 67 | screen blanking| 00003860 20 28 62 75 74 20 73 74 69 6c 6c 20 63 68 61 6e | (but still chan| 00003870 67 65 73 20 74 6f 20 72 65 71 75 65 73 74 65 64 |ges to requested| 00003880 20 73 68 61 70 65 20 6e 75 6d 62 65 72 20 6f 6e | shape number on| 00003890 20 73 63 72 65 65 6e 0a 20 20 72 65 73 74 6f 72 | screen. restor| 000038a0 61 74 69 6f 6e 29 2e 20 44 69 74 74 6f 20 66 6f |ation). Ditto fo| 000038b0 72 20 6d 6f 75 73 65 20 63 6f 6c 6f 75 72 20 31 |r mouse colour 1| 000038c0 20 28 66 6f 72 20 4f 53 5f 57 6f 72 64 20 31 32 | (for OS_Word 12| 000038d0 20 63 61 6c 6c 73 20 6f 6e 6c 79 29 2e 0a 20 20 | calls only).. | 000038e0 0a 2a 20 54 68 65 20 63 68 65 63 6b 20 66 6f 72 |.* The check for| 000038f0 20 30 20 64 65 6c 61 79 20 76 61 6c 75 65 20 69 | 0 delay value i| 00003900 6e 20 43 4d 4f 53 20 52 41 4d 20 77 61 73 20 6e |n CMOS RAM was n| 00003910 6f 74 20 77 6f 72 6b 69 6e 67 20 63 6f 72 72 65 |ot working corre| 00003920 63 74 6c 79 2e 20 41 6c 74 68 6f 75 67 68 0a 20 |ctly. Although. | 00003930 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 31 35 | the value of 15| 00003940 20 28 6d 69 6e 75 74 65 73 29 20 77 6f 75 6c 64 | (minutes) would| 00003950 20 62 65 20 75 73 65 64 20 28 61 6e 64 20 73 68 | be used (and sh| 00003960 6f 77 6e 20 69 6e 20 2a 53 74 61 74 75 73 29 2c |own in *Status),| 00003970 20 61 20 66 61 75 6c 74 79 0a 20 20 4d 4f 56 45 | a faulty. MOVE| 00003980 51 53 20 69 6e 73 74 72 75 63 74 69 6f 6e 20 6d |QS instruction m| 00003990 65 61 6e 74 20 74 68 61 74 20 74 68 65 20 61 63 |eant that the ac| 000039a0 74 75 61 6c 20 43 4d 4f 53 20 52 41 4d 20 77 6f |tual CMOS RAM wo| 000039b0 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 72 63 65 |uld not be force| 000039c0 64 20 74 6f 20 74 68 65 0a 20 20 76 61 6c 75 65 |d to the. value| 000039d0 20 6f 66 20 31 35 2e 20 54 68 69 73 20 68 61 73 | of 15. This has| 000039e0 20 62 65 65 6e 20 66 69 78 65 64 2e 0a 0a 2a 20 | been fixed...* | 000039f0 53 6c 69 67 68 74 6c 79 20 63 68 61 6e 67 65 64 |Slightly changed| 00003a00 20 74 68 65 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 | the random numb| 00003a10 65 72 20 73 65 65 64 69 6e 67 20 72 6f 75 74 69 |er seeding routi| 00003a20 6e 65 2e 0a 0a 56 65 72 73 69 6f 6e 20 32 2e 30 |ne...Version 2.0| 00003a30 31 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a |1.------------..| 00003a40 2a 20 50 68 69 6c 69 70 20 43 6f 6c 6d 65 72 20 |* Philip Colmer | 00003a50 28 6f 66 20 41 63 6f 72 6e 20 6e 6f 20 6c 65 73 |(of Acorn no les| 00003a60 73 29 20 73 70 6f 74 74 65 64 20 61 20 62 75 67 |s) spotted a bug| 00003a70 3a 0a 20 20 56 32 2e 30 30 20 77 6f 75 6c 64 20 |:. V2.00 would | 00003a80 69 6e 63 6f 72 72 65 63 74 6c 79 20 72 65 73 74 |incorrectly rest| 00003a90 6f 72 65 20 74 68 65 20 70 61 6c 65 74 74 65 20 |ore the palette | 00003aa0 69 6e 20 32 35 36 2d 63 6f 6c 6f 75 72 20 4d 4f |in 256-colour MO| 00003ab0 44 45 73 2e 20 49 6e 20 66 61 63 74 2c 0a 20 20 |DEs. In fact,. | 00003ac0 65 76 65 72 79 74 68 69 6e 67 20 73 74 61 72 74 |everything start| 00003ad0 65 64 20 74 75 72 6e 69 6e 67 20 67 72 65 65 6e |ed turning green| 00003ae0 20 28 6d 6f 75 6c 64 79 20 6f 6c 64 20 70 72 6f | (mouldy old pro| 00003af0 67 72 61 6d 6d 69 6e 67 20 70 65 72 68 61 70 73 |gramming perhaps| 00003b00 20 3f 29 2e 2e 2e 0a 20 20 49 6e 76 65 73 74 69 | ?).... Investi| 00003b10 67 61 74 69 6f 6e 20 72 65 76 65 61 6c 65 64 20 |gation revealed | 00003b20 74 68 61 74 20 49 27 64 20 6d 6f 76 65 64 20 74 |that I'd moved t| 00003b30 77 6f 20 73 74 61 74 65 6d 65 6e 74 73 20 66 75 |wo statements fu| 00003b40 72 74 68 65 72 20 64 6f 77 6e 20 69 6e 20 74 68 |rther down in th| 00003b50 65 0a 20 20 63 6f 64 65 2c 20 62 75 74 20 74 68 |e. code, but th| 00003b60 65 20 66 69 72 73 74 20 6f 66 20 74 68 65 6d 2c |e first of them,| 00003b70 20 4d 4f 56 20 52 32 2c 23 30 2c 20 73 68 6f 75 | MOV R2,#0, shou| 00003b80 6c 64 20 68 61 76 65 20 72 65 6d 61 69 6e 65 64 |ld have remained| 00003b90 20 77 68 65 72 65 20 69 74 20 77 61 73 2e 0a 20 | where it was.. | 00003ba0 20 2a 42 55 47 20 46 49 58 45 44 20 57 49 54 48 | *BUG FIXED WITH| 00003bb0 20 56 41 50 4f 4e 41 20 46 4c 59 20 53 50 52 41 | VAPONA FLY SPRA| 00003bc0 59 2a 0a 0a 2a 20 50 68 69 6c 69 70 20 61 6c 73 |Y*..* Philip als| 00003bd0 6f 20 70 75 74 20 66 6f 72 77 61 72 64 20 74 68 |o put forward th| 00003be0 65 20 73 75 67 67 65 73 74 69 6f 6e 20 74 68 61 |e suggestion tha| 00003bf0 74 20 74 68 65 20 75 73 65 72 20 73 68 6f 75 6c |t the user shoul| 00003c00 64 20 73 65 65 20 73 6f 6d 65 74 68 69 6e 67 0a |d see something.| 00003c10 20 20 68 61 70 70 65 6e 69 6e 67 20 69 6e 20 74 | happening in t| 00003c20 68 65 20 32 35 36 2d 63 6f 6c 6f 75 72 20 4d 4f |he 256-colour MO| 00003c30 44 45 73 20 65 2e 67 2e 20 74 68 65 20 62 6f 72 |DEs e.g. the bor| 00003c40 64 65 72 20 63 6f 6c 6f 75 72 20 73 68 6f 75 6c |der colour shoul| 00003c50 64 20 63 68 61 6e 67 65 2e 0a 20 20 49 20 69 6d |d change.. I im| 00003c60 70 6c 65 6d 65 6e 74 65 64 20 68 69 73 20 73 75 |plemented his su| 00003c70 67 67 65 73 74 69 6f 6e 20 2d 20 49 20 68 6f 70 |ggestion - I hop| 00003c80 65 20 6e 6f 62 6f 64 79 20 6f 62 6a 65 63 74 73 |e nobody objects| 00003c90 20 74 6f 6f 20 6d 75 63 68 2e 20 48 65 20 61 6c | too much. He al| 00003ca0 73 6f 0a 20 20 68 69 6e 74 65 64 20 61 74 20 74 |so. hinted at t| 00003cb0 68 65 20 70 6f 73 73 69 62 69 6c 69 74 79 20 6f |he possibility o| 00003cc0 66 20 56 44 55 20 53 61 76 65 72 20 61 70 70 65 |f VDU Saver appe| 00003cd0 61 72 69 6e 67 20 6f 6e 20 53 49 44 2e 2e 2e 66 |aring on SID...f| 00003ce0 69 6e 67 65 72 73 20 63 72 6f 73 73 65 64 2e 0a |ingers crossed..| 00003cf0 20 20 2a 56 45 52 53 49 4f 4e 20 32 2e 30 31 20 | *VERSION 2.01 | 00003d00 49 53 20 4e 4f 57 20 41 56 41 49 4c 41 42 4c 45 |IS NOW AVAILABLE| 00003d10 20 4f 4e 20 53 49 44 2a 0a 0a 56 65 72 73 69 6f | ON SID*..Versio| 00003d20 6e 20 32 2e 30 30 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d |n 2.00.---------| 00003d30 2d 2d 2d 0a 0a 2a 20 44 75 65 20 74 6f 20 74 68 |---..* Due to th| 00003d40 65 20 65 78 74 72 61 20 6d 6f 75 73 65 20 70 6f |e extra mouse po| 00003d50 69 6e 74 65 72 20 64 65 66 69 6e 69 74 69 6f 6e |inter definition| 00003d60 73 2c 20 56 32 2e 30 30 20 69 73 20 6e 6f 77 20 |s, V2.00 is now | 00003d70 37 4b 20 6c 6f 6e 67 2e 20 53 6f 6d 65 0a 20 20 |7K long. Some. | 00003d80 70 65 6f 70 6c 65 20 6d 61 79 20 63 6f 6e 73 69 |people may consi| 00003d90 64 65 72 20 74 68 69 73 20 62 69 67 20 66 6f 72 |der this big for| 00003da0 20 61 20 73 63 72 65 65 6e 20 73 61 76 65 72 2c | a screen saver,| 00003db0 20 62 75 74 20 74 68 69 6e 6b 20 6f 66 20 74 68 | but think of th| 00003dc0 61 74 20 70 72 65 74 74 79 0a 20 20 74 69 6d 65 |at pretty. time| 00003dd0 20 70 6c 6f 74 74 65 64 20 6f 6e 20 74 68 65 20 | plotted on the | 00003de0 73 63 72 65 65 6e 20 61 6e 64 20 79 6f 75 20 6d |screen and you m| 00003df0 69 67 68 74 20 66 6f 72 67 69 76 65 20 6d 65 2e |ight forgive me.| 00003e00 2e 2e 0a 0a 2a 20 52 65 2d 6f 72 67 61 6e 69 73 |....* Re-organis| 00003e10 65 64 20 74 68 65 20 63 6f 64 65 20 74 6f 20 75 |ed the code to u| 00003e20 73 65 20 6c 65 73 73 20 43 50 55 20 74 69 6d 65 |se less CPU time| 00003e30 20 67 65 6e 65 72 61 6c 6c 79 2c 20 65 73 70 65 | generally, espe| 00003e40 63 69 61 6c 6c 79 20 77 68 65 6e 0a 20 20 74 68 |cially when. th| 00003e50 65 20 6d 6f 64 75 6c 65 20 68 61 73 20 62 65 65 |e module has bee| 00003e60 6e 20 6c 6f 61 64 65 64 20 62 75 74 20 6e 6f 74 |n loaded but not| 00003e70 20 61 63 74 69 76 61 74 65 64 2e 0a 0a 2a 20 46 | activated...* F| 00003e80 69 78 65 64 20 74 68 65 20 62 75 67 20 77 68 65 |ixed the bug whe| 00003e90 72 65 62 79 20 63 6f 6c 6f 75 72 20 30 20 28 62 |reby colour 0 (b| 00003ea0 61 63 6b 67 72 6f 75 6e 64 29 20 77 61 73 6e 27 |ackground) wasn'| 00003eb0 74 20 72 65 73 74 6f 72 65 64 20 70 72 6f 70 65 |t restored prope| 00003ec0 72 6c 79 20 69 6e 0a 20 20 32 35 36 2d 63 6f 6c |rly in. 256-col| 00003ed0 6f 75 72 20 4d 4f 44 45 73 2e 0a 0a 2a 20 46 75 |our MODEs...* Fu| 00003ee0 6c 6c 79 20 28 68 6f 20 68 75 6d 20 2d 20 49 20 |lly (ho hum - I | 00003ef0 6c 69 65 64 20 68 65 72 65 29 20 74 65 73 74 65 |lied here) teste| 00003f00 64 20 61 6e 64 20 77 6f 72 6b 69 6e 67 20 69 6e |d and working in| 00003f10 20 52 49 53 43 20 4f 53 20 28 79 65 73 2c 20 49 | RISC OS (yes, I| 00003f20 20 6e 6f 77 20 68 61 76 65 0a 20 20 69 74 20 21 | now have. it !| 00003f30 29 2e 0a 0a 2a 20 4d 6f 64 69 66 69 65 64 20 74 |)...* Modified t| 00003f40 68 65 20 4d 45 4d 43 20 70 6f 6b 65 20 74 6f 20 |he MEMC poke to | 00003f50 6d 61 6b 65 20 69 74 20 27 73 61 66 65 72 27 2e |make it 'safer'.| 00003f60 0a 0a 2a 20 4e 6f 77 20 61 6c 6c 6f 77 20 65 69 |..* Now allow ei| 00003f70 74 68 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 |ther the current| 00003f80 20 74 69 6d 65 20 6f 72 20 74 68 65 20 53 6d 69 | time or the Smi| 00003f90 6c 65 79 20 66 61 63 65 20 74 6f 20 62 65 20 70 |ley face to be p| 00003fa0 6c 6f 74 74 65 64 2e 2e 2e 0a 20 20 79 6f 75 20 |lotted.... you | 00003fb0 68 61 76 65 20 61 20 63 68 6f 69 63 65 20 61 74 |have a choice at| 00003fc0 20 6c 61 73 74 20 21 0a 0a 2a 20 41 64 64 65 64 | last !..* Added| 00003fd0 20 2a 43 6f 6e 66 69 67 75 72 65 20 53 61 76 65 | *Configure Save| 00003fe0 72 54 79 70 65 20 74 6f 20 67 6f 20 77 69 74 68 |rType to go with| 00003ff0 20 74 68 65 20 6e 65 77 20 6d 6f 75 73 65 20 73 | the new mouse s| 00004000 68 61 70 65 20 63 68 6f 69 63 65 2e 0a 0a 2a 20 |hape choice...* | 00004010 52 65 64 75 63 65 64 20 74 68 65 20 6d 61 78 69 |Reduced the maxi| 00004020 6d 75 6d 20 53 61 76 65 72 44 65 6c 61 79 20 74 |mum SaverDelay t| 00004030 6f 20 36 33 20 6d 69 6e 75 74 65 73 20 62 65 63 |o 63 minutes bec| 00004040 61 75 73 65 20 42 69 74 20 36 20 6f 66 20 42 79 |ause Bit 6 of By| 00004050 74 65 20 33 35 20 69 73 0a 20 20 6e 6f 77 20 75 |te 35 is. now u| 00004060 73 65 64 20 66 6f 72 20 74 68 65 20 53 61 76 65 |sed for the Save| 00004070 72 54 79 70 65 2e 20 41 6c 73 6f 20 6d 61 64 65 |rType. Also made| 00004080 20 64 6f 75 62 6c 79 20 73 75 72 65 20 74 68 61 | doubly sure tha| 00004090 74 20 74 68 65 20 76 65 72 73 69 6f 6e 20 49 0a |t the version I.| 000040a0 20 20 72 65 6c 65 61 73 65 20 73 70 65 63 69 66 | release specif| 000040b0 69 65 73 20 74 68 65 20 64 65 6c 61 79 20 69 6e |ies the delay in| 000040c0 20 6d 69 6e 75 74 65 73 20 28 72 61 74 68 65 72 | minutes (rather| 000040d0 20 74 68 61 6e 20 73 65 63 6f 6e 64 73 2c 20 77 | than seconds, w| 000040e0 68 69 63 68 20 49 20 75 73 65 0a 20 20 66 6f 72 |hich I use. for| 000040f0 20 74 65 73 74 20 70 75 72 70 6f 73 65 73 20 61 | test purposes a| 00004100 6e 64 20 61 63 63 69 64 65 6e 74 61 6c 6c 79 20 |nd accidentally | 00004110 66 6f 72 67 6f 74 20 74 6f 20 63 68 61 6e 67 65 |forgot to change| 00004120 20 74 6f 20 6d 69 6e 75 74 65 73 20 69 6e 20 56 | to minutes in V| 00004130 31 2e 30 33 20 21 29 2e 0a 0a 56 65 72 73 69 6f |1.03 !)...Versio| 00004140 6e 20 31 2e 30 33 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d |n 1.03.---------| 00004150 2d 2d 2d 0a 0a 2a 20 4d 61 6b 65 20 61 20 73 70 |---..* Make a sp| 00004160 65 63 69 61 6c 20 63 68 65 63 6b 20 66 6f 72 20 |ecial check for | 00004170 54 65 6c 65 74 65 78 74 20 4d 4f 44 45 73 2c 20 |Teletext MODEs, | 00004180 73 6f 20 74 68 61 74 20 74 68 65 20 73 63 72 65 |so that the scre| 00004190 65 6e 20 73 61 76 69 6e 67 20 69 73 0a 20 20 70 |en saving is. p| 000041a0 65 72 66 6f 72 6d 65 64 20 69 6e 20 74 68 65 20 |erformed in the | 000041b0 73 61 6d 65 20 77 61 79 20 61 73 20 32 35 36 2d |same way as 256-| 000041c0 63 6f 6c 6f 75 72 20 4d 4f 44 45 73 2e 0a 0a 2a |colour MODEs...*| 000041d0 20 32 35 36 2d 63 6f 6c 6f 75 72 20 4d 4f 44 45 | 256-colour MODE| 000041e0 73 20 6e 6f 77 20 74 6f 67 67 6c 65 20 74 68 65 |s now toggle the| 000041f0 20 56 69 64 65 6f 2f 43 75 72 73 6f 72 20 44 4d | Video/Cursor DM| 00004200 41 20 45 6e 61 62 6c 65 20 66 6c 61 67 20 69 6e |A Enable flag in| 00004210 20 4d 45 4d 43 27 73 0a 20 20 63 6f 6e 74 72 6f | MEMC's. contro| 00004220 6c 20 72 65 67 69 73 74 65 72 20 74 6f 20 62 6c |l register to bl| 00004230 61 6e 6b 20 74 68 65 20 73 63 72 65 65 6e 2e 20 |ank the screen. | 00004240 49 6e 20 70 6c 61 69 6e 20 45 6e 67 6c 69 73 68 |In plain English| 00004250 2c 20 56 44 55 20 53 61 76 65 72 20 6e 6f 77 0a |, VDU Saver now.| 00004260 20 20 77 6f 72 6b 73 20 69 6e 20 32 35 36 2d 63 | works in 256-c| 00004270 6f 6c 6f 75 72 20 4d 4f 44 45 73 20 62 75 74 20 |olour MODEs but | 00004280 77 69 74 68 6f 75 74 20 74 68 65 20 64 75 62 69 |without the dubi| 00004290 6f 75 73 20 62 65 6e 65 66 69 74 20 6f 66 20 61 |ous benefit of a| 000042a0 20 53 6d 69 6c 65 79 0a 20 20 66 61 63 65 20 28 | Smiley. face (| 000042b0 62 65 63 61 75 73 65 20 74 68 65 20 6d 6f 75 73 |because the mous| 000042c0 65 20 69 73 20 75 6e 66 6f 72 74 75 6e 61 74 65 |e is unfortunate| 000042d0 6c 79 20 62 6c 61 6e 6b 65 64 20 69 6e 20 74 68 |ly blanked in th| 000042e0 65 73 65 20 4d 4f 44 45 73 20 61 73 20 77 65 6c |ese MODEs as wel| 000042f0 6c 29 2e 0a 0a 2a 20 4d 4f 44 45 20 63 68 61 6e |l)...* MODE chan| 00004300 67 65 73 20 61 72 65 20 6e 6f 77 20 72 65 63 6f |ges are now reco| 00004310 67 6e 69 73 65 64 20 61 73 20 61 20 73 63 72 65 |gnised as a scre| 00004320 65 6e 20 72 65 73 74 6f 72 61 74 69 6f 6e 20 77 |en restoration w| 00004330 69 74 68 6f 75 74 20 74 68 65 0a 20 20 69 6e 74 |ithout the. int| 00004340 65 72 76 65 6e 74 69 6f 6e 20 6f 66 20 56 44 55 |ervention of VDU| 00004350 20 53 61 76 65 72 2e 20 54 68 69 73 20 74 61 6b | Saver. This tak| 00004360 65 73 20 63 61 72 65 20 6f 66 20 74 68 65 20 63 |es care of the c| 00004370 61 73 65 20 77 68 65 6e 20 56 44 55 54 72 61 70 |ase when VDUTrap| 00004380 20 3d 20 30 0a 20 20 61 6e 64 20 74 68 65 20 4d | = 0. and the M| 00004390 4f 44 45 20 69 73 20 63 68 61 6e 67 65 64 20 69 |ODE is changed i| 000043a0 6e 20 61 20 70 72 6f 67 72 61 6d 20 77 68 69 6c |n a program whil| 000043b0 73 74 20 74 68 65 20 73 63 72 65 65 6e 20 69 73 |st the screen is| 000043c0 20 62 6c 61 6e 6b 65 64 2e 20 45 61 72 6c 69 65 | blanked. Earlie| 000043d0 72 0a 20 20 76 65 72 73 69 6f 6e 73 20 77 6f 75 |r. versions wou| 000043e0 6c 64 20 68 61 76 65 2c 20 61 66 74 65 72 20 74 |ld have, after t| 000043f0 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 64 |he appropriate d| 00004400 65 6c 61 79 2c 20 72 65 73 74 6f 72 65 64 20 74 |elay, restored t| 00004410 68 65 20 4f 4c 44 20 70 61 6c 65 74 74 65 0a 20 |he OLD palette. | 00004420 20 28 70 72 69 6f 72 20 74 6f 20 74 68 65 20 4d | (prior to the M| 00004430 4f 44 45 20 63 68 61 6e 67 65 29 20 74 6f 20 74 |ODE change) to t| 00004440 68 65 20 4e 45 57 20 4d 4f 44 45 2e 0a 0a 2a 20 |he NEW MODE...* | 00004450 4f 4b 2c 20 61 20 6c 69 74 74 6c 65 20 62 75 67 |OK, a little bug| 00004460 65 74 74 65 20 68 65 72 65 20 66 6f 6c 6b 73 2e |ette here folks.| 00004470 20 41 20 66 72 69 65 6e 64 20 72 61 6e 20 56 44 | A friend ran VD| 00004480 55 20 53 61 76 65 72 20 6f 6e 20 52 49 53 43 20 |U Saver on RISC | 00004490 4f 53 20 61 6e 64 0a 20 20 63 6c 61 69 6d 65 64 |OS and. claimed| 000044a0 20 65 72 72 61 74 69 63 20 62 65 68 61 76 69 6f | erratic behavio| 000044b0 75 72 20 77 69 74 68 20 74 68 65 20 73 63 72 65 |ur with the scre| 000044c0 65 6e 20 72 65 73 74 6f 72 69 6e 67 20 61 74 20 |en restoring at | 000044d0 72 61 6e 64 6f 6d 20 69 6e 74 65 72 76 61 6c 73 |random intervals| 000044e0 2e 2e 21 3f 21 0a 20 20 44 75 65 20 74 6f 20 6c |..!?!. Due to l| 000044f0 61 7a 69 6e 65 73 73 20 6f 6e 20 6d 79 20 70 61 |aziness on my pa| 00004500 72 74 2c 20 49 20 68 61 64 20 61 73 73 75 6d 65 |rt, I had assume| 00004510 64 20 74 68 61 74 20 61 6c 6c 20 65 76 65 6e 74 |d that all event| 00004520 73 20 61 72 65 20 64 69 73 61 62 6c 65 64 0a 20 |s are disabled. | 00004530 20 75 6e 6c 65 73 73 20 65 6e 61 62 6c 65 64 20 | unless enabled | 00004540 62 79 20 75 73 65 72 20 70 72 6f 67 72 61 6d 73 |by user programs| 00004550 20 28 69 74 27 73 20 74 68 65 20 63 61 73 65 20 | (it's the case | 00004560 69 6e 20 41 72 74 68 75 72 20 31 2e 32 30 29 2e |in Arthur 1.20).| 00004570 20 4d 79 20 74 68 65 6f 72 79 20 69 73 0a 20 20 | My theory is. | 00004580 74 68 61 74 20 52 49 53 43 20 4f 53 20 28 70 72 |that RISC OS (pr| 00004590 6f 62 61 62 6c 79 20 74 68 65 20 44 65 73 6b 74 |obably the Deskt| 000045a0 6f 70 29 20 65 6e 61 62 6c 65 73 20 65 76 65 6e |op) enables even| 000045b0 74 73 20 77 68 69 63 68 20 41 72 74 68 75 72 20 |ts which Arthur | 000045c0 31 2e 32 30 20 64 69 64 6e 27 74 0a 20 20 75 73 |1.20 didn't. us| 000045d0 65 20 74 6f 2e 20 54 6f 20 72 65 6d 65 64 79 20 |e to. To remedy | 000045e0 74 68 69 73 20 70 72 6f 62 6c 65 6d 2c 20 49 27 |this problem, I'| 000045f0 76 65 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 |ve specifically | 00004600 63 68 65 63 6b 65 64 20 66 6f 72 20 65 76 65 6e |checked for even| 00004610 74 73 20 34 2c 31 30 0a 20 20 61 6e 64 20 31 31 |ts 4,10. and 11| 00004620 20 69 6e 20 6d 79 20 65 76 65 6e 74 20 72 6f 75 | in my event rou| 00004630 74 69 6e 65 2c 20 73 6f 20 74 68 69 73 20 62 65 |tine, so this be| 00004640 68 61 76 69 6f 75 72 20 73 68 6f 75 6c 64 20 68 |haviour should h| 00004650 61 76 65 20 62 65 65 6e 20 65 6c 69 6d 69 6e 61 |ave been elimina| 00004660 74 65 64 0a 20 20 2a 43 4f 4e 46 49 52 4d 45 44 |ted. *CONFIRMED| 00004670 20 2d 20 4f 4b 20 49 4e 20 52 49 53 43 20 4f 53 | - OK IN RISC OS| 00004680 2a 2e 0a 0a 56 65 72 73 69 6f 6e 20 31 2e 30 32 |*...Version 1.02| 00004690 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 2a |.------------..*| 000046a0 20 41 20 73 6f 66 74 20 72 65 73 65 74 20 6e 6f | A soft reset no| 000046b0 20 6c 6f 6e 67 65 72 20 63 61 75 73 65 73 20 74 | longer causes t| 000046c0 68 65 20 2a 56 44 55 53 61 76 65 72 20 63 6f 6d |he *VDUSaver com| 000046d0 6d 61 6e 64 20 74 6f 20 66 61 69 6c 20 74 6f 20 |mand to fail to | 000046e0 61 63 74 69 76 61 74 65 2e 0a 0a 2a 20 55 73 65 |activate...* Use| 000046f0 73 20 32 20 62 79 74 65 73 20 6f 66 20 43 4d 4f |s 2 bytes of CMO| 00004700 53 20 52 41 4d 20 28 33 35 20 61 6e 64 20 33 36 |S RAM (35 and 36| 00004710 29 20 74 6f 20 70 65 72 6d 61 6e 65 6e 74 6c 79 |) to permanently| 00004720 20 73 74 6f 72 65 20 56 44 55 53 61 76 65 72 20 | store VDUSaver | 00004730 73 65 74 74 69 6e 67 73 2e 0a 0a 2a 20 41 6c 6c |settings...* All| 00004740 6f 77 73 20 66 69 6e 65 72 20 63 6f 6e 74 72 6f |ows finer contro| 00004750 6c 20 6f 76 65 72 20 74 68 65 20 53 6d 69 6c 65 |l over the Smile| 00004760 79 20 66 61 63 65 20 69 6e 20 74 65 72 6d 73 20 |y face in terms | 00004770 6f 66 20 63 6f 6c 6f 75 72 2c 20 73 70 65 65 64 |of colour, speed| 00004780 20 61 6e 64 0a 20 20 70 6c 6f 74 74 69 6e 67 20 | and. plotting | 00004790 6d 65 74 68 6f 64 2e 0a 0a 2a 20 54 68 65 20 74 |method...* The t| 000047a0 65 78 74 20 63 75 72 73 6f 72 20 69 73 20 6e 6f |ext cursor is no| 000047b0 77 20 73 77 69 74 63 68 65 64 20 6f 66 66 20 61 |w switched off a| 000047c0 6e 64 20 72 65 73 74 6f 72 65 64 20 63 6f 72 72 |nd restored corr| 000047d0 65 63 74 6c 79 20 64 75 72 69 6e 67 20 62 6c 61 |ectly during bla| 000047e0 6e 6b 69 6e 67 2e 0a 0a 2a 20 53 63 72 65 65 6e |nking...* Screen| 000047f0 20 72 65 73 74 6f 72 61 74 69 6f 6e 20 6f 6e 20 | restoration on | 00004800 56 44 55 20 6f 75 74 70 75 74 20 69 73 20 6e 6f |VDU output is no| 00004810 77 20 6f 70 74 69 6f 6e 61 6c 2c 20 62 65 63 61 |w optional, beca| 00004820 75 73 65 20 73 6f 6d 65 20 75 73 65 72 73 20 6d |use some users m| 00004830 61 79 20 68 61 76 65 0a 20 20 61 20 63 6c 6f 63 |ay have. a cloc| 00004840 6b 20 72 75 6e 6e 69 6e 67 20 74 68 61 74 20 75 |k running that u| 00004850 73 65 73 20 74 68 65 20 56 44 55 20 64 72 69 76 |ses the VDU driv| 00004860 65 72 73 20 28 65 73 70 65 63 69 61 6c 6c 79 20 |ers (especially | 00004870 54 77 69 6e 20 61 6e 64 20 67 72 61 70 68 69 63 |Twin and graphic| 00004880 6b 79 0a 20 20 44 65 73 6b 74 6f 70 20 63 6c 6f |ky. Desktop clo| 00004890 63 6b 73 29 2e 0a 0a 56 65 72 73 69 6f 6e 20 31 |cks)...Version 1| 000048a0 2e 30 31 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |.01.------------| 000048b0 0a 0a 2a 20 53 68 6f 77 73 20 61 20 62 6f 75 6e |..* Shows a boun| 000048c0 63 69 6e 67 20 27 53 6d 69 6c 65 79 27 20 66 61 |cing 'Smiley' fa| 000048d0 63 65 20 77 68 65 6e 20 74 68 65 20 73 63 72 65 |ce when the scre| 000048e0 65 6e 20 69 73 20 62 6c 61 63 6b 65 64 2e 0a 0a |en is blacked...| 000048f0 2a 20 52 65 73 74 6f 72 65 73 20 74 68 65 20 73 |* Restores the s| 00004900 63 72 65 65 6e 20 6f 6e 20 6d 6f 75 73 65 20 6d |creen on mouse m| 00004910 6f 76 65 6d 65 6e 74 20 61 73 20 77 65 6c 6c 20 |ovement as well | 00004920 61 73 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 |as mouse button | 00004930 70 72 65 73 73 65 73 2e 0a 0a 56 65 72 73 69 6f |presses...Versio| 00004940 6e 20 31 2e 30 30 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d |n 1.00.---------| 00004950 2d 2d 2d 0a 0a 2a 20 57 72 69 74 74 65 6e 20 61 |---..* Written a| 00004960 73 20 61 20 72 65 6c 6f 63 61 74 61 62 6c 65 20 |s a relocatable | 00004970 6d 6f 64 75 6c 65 20 74 68 61 74 20 74 72 61 70 |module that trap| 00004980 73 20 76 65 63 74 6f 72 73 2e 0a 0a 2a 20 50 72 |s vectors...* Pr| 00004990 6f 70 65 72 6c 79 20 73 77 69 74 63 68 65 73 20 |operly switches | 000049a0 6f 66 66 20 61 6e 64 20 72 65 73 74 6f 72 65 73 |off and restores| 000049b0 20 74 68 65 20 6d 6f 75 73 65 20 70 6f 69 6e 74 | the mouse point| 000049c0 65 72 20 61 6e 64 20 62 6f 72 64 65 72 20 63 6f |er and border co| 000049d0 6c 6f 75 72 2e 0a 0a 46 75 74 75 72 65 20 49 6d |lour...Future Im| 000049e0 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20 56 44 |provements to VD| 000049f0 55 20 53 61 76 65 72 20 56 32 2e 30 33 0a 2d 2d |U Saver V2.03.--| 00004a00 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00004a20 2d 2d 2d 2d 0a 0a 2a 20 41 6c 74 68 6f 75 67 68 |----..* Although| 00004a30 20 4f 53 5f 57 6f 72 64 20 31 32 20 69 73 20 74 | OS_Word 12 is t| 00004a40 72 61 70 70 65 64 20 74 6f 20 63 68 65 63 6b 20 |rapped to check | 00004a50 66 6f 72 20 6d 6f 75 73 65 20 63 6f 6c 6f 75 72 |for mouse colour| 00004a60 20 31 20 62 65 69 6e 67 20 63 68 61 6e 67 65 64 | 1 being changed| 00004a70 2c 0a 20 20 49 20 6c 61 74 65 72 20 64 69 73 63 |,. I later disc| 00004a80 6f 76 65 72 65 64 20 74 68 61 74 20 74 68 65 20 |overed that the | 00004a90 2a 50 6f 69 6e 74 65 72 20 31 20 63 6f 6d 6d 61 |*Pointer 1 comma| 00004aa0 6e 64 20 61 63 74 75 61 6c 6c 79 20 62 79 70 61 |nd actually bypa| 00004ab0 73 73 65 73 20 74 68 69 73 20 63 61 6c 6c 0a 20 |sses this call. | 00004ac0 20 28 69 74 20 75 73 65 73 20 56 44 55 20 31 39 | (it uses VDU 19| 00004ad0 20 69 6e 73 74 65 61 64 29 20 77 68 65 6e 20 63 | instead) when c| 00004ae0 68 61 6e 67 69 6e 67 20 74 68 65 20 6d 6f 75 73 |hanging the mous| 00004af0 65 20 63 6f 6c 6f 75 72 20 21 20 49 20 67 75 65 |e colour ! I gue| 00004b00 73 73 20 49 27 6c 6c 20 68 61 76 65 0a 20 20 74 |ss I'll have. t| 00004b10 6f 20 61 64 64 20 79 65 74 20 6d 6f 72 65 20 63 |o add yet more c| 00004b20 6f 64 65 20 74 6f 20 63 6f 70 65 20 77 69 74 68 |ode to cope with| 00004b30 20 74 68 69 73 2e 2e 2e 0a 0a 2a 20 41 74 20 73 | this.....* At s| 00004b40 6f 6d 65 20 70 6f 69 6e 74 2c 20 49 20 6d 69 67 |ome point, I mig| 00004b50 68 74 20 6d 61 6b 65 20 69 74 20 69 6e 73 74 61 |ht make it insta| 00004b60 6c 6c 20 69 74 73 65 6c 66 20 6f 6e 20 74 68 65 |ll itself on the| 00004b70 20 69 63 6f 6e 20 62 61 72 20 61 6e 64 20 61 63 | icon bar and ac| 00004b80 74 20 70 72 6f 70 65 72 0a 20 20 6c 69 6b 65 20 |t proper. like | 00004b90 77 6f 74 20 61 6c 6c 20 70 72 6f 67 72 61 6d 73 |wot all programs| 00004ba0 20 73 68 6f 75 6c 64 20 64 6f 2e 20 54 68 65 72 | should do. Ther| 00004bb0 65 20 61 67 61 69 6e 2c 20 49 20 6d 69 67 68 74 |e again, I might| 00004bc0 20 6e 6f 74 2e 2e 2e 6e 6f 70 65 2c 20 49 20 68 | not...nope, I h| 00004bd0 61 76 65 6e 27 74 0a 20 20 62 6f 74 68 65 72 65 |aven't. bothere| 00004be0 64 20 79 65 74 2e 0a 0a 57 68 65 72 65 20 74 6f |d yet...Where to| 00004bf0 20 66 69 6e 64 20 6d 65 20 74 6f 20 72 65 70 6f | find me to repo| 00004c00 72 74 20 62 75 67 73 20 6f 72 20 69 6d 70 72 6f |rt bugs or impro| 00004c10 76 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 56 |vements to the V| 00004c20 44 55 20 53 61 76 65 72 0a 2d 2d 2d 2d 2d 2d 2d |DU Saver.-------| 00004c30 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 00004c60 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 53 6e 61 69 6c |---------..Snail| 00004c70 20 4d 61 69 6c 20 20 20 20 20 20 20 20 20 20 20 | Mail | 00004c80 4a 41 4e 45 54 20 65 2d 6d 61 69 6c 0a 2d 2d 2d |JANET e-mail.---| 00004c90 2d 2d 2d 2d 2d 2d 2d 20 20 20 20 20 20 20 20 20 |------- | 00004ca0 20 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 52 | ------------.R| 00004cb0 69 63 68 61 72 64 20 4b 2e 20 4c 6c 6f 79 64 2c |ichard K. Lloyd,| 00004cc0 20 20 20 20 72 6b 6c 40 75 6b 2e 61 63 2e 6c 69 | rkl@uk.ac.li| 00004cd0 76 2e 63 73 2e 6d 76 61 0a 31 2c 20 42 61 6e 6b |v.cs.mva.1, Bank| 00004ce0 73 20 52 6f 61 64 2c 0a 4c 6f 77 65 72 20 48 65 |s Road,.Lower He| 00004cf0 73 77 61 6c 6c 2c 0a 57 69 72 72 61 6c 2c 0a 4d |swall,.Wirral,.M| 00004d00 65 72 73 65 79 73 69 64 65 2e 20 |erseyside. | 00004d0b