Changes
FutureOS
,/* SPARtan mode */
== Introduction ==
'''FutureOS''' is an revolutionary operating system for the Amstrad [[CPC6128|CPC6128]], [[Plus|6128Plus]], [[C-ONE|C-One]] and [[CPC TREX|CPC TREX]]. The version for the CPCPlus supports some of its special features. The CPC464 and CPC664 can run FutureOS with a [http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/open-source-diy-512kb-ram-expansion/msg163566/#msg163566 revaldinho's] 512 KB RAM expansion only.FutureOS is being developed by [[TFM|TFM]] of [[FutureSoft|FutureSoft]] in [[Z80|Z80]] assembler. The development of FutureOS and its applications continues from 1989 up to now (20152018). Latest OS release was August 22, 2018.
On the Amstrad CPC many efforts to build a GUI were made. In other cases they were just extensions to realize some kind of a WIMP environment but weren't true operating systems with their own kernel, memory-management, BIOS, BDOS and so on. Therefore, the CPC's own OS (in combination with AmsDOS) and CP/M (Plus) were the only two known OSes for the series, but the question remained: since most CPCs have 128 KB (most C64 only have 64 KB), a screen-resolution of 640x200 (C64 only has 320x200) and some more advantages, why not have something similar? So the FutureOS-Project was born.
If you want to use FutureOS temporary then use the RSX command '''|FDESK''', this will save your first 48 KB RAM and you can leave FutureOS later and return to previous work.
It runs on 'off the shelf' hardware when using the Cartridge for the 6128 Plus.
The core of the OS needs 64 KB ROM. On the CPC6128 it needs a ROM expansion or similar. Compatible products are EPROM-cards, the [[X-MEM]], [[MegaFlash]], [[Inicron ROM-RAM-Box|ROM-RAM-BOX]], [[SYMBiFACE II|SYMBiFACE II]], [[Ramcard 128|RAMcard]], Jareks [[CPC.Flash|Flash-ROM]], [[MegaROM]] or similar products. If you don't own such a card, you can take a look at '''FutureOS''' by using a compatible CPC Emulator ([[JavaCPC|JavaCPC]], [[WinCPC|WinCPC]], [[CaPriCe|Caprice]], [[WinApe|WinApe]], [[!CPCemu|CPCEmu]], [[Arnold]], [[Sugarbox]]) or others.
The core of the OS itself is executed directly in (Pseudo-)ROM or [[Dobbertin EPROM 224|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 and the jumps are very quick. Applications like ROManager can change all that numbers.
'''FutureOS''' uses 2 KB (&B800...&BFFF) of the first 64 KB; the remaining RAM is available to applications. Additional RAM can be reserved for DIRectory buffering. Furthermore the OS uses memory management (up to 4 MB), file-handling and specialized 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|CPC6128]] or 6128plus 6128 Plus (not CPC464 or 664, except you have a RAM expansion with full RAM mode &C3 support like the one from Revaldhino), because of their support for RAM configuration C3 (essential for the mouse pointer). FutureOS is not compatible with [[Firmware]] or [[CP/M|CP/M]] programs, but supports their data structure. It needs a [[Class]] 2 CPC, it runs best with a [[Class]] 4 CPC or higher.
'''FutureOS''' does not require the native CPC-OS, except its character set. If you replace the lower ROM by the [[CPC FutureOS lower ROM]] for example, then FutureOS will start directly.
There is a Cartridge version of '''FutureOS''' which supports some Plus features.
== Limitations ==
For CPCs with 128 KB there may be some limitations. The command |FDESK uses 48 KB E-RAM, a wallpaper uses 16 KB E-RAM. So in this case for example the E-RAM would be used up and this will inhibit some OS functionality (f.e. copy data). A RAM expansion is strongly suggested.
In case the OS requires more RAM you can always switch the wallpaper off to gain 16 KB and use the |OS command to start FutureOS.
== Graphic User Interface ==
Further there is the [[FutureOS Monitor]], which provides access to RAM, ROM, Z80 registes, I/O ports and allows the testing of routines.
=== Auto-DIR ===
If Auto-DIR is enabled, then it's enough to click at a drive Icon to read its DIRectory. You can select this feature using the 'Config OS' utility, either from disc or Tool-XROM.
=== Hot keys ===
The '''SPARtan''' mode reduces the number of displayed icons to a icon set which can be immediately used. Using the Desktop will be easier and you see more of your wallpaper.
=== Wallpaper ===
The file system is compatible with the CPCs native data-, file- and format structures (f. e. File header, Disc formats), but expanded in many ways. FutureOS supports the Data, IBM, System, Vendor and Vortex (704 KB) disc formats.
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. During this process the directory get sorted. File headers can be displayed as small text files or as graphic icons (f. e. a FutureOS applikationapplication). An AmsDOS file header has 128 bytes of which most are unused. FutureOS makes use of those unused bytes so that files have a length definition of 24 bit (16 MB file length) and can have a physical RAM select. Therefore a file can be defined to be loaded everywhere in the external RAM. Also a [[FutureOS Header|FutureOS file-header ]] can contain a graphical icon, a textual icon or a short description of the file.
FutureOS includes the fastest FDC-based disc- and file-reading and writing routines for the CPC. This is possible by ignoring the interleave factor, reading one physical sector directly after each other to the correct position in memory but also by just starting with the first appearing sector of every new track. In addition the DIRectory is buffered in RAM, the head of the floppy must not step back to look for the next block. The track step rate is increased and can be adjusted for every drive. It's even faster than optimized copy programs like Crowns' [[Crime|Crime]].
=== ROM ===
* The core OS uses 64 KB ROM
* By using fixed ROM number numbers quick jumps can be made from one ROM to another ROM without the need of using RAM. This is also true for additional ROMs which want to use the API in the care ROMs A-D.
* FutureOS provides an expansion ROM (XROM) architecture which allows to add programs as expansion ROMs. For the native OS these ROMs are declared as "extension" and will NOT be initialized.
==== XROMs ====* Currently there are three a few XROMs for FutureOS:** ROManager 2.1419** System-Tools(English or German)** WallpapersI, II and III* The XROMs can be automatically started, f.e. you can have your favorite wallpaper when starting FutureOS. The tools to setup autostart are on the XROM disc.
== OS supported Hardware ==
*7 bit [[Printer Port|printer port]] (native)
*[[8bit Printer Ports|8 bit printer port]] 6128 Plus using Amstrads CRTC solution
*[[Happy Computer 8bit Printer Mod|Happy Computer Mod]] using CAS_WRITE as Bit 7.
*3" A, B, C and D drives (C, D need hardware patch)
*3.5" and 5.25" drive
*[[HxC Floppy Emulator]] (On message "Disc is write protected" put a HFE in HxC or adjust its configuration)
*[[Albireo]] (partial)
*[[AMRAM2]] (combined EPROM and S-RAM card)
*[[C4CPC]] 6128 Plus version
*[[CPC Booster]](+) and MiniBooster
*[[M4Board]] (few functions onlyRTC, ROM management)
*[[SYMBiFACE II|SYMBiFACE II]]
*HD64180 Coprocessor card
*[[EPROM]] cards or EPROM simulator cards like the [[Britannia ROM Board]], [[Dobbertin]] EPROM card, [[Honeysoft ROM Board]], [[Inicron ROM-RAM-Box]], [[KDS Sideways ROM Board]], [[MegaFlash]], [[MegaROM]], [[SuperPower ROM Box]], [[SYMBiFACE II]], SuperROM Plus and others
*[[CPC-IDE]], [[SYMBiFACE II]] and [[X-MASS]] IDE support, but only low-level, FutureOS IDE-ROM needed
*[[Dobbertin Harddisc|Dobbertin HD20]] (72 KB/s data transfer rate)
*[[IDE8255]] IDE support, but only low-level, FutureOS IDE-ROM needed
*[[Analog Joysticks|Analog Joystick]] (6128 Plus)
*[[Digital Joysticks]] 1 and 2
*[[c't 512 KB internal RAM expansion]] (DIY) (c't magazine)
*[[Campursoft ROM Board]] (DIY)*[[CPC4MB|Jareks 4 MB RAM expansion]] provides 4 MB RAM*[[Dk'tronics memory expansion|Dk'tronics]] 64-512 KB and compatibles (*[[Dobbertin Memory Expansion|Dobbertin]], [[Inicron RAM-Box|Inicron]], [[SYMBiFACE II|SYMBiFACE II]], [[RAM BOX]])
*[[FlashGordon]]
*[[Inicron RAM-Box|Inicron]]*[[Inicron ROM-RAM-Box]]*[[M4 Board]]
*[[MegaFlash]]
*[[RAM7 2MB memory expansion|RAM7's RAM expansion]] (up to 2 MB)
*[[Inicron ROM-RAM-BoxBOX]]*[[CPC4MBSYMBiFACE II|Jareks 4 MB RAM expansionSYMBiFACE II]] up to 4 MB
*[[X-MEM]]
*[[Y-MEM]]
*[[Z-MEM]]
*[[SYMBiFACE II:Realtime clock|SYMBiFACE II]]
*[[Dk'tronics Real Time Clock]]
*[[CTC-AY SDK main fr|CTC-AY]] aka [[PlayCity]]
*[[Digiblaster]]
*[[Dk'tronics Speech Synthesizer]]
*[[FuturePlayer]] for MP3 samples up to 128 kbps (max. 4 MB in size)
*[[LambdaSpeak]]
*[[Soundplayer]]
*[[CPC Booster]]+ and TotO's MiniBooster
*[[Virtual Net 96]]
*[[Amstrad / Pace Z80-SIO Serial Interface]]*[[Schneider Z80-STI RS232 Interface]]
There is limited support at the moment
The following pointer-based input devices are supported by FutureOS. Applications can use them by calling the appropriate OS function in OS-ROMs A, C or D.
*[[Atari-ST mouse adapter|Atari ST mouse adapter]] ([[CPC Magazin|Schneider Magazin]])
*[[AMX Mouse|AMX Mouse]], [[PS2Mouse|AMX PS/2 Mouse Adapter]]
*[[Dk'tronics Mouse Interface]]
*[[Dk'tronics Lightpen|Dk'tronics lightpen]]
*[[Happy Computer Light Pen]] (DIY from German magazine)
*[[Lindy Light Pen]]
*[[Grafpad II|Hegotron Grafpad II]]
*[[Atari-ST mouse adapter|Atari ST trackball adapter]] (Schneider Magazin)
*[[Marconi|Marconi trackball]]
*[[Odiesofts Snow]]
*[[Return of the Sisters|Return of the Sisters]] (a Giana Sisters Clone) WIP name "A tribute to the Sisters..."
*[[ROManager|ROManager]] (management of the [[SYMBiFACE II|SYMBiFACE II]] a variety of Flash- and Pseudo-ROMsROM cards)
*[[Rotating Fractal]] (stand alone demo)
*[[Star Trek sample demo]]
== Web links ==
=== General ===
*[http://www.FutureOS.de FutureOS.de]
*[http://groups.yahoo.com/group/FutureOS/ FutureOS Downloads & Mailing list]
*[http://koaks.amstrad.free.fr/amstrad/documents/article_futureos.html FutureOS, le supersonique du CPC]
*[http://www.phenixinformatique.com/modules/smartsection/item.php?itemid=15 Interview de TFM]
=== Discussion Forum ===
*[http://www.cpcwiki.eu/forum/programming/futureos-corner/ Discussions in English]
*[http://cpc-live.com/forum/index.php/board,5.0.html Diskussionen auf Deutsch]
=== Youtube Videos ===
[[Category:CPC GUI]]
[[Category:CPC_Plus]]
[[Category:Digiblaster]]
[[Category:Expansion ROM]]
[[Category:Extended RAM Software]]
[[Category:FutureOS]]
[[Category:Operating_System]]