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
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
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
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
Mouse and keyboard driver available
Free of charge
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
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
* 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
Unsupported interrupts will just return when called.
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.
These are GMOUSE.EXE, a text based PS/2 mouse driver which will allow to
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.
This version of Georgos is Freeware. The author cannot be made responsible
for anything resulting from the use of this program.
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