ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º Following is the partial text of the photo-copied "docs" that º º came with my OMNIVIEW XL years ago. The original was an 8" by º º 6" booklet with no date. My comments are limited to this and º º the box which follows the last of the stuff I typed in. º º º º John Picken º º yg473@victoria.tc.ca º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ =================================Cover Page =================================== Omniview XL/XE by CDY Consulting ==================================== Page i =================================== Table of Contents The New Features......................... 1 The Overview............................. 3 The 80 Column E: Mode.................... 3 Theory Behind OMNIVIEW XL/XE............. 4 Technical Details........................ 4 Memory Map and Variables................. 6 OMNIVIEW Patches for LJK Program......... 7 Using OMNIVIEW XL/XE with the ATR8000.... 11 Optional Installation Instructions....... 13 OMNIVIEW XE Installation Instructions.... 17 OMNIVIEW XL Installation Instructions.... 18 ==================================== Page 1 =================================== NEW OMNIVIEW XL/XE FEATURES OMNIVIEW XL/XE now have several new features which solve the compatibility problem associated with the 800XL/130XE. OMNIVIEW XL/XE does this by having an ultra compatible 400/800 style OS which will copy itself into RAM, freeing up the $C000 page. In addition, OMNIVIEW XE has resident ramdisk handlers which allow you to use the extra 64k of RAM in the XE as an ultra fast disk drive. Add the other outstanding features of OMNIVIEW XL/XE, namely, 80 column emulation under SpeedScript 80, Letter/Data Perfect, BASIC, MAC65, ATR8000 CPM, rtc., and the Fastchip floating point package for signifigantly faster math operations, and you have an outstanding value for any 800XL/130XE owner! Improved 400/800 compatibility: (Developed by CAL COM, 5295 Cameron Drive #505, Buena Park, CA 90621) The OMNIVIEW XL/XE operating system runs virtually every piece of software written for the ATARI computer. Besides being coded closely to the older OSB, it also has the capability of copying itself into RAM, freeing up the $C000 page for your applications. This means 4k more RAM for programs like Visicalc, modem programs, word processors, etc. It also means added compatibility with highly protected games which look for ROM in the $C000 page as a part of their misguided protection schemes (e.g. Electronic Arts). To copy the OS into RAM (from $D800 tp $FFFF), hold down the SELECT key while pressing RESET. To restore the OS to ROM, press RESET by itself. From this point on, the RAM version of the OS will be preserved, even if you switch the OS to ROM and back to RAM. Thus, any changes you may make to the OS in RAM remain in effect as long as you do not power down. In addition, if you hold down the SELECT key during powerup, the OS will be copied into RAM and it will stay in RAM even if you press RESET. Please note that the 80 column emulation is not available when running the OS out of RAM. There are two other features designed to give increased compatibility: the cursor speed and the OPTION key BASIC activation during powerup. The cursor speed is the same as the original XL/XE OS to remain compatible with the SYNAPSE software (SYNCALC, SYNFILE+, etc.) which speed up the cursor. Also, the meaning of the OPTION key during powerup is just opposite of the original OS: hold down the OPTION key to activate BASIC. This seems to be the preference of most people. In addition, there is the added function of the HELP key. Instead of using CTRL-1 the HELP key now functions as the scroll control for program listings. ==================================== Page 2 =================================== Turning on 80 columns: 80 column emulation is activated fropm the keyboard by typing CTRL-a and hitting RESET. To return to 40 columns, type a key without CTRL and hit RESET. Don't try this if running OS in RAM. Also see "Technical Details". Changing screen colors: Switch the screen colors in the 80 column mode by holding down the START key while typing a letter. If this does not work (as in Letter Perfect), try holding down the START key while pressing RESET. However, since this combination is also used to install the ramdisk handlers, read the next section before using this second technique. Installing the resident Ramdisk handlers: (130XE only) The resident Ramdisk handlers in OMNIVIEW XL/XE allow you to use the extra 64k RAM of the 130XE as an ultra fast 512 sector single density disk drive in conjunction with any DOS which uses standard SIO calls ($E459 and $E453) and does not hide itself underneath the cartridge or OS (e.g. Atari 2.0s, MYDOS, SMARTDOS, etc.). In addition, you will find it possible to use the Ramdisk with boot programs like Letter and Data Perfect. The installation is simple: Type a number (1 to 8) corresponding to the drive number you wish to assign the Ramdisk, hold down the START key, and press RESET. (Note: If you are using DOS 2.0 and it is not configured for more than 2 drives, it will be necessary to configure it accordingly. First boot up BASIC with DOS 2.0, then, after you have a `Ready' prompt type `POKE 1802,15 for 4 drives or `POKE 1802,131' for 8 drives. Now go to DOS, write the DOS files back out to the disk. You have now configured DOS to accept either 4 or 8 drives online.) Continue to hold the START button down until DOS returns or you go into BASIC. The reason for this is to allow the ramdisk handler enough time for the installation process. If you do not hit a number prior to pressing START/RESET, drive 1 will be assumed. In Letter/Data Perfect this combination is also used to change the screen colors, so assign the Ramdisk as drive 3 if you do not wish to use it in these environments. For example, in BASIC: 1) Type DOS to go to DOS. Now type 2 and START/RESET to install the Ramdisk as drive 2. 2) Since you are now back in BASIC, go to DOS again, format and write DOS files to drive 2. (Note that we suggest doing a directory on the drive # you have assigned the ramdisk to. This is to show the DOS that the drive exists) 3) Now type 1 and START/RESET to install the Ramdisk as drive 1 if you so desire. You can use the enclosed files on the SpeedScript 80 diskette to install the ram disk handlers. The files named INSTALL1 and INSTALL2 are the ramdisk installation files. To use them simply load them from DOS depending on ==================================== Page 3 =================================== which drive you wish to assign the ramdisk. You will still have to format the disk you have assigned to be the ramdisk. Again we suggest doing a directory on the drive number the ramdisk has been assigned. To create your own file in assembly language type as follows: LDA #2 (the 2 denotes the drive number, this can be changed) STA $94 LDA $D301 AND #$7F STA $D301 JSR $CFAE LDA $D301 ORA #$80 STA $D301 RTS Note that any attempt to use more than 512 sectors of the Ramdisk will result in an I/O ERROR. The Overview of OMNIVIEW XL/XE OMNIVIEW XL/XE takes advantage of the high resolution graphics mode built into the ATARI to grenerate an 80 column screen editor essentially identical to the ATARI screen editor (E:, S:). Thus, you can use OMNIVIEW XL/XE in any environment where you would normally use the 40 column "E:" (e.g., BASIC, Assembler/Editor, Mac/65, BASIC XL, modem programs, etc.). The character font was specially designed to be legible on an ordinary TV set! A monochrome monitor is recommended, but not really necessary for casual 80 column operation. The Bit-3 versions of LJK's Letter and Data Perfect have been modified to support OMNIVIEW XL/XE, along with SpeedScript 80. Other programs are very likely to follow once software developers realize the potential of the OMNIVIEW XL/XE. Use of OMNIVIEW XL/XE 80 column E: You can activate the 80 column mode in most environments (e.g. BASIC, DOS, etc.) by hitting CONTROL a-RESET. This will do a normal warmstart except that 40 column E: and S: will be replaced by 80 column E: and S:. In addition, the 80 column mode can be activated from assembly language with `JSR C001' or from BASIC with `X=USR(49152)'. Once activated, the 80 column E: acts just like the ATARI 40 column E: except for a few minor points. First, the logical line is 80 characters long (1 physical line) instead of 120. If you wish to edit a line longer than 80 characters, as you might in BASIC, hit SYSTEM RESET to take you back to 40 column mode. Secondly, you cannot set the tabs as you can in 40 column mode. Thirdly, neither split screen nor ==================================== Page 4 =================================== line drawing is supported. However, there is a feature which will allow a mixture of 80 column text and graphics on the screen. This will be described later. Thus, any program which uses pure E: in its simplest form (no split screen or line drawing) for its screen I/O should work in 80 column mode. Even programs which reference and manipulate internal E: variables (ROWCRS, COLCRS, LMARGN, RMARGN, OLDCHR, etc.) should work fine because every effort was made to preserve the meanings of these variables in 80 column mode. One possible exception would be a program which relies on characteristics specific to a 40 column screen like, for instance, that the line will wrap at the 40th column. Likewise, programs like VISICALC, ATARIWRITER, MEDIT, etc. will not work because their internal design assumes a 40 column screen. Theory Behind OMNIVIEW XL/XE OMNIVIEW XL/XE uses ANTIC mode F (BASIC GRAPHICS 8), which gives you a resolution of 320 by 192 pixels. If you use a 4 by 8 character cell, this gives you exactly 80 columns by 24 rows. One drawback to this scheme is that it uses $1E00 bytes (almost 8k) of memory for the screen data alone. This is rarely a problem and, when it is, you can always drop into the 40 column mode anyway. Another drawback is that the format of the screen data is not nearly so convenient as BASIC GRAPHIC 0 (which is essentially stored as ATASCII). Each character must ve translated to pixel data represented by bits in noncontiguous bytes in screen memory. This gets especially tricky when E: goes to read a character from the screen! This requires a search of the character data table to find a match for the pixel data representing that character. You can see how this could be quite slow, but this part of the code has been optimized for speed and the small delay is hardly noticable. For example, it will take a fraction of a second longer for the machine to respond when you type a line of BASIC and hit RETURN. Technical Details When you activate 80 column mode with CNTRL-a/RESET, `JSR $C001', or `X=USR(49152)', OMNIVIEW XL/XE initializes the 80 column screen and installs the 80 column E: and S: in the handler address of the table at $31A (HATABS). Afterwards, all CIO calls to E: and S: will get vectored into OMNIVIEW XL/XE. By the way, when OMNIVIEW's E: GET CHAR routine fetches a character from the keyboard, it vectors through the K: entry in HATABS instead of cheating like the OS does and calling the keyboard handler directly. This would allow you to redirect the keyboard input if you so desire. ==================================== Page 5 =================================== As mentioned earlier, there is a way to mix 80 column text and graphics on the same screen. While the first line of text is always the top row, the last is set with the variable BOTSCR ($2BF), which ranges from 0 to 23. If you were to set BOTSCR to anything less than 23 then you could use the remaining lower part of the screen for anything you wanted by simply modifying the display list. Also, since OMNIVIEW uses graphics 8 to generate the 80 column characters, there is nothing to keep you from drawing on the screen directly. This opens up all sorts of exciting possibilities which were inconceivable with the other dedicated 80 column boards for thje ATARI. For example, wouldn't it be nice to have a word processor which would allow you to draw diagrams in with the text? Some software developer ought to jump on that one and incorporate that into the enclosed 80 column version of SpeedScript 80 the comes with the OMNIVIEW XL/XE at no charge. Contact CDY for the source code for SpeedScript 80. ==================================== Page 6 =================================== Here is a memory map of the screen data area: RAMTOP*256 ->RAMTOP HOLDS THE NUMBER OF PAGES OF RAM RAMTOP*256-$126 ->FUTURE BUFFER FOR LAST LINE DELETED (LINBUF) RAMTOP*256-$1F0 ->BEGINNING OF DISPLAY LIST RAMTOP*256-$1FF0 ->BEGINNING OF DISPLAY DATA (SAVMSC) RAMTOP*256-$2001 ->LAST BYTE OF FREE RAM (MEMTOP) Here are the definitions of OMNIVIEW XL/XE variables: DSTAT $4C USED TO SAVE STATUS TEMP $50 TEMPORARY REGISTER HOLD1 $51 TEMPORARY REGISTER LMARGN $52 LEFT MARGIN (0-79) RMARGN $53 RIGHT MARGIN (0-79) ROWCRS $54 ROW CURSOR IS ON (0-23) COLCRS $55 COLUMN CURSOR IS ON (0-79); DISCERNS BETWEEN ODD AND EVEN CHARS DURING SCREEN OUTPUT (OUTCHJ) LFTMSK $56 INVERSE VIDEO MASK FOR EVEN COLUMNS RGTMSK $57 INVERSE VIDEO MASK FOR ODD COLUMNS SAVMSC $58 2 BYTE POINTER TO BEGINNING OF DISPLAY DATA OLDCHR $5D INTERNAL FORMAT OF CHARACTER UNDER CURSOR OLDADR $5E 2 BYTE POINTER TO CURRENT CURSOR POSITION (ALSO SEE COLCRS) WITHIN SCREEN DATA ADRESS $64 2 BYTE POINTER TO CURRENT CHARACTER MLTEMP $66 2 BYTE POINTER WHERE NEXT CHAR WILL BE OUTPUT (ALSO SEE COLCRS) WITHIN SCREEN DATA RAMTOP $6A NUMBER OF 256 BYTE PAGES OF RAM AVAILABLE BUFCNT $6B BUFFER COUNT DURING E: GET CHAR BUFSTR $6C RETAINS START OF LOGICAL LINE DURING E: GET CHAR (ROW/COL) DILIST $70 TEMP 2 BYTE PTR USED DURING GENERATION OF DISPLAY LIST TEMP1 $79 TEMPORARY REGISTER INSDAT $7D TEMPORARY REGISTER LINBUF $7E 2 BYTE POINTER TO A LINE BUFFER JUST PAST DISPLAY LIST GPRIOR $26F PRIORITY SELECTION REGISTER HOLD3 $29D TEMPORARY REGISTER ESCFLG $2A2 ESCAPE FLAG; USED TO DISPLAY CTRL CODES TMPROW $2B8 TEMPORARY STORAGE FOR ROWCRS SCRFLG $2BB SCROLL FLAG; SET IF SCROLL OCCURRED SHFLOK $2BE FLAG FOR SHIFT AND CONTROL KEYS BOTSCR $2BF THE NUMBER OF TEXT ROWS AVAILABLE FOR PRINTING MEMTOP $2E5 2 BYTE POINTER TO THE TOP OF FREE MEMORY CRSINH $2F0 CURSOR INHIBIT FLAG; NON-ZERO TURNS CURSOR OFF ATACHR $2FB LAST ATASCII CHARACTER READ OR WRITTEN CH $2FC INTERNAL HARDWARE VALUE OF THE LAST KEY PRESSED DSPFLG $2FE DISPLAY FLAG; NON-ZERO WILL DISPLAY CTRL CHARS SSFLAG $2FF START/STOP FLAG; NON-ZERO WILL SUSPEND SCREEN OUTPUT ==================================== Page 7 =================================== Use of OMNIVIEW XL/XE WITH LJK'S Letter Perfect Any version of Letter Perfect which supports the Bit-3 board can, with the appropriate patches, be made to work with OMNIVIEW XL/XE. Some special fixed entry points were added to OMNIVIEW XE/XL to provide the necessary hooks and these can be used in your own software if needed: CURSNJ $CFB1 TURN ON CURSOR @OLDADR ($5E) CURSFJ $CFB4 TURN OFF CURSOR @OLDADR ($5E) DELRTJ $CFB7 CLEAR TO EOL, BASED UPON MLTEMP ($66) AND COL # IN REG Y OUTCHJ $CFBA OUTPUT CHAR IN ACC TO SCREEN @MLTEMP ($66) AND COLCRS ($55) SCROLJ $CFBD SCROLL SCREEN UP SCRLDJ $CFC0 SCROLL SCREEN DOWN ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º The balance of page 7 and pages 8-10 consist of sector editing º º instructions to enable use of Letter Perfect and Data Perfect º º with OMNIVIEW. Since I've never met, or even heard of, anyone º º who uses these, I'll be d***ed if I'll waste the time typing º º them in. Additionally, given some of the obvious errors in the º º foregoing text, who knows what the sector data is in reality? º º º º Pages 11-12 consist of instructions for use with the ATR8000, º º (almost as rare as Letter Perfect). About the only thing of º º interest to non-ATR users is that the ATRMON (terminal º º program and cursor controls for CP/M) code is in the portion º º of the ROM occupied by the XL/XE diagnostic, i.e. $D000, º º which is mapped into $5000-$57FF when ATRMON is active. From º º the PORTB manipulation in the RAMdisk number code snippet, I º º surmise that this portion of the ROM contains a bit more than º º the docs indicate. Interestingly enough, the authors omitted º º to warn the programmer to avoid the $5000-$57FF address range º º when assembling the RD number thing and made no mention of º º $94 in the equates above. Oh well, from my experience with º º Omniview on a 256XL, the RD never worked properly anyway and º º really wouldn't have been very useful since it only exploited º º 64k of extra RAM (why I hate code in ROM). º º º º I never received pages 13-18 (No, I don't do my own upgrades!) º º º º jkp º º 18 Feb 99 º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ