What is Georgos?
________________

Georgos is a MS-DOS (R) compatible operating system.

It offers a subset of the functions of DOS and allows to run many DOS
programs, however, not all of them.

It is not the objective to be a 100% compatible system. It is compatible to
DOS since there is a lot of documentation available for DOS, compilers and
applications are available and there are a lot of users which are familiar
with DOS. This would not be the case if the operating system would be a
completely new design.

Georgos should not be rated by the amount of compatibility to MS-DOS. It is
an operating system of its own.


How to test Georgos?
____________________

Georgos is a bit special as it will run as a DOS application program if you
have MS-DOS or Windows running. So you just have to unzip the files onto a
floppy and either click on GEORGOS.EXE from Windows Explorer or call it
from the DOS command line.

Georgos will then redirect the interupts from DOS and work within the memory
area it got from MS-DOS or Windows. You then also use the keyboard and mouse
driver which where loaded by MS-DOS. Georgos will start gshell.exe from the
A: drive and is ready to run. With Windows 2000 or XP you can only run programs
from the floppy drive since Windows 2000 or XP will not allow Georgos to access
the hard disk directly.

If you want to try to boot with Georgos, you can use gsys.com to make a
bootable floppy. Take a formated floppy and run gsys.com.
This will write a boot sector on the floppy which boots georgos.com. Then copy
all the files from the ZIP file, or just georgos.com and gshell.exe, on this
floppy. You can then boot with this floppy.
Do this with MS-DOS or Windows since Georgos does not write files yet.

You can also use e.g. Nero Burning ROM (R) to copy this floppy to a bootable
CD-ROM. This way you can run Georgos from a CD.

Included in the ZIP file there are two games, an editor, a calculator and a
terminal program which will run with Georgos. These are invaders.exe, uno.exe,
edit.com, gcalc.exe and uc.exe. See the APPS.DOC file for information about
these. Georgos, however, will not run just any DOS application.

You can also write a simple program to run with Georgos. In the directory
HELLOSRC there are Helloworld samples which can be compiled with Turbo C,
Borland C++, Turbo Pascal, Powerbasic, Firstbas or Turbo Assembler und
will run with Georgos. However, the compilers themselves will not run with
Georgos, just the compiled applications.


Features of Georgos
___________________

loads and runs Assembler, C, C++, Pascal and PowerBasic programs
offers common DOS interface and functions
Small footprint, about 17k
supports FAT12,FAT16 and FAT32 drives
will also run as a floppy or CD-ROM only system
can be run as a MS-DOS (R) or Windows (R) application
batch file support incl. AUTO.BAT
TSR support
Mouse and keyboard driver available
Printer support
Free of charge


Limitations
___________

Currently Georgos has the following limitations:

- no long filename support
- no ems/xms support
- no clock$ driver - reads and writes to bios directly
- will read but not write files
- no sys-driver support, therefore no cd-rom etc
- just handle file access funcions, no fcb support
- does not run Quickbasic or Java programs
- will not start subprograms as such, just load them, no overlays
- requires gshell.exe on the floppy
- no support for full pathnames
- opens up to five files concurrently - I-O only
- up to 540 directory entries - including LFN entries


Supported interupts
___________________

Georgos supports the following interupts, which are not documented in detail,
since this list is constantly extended. You can look these up in many DOS
programming books or Ralf Brown's interupt list on the internet.

This is a rather complete list of all interupts, the ones with an * in front
of it are - at least partially - implemented.


      * 20h Program Terminate
      * 21h Function Request
        * 00h Program Terminate
        * 01h Keyboard Input
        * 02h Display Output
          03h Auxiliary Input
          04h Auxiliary Output
        * 05h Printer Output
          06h Direct Console I/O
        * 07h Direct Console Input Without Echo
        * 08h Console Input Without Echo
        * 09h Print String
        * 0Ah Buffered Keyboard Input
        * 0Bh Check Standard Input Status
        * 0Ch Clear Keyboard Buffer and Invoke a Kbd Function
          0Dh Disk Reset
        * 0Eh Select Disk
          0Fh Open File
        * 10h Close File
          11h Search for First Entry
          12h Search for Next Entry
          13h Delete File
          14h Sequential Read
          15h Sequential Write
          16h Create File
          17h Rename File
          18h Unknown
        * 19h Current Disk
        * 1Ah Set Disk Transfer Address
          1Bh Allocation Table Information
          1Ch Allocation Table Information for Specific Device
          21h Random Read
          22h Random Write
          23h File Size
          24h Set Relative Record Field
        * 25h Set Interrupt Vector
          26h Create New Program Segment
          27h Random Block Read
          28h Random Block Write
          29h Parse Filename
        * 2Ah Get Date
        * 2Bh Get Date
        * 2Ch Get Time
        * 2Dh Set Time
          2Eh Set/Reset Verify Switch
        * 2Fh Get Disk Transfer Address (DTA)
        * 30h Get DOS Version Number
          31h Terminate Process and Stay Resident
        * 33h Ctrl-Break Check
        * 34h Return INDOS Flag
          35h Get Vector
          36h Get Disk Free Space
        * 38h Return Country Dependent Information
          39h Create Subdirectory (MKDIR)
          3Ah Remove Subdirectory (RMDIR)
        * 3Bh Change Durrent Directory (CHDIR)
        * 3Ch Create a File (CREAT)
        * 3Dh Open a File
        * 3Eh Close a File Handle
        * 3Fh Read From a File or Device
        * 40h Write to a File or Device
        * 41h Delete a File from a Specified Directory (UNLINK)
        * 42h Move File Read/Write Pointer (LSEEK)
        * 43h Change File Mode (CHMOD)
        * 44h I/O Control for Devices (IOCTL)
          45h Duplicate a File Handle (DUP)
          46h Force a Duplicate of a Handle (FORCDUP)
        * 47h Get Current Directory
        * 48h Allocate Memory
        * 49h Free Allocated Memory
        * 4Ah Modify Allocated Memory Blocks (SETBLOCK)
        * 4Bh Load or Execute a Program (EXEC)
        * 4Ch Terminate a Process (EXIT)
        * 4Dh Get Return Code of a Subprocess (WAIT)
        * 4Eh Find First Matching File (FIND FIRST)
        * 4Fh Find Next Matching File (FIND NEXT)
        * 52h IN-VARS
          54h Get Verify Setting
        * 56h Rename a File
          57h Get or Set Timestamp of a File
        * 58h Get/Set Allocation Strategy (DOS 3.x)
          59h Get Extended Error Code
          5Ah Create Unique Filename
          5Bh Create a New File
          5Ch Lock/Unlock File Access
        * 62h Get Program Segment Prefix (PSP) Address
        * 66h Get/Set Global Code Page Table (DOS 3.3)
        * 67h Set Handle Count (DOS 3.3)
        22h Terminate Address
        23h Ctrl-Break Exit Address
        24h Critical Error Handler Vector
        25h Absolute Disk Read
        26h Absolute Disk Write
        27h Terminate and Stay Resident
        2Ah Microsoft Networks Session Layer Interrupt
        2Fh Multiplex Interrupt


Please note, that many interrupts are only partially implemented. E.g. 58h
will not modify the allocation strategy, since Georgos has only one. However,
many programs feel they have to alter it, so Georgos will return ok in any
case.

Unsupported interrupts will just return when called.


Batch files
___________

GSHELL.EXE, the shell of Georgos supports batch files. You can use all the
standard commands supported by Gshell: Dir, Time, Date, Cls, Ver, Type, Help,
Pause, Echo and Rem. If you specify the name of a batch file, Gshell will
chain to this file. It will be loaded and executed, but it will not be
returned to the previous batch file. Up to now batch file processing will end
when you enter an executable file.
On startup, Georgos will instruct Gshell to run the AUTO.BAT (not autoexec)
file in the current directory.


Utility programs
________________

These are GMOUSE.EXE, a text based PS/2 mouse driver which will allow to run
the included UNO game and GKEYB.EXE, a keyboard driver that supports German
and UK keyboards. Enter gkeyb gr for German and gkeyb uk for UK keyboard.
It will not support diacritic keys.

Entering gmouse or gkeyb again will unload the drivers.

Licence
_______

This version of Georgos is Freeware. The author cannot be made responsible
for anything resulting from the use of this program.


System requirements
___________________

Georgos will run on a 186 or better personal computer, not on an XT.
It also requires a BIOS which supports to read and write to large hard disks


Planned features of the next release
____________________________________

Write files with FAT12
Create, rename, delete files
Full pathname support
Child program support

It is also planned to add TCP/IP networking and a GUI in the future.

29.8.2004  Georg Potthast