Orpheus v1.64 NOTE: As of version 1.60 Orpheus uses a new and simpler interface for hypertext navigation, especially in the Orpheus Reader. See below under "Changes to the Interface". Books compiled with earlier versions may not be fully compatible with the Reader, especially if they use script commands. Recompile them to use with this version. Additional compatibility notes (for versions prior to 1.50) follow the description of version 1.61. Version 1.64 (September 7, 1993) FIXES: - In the Reader, if the user followed an Action link to load something from a library file, and subsequently followed another Action link to load an external text file, a message would pop up saying "Not found in library". Fixed. - In OH.EXE, a hotspot() command with data carried onto another line was misinterpreted as being incomplete. Fixed. - In OH.EXE, if the statusbar was set to the bottom of the screen and you inserted a character at column 0 of line 0 (with existing text on that line) the screen would scroll from left to right. Fixed. - On some Hercules displays the mouse cursor wouldn't appear. Fixed? - In the Reader's directory dialog, trying to switch to a non-existent drive would cause the program to abort. Fixed. - In OH.EXE, unless the Homecard had a very short name, the copy of it stored in the project directory could eventually cause errors in linkmaking. This was due to a behavior of DOS that my code hadn't accounted for; a long-standing but very subtle bug. Fixed. CHANGES: - Now the Reader has a more obvious way of telling you whether a graphic has hotspots: if hotspots are present, the mouse pointer is a question mark except when directly over a hotspot, whereupon it changes shape. If hotspots are not present, the pointer is the conventional shape. ///////////////////////////////////////////////////////////////////////////// Version 1.63 (August 23, 1993) NEW FEATURES: - Improved error correction: if a card has faulty uplink data (the link binding it to its parent card), Orpheus detects and repairs it automatically in the authoring program. FIXES: - French-Canadian users were unable to type the e-acute (ascii 130) in the manner to which they are accustomed. Fixed in OH.EXE and in the Reader's Notepad and Formfill dialogs, which now accept all of the accented characters. - In the Index dialog in OH.EXE, if you attempted to delete the last entry the change wouldn't be saved. Also, in certain circumstances edited index entries weren't correctly saved. Both fixed. - Corrected several errors in the string-edit function, which affected various dialogs including the Index. - In the Reader, a script with alternate jump() commands would ignore all but the last, unless each was followed by a goto to the end of the script. This is no longer necessary: a jump() immediately breaks out of the script and jumps where directed. - In the Reader, if a card had multiple linkwords (such as crosslinks) pointing to the same card, and if you returned to the first card from the second, the selection bar would be drawn on all the related linkwords instead of just the first. Fixed. - In the Reader's Formfill dialog, if a form had sections with no entry fields onscreen, scrolling up and down could cause a crash. A crash could also occur if the form was in a large libary file. Finally, if you filled an entry field and pressed End, the cursor would go beyond the end of the field and you could type more data (corrupting memory). All fixed. - Formfill reserves ALL bracket characters [], {}, and <> for its own use in defining fields, but the [] characters were slipping by. If you want to display ANY bracket character or control code you must do so by preceding it with a backslash, like so: "\[". - Fixed the ghosting problem when the mouse pointer in the Reader goes around hotspots in ansi screens. - In OH.EXE, Repair Card would think a Crosslink to the Homecard was a bad link. Fixed. - Fixed errors in the Fileview window's hypertext functions (in both programs). OTHER CHANGES: - Changed the Reader's menus a little, taking a few things from the (overcrowded) File Menu and creating a Read Menu. - Internal revisions to make the Reader multilingual: a French version of the Reader will soon be available, followed by other languages as the translations come in. ///////////////////////////////////////////////////////////////////////////// Version 1.62 (July 7, 1993) FIXES: - Finally found the problem that was preventing Orpheus from running on machines with non-extended keyboards. Fixed. ///////////////////////////////////////////////////////////////////////////// Version 1.61 (July 5, 1993) NEW FEATURES: - Yes, we have an Index! Available on OH.EXE's Tools Menu, the Index Dialog makes it easy to build an alphabetically-sorted index of topics and subtopics, with each one linked to the card you specify. Not only can you use the index for your own convenience while authoring, you can provide it in compiled form (as an .IDX file) for the use of your readers. When the Orpheus Reader detects a valid index file it displays an "Index" button on the Reader's Titlebar. Indexing is thoroughly discussed in OH.EXE's online help: open the Tools Menu, place the selection bar on "Index", and press F1. - The Reader's DOS shell is now like OH.EXE's, swapping to extended or expanded memory if available, or else to disk. The same routines are used with run() and runbat() commands, allowing your scripts to call programs that require a lot of memory. - OH.EXE is now "pathable", meaning you can store your main Orpheus files in any location referenced by the DOS PATH command, and work anywhere else on your system. You can also specify the path on the command line. Files that must be in the same location as OH.EXE include OH.HLP (the Help file) and (if you are a registered user) REGIT.EXE. Orpheus also looks for and stores OH.CFG (the configuration file) in the same location. - Forms can now use the reserved bracket characters (such as [ ]) if each is preceded by a \ backslash character. See Chapter 2 of MANUAL2.DOC, under the Load() command. FIXES: - In Boxdraw mode, Backspace and Delete didn't work correctly. Fixed. - In some circumstances blink was left on when OH.EXE returned from a DOS shell. In some circumstances the Reader left relics of the mouse pointer. Both fixed. - Retrace works better now in OH.EXE (same as in the Reader). - The Reader's Notepad editor wasn't saving text that had scrolled above the window. Fixed. - In OH.EXE, clicking on the More flag was interpreted according to the old interface rather than the new one. Fixed. - Rewrote the directory picklist (used especially with FileView) to post a sorted directory. Along with reducing code and fixing a glitch or two, I removed the limit on how many files it could handle. - Rewrote the Recover Orphan dialog (it was buggy), streamlining the code and making it easier to use. - If a Graphic card included a trymode() test and jumped to end on failure, Orpheus would behave as if it were indeed in a graphic. Now if the video mode hasn't been changed to a graphic mode, and if there is not an ansi screen displayed, we return to the parent card. - In the Reader, if you placed the mouse pointer over an ansi hotspot and then used a keyboard hotkey or did a mouseclick, the mouse pointer would retain its hotspot shape. Fixed. - The script command "set(blink=off)", for high-intensity backgrounds in ansi screens, wasn't working in OH.EXE, and was being ignored in the Reader. Fixed. - In version 1.60 of OH.EXE the routine to get numeric input was revised to be more robust, but a crucial line of code was left out, disabling functions like Copy To on the Window Menu. Fixed. - Under certain circumstances an Edit window would be left empty after using Change Linktype. Fixed. - When a block of text with embedded links was moved to another card, if even one of the links was a Crosslink the results were disastrous. This was a long-standing bug because the effects were never noticed right away, nor was the Crosslink connection until the bug bit ME. Once found, fixed in a jiffy. OTHER CHANGES: - In the Reader, for users looking for hotspots in graphics and ansi screens WITHOUT A MOUSE, the new navigational interface now has a more logical implementation. In 1.60 you had to hold down Shift while using the arrow keys to move the pointer, a fact that was only documented in this file. (!) Now the pointer ONLY appears if there is at least one hotspot, and arrow keys behave as if the hotspots were linkwords: up/down arrow moves the pointer directly from hotspot to hotspot, right arrow jumps through a hotspot, and left arrow retraces your path. (Remember, these remarks ONLY apply to using the Reader without a mouse.) Unlike the mouse pointer, the keyboard pointer is perforce on a hotspot if it appears at all, so there is no need for it to change shape. In graphics, the keyboard pointer is now a square box; in ansi screens it is a bright white (normally blinking) right arrow. The keyboard pointer always goes to the upper left corner of the hotspot; this may look peculiar in graphics, but in ansi screens it can be useful if you draw your hotspots right. See Hotspot() in Chapter 2 of MANUAL2.DOC for further discussion. - For consistency I've changed the Edit Init accelerator to Ctl-I, in order to use Alt-I for the Index. - Dropped Two-Way Crosslinks, since the new navigational interface makes them unnecessary. To make a Crosslink, place the cursor on the intended linkword before opening the Link Menu. - Crosslinks are now permitted in Graphic cards. - The Help window in both programs now has a scrollbar for the convenience of mouse users, as do various other dialogs. - If a quit() command is encountered in a script, the Reader now saves the bookmark and notepad files before exiting. - In the Reader, you no longer have to click on an unselected linkword to select it, then click again to jump through it. One click suffices. CHANGES TO THE INTERFACE: - Navigating in the Reader is now simpler and more convenient, with the old trio of cryptic symbols on the titlebar replaced by the single word "Home". The normal method of returning is simply to retrace your path, and readers no longer have to think about whether they've jumped through a Crosslink or some other kind of links. Here is a full description of the interface, with new elements shown by an asterisk. (Notes on a related change in OH.EXE come next.) WITH THE MOUSE: - as before, to select a linkword or the More cue, click on it with the left button; to jump through it, click again. * - to jump Home, click on the "Home" command on the titlebar, or in the upper right corner if the titlebar is hidden. * - to retrace your path one step backwards, click the RIGHT mouse button. * - to force a jump to the parent of the current card, hold down the Control key and click the RIGHT button. (Most users will never need this move.) WITH THE KEYBOARD: - as before, the Home key jumps Home. - as before, the Up and Down arrow keys select linkwords including the More cue. * - RIGHT arrow key jumps through the currently selected linkword or hotspot. * - If a card has a More link, PgDn jumps through it even if the More cue isn't selected. (PgUp does nothing.) * - LEFT arrow key retraces your path one step backwards. * - to force a jump to the parent of the current card, hold down the Control key and press the LEFT arrow. (Most users will never need this move.) * - in a graphic or ansi screen where the square pointer appears, move the pointer around (to look for hotspots) by holding down the SHIFT key while using the arrow keys. (To jump through a hotspot, release the Shift key and press the right arrow key.) - In OH.EXE I've switched the assignments of two keys to reflect the changes above: the RIGHT arrow key now jumps through the linkword at the cursor (instead of PgDn), and PGDN now jumps through the More link if any (instead of the right arrow). Left arrow already did Retrace. We're keeping PgUp to go to the parent card, because authors are more likely to be working with related cards than merely browsing their own hypertext. The mouse interface hasn't changed. Note: if you are new to Orpheus, read MANUAL1.DOC, or OH.EXE's online help on "Navigating Hypertext". - The Retrace buffer in both programs only records "forward" jumps, i.e. those through linkwords, More links, etc. Formerly it recorded jumps in all directions. - To be consistent, I've also updated the Help interface so that pressing the Right arrow jumps through a linkword, while pressing the Left arrow duplicates the "Back" command. This change applies to =both= programs. - Also in both programs, when the FileView window has hypertext links the right and left arrow keys perform the same navigational functions as everywhere else: right arrow goes through a link, left arrow returns. The original keystrokes (Enter and Backspace) also work. - Updated the Welcome screen to reflect the new interface; if the Reader detects a new user or one who has a CFG from an earlier version, the Welcome screen comes up automatically. ///////////////////////////////////////////////////////////////////////////// COMPATIBILITY NOTES: (versions prior to 1.50) Those who have used programming commands should note that message() is now the much more powerful text() command. There are also slight changes to play(), jump(), and jumplist(), and hotspots will have to be redrawn (again) to conform to the new standard. See below and the entries for these commands in MANUAL2.DOC. Versions prior to 1.30: As of version 1.30, compiled books created with earlier versions of Orpheus are no longer compatible with the Orpheus Reader. Uncompiled books are however compatible with OH.EXE, and can simply be recompiled. If you have created Graphic, Init, or Action links, you will need to update them to use the Orpheus Command Language, as detailed in Part II of the User's Guide, MANUAL2.DOC. See especially Chapter 3, "Converting Old Commands". ///////////////////////////////////////////////////////////////////////////// Version 1.60 (May 27, 1993) NEW FEATURES: - The Reader now has a Formfill window in which your users can fill out forms or questionnaires onscreen, then print them to disk or to the printer. Use the load() command with the "form" keyword as explained in MANUAL2.DOC. - Protect your work and reduce file-clutter with library files! Library files can contain forms, graphics, and ansi screens; combining many such files into a library eliminates the average 1000 bytes per file of wasted disk space. For distribution, library files compress more efficiently; at runtime, Orpheus reads from them directly with no loss in speed. FGILIB.EXE (the library manager) is free to registered users. See Chapter 7 or MANUAL1.DOC. - Now when starting up the Reader you can specify a card number on the command line. This is mainly for the use of authors who wish to use Orpheus as context-sensitive help for another program. To find out what numbers to use, turn on "List Compiled Numbers" on the Project Menu before compiling. For each card that you wish to load by number, navigate to it in OH.EXE and note its "uncompiled" number on the File Menu. After compiling, look in the .DOC file made for that project and find the equivalent compiled number. This feature is safe: if the specified number is for an Init or Action card, or for a card that does not exist, the Reader loads the designated Home card instead. Authors can also use it with the load(new...) command, setting up an Action link that takes the user not only to a new book, but to a specific card in that book. ///////////////////////////////////////////////////////////////////////////// Version 1.54 (May 6, 1993) NEW FEATURES: - The FileView window now has essential hypertext capabilities. Using simple text codes, you can link as many text files as you want and have quick access to them through Orpheus. - The load() command now lets you link to external, uncompiled text files. Using the "text" keyword, as in load(text, filename.ext) you can give your readers access to often-updated text files which they can edit themselves. Files are viewed in a version of the FileView window adapted to the Orpheus Reader. As in OH.EXE the window has hypertext capabilities (explained in online help) which users can extend to make links to their own text files. See MANUAL2.DOC for details. ////////////////////////////////////////////////////////////////////////////// Version 1.50 (March 12, 1993) NEW FEATURES: As promised, I've got plenty of goodies for those who enjoy working with programmable cards. (New users please note, you don't *have* to program in Orpheus. However, the Orpheus Command Language makes it easy to achieve special effects with both text and graphics. These features are explained and illustrated in MANUAL2.DOC. - The text() command replaces message(), letting you display up to 23 lines of text with a maximum length of 74 characters in a temporary window. Parameters give you control over the location and appearance of the window, even how long it remains onscreen. This is ideal for those small notes that you don't want to place on a separate card, or for things you want to display side-by-side with other text. - The lookfor() command lets you check to make sure the user has a required file. Sets a flag to "okay" or "failed" accordingly, which you can test and respond to the same as with trymode(). - The gbox() command lets you draw a filled rectangle in any graphics mode, in the color of your choice. Coordinates can be given in pixels or character cells (like text mode). Gbox() is ideal for setting up a window in which to display graphics text; it can also be used to draw boxes around small images. - The gtext() command lets you display text in any graphics mode. Currently only the hardware (ROM) characters are available -- the same as you see in text mode -- but in a few weeks we'll have a choice of bit-mapped fonts as well. - Multiple graphics can be displayed simultaneously by using the set() command to turn off fadein and fadeout. You can even set the video mode, draw a graphics box with gbox(), then call graphic() to display an image inside the box. - The load() command lets you load a whole new book! For example, you could have a trilogy of electronic novels, and in each one include a little menu with Action links through which the user can go directly to one of the others. - The jump() command now accepts a number representing the card from which you can "pretend" to have jumped, useful if repeatedly returning to a Contents or Menu card where you would like the last-used linkword to be hilited on return. - Now ansi screens can have hotspots! The rules are the same as for putting hotspots in real graphics; see MANUAL2.DOC for details. - The FileView window now offers a super-fast way to import text from long external files. Selecting "AutoMark" instantly marks a full 23-line block. The prompt then turns to "AutoMORE", and if you select it again, Orpheus automatically appends a More link to the card in the current Edit window, jumps to it in the background, and copies in the block from FileView. In other words, pressing twice grabs a 23-line chunk and adds it to your work in a brand new card. (You could do the same thing with a macro, but this is faster.) AutoMark even lets you grab only as much as you want by resizing the block with the Up/Down and PgUp/PgDn keys. ///////////////////////////////////////////////////////////////////////////// Version 1.41 (February 3, 1993) NEW FEATURES: - The Reader now has a Tour mode (accessed through the File Menu). Gives a self-running tour of your complete book. Options include time delay between moves (1-99 seconds), random/sequential order, advance after delay or after keypress or either one. Once started, Tour mode only stops if you press Alt-T. (Self-running tours are great for lobbies, store windows, and other public displays.) Tour Mode does not access Init and Action cards, since they could contain commands that would interrupt the tour. - Reader options now include ability to ignore the Auto-Bookmark when you re-open a book. ///////////////////////////////////////////////////////////////////////////// Version 1.32 (January 21, 1992) NEW FEATURES: - The Orpheus Command Language lets you write command scripts (similar to batch files) in any Init, Action, or Graphic card. Scripts can test conditions (such as the user's hardware) and take alternate branches. The language is designed to be easy to use yet swift in performance, and easily extended: new commands will come in forthcoming releases. A complete guide to OCL is given in Part II of the User's Guide, in the file MANUAL2.DOC. - Orpheus now looks for graphic files first in the current directory, then in a directory specified with the ORPHEUS environment variable and a /g switch. The following DOS command (given either at the DOS prompt or in a batch file) would tell Orpheus to look in the c:\art directory: "SET ORPHEUS=/GC:\ART". Both the environment variable and the switch may be in uppercase or lowercase. (This feature applies to both OH.EXE and the Orpheus Reader. - Now you can display ANSI files from Orpheus, and the user's system does not have to have ansi.sys installed. Files are located using the same method as for graphics described above. - Now you can load a file into the FileView window from the command line, using the "/v" switch. For example: "OH TEST /VMANUAL.DOC" would load both the "Test" project in the Edit windows and MANUAL.DOC in the FileView window. The command "OH /VMANUAL.DOC" would do just the latter, leaving the Edit windows empty. - Added Alt-S as a hotkey to the Search Dialog in the FileView window. (In Edit windows, this pulls down the Search Menu.) - If you close a book and then re-open it later, the Reader now returns automatically to the last location you were in (or rather gives you the option to do so after first displaying the Homecard). - Added Nordic characters to the support for foreign languages. See online help, Using The Keyboard -> Inserting Accents. - Added "Edit Init" to the Link Menu, which is rearranged to group the programmable card types. - Added two debugging tools available through the Tools Menu, which now has submenus under "Repair" and "Jumplist". - Additional color options, including ability to compile a book with your colors built-in. The end-user can still set his own colors, but he sees yours first. To make this more manageable the menu system in the Orpheus Reader now has 2 pulldowns, "File" and "Options". You can choose the default colors, your own, or the author's. (The "Paint" colors are intended for use with a script command, to be added later.) - Reader options now allow you to turn off sound. This will become more important as the Command Language grows. ///////////////////////////////////////////////////////////////////////////// Version 1.24 (November 22, 1992) NEW FEATURES: - Opening the menu system with the mouse, or with Esc, now pulls down whichever menu was used last. To open the menus with the mouse you now click the left button on "Esc:Menu" (not the right button). - Now you can mark all text in a card in one stroke with Ctrl-F5; good for all block operations except reformat. - At last! Complete mouse support for all block operations! The right button marks in your choice of stream, line, or column modes; clicking the right button clears an existing mark. Clicking the left button performs your choice of pasting, moving, or framing a block; if framing is selected and you mouse-mark in column mode, the Frame dialog pops up automatically. To select mode and action, slip the mouse pointer to the message area on the statusbar, to the left of the title. ///////////////////////////////////////////////////////////////////////////// Version 1.23 (November 9, 1992) NEW FEATURES: - New on the Print Options submenu of OH.EXE: you can enter a printer setup string for Orpheus to send to the printer before a global print or every one-card print. This is also on the Print submenu of the Orpheus Reader. Additionally, both programs let you choose between removing and not removing control codes (see below) from the print stream. - New characters! Instead of reserving all 31 control codes (characters with an ascii value of 1-31), Orpheus now lets you use 18 of them in your text. Characters include: the card suits, musical notes, male/ female symbols, true arrows, etc. The complete list is shown in the Ascii Table (Alt-A). - Music! Play() command lets you play music from an Init or Action card. For music to play automatically when the reader enters a card, place the Play() command in an Init; for music to play only when the user selects an Action link, place the command in the Action card. ///////////////////////////////////////////////////////////////////////////// Version 1.22 (October 30, 1992) NEW FEATURES: - The Orpheus Reader is now network-friendly: a user can be on one drive-directory, the Reader and its help file on another, and the book to read on yet another. The user's personal configuration, bookmark, and notepad files are saved in his own directory. - Also in the Reader, the directory dialog now lets you look for HTX files anywhere on your system. ///////////////////////////////////////////////////////////////////////////// Version 1.21 (October 9, 1992) NEW FEATURES: - Now you can launch a program or batch file from within OH.EXE (not just from the Reader). See Action Links on the Link Menu, and read Help on Programming Hypertext. - Special support for users working in languages other than English. Read online Help on "Using the Keyboard"->"Inserting Accents", or open the Options Menu and select "Keyboard". - Added Delete Word Left (Ctrl-Backspace) to OH.EXE's internal word processor. - Added an Ascii Table displaying all characters with their ascii values, from 32 (space) up to 255. (Values below 32 are control codes reserved for use by Orpheus.) Any character on the table can be inserted by clicking on it, or by selecting it with the arrow keys and pressing Enter. ///////////////////////////////////////////////////////////////////////////// Version 1.20 (October 2, 1992) NEW FEATURES: - Instant macros with keyboard recording. Record up to 500 keystrokes in up to 10 keystroke macros and assign to the keys of your choice. See "Macro" on the Tools Menu. - All cards in a book can now be displayed within a "frame" (box), using the style of your choice. See "Frame" on the Project Menu. - The Edit Menu now includes Column Marking, and all block ops can now be performed on column blocks, including deleting, pasting, moving, and moving a block with embedded links to another card. - Instant boxes! Mark a column block and then press Ctrl-F9: the Frame Dialog pops up with a choice of 6 styles. Want to change the the style of an existing box? -- Easy: column-mark it and hit Ctrl-F9, then just pick a different style or select "None" to remove the box entirely. See "Frame Block" on the Tools Menu.