Changes
FutureOS
,/* File system */
== Introduction ==
'''FutureOS''' is an revolutionary operating system for the Amstrad [[CPC6128|CPC6128]], [[Plus|6128plus]], [[C-ONE|C-One]] and [[CPC TREX|T-Rex1CPC TREX]]. The version for the CPCPlus 6128plus supports some of its special features. The CPC464, CPC664 and [[KC Compact]] 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. Its The development of FutureOS and its applications continues from 1989 up to now (20082023). Therefore FutureOS allows was already sold during the user to control commercial era of the computer with with an icon section CPC6128 and a file section; it can deal with files up to 4 MB big in one piece6128plus computers. It has a dynamic memory management systemLatest OS release took place at October 19th, which divides RAM into 16 KB blocks2023. Further it supports a variety of hardware expansions. FutureOS is delivered together with basic utilities in the same ROMsPlanned next release: 2025.
The OS itself has roughly 70.000 lines of code, the source code is about 808 KB in size. === How to start FutureOS ===The RSX command '''|OS''' will start FutureOS. You get directly into the Turbo Desk, there you can tag a drive and start an application f.e. (see Desktop). 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. == Requirements ==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 (Flash-)ROM or [[Dobbertin EPROM 224|EPROM]] (in four 16 KB blocks). The support of the M4 SD card needs a fifth ROM of 16 KB though. The OS allows jumps between the ROMs with the help of a little common area. Therefore the numbers of the four (five) 16 KB ROMs are hardcoded and the jumps are very quick. But never mind, adapting ROM number is done by the installation software anyway. Applications like ROManager do also set all that ROM numbers automatically right. Further parts of the OS can be loaded from media on demand if needed. Examples are the multitasking manager [[Caruh]] and the UI/menu framework CBM. '''FutureOS''' uses 2 KB (&B800...&BFFF) of the first 64 KB; the rest of 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 and functions to access and manage 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 at all (neither BASIC, DOS, nor firmware). The only exception can be the character set of the lower ROM. If you replace the lower ROM by the [[CPC FutureOS lower ROM]] for example, then FutureOS will start directly. In this case you can use your own set of characters, just put it between &3800 and &3FFF in the lower ROM. There is a Cartridge version of '''FutureOS''' which supports some 6128plus 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 == The Graphic User Interface (GUI) of FutureOS presents the user with three sections: * the icon section (upper half of screen)* the file window (lower half of screen) * and the message base (the two bottom lines of the screen) The GUI appears directly after starting FutureOS, but can also be used by applications. The user can browse through directories of discs and hard-disc partitions. The text window provides space to display one directory page, this is 64 different file names (equals one full directory of a Data, System or IBM formatted disc). Using the keys SHIFT and CONTROL you can browse page by page through the directories of devices. A graphical mouse pointer is used to select devices, functions or files; this pointer can be controlled with nearly all of the pointer based HID devices (joystick, mouse, trackball, light-pen, Grafpad II, analogue joystick etc.) available for the CPC. In addition functions provided by the GUI can be activated using hotkeys. Type "d" for example to read and display the directory of a drive. Applications can call the GUI of the OS; and the user returns to the application using the OK icon. The icons are fixed, therefore the layout remains stable throughout its use and on every CPC using FutureOS. In SPARtan mode the GUI only displays icons which can be used directly. Unused icons will be hidden. In this mode the GUI is more easy to use and you see a bigger part of the wallpaper (if loaded). === Desktop functions === Watch pictures or movies. View text-files on-screen (scroll up and down) or print them on your printer. When viewing a picture you can adjust MODE and screen format using the cursor keys. 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 can also be examined. FutureOS uses expanded but compatible file-headers, that allow a file to be up to 16 MB in length. The file-header can additionally specify the target RAM of a file. Further it can contain a file icon or a short file description. One or more files can be LOADed, SAVEd, RENamed, ERAsed, COPYd or PRINTed on printer. Previously used files can be retagged for a second usage, or all files can be untagged. The I(nformation) icon provides any kind of help (if a help system is installed). Further there is the [[FutureOS Monitor]], which provides access to RAM, ROM, Z80 registes, I/O ports and allows the testing of routines. === Hot keys ===Hot keys can be used every time while working in the Desktop. To activate or deactivate a device (drive, hard disc partition f.e.) press Space first, then the corresponding letter from A to M. A (retag All previously used files), B (jump over next file name without tagging), C (Copy discs), D (display Directory), E (Erase files or format discs), F (Filecopy), G (Go to function below mouse arrow or tag a file name), H (show IDE Hard-disc), I (get Information), J (Jump to first file name), L (Load file), M (enter Machine Monitor), N (reName file or disc), P (Print DIR or file), Q (Quit OS session or start new), S (Save file), U (Untag all files), V (View pictures of text), W (set Alarm time - Wecker), X (eXecute application), Y (edit date), Z (edit time). === SPARtan mode ===[[Image:SPARtan 1.png|thumb|right]] 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.When the Spartan mode is off, all icons will be shown all the time.The Spartan mode can be activated by setting a bit in the configuration bytes, either by hand of by using the ''''Konfig OS'''' / ''''Config OS'''' utility (see system application disc). === Auto-DIR mode ===If the Auto-DIR option is switched on you just click on an drive / partition icon to read, sort and show its DIRectory. Furthermore in this mode some 'AI' is activated f.e. when you click at the Copy icon and no files are tagged the Desktop will directly jump into Disc-copy mode instead the File-copy mode.If the Auto-DIR is off, then you need to do more things 'by hand', but you also have a bit more control over the system.The Auto-DIR mode can be activated by setting a bit in the configuration bytes. This is done by using the ''''Konfig OS'''' / ''''Config OS'''' utility (see system applications). === Wallpaper ===Like for most OS the background of the Desktop can be adapted. This is actually quite easy for FutureOS. Just use the application "-LoadHGB.64K" (English) / "-LadeHGB.64K" (German). HGB stands for "HinterGrundBild" and is German for Wallpaper. There are discs and ROMs full of wallpapers. If you want to create your own wallpapers then you'll need a MODE 2 screen with 512 x 256 pixel. You can even use an application inside [[JavaCPC]] for this. You also can load a wallpaper by hand: Place such a 16 KB (headerless) screen in one of the E-RAMs and set the right system variable of the OS (see file #OS-VAR.ENG). Here are some Wallpapers: http://futureos.cpc-live.com/files/Wallpaper_HGBs_Deu-Eng.zip Or take a direct look at some [[Wallpaper|Wallpapers]] == FutureOS hardware monitor ==The [[FutureOS Monitor]] is a small built in machine monitor of the [[FutureOS]] operating system. It contains basic functions to access (expansion) memory and the Porting system to comfortably access all the CPCs I/O ports. When using FutureOS for the CPC Plus you can also access all memory mapped I/O (hardware sprites, DMA-sound, soft scrolling etc.). === Features ===* Dump RAM, ROM, expansion RAM or memory mapped I/O (CPC Plus)* Edit RAM, expansion RAM or memory mapped I/O (CPC Plus)* Access all I/O ports of the CPC and external hardware* Edit Z80 registers (previously to calling an machine program). This includes the first and second register set, both index registers, the stack pointer, R and I* Configure RAM, ROM, I/O for other functions* Move block of memory, ROM, RAM, expansion RAM* Initialize block of memory with an 8 or 16 bit value, RAM, expansion RAM* Call a machine program or OS function* Exit, brings you back to the Desktop === Images === <gallery>caption="Some preview images of the game">Image:OS-Mon_1.pngImage:OS-Mon_2.pngImage:OS-Mon_3.png</gallery>
== User Interface CBM - the UI for Applications ==[[Image:CBM.png|thumb|right]]
The user interface "'''C'''ommand '''B'''ar '''M'''enu" (UI[[CBM|CBM]]) is a partially resident part of FutureOS presents the user with three fixed sections: an icon section , which can be easily linked into applications. * It's object oriented (upper half of screen'''OO''')user interface consists of several flexible windows, a file-name display pull down menus and selection section file selectors.* In addition hot keys can be used. * Using [[CBM|CBM]] as the standard (lower half of screenG/T) UI for FutureOS programs helps making them looking similar and a message line (bottom). The user can browse through directories of discs and hard-disc partitionsusable in an intuitive way. * A cursor arrow part of the CBM is used to select deviceslocated in the FutureOS ROMs, functions or files; this cursor arrow the flexible part can be controlled with a joystick, mouse, trackball, light-pen or individually adapted to its target applications and will be integrated in the Grafpad IIapplication itself.
[[Image:Caruh.png|thumb|192px|Example of Task Manager Caruh]]== Caruh - the Task Manager for Applications can call ==[[Caruh]] is the UI as a subroutine (task manager for the OK icon can be used to return to calling cooperative preemptive multitasking under FutureOS. It's available as RAM application(and planned for lower ROM - which offers limited memory protection). The icons are fixed, so the layout remains stable throughout its use.
== File system ==
[[Image:HERO-HED.JPG|thumb|192px|Example of FutureOS file header]]
The file system of FutureOS can handle multiple simultaneous floppy disc drives and hard disc partitions. Also SD cards are supported up to 32 GB. After the selection of a device the devices FutureOS reads and buffers the directory entries of the mediumdevices. This speeds up the the data transfer significantly. 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), but expanded in many ways. It is not compatible with native [[AMSDOS|AMSDOS]] or [[CP/M|CP/M]] programsFutureOS 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 are can be displayed as AmsDOS small text files or the icon-like file-header of as graphic icons (f. e. a FutureOS programapplication). 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 24bit 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.
*''Plug Disc drives and Playhard discs:'' If a hardware expansion is connected FutureOS supports up to the CPC FutureOS will '''automatically detect''' that expansion, initialise it eight floppy disc drives and make it available up to the userfour hard disc partitions (Dobbertin HD20 hard disc). The architecture of It buffers the OS allows you to add and remove hardware on purpose. The user can switch external hardware on or off directories read from any mass storage device in the configuration bytes (use ConfigOS utility)expansion RAM to speed up drive access.
=== ROM ===* The core OS uses 64 KB ROM*8 bit printer port 6128 Plus By using fixed ROM 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.*8 bit printer port patch FutureOS provides an expansion ROM ([[8255|PIO]]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.
* Applications from an XROM can be automatically launched when FutureOS starts up. F.e. you can have your favorite wallpaper when starting FutureOS. The tools to setup autostart are on the XROM disc.
== OS supported Hardware ==
==== Printer ports ====
*7 bit [[Printer Port|printer port]] (native)
*[[8bit Printer Ports|8 bit printer port]] 6128plus using Amstrads CRTC solution
*[[Happy Computer 8bit Printer Mod|Happy Computer Mod]] using CAS_WRITE as Bit 7.
==== Drives ====
*3" A, B, C and D drives (C, D need hardware patch)
*3.5" and 5.25" drive
*Atari ST 80 Track DS double-sided B-drive *[[Dobbertin|Dobbertin]] D-DOS Double drive. Up to four drives 80 track, DS double-sided. *[[Dobbertin|Dobbertin X]] [[XD-driveDOS]] X-drive 80 tracks, DS *[[Vortex ComputersystemeF1|Vortex F1disc drives FI-D]] *Vortex , F1-S *Vortex F1-X *Vortex , M1-D *Vortex , M1-S ]]. Own FDC, up to four drives 80 track, double-sided.*[[F1|Vortex disc drives F1-X, M1-X]]. Up to 80 track, double-sided.and ...*[[HxC Floppy Emulator]] (On message "Disc is write protected" put a HFE in HxC or adjust its configuration)
==== Mass storage / Hard-discs ====*[[CPC BoosterDobbertin Harddisc|CPC Booster(+)Dobbertin HD20]] *HD64180 Coprocessor card (72 KB/s data transfer rate, four partitions of 5160 KB)*[[SYMBiFACE II|SYMBiFACE IIM4 Board]](135 KB/s data transfer rate, SD card supported)
==== Memory expansions ====* 4 MB expansion from Zaxon*[[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*[[D-ROM]]*[[Dk'Graphic Tablet'tronics memory expansion|Dk'tronics]] 64-512 KB and compatibles *[[Dobbertin Memory Expansion|Dobbertin]]*[[FlashGordon]]*[[Inicron RAM-Box|Inicron]]*[[Inicron ROM-RAM-Box]]*[[M4 Board]]*[[MegaFlash]]*[[RAM7 2MB memory expansion|RAM7' s RAM expansion]] (up to 2 MB) *[[RAM BOX]]*[[SYMBiFACE II|SYMBiFACE II]]*[[X-MEM]]*[[Y-MEM]]*[[Z-MEM]]
==== Sound and Music ====*[[Dobbertin Harddisc|Dobbertin HD20Amstrad SSA-1 Speech Synthesizer]] (72 KB/s data transfer rate) *IDE hard discs (173 KB/s with [[IDE8255CTC-AY SDK main fr|IDE8255CTC-AY]], 162 KB/s with aka [[CPC-IDE|CPC-IDEPlayCity]] or *[[SYMBiFACE II|SYMBiFACE IIDigiblaster]]*[[Dk'tronics Speech Synthesizer]]*[[FuturePlayer]] for MP3 samples up to 128 kbps (max. 4 MB in size) - IDE ROM needed*[[LambdaSpeak]] (the MP3 module is fully supported)*[[Soundplayer]]
==== Networking ====*[[Amstrad Serial Interface]]*[[CPC Booster]]+ and TotO'''Joysticks<br>''' s MiniBooster*[[Schneider RS232 Interface]]*[[USIfAC]]*[[Virtual Net 96]]There is limited support at the moment
==== Mice ====*[[Dk'tronics LightpenAlbireo|Dk'tronicsAlbireo Mouse]] *Happy[[Atari-Computer ST mouse adapter|Atari ST mouse adapter]] ([[CPC Magazin|Schneider Magazin]])*Lindy[[AMX Mouse|AMX Mouse]], [[PS2Mouse|AMX PS/2 Mouse Adapter]]*[[CPC-Mousepack 2.0|CPC-Mousepack]] (Reisware)*[[GEOS mouse|GEOS mouse]] ([[Commodore 64]] device)*[[Imperium Solo]]*[[MultiPlay]] one or both mouses (ACME)*[[SYMBiFACE II:PS/2 mouse|PS/2 mouse]] of [[SYMBiFACE II]]*[[USB mouse]] of [[SYMBiFACE III]]*[[Dk'tronics Mouse Interface]] limited
==== Lightpens ====*[[Dk'tronics Lightpen|Dk''Memory expansions<br>''' tronics lightpen]]*[[Happy Computer Light Pen]] (DIY from German magazine)*[[Lindy Light Pen]]
== Utilities Developing for FutureOS ==
== Applications / Demos / = Games ===*[[Burnin Wheels]] (Soft scrolling car racing game) *[[Cyber Huhn|Cyber Chicken]] (3D space game)*[[Gerelakos|Gerelakos]] ([[RPG]] under construction) *[[H.E.R.O.]] by [[Flynn]]*[[Return of the Sisters|Return of the Sisters]] (a Giana Sisters Clone) WIP name "A tribute to the Sisters..."
=== Applications ===*Captain Future demo [[Caruh]] (partial ROM resident OS expansion: Multi-Tasking Manager) *[[CBM|CBM]] (pull down menu librarypartial ROM resident OS expansion: Common Application (G)UI) *Darth Vader demo [[-CntrlPanel]] (control panel)
*[[FilmeMacher|FilmeMacher]] (movie player)
*[[FIOLIB|FIOLIB]] (C library)
*[[Flash ROManager|Flash ROManager]] (management of Jareks Flash ROM expansion)
*[[GMSK|GMSK]] (sprite converter)
*[[GSED|GSED]] (Graphic Playground Editor for 2D / 3D games) *Hero Kane (third party gamesprite grabber) *Meg Ryan sample demo HD20 BackUp / Compare / Restore Tool for the Dobbertin HD20 hard disc (20 MB) - also using M4 SD card!*HD20 Emulation Image Selector (Tool for the SF3 Dobbertin HD20 hard disc emulation)*[[Return MegaFlashROManager]] (management of the Sisters|Return of the SistersMegaFlash Pseudo-ROMs for FutureOS and BASIC)*[[MMcR Format]] (a Giana Sisters CloneUltrafast formatting tool for batches of discs) *[[ROManager|ROManager]] (management of the [[SYMBiFACE II|Symbiface]] a variety of Flash- and Pseudo-ROMsROM cards)
== Conclusion ==
FutureOS is the longest running projects for the CPC6128 / 6128plus. It's development startet around 1989 and in 2023 we saw a new release.It's designed as an OS with fast routines system calls and support for nearly all CPC expansions. It has specialised file handling and memory management capabilities that support programs up to 4 MBand files up to 16 MB. SD cards are supported up to 32 GB. In addition FutureOS already contains lots of useful tools and utilities. The idea is that development of professional software, 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 do all this, like listen to MP3 files, work with graphic, use and create C programs, watch movies & , demos and play games(see weblinks). <br>
== Web links ==
=== General ===*[http://www.FutureOS.de FutureOS homepage.de] *[http://groupskoaks.yahooamstrad.free.fr/amstrad/documents/article_futureos.html FutureOS, le supersonique du CPC] === Discussion Forum ===*[http://www.cpcwiki.eu/forum/programming/futureos-corner/ Discussions in English]*[http://cpc-live.com/groupforum/index.php/board,5.0.html Diskussionen auf Deutsch] === Youtube Videos ===There is a special youtube channel for FutureOS, it provides different playlists for different topics related to this comprehensive OS. Please have a look here:*[https://www.youtube.com/user/realTFM/ playlists FutureOS Downloads & Mailing listPlaylists]
[[Category:Operating_System4 MB RAM Software Support]] [[Category:Cartridges]] [[Category:CPC GUI]] [[Category:CPC_Plus]] [[Category:Digiblaster]][[Category:Expansion ROM]] [[Category:Extended RAM Software]] [[Category:FutureOS]] [[Category:Operating_System]]