- FutureOS
FutureOS is an
operating system for theAmstrad CPC 6128, 6128plus,C-One and T-Rex1 developed by Dr. Stefan W. Stumpferl inZ80 assembler. Its development continues from 1989 up to nowwhen. FutureOS is controlled by aGUI withicons and a file-section, it can deal with up to 4 MB long files in one piece. It has a dynamicmemory management system, which dividesRAM into 16 KB blocks. Further it supports a variety of hardware expansions. FutureOS is delivered together with basic utilities in the same ROMs.Requirements
The core of the
OS needs 64 KBROM . Compatible products areEPROM -cards, the ROM-RAM-BOX, SYMBiFACE II, RAMcard, Jareks Flash-ROM or similar products. If you don't own such a card, you can take a look at FutureOS by using a compatibleCPC Emulator (WinCPC, Caprice, WinApe, CPCEmu). The core of theOS itself is executed directly in (Pseudo-)ROM orEPROM where it is divided in four 16 KB blocks. It jumps between the ROMs with the help of a little common area. Therefore the numbers of the four 16 KB ROMs are hardcoded.FutureOS uses 2 KB (&B800...&BFFF) of the first 64 KB, all other RAM can be used for
applications . Additional RAM can be occupied for DIRectory buffering. Furthermore the OS usesmemory management , file-handling and Low/Mid/High-level routines to access the hardware. From AmsDOS/Basic you can start FutureOS with theRSX commands |OS or |FDESK. If you use |FDESK you can leave FutureOS and get back toBASIC where you have stopped before - the first 48 KB (not the screen) have been preserved.FutureOS only runs well on a CPC6128 or 6128plus (not CPC464 or 664), because they support the
RAM configuration &C3 (which is essential for the mouse arrow of theGUI ).GUI
The
Desktop of FutureOS is divided in two sections. First an icon-section, where you can choose your functions. Second there is a section below, where you can browse through directories of discs and hard-discpartitions .The
Desktop can be controlled using ajoystick ,mouse ,trackball orlight pen . There is no command line. Theuser interface is graphical, you click on icons and files to select them for subsequent actions.Applications can call theGUI as asubroutine . The icons are fixed, so you will always work with the same desktop.File system
FutureOS is compatible with the CPCs native data-, file- and format structures (f. e. File-header, Disc-formats). It is not compatible with native AMSDOS or CP/M programs. FutureOS and compatible applications can be downloaded at: www.FutureOS.de.
Filenames can use all 256 different characters and user numbers from 0 to 254 (except for &E5, which marks a deleted file). Different to Amsdos, a file that is erased under FutureOS will not be shifted to user &E5, but it will be physically removed from the directory. Files can be viewed on-screen (scroll up and down) or printed. You can also view the file-header. When typing a text-file it is possible to set the number of columns and lines of the window the text is displayed in. File-headers are displayed as AmsDOS file or the icon-like file-header of a FutureOS program. An AmsDOS file-header has 128 bytes of which some bytes are unused. FutureOS makes use of those unused bytes so that files have a length definition of 24bit and can have a physical RAM select. Therefore a file can be defined to be loaded everywhere in the external RAM. Also a FutureOS file-header can contain a graphical icon, a textual icon or a short description of the file.
Hardware
The OS supports many of the hardware available for the CPC, including real-time-clocks, the Vortex disc drives, several mice & trackballs and the Dobbertin HD20 hard disc. Also the SYMBiFACE II (RTC and PS/2 mouse, RAM, ROM, IDE low level) are supported in system .8 beta. One idea of FutureOS was to support any hardware available. For example there are 3.5" B-drives, Vortex F1-D-drives, hard-discs, real-time-clocks, serial interfaces etc. Hardware expansion usually need drivers, which can be flexible added to an OS. In contrast to this one of the goal of FutureOS is to provide a monolithik architecture, where all drivers are implemented in a hardcoded way, because the CPC has clearly defined hardware expansions compared to a PC.
Disc drives and hard discs: FutureOS supports up to eight drives and up to four hard-disc partitions. It buffers the directories read from any mass storage device in the expansion RAM. Plug and Play: If you connect a hardware expansion to a CPC, FutureOS will automatically detect that expansion, initialise it and make it accessible. The architecture of the OS allows you to add and remove hardware on purpose. An example: You add a trackball, you use it, then you connect and use a joystick and then you use a proportional mouse for example. You can turn external hardware in the configuration-bytes on or off (use ConfigOS utility).
Supported Hardware
8 bit printer ports
* 8 bit printer port 6128 Plus
* 8 bit printer port patch (PIO)Drives
* 3" A-drive
* 3" B-drive
* 3" C- and D- drive (hardware patch)
* 3.5" B-drive
* 5.25" B-drive
* Atari ST 80 Track DS B-drive
* Dobbertin D-DOS Double drive. Up to four drives 80 track, DS
* Dobbertin X-drive 80 tracks, DS
* Vortex F1-D
* Vortex F1-S
* Vortex F1-X
* Vortex M1-D
* Vortex M1-S
* Vortex M1-XExpansion cards
* CPC Booster(+)
* Future Player MP3 Player
* HD64180 Coprocessor card
* Symbiface IIFloppy disc formats
* Data
* IBM
* System
* Vendor
* VortexHard-disc
* Dobbertin HD20 (72 KB/s data transfer rate)
Joysticks
* Analog Joystick (6128 Plus)
* Digital Joystick 1
* Digital Joystick 2Light-Pens
* Dk'tronics
* Happy-Computer
* LindyMemory expansions
* Dk'tronics 64 KB, 256 KB and 512 KB
* Dobbertin 64 KB - 512 KB
* Inicron 256 KB and 512 KB
* Jareks 4 MB RAM expansion Up to 4 MB
* RAM7's RAM expansion 2-8 MB
* Symbiface 512 KBMouses
* AMX mouse
* Atari ST (Schneider Magazin)
* CPC-Mousepack (Reisware)
* CPC-Mousepack 2.0 (Reisware)
* Geos (c64)
* PS/2 mouse (Symbiface)Real-Time-Clocks
* Dobbertin Smart Watch (ROM select 15)
* SymbifaceROM expansions
* Amstrad ROM expansion
* Dobbertin EPROM card
* Inicron ROM-RAM-BOX
* Jareks 2,5 MB / 4 MB Flash ROM
* RAM7's RAMCard
* Super Power ROM
* Symbiface Pseudo ROMTrackballs
* Atari ST (Schneider Magazin)
* MarconiUtilities
Tools like copy, format, verify or refresh a disc exist. You can copy files from different discs and partitions to other discs and partitions at once.
From the Desktop you can call a little machine monitor. This monitor provides features like editing of CPU registers and I/O ports, display and edit memory or the content of the ASIC of the 6128plus. Memory blocks can be copied or initialised. It is possible to call a routine with defined CPU registers and memory.
Developing for FutureOS
You can developp very freely, even the RST vectors are free usable. Also the second register set of the Z80 is freely usable.
Z80 Assembler: You can use an assembler for AmsDOS or for CP/M. Switching between AmsDOS and FutureOS is fast and using |FDESK allows to come back to AmsDOS with the first 48 KB or RAM remaining untouched.
Programming in C for FutureOS: With FIOLIB it also possible to use C as a programming language.
Applications / Demos / Games
* Captain Future demo
* CBM (pull down menu library)
* Darth Vader demo
* FilmeMacher (movie player)
* FIOLIB (C library)
* Flash ROManager (management of Jareks Flash ROM expansion)
* Fractal demo
* FuturePlayer (MP3 and WAV player)
* FutureView (disc mag)
* Gerelakos (RPG under construction)
* GMSK (sprite converter)
* GSED (Graphic Playground Editor for 2D / 3D games)
* Hero (third party game)
* Meg Ryan sample demo
* Return of the Sisters (a Giana Sisters Clone)
* ROManager (management of the Symbiface Pseudo-ROMs)Conclusion
FutureOS was designed as an OS with fast routines and support of nearly all CPC expansions. It has specialised file-handling and memory-management that support programs up to 4 MB. The idea is that development of games, graphic tools, word processors, sound (especially MP3), management of big amounts of data, and programming languages are possible in this environment. Today you can hear MP3 sounds, work with graphic, use C programs, watch movies & demos and play games.
Sources
*This article uses content from [http://cpcwiki.com/index.php/FutureOS CPCWiki] licensed under [http://cpcwiki.com/index.php/CPCWiki:General_disclaimer GFDL]
External links
* [http://www.FutureOS.de FutureOS homepage]
* [http://tech.groups.yahoo.com/group/FutureOS/ FutureOS Group]
Wikimedia Foundation. 2010.