FutureOS
A modern and fast OS for the Amstrad CPC

Written by: Stefan Stumpferl

Introduction

FutureOS is a modern OS for the good old Amstrad CPC6128 and 6128plus (not 464 or 664). Well, it doesn’t look like windows, because I don’t want to imitate the errors made by Micro$oft (see Fig. 1). Instead this OS allows the CPC to be used at its limits. FutureOS breaks the 64 KB barrier, applications can be up to 512 KB in one piece, it has a rapid and efficient memory management system and a very fast 24 Bit file-system (files can be 16 MB long). Multi-tasking programs can be used and the OS provides the user with all kind of standard utilities (like copy/format/refresh disc; copy/rename/erase/type/print files etc.).

Every application is able to call the GUI as an subroutine. Therefore FutureOS is easy to handle, after learning how to work with it. The OS supports nearly all hardware ever made for the CPC! This is also true for very new hardware like the CPC-Booster+ and the CPC-IDE-Interface (or Symbiface) for supporting IDE-hard-discs. FutureOS is compatible with the old data-, file- and format structures (i.e. File-header, Disc-formats). But it is not compatible with ancient AmsDOS or CP/M programs. FutureOS and some MB’s of software can be downloaded at: www.FutureOS.de.

Fig. 1: FutureOS Desktop. The upper half of the screen provides icons used to select functions. The lower half of the screen provides up to 64 file names per page. Select page for every device. You can tag a file with the mouse-pointer.

Requirements

Well, FutureOS is written in pure Z80 code (except for some undocumented opcodes ;-). It needs 64 KB of memory. But not RAM. The OS is burned in EPROMs, else it can be used with a ROM-RAM-BOX, Symbiface, RAMcard or a similar product (they all use buffered SRAM to emulate EPROM). This is an disadvantage if you don’t own such a card. But you can take a look at FutureOS by using a very good CPC Emulator (Caprice, WinApe).
 

The OS itself is executed directly in (EP)ROM where it is divided in four 16 KB blocks. It jumps very fast from ROM to ROM with the help of a little common area. This has not only the advantage that you can save all the RAM of your CPC for applications and data, furthermore it allows efficient memory management, file-handling and it brings high system stability (a virus or harmful code is not able to infect ROM). Under AmsDOS/Basic you can start FutureOS with the RSX commands |OS or |FDESK.

FutureOS only runs well on a CPC6128(+) and not on the 464 or 664, because they don’t support the RAM configuration &C3 (which is essential for the mouse arrow of the GUI). This is not a problem today: You can buy an CPC6128 on ebay for an apple and an egg.

Supporting it all

The idea of FutureOS was not only to develop a very fast, easy programmable OS which is able to deal with big files and applications. One point that lead to the development of FutureOS was the wish that it should be possible to support all hardware (ever made for the CPC) with just one OS. Remember, there are 3.5” B-drives, Vortex F1-D-drives, hard-discs, real-time-clocks, serial interfaces and much more. Every piece of hardware has its own software (DOS on Eprom, drivers or whatever). Sadly all these software packages for expansion hardware aren’t compatible :-(.

FutureOS was designed to work with all known hardware expansions for the CPC. You can 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 or CPC-IDE). And all the stuff work properly together :-) It would be too much to list all compatible hardware here.

Another point is, that you can program very freely. You can use interrupt mode 1 or 2 (standard under FutureOS). If you design expansion hardware, you will love IM 2. You can use (nearly) all CPU registers. In contrast to AmsDOS, which steals the second register set of the Z80, FutureOS allows you to treat all registers like you want (the only exception is the I register, which is used when IM 2 is active). Further you can use all the RST vectors and the Interrupt-Entry at &0038 (IM 1) for your own programs. You like to program in that free way? Just assemble your program for start address &0000. You can see, FutureOS programs can be made very mighty and efficient.

Page 2 >>>


     
 
Future OS
Contents
 
Page 1 of 4
Issue 13 Spring 2005

 
CPC Oxygen - Issue 13 Spring 2005


Return to Main Site