IPS Programming


The OSCAR-40 satellite, like its predecessors P3A, OSCAR-10, and OSCAR-13, has as its "brains" a computer system based on the RCA COSMAC 1802 microprocessor.

The computer is running an operating system called IPS (Interpreter for Process Structures), and loaded into that environment is the flight software that does spacecraft command and control, housekeeping chores, battery charge control, navigation, transponder switching, beacon data generation, and so on.

Work is currently underway to develop a custom processor (currently codenamed the Am1601). This processor will be optimized for the IPS operating system and will be used in the flight computer for the new AMSAT-NA "Eagle" satellite, and may be used for the proposed AMSAT-DL P3E and P5A satellites as well.

IPS was devised by Karl Meinzer, DJ4ZC, at a time when 1802, 6502, 6800 and 8080/Z80 processors were state of the art -- around 1976-1979. At that time there just wasn't an easy-to-use, robust, engineering-oriented, multitasking and, above all, portable operating system for cheap computers based on these CPUs and their tiny (boldly described as "massive") 16 kilobyte memories. Computers at that time meant the Atari 800, North Star Horizon, etc. IPS is a brilliant piece of software engineering, as relevant today as it ever was.

But how many people know anything about IPS? Not many nowadays, I'll bet. Well, here's an opportunity to discover all about it, with a book and IPS emulators for DOS and Windows.

The Book

An IPS Manual was written by Karl Meinzer in 1978, but never published in any substantive form. A hand corrected draft printout was circulated to a few interested AMSAT engineers who then reproduced it ad hoc, minus several chunks, via ever worsening photocopies. But the paper original was long lost.

Happily, in 1996 the manual was discovered to have survived on Atari 800XL computer cassette tapes, and moreover in the mid 1980's had been transferred to floppy disc by Robin Gape G8DQX, a prominent IPS contributor at that time.

Thus, after a gap of nearly two decades, it has become practical to publish the document properly, and James Miller, G3RUH, has done so. IPS - High Level Programming of Small Systems is available now. "The Book", as it is known, is the ultimate reference guide to IPS, and is strongly recommended to anyone who is serious about learning the language.

Full details about the book IPS - High Level Programming of Small Systems can be found here:
http://www.jrmiller.demon.co.uk/products/ipsbk.html

There are both English and German versions of the language syntax. "The Book" is largely written using the English language variant. Satellite flight software has always been coded using the German language version.

IPS for MS-DOS

An IPS emulator system called IPSDOS is available for the PC, written by Paul Willmott, VP9MU. This was designed to run under pure DOS, and provides facilities for direct access to I/O and communication ports. IPSDOS can run in a window under Windows 9x and Windows NT/2000/XP. Full documentation and source code in Pascal are provided.

The English language version can be downloaded here:
http://www.amsat.org/amsat/ftp/software/ips/ipse.zip (237K)
Updated October 28, 2002

The German language version can be downloaded here:
http://www.amsat.org/amsat/ftp/software/ips/ips.zip (243K)
Updated October 28, 2002

Bug reports for IPSDOS should be sent to vp9mu@amsat.org

IPS for Windows

IPS-Win is a variant of James Miller's IPS-M, which has been ported to the PC Windows environment by Stacey Mills, W4SM. IPS-Win is written in Borland C++ Builder. It has purposely been written to be the same in respect to input/output and the "feel" of the user interface as the original IPS-N, as described in the book.

The complete package (with English and German versions) can be downloaded here:
http://www.amsat.org/amsat/ftp/software/ips/ips-winp.zip


Text by James Miller, G3RUH, Paul Willmott, VP9MU, and Stacey Mills, W4SM.
Updated October 28, 2002.

AMSAT Top