Changes

FutureOS

18,409 bytes added, 8 February
/* 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.
== Requirements ==On the Amstrad CPC many efforts to build a GUI were made, few to build an OS. 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 during the early commercial era. 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 better? So the FutureOS-Project was born and FutureOS system 0.1 was released during the late commercial era of the CPC6128. With the release of the 6128plus a special version of the OS was released for this computer.
The core of FutureOS allows the OS needs 64 KB ROMuser to control the computer with a broad variety of HIDs. Compatible products are EPROM-cardsThe surface provides an icon section, the [[Inicron ROMa file section and a status section. The OS can deal with files up 16 MB (24 bit file-length) and it can load/save files up to 4 MB in one piece. It has a dynamic memory management system, which divides RAMusually into 16 KB blocks -Box|ROM-RAM-BOX]], [[SYMBiFACE II|SYMBiFACE II]], [[Ramcard 128|RAMcard]], Jareks [[CPC.Flash|Flash-ROM]] or similar productsin smaller pieces. If you don't own such Further it supports a card, you can take a look at '''broad variety of hardware expansions. FutureOS''' by using is delivered together with a compatible CPC Emulator ([[WinCPC|WinCPC]], [[CaPriCe|Caprice]], [[WinApe|WinApe]], [[!CPCemu|CPCEmu]])variety of utilities in the same four ROMs. Additional expansion ROMs can be added.
The core of the OS itself is executed directly in (Pseudo-)ROM or [[Dobbertin EPROM 224|EPROM]] where it is divided in four 16 KB blocks. It jumps between the ROMs FutureOS can be used with the help of a little common area. Therefore the numbers of the four 16 KB ROMs are hardcodedGerman, English, French and Spanish language interfaces.
'''FutureOS''' uses 2 KB (&B800The OS itself has roughly 70...&BFFF) 000 lines of code, the first 64 source code is about 808 KB, all other RAM can be used for applications. Additional RAM can be occupied for DIRectory buffering. Furthermore the OS uses memory management, file-handling and Low/Mid/High-level routines to access the hardwarein size.
From AmsDOS/Basic you can === How to start '''FutureOS===The RSX command ''' with the RSX commands |OS or |FDESK. If you use |FDESK you can leave '''will start FutureOS''' and . You get back to BASIC where directly into the Turbo Desk, there you have stopped before - the first 48 KB can tag a drive and start an application f.e. (not the screensee Desktop) have been preserved.
If you want to use FutureOS temporary then use the RSX command '''FutureOS|FDESK''' only runs well on a [[CPC6128|CPC6128]] or 6128plus (not CPC464 or 664), because they support the this will save your first 48 KB RAM configuration &C3 (which is essential for the mouse arrow of the GUI)and you can leave FutureOS later and return to previous work.
== GUI 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 Desktop core of FutureOS the OS itself is divided executed directly in two sections. First an icon(Flash-section, where you can choose your functions)ROM or [[Dobbertin EPROM 224|EPROM]] (in four 16 KB blocks). Second there is The support of the M4 SD card needs a section belowfifth 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, where you can browse through directories 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 discs the OS can be loaded from media on demand if needed. Examples are the multitasking manager [[Caruh]] and hard-disc partitionsthe UI/menu framework CBM.
The Desktop can be controlled using a joystick, mouse, trackball or light-pen'''FutureOS''' uses 2 KB (&B800. There is no command line. The user interface .&BFFF) of the first 64 KB; the remaining RAM is graphicalavailable to applications. Additional RAM can be reserved for DIRectory buffering. Furthermore the OS uses memory management (up to 4 MB), you click on icons file-handling and specialized Low/Mid/High-level routines and files functions to select them for subsequent actionsaccess and manage the hardware.
Applications '''FutureOS''' can call be launched from AmsDOS with the GUI as a subroutineRSX commands |OS or |FDESK. The icons are fixed, so If you will always work with use |FDESK you can leave '''FutureOS''' and get back to BASIC where you have stopped before - the first 48 KB (not the same desktopscreen) have been preserved.
== '''FutureOS''' only runs well on a [[Image:CBMCPC6128|CPC6128]] or 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).pngFutureOS is not compatible with [[Firmware]] or [[CP/M|thumb|rightCP/M]]CBM programs, but supports their data structure. It needs a [[Class]] 2 ==CPC, it runs best with a [[Class]] 4 CPC or higher.
Aside the ROM resident GUI there is another surface for '''FutureOS, ''' does not require the command bar menu [[CBM|CBM]]native CPC-OS at all (neither BASIC, DOS, nor firmware). It consists The only exception can be the character set of several flexible pull down menus and file selectorsthe lower ROM. You can easily use If you replace the lower ROM by the [[CBM|CBMCPC FutureOS lower ROM]] for your own programsexample, then FutureOS will start directly. Since all programs that In this case you can useyour own set of characters, just put it between  [[CBM|CBM]]3800 and  look similar its also easy to use different programs 3FFF in an intuitive waythe lower ROM.
== File system ==There is a Cartridge version of '''FutureOS''' which supports some 6128plus features.
The file system of FutureOS works at the same time == Limitations ==For CPCs with different floppy disc drives and hard disc partitions128 KB there may be some limitations. After the selection of The command |FDESK uses 48 KB E-RAM, a wallpaper uses 16 KB E-RAM. So in this case for example the devices FutureOS reads and buffers the DIRectories of all devices that should E-RAM would be usedup and this will inhibit some OS functionality (f.e. Integrated utilities like the multi file copy data). A RAM expansion is strongly suggested. In case the OS requires more RAM you can copy files from different physical sources always switch the wallpaper off to different physical sources in one rungain 16 KB and use the |OS command to start FutureOS.
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. FutureOS and compatible applications can be downloaded at: [http://www.FutureOS.de www.FutureOS.de]. == Graphic User Interface ==
Filenames can use all 256 different characters and user numbers from 0 to 254 The Graphic User Interface (except for &E5, which marks a deleted fileGUI). Different to Amsdos, a file that is erased under of FutureOS will not be shifted to presents the user &E5, but it will be physically removed from with three sections: * the directory. Files can be viewed on-icon section (upper half of 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 window (lower half of columns screen) * and lines of the window message base (the text is displayed in. File-headers are displayed as AmsDOS file or the icon-like file-header two bottom lines 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. screen)
== Hardware ==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.
The OS supports many of the hardware available for the CPCA graphical mouse pointer is used to select devices, including real-time-clocks, the Vortex disc drives, several mice &ampfunctions or files; trackballs and this pointer can be controlled with nearly all of the Dobbertin HD20 hard disc. Also the [[SYMBiFACE II|SYMBiFACE II]] pointer based HID devices (RTC and PS/2 joystick, mouse, RAMtrackball, 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" Blight-drivespen, Vortex F1-D-drives, hard-discs, real-time-clocksGrafpad II, serial interfaces analogue joystick 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 ) available for the CPC has clearly defined hardware expansions compared to a PC.
*''Disc drives and hard discs:'' FutureOS supports up In addition functions provided by the GUI can be activated using hotkeys. Type "d" for example to eight drives read and up to four hard-disc partitions. It buffers the directories read from any mass storage device in display the expansion RAMdirectory of a drive.
*''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 Applications can call the GUI of the OS allows you ; and the user returns to add and remove hardware on purposethe application using the OK icon. An example: You add a trackballThe icons are fixed, you therefore the layout remains stable throughout its 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)every CPC using FutureOS.
== Supported Hardware ==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).
'''8 bit printer ports<br>'''=== Desktop functions ===
*8 bit printer port 6128 Plus *8 bit printer port patch Watch pictures or movies. View text-files on-screen ([[8255|PIO]]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.
'''Drives<br>'''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.
*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|Dobbertin]] D-DOS Double drive. Up to four drives 80 trackOne or more files can be LOADed, DS *[[Dobbertin|Dobbertin X-drive]] 80 tracksSAVEd, DS *[[Vortex Computersysteme|Vortex F1-D]] *Vortex F1-S *Vortex F1-X *Vortex M1-D *Vortex M1-S *Vortex M1-XRENamed, ERAsed, COPYd or PRINTed on printer.
'''Expansion cards<br>'''Previously used files can be retagged for a second usage, or all files can be untagged.
*[[CPC Booster|CPC BoosterThe I(+nformation)]]&nbsp; *HD64180 Coprocessor card *[[SYMBiFACE II|Symbiface II]]icon provides any kind of help (if a help system is installed).
'''Floppy discsFurther there is the [[FutureOS Monitor]],&nbsp;formats:<br>'''which provides access to RAM, ROM, Z80 registes, I/O ports and allows the testing of routines.
*Data === Hot keys ===*IBM *System *Vendor *VortexHot 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.
'''Graphic Tablet''' 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).
*Hegetron === SPARtan mode ===[[Grafpad IIImage:SPARtan 1.png|Grafpad&nbsp;IIthumb|right]]
The '''Hard-disc<br>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).
*[[Dobbertin Harddisc|Dobbertin HD20]] (72 KB/s data transfer rate) === Auto-DIR mode ===*IDE hard discs (173 KBIf the Auto-DIR option is switched on you just click on an drive /s with [[IDE8255|IDE8255]]partition icon to read, 162 KB/s with [[CPCsort 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-IDE|CPCcopy mode instead the File-IDE]] or [[SYMBiFACE II|Symbiface]]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).
'''Joysticks<br>'''=== 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.
*Analog Joystick (6128 Plus) *Digital Joystick 1 *Digital Joystick If you want to create your own wallpapers then you'll need a MODE 2screen with 512 x 256 pixel. You can even use an application inside [[JavaCPC]] for this.
'''LightYou also can load a wallpaper by hand: Place such a 16 KB (headerless) screen in one of the E-Pens<br>'''RAMs and set the right system variable of the OS (see file #OS-VAR.ENG). Here are some Wallpapers:
*[[Dk'tronics Lightpen|Dk'tronics]] *Happyhttp://futureos.cpc-Computer *Lindylive.com/files/Wallpaper_HGBs_Deu-Eng.zip
'''Memory expansions<br>'''Or take a direct look at some [[Wallpaper|Wallpapers]]
*[[Dk'tronics memory expansion|Dk'tronics]] 64 KB, 256 KB and 512 KB == FutureOS hardware monitor ==*The [[Dobbertin Memory Expansion|DobbertinFutureOS Monitor]] 64 KB - 512 KB *is a small built in machine monitor of the [[Inicron RAM-Box|InicronFutureOS]] 256 KB operating system. It contains basic functions to access (expansion) memory and 512 KB *[[CPC4MB|Jareks 4 MB RAM expansion]] Up the Porting system to 4 MB *[[RAM7 2Mb comfortably access all the CPCs I/O ports. When using FutureOS for the CPC Plus you can also access all memory expansion|RAM7's RAM expansion]] 2mapped I/O (hardware sprites, DMA-8 MB *[[SYMBiFACE II|Symbiface]] 512 KBsound, soft scrolling etc.).
'''Mouses''' === 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
*[[AMX Mouse|AMX_Mouse]] *[[Atari-ST mouse adapter|Atari ST]] (Schneider Magazin) *CPC-Mousepack (Reisware) *CPC-Mousepack 2.0 (Reisware) *Geos (c64) *[[SYMBiFACE II:PS/2 mouse|PS/2 mouse]] (Symbiface)=== Images ===
'''Real<gallery>caption="Some preview images of the game">Image:OS-TimeMon_1.pngImage:OS-Clocks''' Mon_2.pngImage:OS-Mon_3.png</gallery>
*Dobbertin Smart Watch (at ROM select 15) == CBM - the UI for Applications ==*[[SYMBiFACE IIImage:Realtime clockCBM.png|Symbifacethumb|right]]
The "'''ROM expansions<br>C'''ommand '''B'''ar '''M'''enu" ([[CBM|CBM]]) is a partially resident part of FutureOS, which can be easily linked into applications. * It's object oriented ('''OO''') user interface consists of several flexible windows, pull down menus and file selectors.* In addition hot keys can be used. * Using [[CBM|CBM]] as the standard (G/T)UI for FutureOS programs helps making them looking similar and usable in an intuitive way. * A part of the CBM is located in the FutureOS ROMs, the flexible part can be individually adapted to its target applications and will be integrated in the application itself.
*Amstrad ROM expansion *[[Dobbertin ROM BoardImage:Caruh.png|Dobbertin EPROM cardthumb|192px|Example of Task Manager Caruh]] *[[Inicron ROM== Caruh -RAM-Box|Inicron ROM-RAM-BOX]] the Task Manager for Applications ==*[[Flash ROManager|Jareks 2,5 MB / 4 MB Flash ROMCaruh]] is the task manager for the cooperative preemptive multitasking under FutureOS. *[[Ramcard 128|RAM7It's RAMCard]] *Super Power ROM *[[SYMBiFACE II|Symbiface]] Pseudo available as RAM application (and planned for lower ROM- which offers limited memory protection).
'''Sound cards''' Features of Tasks:* Up to 255 different tasks* Every task has its own RAM and stack* Tasks have a priority* Tasks can use a part of the main screen (background task) or an own complete screen (foreground task)* Tasks use multiple screens, which can be swapped. No chaotic window structure.* Tasks can be dynamically added and/or deleted* Tasks can be saved and continued later or on other computers* Tasks can use additional OS functions* The regular Turbo Desktop of FutureOS can be used too* Aside of screen MODEs 0-3 different screen formats are usable (80x25, 68x30, 64x32)
*[[Digiblaster|Digiblaster]] == File system ==*[[Future PlayerImage:HERO-HED.JPG|Future Playerthumb|192px|Example of FutureOS file header]] - MP3 Player
'''Trackballs''' 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 the devices FutureOS reads and buffers the directory entries of the devices. 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.
*[[AtariThe file system is compatible with the CPCs native data-ST mouse adapter|Atari ST]] , file- and format structures (f. e. File header, Disc formats), but expanded in many ways. FutureOS supports the Data, IBM, System, Vendor and Vortex (Schneider Magazin704 KB) *[[Marconi|Marconi]]disc formats.
== Utilities ==Filenames can use all 256 different characters and user areas from 0 to 254 (except for &amp;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 application). 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.
Tools like copyFutureOS includes the fastest FDC-based disc- and file-reading and writing routines for the CPC. This is possible by ignoring the interleave factor, formatreading 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, verify or refresh a disc existthe head of the floppy must not step back to look for the next block. You The track step rate is increased and can be adjusted for every drive. It's even faster than optimized copy files from different discs and partitions to other discs and partitions at onceprograms like Crowns' [[Crime|Crime]].
From the Desktop you can call a little machine monitor. This monitor provides features like editing == Implementation 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. Hardware ==
== Developing The OS supports many of the hardware available for the CPC. One of the ambitions of FutureOS ==is to support all hardware available. 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 monolithic architecture where all drivers are implemented in a hardcoded way.
You can developp very freely, even the RST vectors are free usable*''Disc drives and hard discs:'' FutureOS supports up to eight floppy disc drives and up to four hard disc partitions (Dobbertin HD20 hard disc). Also It buffers the second register set of directories read from any mass storage device in the Z80 is freely usableexpansion RAM to speed up drive access.
*''Z80 AssemblerPlug and Play:'' You can use an assembler for AmsDOS or for CP/M. Switching between AmsDOS and FutureOS If a hardware expansion is fast connected to the CPC FutureOS will automatically detect that expansion, initialise it and using |FDESK allows make it available to come back to AmsDOS with user and applications. The architecture of the first 48 KB OS allows you to add and remove hardware on purpose (hot plug and play). You can switch external hardware on or RAM remaining untouchedoff in the configuration bytes (use ConfigOS utility).
== Memory Management ===== RAM ===* Unlike other CPC-OS the FutureOS uses only small amounts of the memory of the CPC since it is located and executed in ROM.* When using the Desktop the OS uses the RAM between &A000 and &BFFF (8 KB).* In case an application is running: The RAM that is used by the OS can be reduced to the region between &B800 and &BFFF, in this case only 2 KB are occupied by system variables of the OS.* Depending on the amount of active drives and HD partitions additional expansion RAM blocks will be occupied for directory buffering, but there is no reduction in free main memory (first 64 KB). After loading data this buffers can be freed again of course.* FutureOS provides an expansion RAM manager containing all needed OS functions to check for, order, allocate, free and manage expansion RAM up to 4 MB.* Also files of that length (4 MB) can be loaded and saved at once. This depends on the amount of connected E-RAM of course. === ROM ===* The core OS uses 64 KB ROM* 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.* 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 a few XROMs for FutureOS:** ROManager 2.4.3 - to manage any kind of (Flash-)ROM expansion and the M4** System-Tools (English or German) - Control Panel, Configuration, System Information, and and and** Wallpapers I, II and III - enjoy a pretty background picture** FutureTex - text editor, character designer and keyboard manage** XROM for the M4 SD card mass storage (under development, request beta version from TFM) * 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 double-sided B-drive *[[Dobbertin|Dobbertin]] D-DOS Double drive. Up to four drives 80 track, double-sided. *[[Dobbertin|Dobbertin]] [[XD-DOS]] X-drive 80 tracks, DS*[[F1|Vortex disc drives FI-D, F1-S, M1-D, 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) ==== Expansion cards ====*[[Albireo]] (partial)*[[AMRAM2]] (combined EPROM and S-RAM card)*[[C4CPC]] 6128 Plus version*[[CPC Booster]](+) and MiniBooster*[[M4 Board]] (RTC, ROM management)*[[SYMBiFACE II|SYMBiFACE II]] (partial)*[[SYMBiFACE III|SYMBiFACE III]] (partial)*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 ==== Mass storage / Hard-discs ====*[[Dobbertin Harddisc|Dobbertin HD20]] (72 KB/s data transfer rate, four partitions of 5160 KB)*[[M4 Board]] (135 KB/s data transfer rate, SD card supported) ===== Hard-discs discontinued =====*[[CPC-IDE]], [[SYMBiFACE II]] and [[X-MASS]] IDE support, but only low-level, FutureOS IDE-ROM needed*[[IDE8255]] IDE support, but only low-level, FutureOS IDE-ROM needed ==== Joysticks ====*[[Analog Joysticks|Analog Joystick]] (6128 Plus) *[[Digital Joysticks]] 1 and 2 ==== 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'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]]&nbsp;(up to 2 MB) *[[RAM BOX]]*[[SYMBiFACE II|SYMBiFACE II]]*[[X-MEM]]*[[Y-MEM]]*[[Z-MEM]] CPC464 and CPC664 users can run FutureOS when using this RAM expansion:http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/open-source-diy-512kb-ram-expansion/msg163566/#msg163566 ==== Real-Time-Clocks ====*[[Dobbertin Smart Watch]] and the version from dxs*[[LambdaSpeak III]] and [[LambdaSpeak FS]]*[[M4 Board]]*[https://pulkomandy.github.io/shinra.github.io/nova.html Nova]*[[SYMBiFACE II:Realtime clock|SYMBiFACE II]]*[[SYMBiFACE III]]*[[Dk'tronics Real Time Clock]] ==== Sound and Music ====*[[Amstrad SSA-1 Speech Synthesizer]]*[[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]] (the MP3 module is fully supported)*[[Soundplayer]] ==== Networking ====*[[Amstrad Serial Interface]]*[[CPC Booster]]+ and TotO's MiniBooster*[[Schneider RS232 Interface]]*[[USIfAC]]*[[Virtual Net 96]]There is limited support at the moment === Additional HIDs (Hot Plug & Play compatible) === 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.  ==== Mice ====*[[Albireo|Albireo Mouse]]*[[Atari-ST mouse adapter|Atari ST mouse adapter]] ([[CPC Magazin|Schneider Magazin]])*[[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'tronics lightpen]]*[[Happy Computer Light Pen]] (DIY from German magazine)*[[Lindy Light Pen]] ==== Graphic Tablets ====*[[Grafpad II|Hegotron Grafpad II]] ==== Trackballs ====*[[Atari-ST mouse adapter|Atari ST trackball adapter]] (Schneider Magazin)*[[Marconi|Marconi trackball]] == ROM-included Utilities == The FutureOS ROMs already include several utilities as an addition to the operating system. Tools like copy (files or discs), format discs (data-, system-, ibm- and Vortex-format), erase files, rename files, type and print files, set alarm time, set time of RTC, verify discs or directory refreshing, display file-header etc. are available without the need to load them from an external medium.  Multiple files can be copied between different physical media and user numbers / directories in one go.  A small machine monitor is also provided. The [[FutureOS Monitor]] provides features like CPU register editing (all!), access to the I/O ports, memory dump and editing, and display and manipulation of the ASIC contents (6128 Plus). Memory blocks can be copied or initialized. It is possible to call (and return from) a routine with defined CPU registers (complete register set) and memory. == OS functions == Only some examples are mentioned.* The String Editor: It allows to enter strings up to 64 KB, different character sets can be used, a range of legal letters can be defined, four keyboard levels (normal, shift, control and shift+control) can be used.  == Developing for FutureOS == You can develop very freely: the RSTs are free for use, you can choose the interrupt mode and access all the hardware. Also the second register set of the Z80 can be completely used by applications - in contrast to all other OS for the CPC. *''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. There is a Z80 library for FutureOS the programmer can use for own applications. *''The Command Bar Menu:'' In addition [[CBM]] can make application development easy and quick. All needed sources are provided and explained. A variety of sample programs exist to show how to use CBM. *''Programming in C for FutureOS:'' With [[FIOLIB|FIOLIB]] - the IO-Lib for FutureOS it 's also possible to use C as a programming language. Beside the usual I/O the FIOLIB provides a lot of valuable functions for management of text, keyboard, files, relative files, screen, colors, graphic and more.
== Applications / Demos / Games ==
The following programs can be downloaded at the FutureOS homepage, see Weblinks below.  === 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..." === Demos ===*[[Captain Future ]] (4 MB movie that uses Jareks 4 MB expansion)*[[Darth Vader]] (stand alone demo )*[[FutureView|FutureView]] (disc mag) *[[Gravitation Zero]]*[[Meg Ryan sample]] demo*[[NGC4650A]]*[[Odiesofts Snow]]*[[Rotating Fractal]] (stand alone demo)*[[Star Trek sample demo]] === Applications ===*[[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)
*Fractal demo *[[FuturePlayer|FuturePlayer]] (MP3 and WAV player) - Ask TFM for MP3 files on discs*[[FutureView|FutureView]] (disc mag) *[[GerelakosFutureTex|GerelakosFutureTex]] (RPG under constructiontext editor)
*[[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 was 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 of 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. Today you At this point, the user can hear do all this, like listen to MP3 soundsfiles, work with graphic, use and create C programs, watch movies &amp; , 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 &amp; 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]]
2,002
edits