Changes

Contiki

1,943 bytes added, 18:53, 8 May 2023
/* Other Operating Systems for the CPC */
Text copied from the official Contiki website.
 
== What is Contiki? ==
 
(Text copied from the official Contiki website.)
[[Image:contikic64.jpg|right|thumb|250px|Contiki running on the Commodore 64]]
[[Image:contikicpc.jpg|right|thumb|250px|Contiki running on the Amstrad CPC]]
Previously there have been attempts to port Contiki to the CPC. The most first successful port was done by [[Kevin Thacker]]. This was accomplished by modifying the [[SDCC]] compiler, so this compiler was able to produce CPC binaries.
This was accomplished by:# Modifying the linker so that it could generate binary files with relocation data# Modifying the optimiser rules to reduce the program size.# Modifying the source so it produced smaller and better code for the [[SDCC]] compiler to work with. The nature of Contiki(written almost entirely in C) and the poor Z80 optimisation by the SDCC compiler makes Contiki slow compared to other operating systems. Also the The desktop routines in the Amstrad port relies on the slow [[firmware]] routinesbecause it was quicker to make the port this way.  The Amstrad port runs in 64k. It doesn't make use of any extra RAM, this choice was taken so that a quick port could be done to proove it was possible.
A key feature of Contiki is its ability to access networks.
As there currently exist no Two reasons prevented this in the Amstrad port:# The compiled binaries for the webserver and other network programs were large, meaning that at runtime, both the binaries and contiki OS code could not fit into the 64K ram at the same time# The networking hardware was not at a sufficiently developed stage. The original plan was to implement [[CPC Booster]] support in Contiki.The CPC would be connected to the PC via a serial cable.On the PC would be Linux running Slip or PPP.The PC would be connected to the internet through a Broadband connection, with port 8080 opened for incomming connections. The linux machine would effectively become a gateway and would pass information to/from the CPCthrough the serial connection. However, this feature is missing in because the CPC portContiki programs could not all fit into ram, this plan was shelved.
Contiki can run The Amstrad version is based on a unexpanded CPC 464Contiki v1.0.
== Other Operating Systems for the CPC = Later updates ===
[[Symbos]]In 2014, and later in 2023, PulkoMandy updated the port to use a newer version of SDCC. The code generation has improved a lot, and some issues with the drawing code were solved to make it a lot less slow, and almost usable.
[[FutureOS]]To free more RAM, the kernel code was moved to an expansion ROM, leaving a lot more RAM for applications to be loaded. This should allow resuming the effort on porting the network applications. But there is still no driver for any CPC hardware to use with it for now.
[[CP/M]]This version is based on the latest version of Contiki 1.2, with several updates that never made it into an official release of Contiki. The version 1 of Contiki is no longer developped, and version 2 has no desktop and windowing system.
== Weblinks ==
* [http://www.sics.se/~adam/contiki/about-contiki.html Official site of Contiki]* [https://pulkomandy.tk/_/_/_Keeping%20Contiki%201.x%20alive New version 1.3 and 1.4]* [http://www.cpctech.org.uk/download/contiki12.zip Contiki source code for Kevin Thacker's CPC version]
[http[Category://andercheran.upv.es/~amstrad/download/contiki12.zip Contiki source code for CPC versionGUI]][[Category:Operating System]]
1,145
edits