QuickVoy versions ================= '*'d versions were released. 0.00 30/09/1999 Threw together an application shell to fit the templates, basic dialler and a script parser. Those were the easy bits. :-) 0.01 01/10/1999 Spent the entire day figuring out why the the serial comms was so screwed up. Rewrote the get-string-with-timeout routine, it is better, but I never see "Password: ". Wasted about Ł2 in minimum call charges experimenting with this (Pipex, sorry about that...). In order to work around not getting the password prompt, I simply send: at the "Login: " prompt. Then I kick the Stack into operation (totally ignore the "Protocol:" prompt), and it has worked fine for several connects, but PPPAuth choked each time. Removed the debug serial logging. 0.02 02/10/1999 Discovered a few system variables such as: VTiInternet$NewsServer VTi$Driver VTi$Port VTi$Speed which need to be set up. So I set them up. Hey-presto! :-) Connects okay now. Not bad for two days of work, in amongst my "real" job. :-) Call duration timer fitted up. Doesn't add in the time shuffle value yet. Made the iconbar icon reflect the state of the connection: Green - Connection not established (usually = offline) Red - Connected and costing you money Yellow - Something choked Noticed the templates are a bit iffy in System font, so tweaked them slightly. Now writes to the 'DialLog' file. Attempting to quit will: Offline : Quit Dialling : Terminate call, and quit Online : Ask you to disconnect first Logs all WIMP messages received. This is a testing facility for the Voyager WIMP message support, to be added soon. File is held open, closed at quit, so don't bother reading with QuickVoy running. 0.03 03/10/1999 Implemented: Voyager_AreYouThere Voyager_StatusMessage Voyager_MailChange Voyager_LogonStatus Voyager_AddWindowLog Voyager_Initialise (news/mail tx/rx LEDs) TaskCloseDown (for news/mail tx/rx LEDs) News and mail sender/fetcher 'LEDs' turn on when the component starts as a Voyager add-on, and off when it quits. Interlock added to 'LEDs', so user cannot start another fetcher whilst a fetcher is active. Time and date now written to 'windowlog' file entries. Additionally, the 'windowlog' file is NOT flushed when QuickVoy is started, old data is retained for reference. If this file grows larger than 128K, you will be asked to clear it out (or, at least, remove some of the earlier cruft). Several utilities coded: !autoupgrd - Caller for Argo's automatic upgrader. !checkblkd - Blockdriver check, looks for v0.12 or better. !stackkill - Stack unloader. !stackload - Stack loader. The UPON allows for applications to be booted (instead of run) if that is preferable - use the "boot" keyword... "memtrace" file created when QuickVoy exits. The contents are pretty self-explanatory. Got a day off tomorrow, but will I code much into QuickVoy? I think it is almost ready for an initial alpha-classification release. Really, I need to write a bolt-on for !Voyager so I can figure out WhenTF the Logoff/StackKill messages are broadcast. 0.04* 04/10/1999 Mmmm, not a lot really! Fired off a few fetches at the same time and noticed the wrong 'LED' was turning red. My code was following the VIX documentation, so maybe it is incorrect? I've swapped the codes over - see how it is now... Writes a blank line to the 'windowlog' file upon startup, so that you can see when each session starts and finishes. Status window now says "Disconnected after xxx seconds" upon disconnection. Note that is IS possible for this to show a different number of seconds than the little timer. Why? Because the timer is updated (roughly) once per second, whilst the status is calculated on the fly. Thus, the status may show an extra second. 0.05* 08/10/1999 Safety net added to PROCdriver_wait_receive(). Let me know if your QuickVoy "bongs" when online... Corrected spelling error "diconnected" in DialLog file. Ooops! :-) 0.06* 15/10/1999 Amended the start-up routine so that it will pick up on a current connection - so if you need that precious little memory that QuickVoy uses, you can actually quit QuickVoy and reload it later... TO DO THIS, SELECT "QUIT" FROM THE MENU WHILST HOLDING ALT KEY. ...and if you use QuickVoy, it will even pick up on the original connection time so the call duration counter will be correct. However, if you kill off !Voyager and load up QuickVoy then the call timer will start from the moment QuickVoy picks up on the connection. There was always an annoying lag in transfer rates - even though I'm using the internal port (removed sp_dual for another card because it is the only one that doesn't have stuff hardwired to it!). However the data transfer rates absolutely sucked. Looked in !Voyager.!RunImage and did NOT see the "UKARG/" string, so I decided to bite the bullet and omit the entire log-in sequence. Now as soon as the connection is established, it will kick straight into loading the stack and involking PPP. Mmmm, seems that might have fixed the problem. Which remains - if PIPEX doesn't support stuff other than CHAP/PPP (like SLIP) and CHAP/PPP doesn't require login - then WTF did it prompt for username/password? Time on-line adds in timeshuffle number of seconds. This is set to 12 by default, and should be roughly correct for most users. Basic (= crap) call coster implemented. It takes the current time and calculates the cost based upon that fact. It does not handle multiple charging zones, thus a 2 hour call ending at 18:05 will be calculated at peak rate until six, then at off-peak rate. The zones are: Weekend - Saturday and Sunday Off-peak - 6pm to 8am Peak - 8am to 6pm If anybody has a better calculation routine, send it to me and I'll code it in. But note, it is called as the timer is updated (every second) so it MUST be quick! Now looks for the load then quit of a task called "PPP Initialise". This typically is invoked around 10 to 15 seconds after the stack has been loaded. The timeout in this stage is set to 25 seconds. Remember, QuickVoy writes to logfile every time a WIMP message is received. That is why: a. it is a little slow b. the disc is frequently accessed This facility will be removed RSN. I want several VIX coders to see if QuickVoy supports enough for them to detect the system is up and running, but that it is NOT the Voyager dialler. HOW TO IDENTIFY QUICKVOY: Um, besides looking in the Task Listing, of course! Send a Voyager_AreYouThere message. QuickVoy and VoyagerDialler will acknowledge this and then reply with a Voyager_YesIAm message to you. Voyager's will be 20 bytes long, basically an empty message. QuickVoy's will be 28 bytes long. The word at +20 will be set to the value of "RICK", which is &4B434952. The word at +24 will be the QuickVoy version number multiplied by 100. Thus, 107 is version 1.07. Voyager_WhatsTheTime implemented, returns with Voyager_TimeIs. 0.07 19/10/1999 If response when expecting "CONNECT" is nothing, we now assume the connection timed out. Called X form of OS_ReadVarVal, so no more "VTi$LoggedOn" errors. Partial support for the Voyager_VIXSetState message, just enough for Christina West's CountDown module to interface with QuickVoy! 0.08* 20/10/1999 Empty polls added to the disconnection routine - it is no use sending WIMP messages if you don't plan on giving tasks the opportunity to deal with them! Toolbar menu added: QuickVoy -------- Open > Help The open menu will open the incoming news/email file(s), and the outgoing news/email directories. The [news|mail][in|out] keywords in configure determine what to open. WimpMessage recording code used an absolute path. Buggerations! This has been modified to ONLY work if the debug variable is set to TRUE. The first statement of the program sets this variable - it is recommended that if you wish to switch debug ON, you don't use !Edit as !Edit cannot handle compressed code... VIX run menu coded. This lists ALL VIX with valid !Info/!Vixen files, though some have no run actions (ie, VIX Manager). After all this, the WimpSlot is STILL 64K, with ~20K free!!! 0.09 23/10/1999 Enhanced the reporting given in the "memtrace" file. 0.10* 01/11/1999 Removed "Received Voyager_Logoff message!" warning. Fixed timeout error that occurs if you manually abort a connection. Altered the call costing to add a minute, thus the cost will be slightly in advance of itself rather than behind. Will 'beep' when crossing a pound boundary for call costing. Call bill generator implemented. Read "!Help" for more details. Help option added to iconbar menu. Memory trace data now written into a window. ALT-click on the icon bar icon to open it. Oh, and yes, it does change from time to time. Release version /still/ fits into 64K (just). :-) 0.11* 05/11/1999 Altered VIX scanning routine/method so that it will handle NewsScan (which passes a parameter). Thanks to Paul Roegele for spotting this one. 0.12* 12/11/1999 "View log" option added to iconbar menu. Additionally, clicking ADJUST on the iconbar icon will do the same - like Voyager... Cache scan option. The cache is stored in a 64K memory block which is allocated when required. The format is: This repeats as needed, in linear fashion, and is terminated by an entry with all bits set (ie, -1). This is converted to something like: [icon] 00.00 http://www.heyrick.co.uk/rickswoŚ 7 Kbytes Click an item to load it... There is enough memory allocated for thirteen directories of cache data. If the fifth and sixth characters in the dial log entries do not evaluate to a number between 1 and 31, followed by a space, then that entry will be ignored. Paul Roegele sent me a corrupted "phonebill" file containing the following: 2 Feb 01:11 Local Rate - Argonet 0:15:34 0.192 845088 iscon Local Rate - Argonet 0:10:28 0.129 450885 sconn Local Rate - Argonet 0:13:07 0.162 6 seco lling Local Rate - Argonet 0:20:15 0.250 discon fter Local Rate - Argonet 1:04:54 0.803 Upon examination of the "DialLog" file, the following was *one* line: Tue 02 Feb 1999 @ 01:11:38:Dialling 08450885336...disconnected after 922 second(s)Dialling 08450885336...disconnected after 1468 second(s) ...abortedDialling 08450885336...disconnected after 1073 second(s)... disconnected after 312 second(s)...abortedDialling 08450885336...disc onnected after 17 second(s)...disconnected after 616 second(s)Diallin g 08450885336...disconnected after 34 second(s)Dialling 08450885336.. .disconnected after 1186 second(s)Dialling 08450885336...disconnected after 132 second(s)Dialling 08450885336...disconnected after 1127 sec ond(s)Dialling 08450885336...disconnected after 775 second(s)Dialling 08450885336...disconnected after 1827 second(s)Dialling 08450885336.. .disconnected after 469 second(s)Dialling 08450885336...disconnected after 616 second(s)Dialling 08450885336...disconnected after 1203 sec ond(s)Dialling 08450885336...disconnected after 88 second(s)Dialling 08450885336...disconnected after 689 second(s)Dialling 08450885336... disconnected after 1006 second(s)Dialling 08450885336...disconnected after 2404 second(s)Dialling 08450885336...disconnected after 3882 se cond(s) This is, I presume, a bug in Voyager, and something to keep an eye on if you use another call coster such as Alan Gray's one. For why QuickVoy read it as several lines - BASIC can only handle a string of 255 characters or less, longer lines are read in parts. VIX menu now only lists VIX(EN) with run actions. Still 64K. :-) 0.13 By tradition, there is on x.13 release. Deal with it. 0.14* 21/11/1999 Fixed cache scanning code for when cache runs out of memory. Added "largecache" option (parameters "yes" or "no"). This will increase the cache space to 256K which is enough to cache 4092 files (default is 64K, for 1016 files). Removed background blanking from cache list window. Changed icon redraw to use a colour lookup table (generated during each redraw so will always be up-to-date). This means an icon that looks okay in MODE 31 will look okay in MODE 28. Techie notes: * This will fail with 256-colour sprites and/or custom palettes as it assumes a standard 16 colour sprite (as specified in the Style Guide). * This /should/ work in 2:4 modes so long as you load the correct set of icons; don't load MegaModes and drop to mode 15 as the icons will be too big. :-) * I tried Wimp_PlotIcon (which, on the face of it, solved everything) but for some stupid-ass useless reason, PlotIcon doesn't redraw properly when you, say, drag a menu around. It also won't draw a truncated icon (such as the last visible, when only two thirds visible). The phrase "sucks" comes to mind, as do several Anglo Saxon phrases best not mentioned... * This requires SpriteExtend, which sorta implies RISC OS 3 (or a load of pfaff softloading). However, as Voyager and the stack requires RISC OS 3, this is not considered an issue. :-) 0.15* 10/12/1999 Altered cache scanning code to be able to deal (more correctly) with malformed cache data files; particularly those that are blank except for the "Format: #" line. Cache scan data block altered slightly. The format is now: The offset makes it dead easy to munge index files (upon deletion) by recording the offset of the item in the index file. To erase, simply look up the next item, then GBPB it around to 'drop' the one being erased. Sure beats /looking/ for each item. now correctly set, so quit-and-resume will work properly. Added a menu of potentially useful options to the cache scan window. Refer to !Help for specifics of what all this lot does. Clicking "DISCONNECT" will ask you to confirm. If reporting the cache index is starting afresh AND there is nothing cached yet, it will assume the cache is empty and not bother to finish scanning the cache or open it. The only time this will come adrift is if Fresco.00. is empty, the rest being full. This, as a scenario, isn't very likely to happen though. :-) *.** 22/01/2000 The "!autoupgrd" utility has been recoded in assembler. "!fetcher" written. Based upon !vlsufetch, used in !VideoList. 0.16* 07/02/2000 Now requires 96K slot. I was wondering how far it'd go in only 64K; well now I know. :-) Fetcher interface added, menu option "Simple fetch" from toolbar menu. Fetcher is NOT yet supplied; I want to fiddle the code to be a little less crufty. QuickVoy_Message (&51C44) implemented. See !Help for more. The important bits of !VoyInfo have been added to QuickVoy, with the user and modem information condensed into one window. The AT string decoder has been omitted. Call coster says "w", "e", or "d". This corresponds to the three charge bands, and allows you to tell which band is being used to calculate the cost of the current connection. Splash dodah coded. :-) This is a present to myself for having another 32K of space. MbxWatch coded; interfaces with QuickVoy via wimp message. This isn't a rehash of Richard Goodwin's !POPcheck ('cos, for one thing, I'm sure Rich trusts his code), it is a similar idea, coded rather differently. Stripped down QuickVoy to basic state; this is supplied as "!RunImgSm" and it only needs 32K (yes, thirty two) in which to operate... Favours "/cachedump" over "cachedmp". -.-- 10/02/2000 The "Too many nested structures" and "No room for function/procedure call" errors kept appearing with the small version of the code; so I removed the hidden "mem" thing, and unrolled quite a lot of the initialisation code - so it is all in the start of the code, rather than in lots of procedures. This has freed up enough memory that these problems go away. There is no new code, just a rewroking, so the small version has been assigned version 0.16b. 0.17* 25/02/2000 "quitconfirm" configuration action implemented. "callcoster" configuration action implemented. Call coster is now a seperate procedure. "pollreturn" implemented. This gives control over PollIdle resolution. To quote Shania Twain, "Don't be stupid!". Too little, and you'll be like a normal poll with the additional lag of timer checking. Too much and you'll maybe cock up timed events. Originally it was 1 second. Now it is 2 seconds. You can probably set this up to about 10 seconds if you desire, but 2 should be okay. Note, this is in CENTISECONDS, so 2 seconds = 200. !Usage (the nifty one, not the Acorn one...) reports QuickVoy averaging around 1.5% of the system load when in connection mode (with pollreturn set to 200). "iconbar" and "carriercheck" configuration actions removed. Comments now explain the global status variables. This will be of use if anybody else reads my code. Makes it look like a well-commented program, despite meaningful variable names and mostly obvious code. :-) 0.18 03/03/2000 "UPON TIMER" event coded. Timer warning implemented. This will require you to click an Ack icon within a minute, or it'll boot you off. Stops the phone bill getting too big if you fall asleep on IRC. This is absolute. It is NOT affected by fetchers or anything. So you CAN set timed fetches and timed warning to the same interval (though note that fetchers may behave badly upon carrier loss!). Toolbar window will reopen upper middle if iconbar icon clicked. Fixed timeshuffle to extend connection time by 'x' seconds, not shorten it (oops!). Diddled with the toolbar menu. Added "Utilities", moved some stuff into it. Hotlist tidyer-upper. QuickVoy's utilities added to end of VIX scan. Makes it easy to access the runnable ones. 0.19* 05/03/2000 Fixed potentially serious bug in resumed connection, it didn't reset the warning timer; so it saw the one minute timeout was, like, two hours ago - so politely panicked by dropping the connection. :-) 0.20* 19/03/2000 & 20/03/2000 (sleep? whassat?) Recoded chunks of the cache scanning in assembler. The routine to blank the memory (not strictly necessary, but it makes debugging easier when the base data is all nulls - rather than writing the data on top of random junk) has been reduced from 2-3 seconds to a mere 2 CENTIseconds to blank 256K on my A5000. The cache scanner itself is part basic, part assembler. The stuff for figuring out which cache index file(s) to load is written in BASIC, but the actual "load it, parse it" is written in assembler. The slow part of it is the file reading. This is done on a byte-by-byte basis, which explains why the old (compressed) BASIC version scanned my cache in 28˝ seconds; where the BASIC/assembler version scans it in 19 seconds. That is less reduction than I'd have liked, but we are severely limited by the I/O speed. Then again, ~20 seconds to scan 1056 files isn't too bad. Cache finder implemented. This will, upon finding a match, position the matching URL at the top of the list window (if possible). It begins its search from the last search position. To reset the search position, open search and click Cancel. Yes, dragging a JPEG to QuickVoy *does* do something. This proggie is getting pretty awesome isn't it? :-) 0.21 29/03/2000 MbxWatch window now has a "fetch" option, which will invoke the mail fetcher. Iconbar menu now looks like: .---------------. | QuickVoy | |---------------| | Info > | | Preferences | | View log | | Help | | Quit | '---------------' "Preferences" calls the configuration for stuff in: (loads the "configure" file into an editor) .Configures.* .VIX.* VIX(EN) type was an array of fifty words. This is now a block of fifty bytes; saving 150 bytes and making things a little faster. Fetcher is now supplied with QuickVoy. It has been partially recoded; in particular the connection stage now multitasks. I will, sometime, get around to recoding the read_line bit. But, for now, it works. :-) Please note that ALL fetched stuff is given the filetype &FFF. The actual filetype specified is ignored. This means it is safe to use the "open in editor" option, as the content cannot be run. In the case of HTML, most decent browsers will pick up on the HTML tags. In the case of JPEGs/GIFs, most decent viewers will pick up on the filetype. So... to make QuickVoy a "decent viewer" by my own definition, it will look at the first few bytes of an unrecognised file to see if it says "JFIF". :-) 0.22 01/04/2000 Nya-ha! April Fools! A bug fix created another, more serious, bug! Luckily, v0.21 was never released, so... :-) Tracked down and fixed a big hairy bug with the disconnection thing, where if you chose "Cancel", it'd drop the line and carry on as if it was still connected. Fixed JPEG viewer to report progressive JPEGs, which it cannot handle. 0.23* 02/04/2000 MbxWatch window "Fetch" icon will now only fetch when appropriate, so you won't be able to fetch whilst already fetching. :-) MbxWatch window now auto-closes after you click the "Fetch" icon. Modifications to the !fetcher utility to make it more reliable. I only wish Fresco's fetcher was documented. :-( Alias feature added to the Simple Fetch window. Now reopens fetchwhat window when fetch is killed/cancelled/complete. 0.24 16/04/2000 Experimental code added, then removed. Basics of a future feature... Toolbar menu opened back out again. I found that more items on show at once was preferable to hiding some under the guise of a submenu. Began the underlying editor code for QuickMail. It shares its memory allocation with Scan Cache; so only one can be active at any given time. The cache scanner can be set to use a 64K or 256K space, by using the "largecache" configuration option. The mail editor, however, is fixed with a 32K memory space. In reality, it works out around 20K as there is quite a bit of wastage (lines are anchored every 80 bytes, this is done for speed and efficiency, no searches or lookups are required; and see below) but even so it is acceptable. If you frequently hit the "Sorry, no more" message, you are overusing QuickMail! Indeed, it is designed for on-line use (though it won't auto-trigger a mail transfer) so it is only really for quickie messages... :-) 0.25 18/04/2000 QuickMail editor mostly finished. It is my very first attempt at a WIMP based text editor, so go easy on it. If the oddities in it annoy you, you are using it WAY too much. It is NOT a Posty replacement, it is just something for when you wish to bash out a quick email and don't have the time/patience/memory to load Posty. It will, soon, intercept URL_Open stuff so that a from a web browser will open QuickMail and not try to load a full email package. QuickMail does block copy/delete. Note that the block selection is similar to that used in !Emily, which is similar to that used in !FidoMail... Only the SELECT button places the cursor so the ADJUST button deals with selections. The comments in the code say: REM if no lines currently defined then REM set start position REM else REM if current line is start then REM unset start position REM else REM set current line as end position REM REM if finish < start; swap 'em! REM REM (this is much like the selector in Emily, only it has been REM modified to only use the ADJUST button - as SELECT places REM the carrot (as bait for the big eared bunny...)) (ps: I was completely sober when I wrote that... um...!) File importer added. It is a quick'n'dirty hack - it will load HTML or text files, read 'em in line by line, and clip off anything over 78 characters. Told you it was nasty. I intend, soonish, to recode it with a byte-by-byte loader that will check characters for validity, and do MessageTrans lookups on accented characters and the like. The redraw routine scans each line replacing characters < 32 with '.'; this will hopefully remove that requirement (thus speeding redraws). Debug 'feature'. Holding down ALT and clicking in the edit window will create a cache dump file and load it into your current editor. 0.26 19/04/2000 Now accepts URL open requests (clicking on a mailto: link in a browser) in any of three different ways: 1. Receives the standard ANT broadcast message from !Fresco. This is for simple email addresses, such as the "mail me!" stuff. 2. Receives the extended ANT broadcast message from !Fresco. This is for content-inclusive emails, such as FORM METHOD=POST. Note that form data will be split after 76 characters. Any decent parser should follow the HTML guidelines and treat newlines as whitespace, and promptly ignore them. :-) 3. Failing all that, will be used, with the aid of a little patch utility. This means that !Fresco, or a properly ANT compatible, browser... or indeed any software that wishes to open an email... should be able to call up QuickVoy's email facility. I'm not sure if !Browse supports this protocol. URI support is planned. QuickMail importer is now a byte-by-byte importer, so long lines are word-wrapped, invalid characters are masked out, and accented characters will be unaccented (cool, huh?). Also, the import is at the current line. It no longer forces imported data to the end of the file... Importer handles its own word-wrapping. This is a faster version designed to handle the specifics of importing (where the existing one was slow and dropped characters due to input differences). The new importer is slower than the older one (because it works?), so it'll do the Hourglass with a little percentage to keep you informed. QuickVoy's !Run file updated to set the correct , and to set the new . You might like to make these changes to !Voyager.!Run; if you still use the Voyager toolbar... The last 2K of the edit memory block are allocated thus: 30-31K This is a menu block for up to 20 email names. It is created and held in memory as a raw memory block, rather than the existing routines, as it needs to be indirected to provide >12 characters per entry. 31K-32K This is a lookup of the user email alias, and the signature file to be used for that user. To clarify: The menu block stores REAL NAMES (Alyson Hannigan, Richard Murray) and the lookup stores EMAIL ALIASES (lilwil, rmurray). The domain is read and tacked onto the end. :-) The signature value, if present, if loaded from the 'new' signatures stored in ".sigs". If this value is a blank string, it is loaded from "" (which is usually ".User .Signature"). Why the above stuff in the final 2K? Well, QuickVoy now allows you to select an email alias for whom the mail shall originate from...(!?) It also tidily handles cases where ".Users" cannot be found (unlikely) or when the file format is incorrect (also unlikely). Yippee! Awlright! A deft click on QuickMail's "Send" icon and the message vanishes into the aether, to appear at some other mailbox. Yup, tested, works, it's 2:12am. Can I go to bed now? Please? Please? There isn't a lot of memory free in the 96K slot (~8K), so I may well remove the sparky splash screen in the next release. 0.27* 21/04/2000 Small fix to QuickMail envelope creator to correctly handle multiple addresses in To (ie: "freenet@heyrick.co.uk,heyrick@freenet.co.uk"). 0.28* 24/04/2000 Bug fix: QuickMail, when wordwrapping last line of message, did not reset the visible extent and scroll to follow. Now it does. The undocumented feature was unable to cope with passwords larger than 8 characters in length. Now it does... 0.29* 06/05/2000 ADJUST clicking on the simple fetcher "Fetch" icon will open the currently set directory. Minor tweaks to fetcher sliding bar to reduce flicker. There is more that could be done, I'll look into it at a later date. Clip fetch status icons. Cache scanner window not closed due to dumb cock-up; fixed. Cache scanner will now favour the *NEWER* of the two possible files, upon contention, and provide you with a short explanation. Cache scan menu now has "View" option, where HTML files will be loaded into !Edit, and JPEG files will be viewed via QuickVoy. JPEG viewer has "Scale" menu, offering "50%, 100%, 200%". 0.30 07/09/2000 Now gives a response from the modem for connection errors, so instead of saying "There was an error", it'll say "There was an error - NO DIALTONE" which is MUCH more useful. When loading incoming email and/or news, it will check you have enough memory to load the document. If you don't, you'll be told how much you need. Note that this does NOT take into account memory that may be required to load an editor. I could start examining the task list looking for popular editors, but then if none is seen, I have to examine the run action for text files, and look at the greatest WimpSlot setting for the program called. It is possible, but overly complex. So, if there is no editor loaded - it may still return an "out of memory" error! Hey, I use a 4Mb machine and STILL keep !Edit loaded all the time. :-) Incoming email/news also traps non-text files and reports an error. When you drag a JPEG image to QuickVoy and the JPEGRender module is NOT present, QuickVoy will see if it exists. If it does, you will be asked if you wish to load it. If not, you'll get the usual message. No longer dumps cache data to "_cachemem" file. When scanning cache, the alternating LEDs have been replaced by a %ge counter. Please NOTE that the counter shows the directory number being scanned and NOT the 'percentage amount done'. Thus, in a normal setup, the counter will only ever reach 10 - 15 or so. When scanning cache, the hourglass is reinstated after a non-critical warning (such as "multiple cache indexes). The "mem" window, pages list icon has had its maximum text length increased slightly. ADVANCE WARNING: QuickVoy's WimpSlot may increase to 128K in a near-future release; unless I decide to drop a few of the unused features. PLEASE TELL ME your wishlists, which features you're never likely to use, and what you think of QuickVoy in general. Thanks. 0.31 08/09/2000 Following recent discussions with respect to connection/authentication difficulties, QuickVoy's authenticate timeout has been increased to 35 seconds (was 25). Additionally, the provider phone number is loaded just prior to the ATDT sequence, so if you try changing from the generic phone number to use the K56 Flex (apparently 28800-56000 modems may get a better connection on the K56 number) then it will take effect immediately, without having to quit and reload QuickVoy. -.-- 14/09/2000 "!mbxwatch" utility recoded. Now phenomenally faster, more reliable, and can handle *ANY* RFC compliant POP3 mail server, not just Argo's. Will either log into Argo server (by default), or read the host/user settings from a "domain" file (simply copy it over from !Emily) for an alternative server. Properly awaits for a "+OK" response, and also does a QUIT and waits for acknowledgement. This is no longer "slightly dodgy code", but instead works correctly and works well... 0.32* 23/09/2000 Bug with fetch_savepath fixed, so trying to open directory won't put a '.' at the end of the path. In QuickFetch, "`?" will open the wwwalias file in case you forget... No longer unsets all the important variables if quits because of a fatal error (duh!). Date thing. "Open" menu now has option to open the "Utilities" sub-directory. 0.33* 25/09/2000 It was reported that QuickVoy had a tendency to quit without saying anything, so the memory allocation has been increased to 128K. Feel free to experiment with it. Alt-ADJUST on the iconbar icon will open a window telling you the current memory usage. Is this a problem? If you'd like your 96K back, I'm sure I could cut out a few things... Email your thoughts. Unsets "" when quit (bug introduced v0.32, Duh!). Now logs errors to the "windowlog" file. Trivial fix so initial "watcher" icons are correct. Ping/GetHost support added. 0.34* 22/11/2000 Now correctly loads mail/news tx/rx task names. Supports either "peakmin" or "daymin" for callcost settings. (latter set is the one that will be used) Supports "taxrate" setting for callcost. Now handles blank lines in the "GENERAL" definitions, which is useful as QVConfig inserts a few... Now loads configuration widget instead of opening configure file, but it'll do that if widget not present. Yeah, isn't it about time we had a pointy-clicky way to set up QuickVoy? :-) Implemented conversion process for progressive JPEGs. Will now run !QVConfig/open 'configure' upon a bombout command in the configuration, thus running QuickVoy for the first time should pop you straight into the setup utility... 0.35* 07/12/2000 Small bugette with email writer 'mailbox' list fixed. Fixed problem with simple fetcher path setting, if not default. "Save" option added to JPEG viewer. This will save EXACTLY what you get on-screen... Ping/GetHost now no longer leaves file open if unable to locate required resource. Assembler code is now loaded from the file 'code', rather than being built into QuickVoy. 0.36 01/01/01 Fixed trivial bug where searching the cache when no cache open gave a div-by-zero error. 0.37 20/02/2001 If dynamic areas are available, QuickVoy will use them for the cache scanner/email editor memory blocks; and additionally will load JPEGs into another dynamic area for faster viewing. Select-clicking on the status icon will display the previous status message (if there was one), and Adjust-clicking will display the connection information ("CONNECT 33600/ARQ/LAPM/V42" or similar). Connection information is also written to QuickVoy's "windowlog" file, it shouldn't be hard to extract this to chart your connection speeds. QuickMail will now interface with Emily, if present. Ideally, the Posty values should equate to the values used by another program, but in case it doesn't... :-) Changes to alternate ISP dialler so it'll restore original settings in case of an error. Otherwise things COULD go sorta wrong upon a failed connection. Still, you SHOULD have had a backup (wassat then!?!?). Sometimes, if you make a successful connection after a failed one, it will drop the line with "Failed to authenticate within 35 seconds, terminating this call...", which isn't very helpful. :-) I'm not entirely 100% sure why this occurs, but I've made a few code changes which should (I think) cure this. 0.38* 12/03/2001 [Happy Birthday Mom] Fixed trivial bug which prevented the splash window appearing. Duh! Added a "today in history" facility. The data file from this is called "!QuickVoy.Utilities.userdata.today". I'm sure you can work out the format to add more stuff. Why not load it into your favourite editor and read through it? It is very interesting (though heavily biased towards science and space exploration). Click the window (anywhere except the title bar) to close. Alternatively, click a toolbar icon. ...if the JPEG decoder cannot suss the file dragged to QuickVoy, it will see if it is a 'known' type. These known types are passed to ChangeFSI for decoding, and back to QuickVoy for display. Known types are: * RISC OS sprite (file type &FF9, or a valid looking header) Deals with old-format and/or new format. * JPEG (note: handled by QuickVoy directly). * PCX files * Windows BMP files (does ChangeFSI understand W9x 24bit BMP?) * GIF files * TIFF This is really a hack for RiscPCs and 8Mb machines, as there are likely to be serious memory issues in calling ChangeFSI on an active connection on a 4Mb system... Due to the way QuickVoy operates, it converts the given picture to a JPEG file, and then displays that as expected. Thus, you will suffer some image degredation from a lossless format (ie, Sprite/GIF). This is intended purely as a viewer. If you want something fancier, then use ChangeFSI (or whatever...) in it's usual mode of operation. To be honest, the single reason that QuickVoy supports this at all is because I was fed up with having to engage my brain to figure if an image was a JPEG or not when getting QuickVoy to display it. So now I can drag alsorts to QuickVoy and it'll display 'em all... NOTE: The 'known' types code has not yet been written. Anything that is not otherwise recognised will be passed to ChangeFSI. This may result in odd errors (ie, "Outside file") if you do stuff like trying to view an Obey file (!), but it does mean that currently you can view anything ChangeFSI can convert. Support "code" version/date are written to the Info window. Info window icons now do things. The "QuickVoy" name will send the browser (if loaded) to the QuickVoy homepage, though it won't load the browser if it isn't loaded. The author name will open an email editor to so you can send me comments/thoughts etc. It uses the Fresco broadcast mechanism, so other email clients may pick it up. More flexible that way. Fixed the mail editor bug that retained the "mailto:" bit in email addresses. This is now correctly stripped off. Array-to-string routine made more bombproof. Now it will clip strings at 255 characters, and it will also reject anything below &8000. Nothing should be read directly from page zero! Fresco WIMP message handler now notices "http:" links. Okay, you don't get these all that often, but previously QuickVoy would try to parse it as a "mailto:", unknowing that it wasn't. So now it knows, and treats it by simply ignoring it. MbxWatch utility updated to version 0.14. Read its !Help file for more. I copied my !ChangeFSI into $.Utilities (seemed a much more logical place than buried away in a "370" or "360" directory. However, I guess that the unnecessary (ie, RISC OS 310) stuff is supposed to be deleted. Not useful if you figure the resources *might* be needed. Either way, it would seem that the old RO 3.10 version is the last to be booted. Figuring I probably messed up, it appears that way in my original !Boot backup (before I fiddled with it). To make it work, open the "!Boot.Choices.Boot.Desktop" file. Page down once. You'll see lots of: IfThere Boot:^Utilites.... lines. Move the one to boot *only* utilities from the top of the block to the bottom of the block (after booting 310). Easy when you know how, huh? -.-- 15/12/2001 "Code" file updated to cope with control characters in Fresco's cache. This happens when stuff gets REALLY screwed up and Fresco eats itself. 0.39* 09/05/2001 Repaired error with QuickMail when using Emily's paths. Stupid error really. :-) URL scheme handler fixed. QuickVoy no longer crashes and burns if you give it an unusual URL, like "telnet://". The alternative (file-linked) mailto message handler has been improved. It seems Fresco /can/ use this one without actually including a linked file. Odd... New configuration keyword in the General section. The keyword is "nologerror", and if present the warning about your log file being over 128K will be suppressed. Note, this takes no parameters. Either it exists or it doesn't. Email: support@heyrick.co.uk Subject should include "QuickVoy 0.39". track qvconfig quiting, reload configuration maybe multiple DAs X Additionally, the "_restore" script modified to erase the defaults after restoring, and "_create" script modified to refuse to copy the defaults if they are already copied. This should make it harder for stuff to go horribly wrong. ;^) X User guide is now in HTML format. Old textual version is also available, but it is unlikely to be updated from this point onwards. X Mail sender interfaces better with Emily and the Argo bits, so mail is read *from* the usual place, and can be written back. Mail sent is logged. There is currently no provided access, but if you want to knock something together to do this, the format is identical to that used in Emily. X Can now decode uue of varying types (ie, using '`' or ' ', and with or without extra character at end). Ignores "table", but understands width settings and RISC OS filetype extension. X Can also decode a base64 stream. This, however, is only possible if you trim off all the junk so it is just the base64 data (nothing before, nothing after). It'll create a file in !Scrap, then drop it into !Edit as a textfile. NOTE: This is pretty much untested code. Keep away from naked flames. X Changes to alternate ISP dialler so it'll restore original settings in case of an error [!done!]. Additionally, the "_restore" script modified to erase the defaults after restoring, and "_create" script modified to refuse to copy the defaults if they are already copied. This should make it harder for stuff to go horribly wrong. ;^) X Simple fetcher will use the Acorn URL module / HTTP fetcher if they are loaded. Fetcher extended to cope with "ftp" scheme, but can only cope with sites accepting anonymous logins. X Simple messager. QuickVoy, when connected, will open port 18 (well, it says "Message Send Protocol") for incoming data. When a connection is established, it will say: QuickVoy v0.xx message system Enter your name [ ] and email address [ ] and your message [ ] After, it'll say "Thank you", then disconnect. Then the input will be parsed. If it seems logical, the message will pop up on-screen, followed by a "Return an email?" prompt. This can be automated simply by sending the right data at the right time, basically "". All incoming data is logged. If it is parsed, it'll be logged in a parsed form, else it will be logged in a memory block form. The buffer is 80, 80, 80 (bytes) as strings, the incoming buffer is around about 256 bytes. Excess data will be thrown, and the connection dropped.