== Introduction ==
'''FutureOS''' is a an application starter, disuised disused as OS for the Amstrad CPC6128 and 6128plus developed by [[TFM]]. Its development continues from 1990 up to now. The applications of FutureOS can be up to 512 KB in one piece. FutureOS has a memory management system, which divides RAM into 16 KB blocks. Further the file-system works with 24 Bit, files can be up to 16 MB long. FutureOS provides some standard utilities (like copy or format a disc; copy / rename / erase / type / print a file etc.). Further applications are delivered for disc or hard-disc. FutureOS is written in machine code. == GUI ==The Desktop is divided in two sections. First a icon-section, where you can choose your functions. Second there is a section below, where you can browse through directories of discs and hard-disc partitions.Applications can call the GUI as an subroutine. FutureOS is said to be easy to handle, after learning how to work with it. The icons are fixed, so you will work with the same desktop. == Hardware ==The OS supports many of the hardware available for the CPC, including the Vortex disc drives and the Dobbertin HD20. == Software ==FutureOS is compatible with the CPCs native data-, file- and format structures (f. e. File-header, Disc-formats). But it is not compatible with native AmsDOS or CP/M programs. FutureOS and compatible applications can be downloaded at: [http://www.FutureOS.de www.FutureOS.de].
== Requirements ==
FutureOS only runs well on a CPC6128 or 6128plus, because they support the RAM configuration &C3 (which is essential for the mouse arrow of the GUI).
== Support GUI ==The idea Desktop of FutureOS was to develop an OS which is able to deal with big files and applications while being easy to programdivided in two sections. Another idea was to support any hardware availableFirst a icon-section, where you can choose your functions. For example Second there are 3.5” B-drives, Vortex F1-D-drivesis a section below, where you can browse through directories of discs and hard-discs, real-time-clocks, serial interfaces etc. Hardware expansion usually need their own drivers (DOS on Eprom). One of the future goals of FutureOS is to provide access to different expansions under one roofdisc partitions.
FutureOS is planned to work with all known hardware expansions for the CPC. It should The Desktop can be possible to use controlled using a 3.5” B-drivejoystick, mouse, external Vortex F1-S trackball or F1light-D, a serial pen. There is no command line. The user interface (or two!)is graphical, different RAM expansions you click on icons and maybe a hard-disc (Dobbertin HD20)files to select them for subsequent actions.
Most of the low level system resources Applications can call the GUI as an subroutine. FutureOS is said to be accessed freelyeasy to handle, eafter learning how to work with it.g The icons are fixed, so you can use interrupt mode 1 or 2 (standard under FutureOS). Using IM 2 is mandatory when designing expansion hardwarewill work with the same desktop.
A programmer can use almost all Z80-CPU registers. In contrast to the regular case, == File system ==FutureOS allows to freely use both set of registers (the only exception is compatible with the I registerCPCs native data-, which is used when IM 2 is active). Further you can use the RST vectors and the Interruptfile-Entry at &0038 and format structures (IM 1f. e. File-header, Disc-formats) for your own . But it is not compatible with native AmsDOS or CP/M programs. FutureOS and compatible applications can be downloaded at: [http://www.FutureOS.de www.FutureOS.de].
== Plug Filenames can use all 256 different characters and Play ==If you connect a hardware expansion user numbers from 0 to 254 (except for &E5, which marks a CPCdeleted file). Different to Amsdos, a file that is erased under FutureOS will automatically detect that expansionnot be shifted to user &E5, initialise but it will be physically removed from the directory. Files can be viewed on-screen (scroll up and make it accessibledown) or printed. The architecture of You can also view the OS allows you file-header. When typing a text-file it is possible to add set the number of columns and remove hardware on purposelines of the window the text is displayed in. An example: You add File-headers are displayed as AmsDOS file or the icon-like file-header of a trackball, you use it, then you connect and 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 joystick 24 Bit length and then you use can have a proportional mouse for examplephysical RAM select. You Therefore a file can turn external hardware be defined to be loaded everywhere in the configurationexternal RAM. Also a FutureOS file-bytes on header can contain a graphical icon, a textual icon or offa short description of the file. FutureOS work with old AmsDOS file-headers.
== Hardware ==The OS supports many of the hardware available for the CPC, including the Vortex disc drives and the Dobbertin HD20. 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 their own drivers (DOS on Eprom). One of the future goals of FutureOS is to provide access to different expansions under one roof. FutureOS is planned to work with all known hardware expansions for the CPC. It should be possible to use a 3.5” B-drive, external Vortex F1-S or F1-D, a serial interface (or two!), different RAM expansions and maybe a hard-disc (Dobbertin HD20). === Drives, hard-discs and mass storage ===
FutureOS supports up to eight drives and up to four hard-disc partitions. FutureOS buffers the directories read from any mass storage device in the expansion RAM.
== Core Utilities = Plug and Play ===The Desktop can be controlled using If you connect a joystickhardware expansion to a CPC, mouseFutureOS will automatically detect that expansion, trackball or light-pen. There is no command lineinitialise it and make it accessible. The user interface is graphical, architecture of the OS allows you click to add and remove hardware on icons purpose. An example: You add a trackball, you use it, then you connect and files to select them use a joystick and then you use a proportional mouse for subsequent actionsexample.You can turn external hardware in the configuration-bytes on or off. == Applications ===== Core Utilities ===
Tools like copy, format, verify or refresh a disc exist. You can copy files from different discs (and partitions) to different discs (and partitions) at once.
Example: You can copy files from drive A (User 0, 90 and 240) and hard-disc partition K (user 0, 12 and 180) to on or more different target drives or hard-disc partitions.
== Files, Filenames, Fileheaders and more ==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 24 Bit 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 file-header can contain a graphical icon, a textual icon or a short description of the file. FutureOS work with old AmsDOS file-headers. == A little Machine monitor ===
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).
== Programming environment = CBM – a menu system for FutureOS ===''This section has to be reThe Command Bar Menu (CBM) provides an user-written completely as the old content was interface for own programs. It is not understandablepart of the OS itself.The source code is available and it''s possible to use CBM for FutureOS programs. An example is the MP3-Player for FutureOS which uses CBM.
== Developing for FutureOS ==
An idea of FutureOS was to develop an OS which is able to deal with big files and applications while being easy to program. Most of the low level system resources can be accessed freely, e.g you can use interrupt mode 1 or 2 (standard under FutureOS). Using IM 2 is mandatory when designing expansion hardware.
A programmer can use almost all Z80-CPU registers. In contrast to the regular case, FutureOS allows to freely use both set of registers (the only exception is the I register, which is used when IM 2 is active). Further you can use the RST vectors and the Interrupt-Entry at &0038 (IM 1) for your own programs.
=== 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 64 KB or RAM remaining untouched.
You can use a normal C program compile it, assemble it, link the object-code with FIOLIB (an all other needed libraries) and add an header to the *.COM file with COMFU.COM. To start such an C-program under FutureOS you have to start the RUNC-environment. RUNC expands the features of FIOLIB. With RUNC it is possible to store functions in E-RAM, leaving more main memory free for applications.
== CBM – A menu system for FutureOS ==
The Command Bar Menu (CBM) provides an user-interface for own programs. It is not part of the OS itself. The source code is available and it's possible to use CBM for FutureOS programs. An example is the MP3-Player for FutureOS which uses CBM.
== Plans for the next years ==