Difference between revisions of "FutureOS"
(FutureOS has definitly a GUI (no UI) since it used Icons and a mouse arrow to work with. Further there is no command line. A GUI must not contain all WIMPs, a GUI is just more graphical than textual.) |
|||
Line 3: | Line 3: | ||
== Introduction == | == Introduction == | ||
− | '''FutureOS''' is an operating system for the Amstrad [[CPC6128|CPC6128]], 6128plus, [[C-ONE|C-One]] and [[CPC TREX|T-Rex1]]. The version for the CPCPlus supports some of its special features. FutureOS is developed by [[TFM|TFM]] of [[FutureSoft|FutureSoft]] in [[Z80|Z80]] assembler. Its development continues from 1989 up to now (2008). FutureOS allows the user to control the computer with with an icon section and a file section; it can deal with files up to 4 MB big in one piece. It has a dynamic memory management system, which divides RAM into 16 KB blocks. Further it supports a variety of hardware expansions. FutureOS is delivered together with basic utilities in the same ROMs. | + | '''FutureOS''' is an operating system for the Amstrad [[CPC6128|CPC6128]], 6128plus, [[C-ONE|C-One]] and [[CPC TREX|T-Rex1]]. The version for the CPCPlus supports some of its special features. FutureOS is developed by [[TFM|TFM]] of [[FutureSoft|FutureSoft]] in [[Z80|Z80]] assembler. Its development continues from 1989 up to now (2008). FutureOS allows the user to control the computer with with an icon section and a file section; it can deal with files up to 4 MB big in one piece. It has a dynamic memory management system, which divides RAM into 16 KB blocks. Further it supports a variety of hardware expansions. FutureOS is delivered together with basic utilities in the same ROMs. |
== Requirements == | == Requirements == | ||
Line 15: | Line 15: | ||
'''FutureOS''' can be launched from AmsDOS with the RSX commands |OS or |FDESK. If you use |FDESK you can leave '''FutureOS''' and get back to BASIC where you have stopped before - the first 48 KB (not the screen) have been preserved. | '''FutureOS''' can be launched from AmsDOS with the RSX commands |OS or |FDESK. If you use |FDESK you can leave '''FutureOS''' and get back to BASIC where you have stopped before - the first 48 KB (not the screen) have been preserved. | ||
− | '''FutureOS''' only runs well on a [[CPC6128|CPC6128]] or 6128plus (not CPC464 or 664), because of their support for RAM configuration C3 (essential for the mouse pointer). | + | '''FutureOS''' only runs well on a [[CPC6128|CPC6128]] or 6128plus (not CPC464 or 664), because of their support for RAM configuration C3 (essential for the mouse pointer). |
− | == | + | == GUI == |
− | The | + | The graphical user interface uses uses a mouse pointer to select functions or files. The pointer can be controlled with a joystick, mouse, trackball, light-pen or the Grafpad II. No command line is used. |
The work surface of FutureOS is divided into two sections. On top there is an area holding several icons, where the user can choose a function. Below that the user can browse through directories of discs and hard-disc partitions. | The work surface of FutureOS is divided into two sections. On top there is an area holding several icons, where the user can choose a function. Below that the user can browse through directories of discs and hard-disc partitions. | ||
− | Applications can call the | + | Applications can call the GUI as a subroutine. The icons are fixed, so you will always find the icons at the same position. |
− | Files can be viewed on-screen (scroll up and down) or printed. | + | Files can be viewed on-screen (scroll up and down) or printed. FutureOS- and AmsDOS- file headers can also be viewed. When typing a text file it is possible to set the number of columns and lines of the window the text is displayed in. |
== [[Image:CBM.png|thumb|right]]CBM == | == [[Image:CBM.png|thumb|right]]CBM == | ||
− | Apart from the | + | Apart from the GUI mentioned above there is another surface for FutureOS, the command bar menu [[CBM|CBM]]. It consists of several flexible pull down menus and file selectors. You can easily use [[CBM|CBM]] for your own programs. Since all programs that use [[CBM|CBM]] look similar its also easy to use different programs in an intuitive way. |
== File system == | == File system == | ||
Line 37: | Line 37: | ||
The file system is compatible with the CPCs native data-, file- and format structures (f. e. File header, Disc formats). It is not compatible with native [[AMSDOS|AMSDOS]] or [[CP/M|CP/M]] programs. | The file system is compatible with the CPCs native data-, file- and format structures (f. e. File header, Disc formats). It is not compatible with native [[AMSDOS|AMSDOS]] or [[CP/M|CP/M]] programs. | ||
− | Filenames can use all 256 different characters and user areas from 0 to 254 (except for &E5, which is reserved for deleted files). Unlike Amsdos, a file that is erased under FutureOS is not shifted to user &E5, but is physically removed from the directory. File headers are displayed as AmsDOS files or the icon-like file-header of a FutureOS program. An AmsDOS file header has 128 bytes of which 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. | + | Filenames can use all 256 different characters and user areas from 0 to 254 (except for &E5, which is reserved for deleted files). Unlike Amsdos, a file that is erased under FutureOS is not shifted to user &E5, but is physically removed from the directory. File headers are displayed as AmsDOS files or the icon-like file-header of a FutureOS program. An AmsDOS file header has 128 bytes of which 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 == | == Hardware == | ||
Line 47: | Line 47: | ||
*''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. | *''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 a hardware expansion is connected to the CPC FutureOS will '''automatically detect''' | + | *''Plug and Play:'' If a hardware expansion is connected to the CPC FutureOS will '''automatically detect''' that expansion, initialise it and make it available to the user. The architecture of the OS allows you to add and remove hardware on purpose. The user can switch external hardware on or off in the configuration bytes (use ConfigOS utility). |
== Supported Hardware == | == Supported Hardware == | ||
Line 155: | Line 155: | ||
There exist tools like copy, format, verify or directory refreshing. Multiple files can be copied between different physical media in one go. | There exist tools like copy, format, verify or directory refreshing. Multiple files can be copied between different physical media in one go. | ||
− | A small machine monitor is also provided. This monitor provides features like CPU register editing, I/O ports, memory editing and display and manipulation of the ASIC contents (6128 Plus). Memory blocks can be copied or initialised. It is possible to call a routine with defined CPU registers and memory. | + | A small machine monitor is also provided. This monitor provides features like CPU register editing, I/O ports, memory editing and display and manipulation of the ASIC contents (6128 Plus). Memory blocks can be copied or initialised. It is possible to call a routine with defined CPU registers and memory. |
== Developing for FutureOS == | == Developing for FutureOS == |
Revision as of 17:09, 22 December 2008
Contents
Introduction
FutureOS is an operating system for the Amstrad CPC6128, 6128plus, C-One and T-Rex1. The version for the CPCPlus supports some of its special features. FutureOS is developed by TFM of FutureSoft in Z80 assembler. Its development continues from 1989 up to now (2008). FutureOS allows the user to control the computer with with an icon section and a file section; it can deal with files up to 4 MB big in one piece. It has a dynamic memory management system, which divides RAM 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 KB ROM. Compatible products are EPROM-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 compatible CPC Emulator (WinCPC, Caprice, WinApe, CPCEmu).
The core of the OS itself is executed directly in (Pseudo-)ROM or EPROM (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; the rest of the RAM is available to applications. Additional RAM can be reserved for DIRectory buffering. Furthermore the OS uses memory management, file-handling and Low/Mid/High-level routines to access the hardware.
FutureOS can be launched from AmsDOS with the RSX commands |OS or |FDESK. If you use |FDESK you can leave FutureOS and get back to BASIC 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 of their support for RAM configuration C3 (essential for the mouse pointer).
GUI
The graphical user interface uses uses a mouse pointer to select functions or files. The pointer can be controlled with a joystick, mouse, trackball, light-pen or the Grafpad II. No command line is used.
The work surface of FutureOS is divided into two sections. On top there is an area holding several icons, where the user can choose a function. Below that the user can browse through directories of discs and hard-disc partitions.
Applications can call the GUI as a subroutine. The icons are fixed, so you will always find the icons at the same position.
Files can be viewed on-screen (scroll up and down) or printed. FutureOS- and AmsDOS- file headers can also be viewed. When typing a text file it is possible to set the number of columns and lines of the window the text is displayed in.
CBM
Apart from the GUI mentioned above there is another surface for FutureOS, the command bar menu CBM. It consists of several flexible pull down menus and file selectors. You can easily use CBM for your own programs. Since all programs that use CBM look similar its also easy to use different programs in an intuitive way.
File system
The file system of FutureOS can handle multiple simultaneous floppy disc drives and hard disc partitions. After the selection of a device FutureOS reads and buffers the directory entries of the medium. Integrated utilities like the multi file copy can copy files from physical sources to different physical destinations in one run.
The file system 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.
Filenames can use all 256 different characters and user areas from 0 to 254 (except for &E5, which is reserved for deleted files). Unlike Amsdos, a file that is erased under FutureOS is not shifted to user &E5, but is physically removed from the directory. File headers are displayed as AmsDOS files or the icon-like file-header of a FutureOS program. An AmsDOS file header has 128 bytes of which 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) is supported in system .8 beta. One of the ambitions of FutureOS is to support all hardware available, like 3.5" B-drives, Vortex F1-D-drives, HDDs, real-time clocks, serial interfaces etc.
Hardware expansions usually need drivers that can be flexibly added to an OS. Contrary to this approach, a goal of FutureOS is to provide a centrally-oriented architecture where all drivers are implemented in a hardcoded way. This is possible since 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 a hardware expansion is connected to the CPC FutureOS will automatically detect that expansion, initialise it and make it available to the user. The architecture of the OS allows you to add and remove hardware on purpose. The user can switch external hardware on or off in the configuration bytes (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-X
Expansion cards
- CPC Booster(+)
- HD64180 Coprocessor card
- Symbiface II
Floppy discs, formats:
- Data
- IBM
- System
- Vendor
- Vortex
Graphic Tablet
- Hegetron Grafpad II
Hard-disc
- Dobbertin HD20 (72 KB/s data transfer rate)
- IDE hard discs (173 KB/s with IDE8255, 162 KB/s with CPC-IDE or Symbiface)
Joysticks
- Analog Joystick (6128 Plus)
- Digital Joystick 1
- Digital Joystick 2
Light-Pens
- Dk'tronics
- Happy-Computer
- Lindy
Memory 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 KB
Mouses
- 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 (at ROM select 15)
- Symbiface
ROM 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 ROM
Sound cards
- Digiblaster
- Future Player - MP3 Player
Trackballs
Utilities
There exist tools like copy, format, verify or directory refreshing. Multiple files can be copied between different physical media in one go.
A small machine monitor is also provided. This monitor provides features like CPU register editing, I/O ports, memory editing and display and manipulation of the ASIC contents (6128 Plus). 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 is designed as an OS with fast routines and support for nearly all CPC expansions. It has specialised file handling and memory management capabilities 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. At this point, the user can listen to MP3 files, work with graphic, use C programs, watch movies & demos and play games.