From wells_s@kosmos.wcc.govt.nz Thu Jul 7 01:21:35 1994 Return-Path: Received: from terminator.rs.itd.umich.edu by gauss.math.fsu.edu with SMTP (5.65/31gauss) id AA06775; Thu, 7 Jul 94 01:21:33 -0400 Received: from kosmos.wcc.govt.nz by terminator.rs.itd.umich.edu (8.6.9/2.3) with SMTP id BAA24392; Thu, 7 Jul 1994 01:21:23 -0400 Received: by kosmos.wcc.govt.nz (MX V4.0-1 VAX) id 2148; Thu, 07 Jul 1994 17:16:45 +1200 Date: Thu, 07 Jul 1994 17:13:48 +1200 From: Steve Wells To: BOYDM@ATARI.ARCHIVE.UMICH.EDU Message-Id: <00981144.03F73280.2148@kosmos.wcc.govt.nz> Subject: OMENHER2.TXT - OMEn Herald, Issue #2, Volume #1. (Goes with OMEN246D.LZH) Status: O _______________________ _____________________________ / ___________________ \ / Esquimalt Digital Logic Inc \ | / \ | | 820 Dunsmuir Road | | | OMEn Herald | | | Victoria, BC | | | Volume 1 Number 2 | | | Canada V9A 5B7 | | | February 1994 | | | Phone: (604) 384 0499 | | \___________________/ | | Fax: (604) 384 0575 | \_______________________/ \_____________________________/ This newsletter keeps you up to date with developments of the OMEn cross-platform operating system. We invite your comments and suggestions so that we can improve usability for programmers and users. Newsletter #1 is available in the Atari RT library on GENIE, or request it from us. ___________________________________________________________________ / What Is OMEn? \ | | | The Open Multitasking Environment (OMEn) is an open architecture, | | true preemptive multitasking operating system based on the 680x0 | | processor family. It is also a graphical environment where the | | user has free access to all commands and features, even while | | running multiple programs simultaneously. | | | | OMEn is a modular system in which I/O function files are created | | and configured without reference to the system core. It can thus | | be interfaced with ease, and BY ANY DEVELOPER, to any type of | | hardware and to any type of software protocol, existing or new. | | This includes printers, disk drives and file systems, networks, | | input devices, displays, industrial controls, MIDI, multi-media | | and so on. | | | | OMEn is intended to run on most current 680x0 based computers | | (Macintosh, Atari, Amiga) including older low end models; PC via | | a 680x0 card; and new machines such as Power PC, Alpha IPX and | | Pentium by 68000 emulation and other techniques. Implementation | | progress for individual machines is detailed in issues of the | | OMEn Herald. | | | | OMEn interface operation is nearer to UNIX X-Windows than to any | | other interface, but OMEn's size is a fraction of UNIX, and the | | generic object oriented drag-&-drop interface is unique. In | | addition, A SINGLE VERSION of an OMEn application program or I/O | | protocol interface will run on ALL COMPUTERS, making OMEn a much | | more open system than UNIX in this critical area. | \___________________________________________________________________/ Two Good Reasons To Write Software For OMEn 1. It is plain that under current market conditions, Atari and Amiga have become dead-end systems, and even Apple is failing to gain its share of the expanding market. The pool of 680x0 programmers is split into incompatible camps based on each proprietary brand of computer, while the pool of Intel programmers are all writing for the same non- proprietary systems. OMEn will run on all 680x0 machines (including PCs with the 680x0 card, and RISC machines by emulation) independently of the fortunes of any one particular computer company. It is the only system conceptually capable of reversing the well-developed trend toward a closed Intel-Windows marketplace, and bringing good market share to 680x0 based and open architecture systems. OMEn will be viable on almost the entire installed base of existing computers, from the oldest 7 MHz monochrome Macs without hard drives to the latest mega-feature machines. The potential market area for OMEn software is thus set to the widest possible limits, and developers who start early will have a head start on penetration of the platforms not covered by early releases. This could propel small companies from fringe markets to advantageous positions in major markets. 2. There's just one operating system to know for any and all machines, and it's a straightforward, easy to learn and use system. OMEn software makers will not have to know a variety of systems to hit all the potential markets for a program. OMEn General Progress Conceptually, only configurable bootup remains to be tackled for a complete open architecture operating system. It is intended that a text based "Boot Script" somewhat akin to DOS'es CONFIG.SYS and AUTOEXEC.BAT will be used to install desired I/O drivers, preferences, startup applications and miscellaneous at boot time. A scaleable font handling system is now in place. It currently manages certain Postscript Type Three fonts which use a simple text based definition system editable with a text editor. These fonts are easy to add extended character definitions to. They mesh neatly with the rest of the scaleable graphics system, which uses the same definition format, which we call "ZipScrip". An example of an object defined by ZipScrip is: n New object 0 200 m Move to co-ordinates 0,200 (X,Y) 0 700 l Draw a line (from 0,200) up to 0,700 100 700 l From there, line right to 100 500 700 500 200 100 200 c Then a big curve back to the bottom e End polygon with a line back to the start f Fill it in. It's a filled in "D" shape. On a similar note, the "code page 437" character set (the IBM extended character set) has been adopted as characters 256 to 383 (hex 100 to 17F) of the OMEn character set. Character codes 384 to 1023 (hex 180 to 3FF) are currently reserved. The single byte defined character set is: 0 to 15: Control Characters (End of File, NewLine, Wordwrap, etc) 16 to 31: Extra OMEn printing characters (arrows, checkmark, etc) 32 to 127: Regular ASCII printing character set 128 to 255: Various non-printing commands (SetColors, bold, italics, SetTabs/Margins, PrintExtendedChar(>256), SetFont, ...) Release Dates The OMEn release for ATARI with development tools and documentation is still planned for 2nd quarter '94, probably in April. Please reply to receive your copy! A preliminary MACINTOSH release for 512K, Plus, SE, Classic, SE 30 and Classic II will also be available upon request at that time. (The Classic III hasn't been tested.) Monochrome displays ONLY, of any size, will work, and Mac hard drives are not accessable. 68030 based machines with color or shades-of-grey displays are currenly not working, even if set to two-color mode in the "Monitors" control panel. OMEn starts up fine, and applications run okay, but everything "freezes" after about 20 to 30 seconds. (Ideas are welcome.) The same OMEn software runs on both the Atari and the Mac. Since Mac Plusses can't use standard format DOS disks, a special feature called "DOSsify" has been added to convert an 800K Mac disk into an 800K DOS software compatible disk that works only on Macs. Transfer of software from/to real DOS disks must be done running OMEn on a Mac that can read both formats. Development Tools The current tools for software development within OMEn include a general purpose word processor (editing code, documentation, writing OMEn Herald, etc.), a structured 68000 assembler, debug monitor and a simple paint program for making icons, etc. The crash (/debug /breakpoint /single-step) window in the OMEn system is also very useful. Although they are separate programs, OMEn features allow the cursor in the word processor to jump instantly to compiler errors found in assembly. Documentation includes "The Software Development Process with Eazy-Asm" to quickly introduce you to the most effective use of these simple but powerful tools. Source code, documentation, debuggers, and the program under test can all be on screen at once. In addition, Atari-GEM format programs (sorry, NOT GEM programs, just the GEM executable file FORMAT!) will work with OMEn, making it possible to use GEM based compilers (Assembler, C, Modula2, Pascal, etc) to write OMEn software. The development setup would include an Atari computer running the compiler to create the program, and any computer running OMEn to test it on, with a floppy disk being used to transfer the program to the test machine. Until appropriate interface libraries are created, a bit of in-line assembly will be required here and there for OMEn system and I/O calls. GEM based compilers could be modified with relative ease by their creators to run in OMEn, where they would work on any OMEn machine as well as Atari! OMEn for PC Since OMEn is a 680x0 based system, it does not run on Intel processors directly, but the strength of the PC architecture is that new hardware can be added on bus cards. OMEn for the PC is currently under design with a 16.68MHz 68331 card. This is equivalent to a 22.24MHz 386SX because the '331 takes three clock cycles to access memory while the '386 takes four clock cycles. The PC does all the I/O including video, and the card does internal processing. In PC terms, the top speed of the system would be the speed of the PC plus 22 MHz! The prototype card will be ready in the next month or two, but it will take further time to get OMEn running on the PC. Two DRAM SIMMs (30 pin, 8 or 9 bits wide) are required. SIMM size may be from 256KB to 8MB, giving 1/2 to 15MB (the card's limit) of memory. Odd size SIMMs (512K or 2MB) will work. The card has an 8 bit stereo/16 bit mono audio output, a serial port (Appletalk compatible?), and a special synchronous serial port for control applications. With some restrictions, the memory on the card can be used as DOS/Windows extended memory if OMEn is not in use. System Tidbits: Writing an Application We had planned to feature the dynamic memory/file management system, but patent considerations preclude it this month, so here is another topic: The steps to writing a typical OMEn application. The structure of a simple OMEn application can be as follows: 1) Title, copyright, and includes (include OMENEQU.TEXT) 2) Define storage requirements for scratch memory 3) Initialize the program 4) The Event Loop 5) Subroutines (as required) 6) Place or VInclude Constants Initialization (3) can be broken down as follows: a) Open a window (or menu/dialog box). This is a simple step requiring five machine language instructions, which includes checking for error. b) Open and initialize scratch memory as required. Opening (allocating) memory is also a simple proceedure. The event loop (4) should handle at least the following events: a) #CloseWw (Close Window) If there is only one, the appropriate response is to end the program. b) #RedrawWw (Redraw Window) The display protocol manager sends this when a window is in need of updating, including when it is first opened. Some other events that are commonly handled are: #<$400 (text/ keystroke event), #Click (mouse), #DragFile (open file or ?), and #AboutWw (tell about program or window). There are many more events such as #TaskClosing (another program shutting down) and #DisplayAttrChange (change of display mode or zoom) which may be handled or ignored as desired. The constants section (5) includes such items as menu text and window definitions. Whole files such as Icon pictures or digitized sounds can be inserted into the program with the structured assembler's VInclude (Verbatim Include) feature. These steps are all simple. An example runnable program can be as short as 1/4 page of assembly code. Next Issue (April) Atari Release Notes. More good reasons to write software for OMEn. Real-time Control. Please call, write or fax all your comments to: Craig Carmichael Phone: (604) 384 0499 Esquimalt Digital Fax: (604) 384 0575 820 Dunsmuir Road Genie: CCARMICHAEL Victoria, BC, Canada V9A 5B7