The MMURTL (tm) Computer Operating System Version x0.8 This file describes: What you have, Where it is, Where it's going, What you can do with it, What you can't do with it, and Where to begin... The meaning of life, however, still remains a mystery (at least to me). First, let's get the legalese out of the way: --------------------------------------------- Copyright (c) 1991-1993, Richard A. Burgess All Rights Reserved All program source files and text documentation listed below are provided to you courtesy of R.A. Burgess via various distribution mediums as determined by the staff of DR DOBB'S JOURNAL. You have my permission to use portions of the source code (algorithms and code sections) in your commercial and personal programming projects, and for educational purposes. The only restriction placed on its use is that it may NOT be used in a commercial computer operating system or embedded systems kernel (sold for profit or not), or distributed commercially, in whole or part, as a computer operating system or embedded systems kernel (for profit or not). Only DR DOBB'S journal has been given my permission to distribute this version of the code in source, object, or executable format. This is NOT "shareware", NOR is it "public domain". Please abide by this copyright (thanks). NO WARRANTY We provide absolutely NO warranty, to the extent permitted by applicable state law. Except when otherwise stated in writing, MMURTL is provided "AS IS" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of MMURTL is with you. Should MMURTL prove defective, you assume the cost of all necessary servicing, repair or correction. In no event, unless required by applcable law, will R.A. Burgess or The D-Group be liable to you for damages, including lost profits, lost monies, or other special, incidental or consequential damages arising from the use or inability to use MMURTL (including but not limited to loss of data or data rendered inaccurate, or losses sustained by third parties or a failure of the program to operate with any other programs), even if you have been advised of the possibility of such damages, or for any claim by any other party. --------------------------------------------- ********** WHAT YOU HAVE: The source code, executables, utilities, and programs are all part of the MMURTL computer operating system development effort (version x0.8). MMURTL is a 32 bit, message based, multitasking, multithreaded, real-time, microcomputer operating system designed specifically to run on Intel PC-ISA platforms (even underpowered ones!). The main goal of the MMURTL project is SIMPLICITY. The 'x' in the version number indicates that this is not a complete package. The system is still under development. We are currently at version x0.95. However, we have decided to provide you with this version because x0.95 is about as stable as a beach ball in a hurricane... PLEASE NOTE that this version has only had basic testing done on it, and because of its complexity, YOUR DATA MAY BE AT RISK. The real value of this source code is in its content, not the product it currently produces. Users will not understand this, but programmers surely will. This code and documentation is provided to you for your enjoyment and use so long as you abide by the legalese above. To better understand what MMURTL is, you should read the Intro & Architecture sections of the MMURTL documentation (provided with the rest of the files as ASCII text - XXXXXX.doc). ********** WHERE IT IS: Version 1.0 of MMURTL is almost completed. We're killing bugs at a pace that would make the Orkin man proud. This version (x0.8) is completely cooperative multitasking. Some of the documentation is ahead of this version as far as capabilities described (but not too far). The final version will be preemptive based on prioritized messaging, but not completely time-sliced (or we loose our real-time capabilities). ********** WHERE IT'S GOING: When version 1 is completed (late this summer), the basic MMURTL operating system and utilites will be distributed free of charge to those who want it (via online services, BBSs, or directly from The D-Group). It will include the basic device drivers, development software, and everything else you need to use MMURTL. The complete MMURTL package (including all source code) will be available as an Operating System Kit. Yes, kind of unique, but it will be useful for those that know what to do with it. Imagine... Your own high performance file system! The kit will be useful for anyone interested in systems programming, PC-ISA hardware control, multitasking, multithreaded operating systems, and so on. It will also be of value to educational institutions as an inexpensive, comprehensive method to introduce message based real-time operating systems to students. One of the best things about the MMURTL OS Kit will be its price. Under $100.00 including all heavily commented source code and printed manuals that include complete theory of operation. There will also be educational and group discounts. In this distribution (via DDJ), we have included CM32 (tm) which is an MS-DOS based C compiler, and DASM (tm) which is an MS-DOS based 32 bit assembler for the Intel 386 compatible processors. Both of these products were written specifically for the development of the MMURTL operating system. They are now in the process of being ported to MMURTL and completed (yes, they need a lot of work too). Stay tuned to this channel for more info... ********** WHAT YOU CAN DO WITH IT: Version x0.8 is not a complete OS. The introductory article in DDJ touched on how we manage memory in MMURTL. The real power is in the messaging as you will read in the architecture section of the documentation. A small article could never have done it justice (besides, who's got the time?). If you are a systems programmer (or even a serious computer hobbyist) and you work with ISA hardware or are learning Intel based 32 bit assembly language, portions of this code will be extemely useful to you. We do not pretend to have a complete product here. It is provided more for the code itself than the value as a computer operating system. That's it in a nutshell. I hope you enjoy it, learn something, and find it useful. Simple installation instructions are at the end of the FILES.TXT file. ********** WHAT YOU CAN'T DO WITH IT: Simply abide by the "legalese" above and it is up to you... *********** WHERE TO BEGIN: If you read this file first, you got off to a good start (ReadMe.1st). The next file you should look into is README.2ND which contains more specific information on this version concerning what's not in it, what BUGS we know of, and what to avoid. The next file you should look through is FILES.TXT which lists ALL the files included in this distribution. A brief description is included for each file and the list is made to help you see how the MMURTL development effort is organized. -------------------- End of File ---------------- ReadMe.2nd This file lists problems, bugs, changes, differences, inadequacies, and hassles, dealing specifically with MMURTL version x0.8. It may even have a suggestion or two concerning the cause and resolution. ********** WARNINGS ********** DON'T run MMURTL if you are using data compression on your hard disks. "MMURTL don't play that." DON'T attempt to access disk partitions other than MS-DOS FAT compatible (e.g. FAT16, FAT12), even if they show up on MMURTL Boot up. This version was not tested extensively. Backup your disk if you intend to experiment with the file system (writing files). ********** WHATS NOT DONE ********** (not an all inclusive list for sure) Loader: DLLs are not done in this version. Device Drivers can not be loaded dyamically. File System: Remove and Create Directory Redirection (SysIn and SysOut) Reset of Floppy drives on error Kernel: Preemptive Prioritized task switching Request Forwarding Job Management: DeInstallation of System Services Setting Job Names Monitor: Job Display Debugger: Set & Clear breakpoints Comms - Serial & Parallel The serial comms driver in this version is not really too efficient (we've run it at 38,400 baud and it works...) The parallel driver was not done for this version at all... we tried a retrofit, but there was no time. CM32 (Compiler): 1) Argument passing to "main" in stdlib in the DOS version of CM32 is not done. Whe are now concentrating on the MMURTL version of instead. 2) Structures don't work correctly as local vaiables. DASM (Assembler): Library Search (.SEARCH command) in DASM isn't functioning in the DOS version. As you will see in the sample code, you simply include the .ASM files that match the header you have included. CLI.run: No pattern matching is done in the CLI for wildcards. The copy command is not implemented in this CLI. External command searching was also not implemented (use "RUN filename" instead). There are no "real" applications. We're working on the OS and we only have indepth test programs completed. The CLI and the little editor included are simple qickies (treat them as such). They were the first things ever done when MMURTL was completed to the point of being able to load something... ********** BUGS & PROBLEMS ********** 1) PROBLEMS LOADING AND RUNNING THE DOS MMURTL IMAGE If you are running the MS-DOS EMM386 device driver this may prevent MMURTL from loading. The symptom is that your machine simply reboots when you run MMURTL. Comment out EMM386, reboot DOS, and run MMURTL again. 2) STATISTICS DON'T SHOW CORRECT AMOUNT OF MEMORY MMURTL depends on the address line A20 being active so all memory can be accessed. This is controlled via the keyboard serial controller (8042) as documented in the IBM-PC AT technical reference manual. Most ISA PCs support this method but a few don't. If you only show 1 Meg of RAM and you have more, this is no doubt the culprit. Some support chip sets (such as C&T) provide an alternate method which you can investigate. (We're investigating right now) 3) I CAN'T SEE MMURTL ON MY SCREEN If you hear two beeps (a short low tone, then a longer high tone) MMURTL has initalized at least part of the way. If you can't see anything on your screen it means that your video text base address is not where MMURTL expects it. You can change this in the code (VGATextBase in VIDDATA.INC) if you know where yours is located. This is a 32 bit linear address. In fact, I guess you can rewrite the entire video code if you need to... (but wait for V1.0 if your that serious) 4) FILE SYSTEM ERRORS ON BOOT UP This version of MMURTL is a little picky about timing on some IDE drives. This may cause problems for a small number of users. This version was only tested on about 14 major brands and clones (IDE based). 5) MS-DOS OUT OF MEMORY WHILE BUILDING MMURTL 0.8X You will need just above 600K to build MMURTL version 0.8x. TASM requires this. Start hacking at your DOS Config.sys and Autoexec.bat file... 6) FLOPPY DRIVES ALWAYS RETURN ERRORS We weren't really concentrating on floppies at that time (0.8x). The FDD driver works, we just didn't have code in the file system to reset them on change-line or error indications. If there's a floppy in the drive when you boot it will be recognized. Only High Density 3.5 and 5.25 work (1.44 * 1.2M). We have the additional code in the FDD driver to recognize the lower density, but we didn't do anything with it. --------------- End of file ------------