New Software - Nakazoto/CenturionComputer GitHub Wiki

New Software

The following is a list of all new software that we have written for the Centurion system. Most items are utilities, but there are a few programs that are for fun. Additionally, some files are pure JCL files, some are pure CPL, and some require a mixture of both. Each project has a link to the source code that you can download and check out yourself.

CED (Centurion Editor)

The Centurion Editor is a wonderful replacement for the very difficult to use KOMPOZ. CED is incredibly intuitive and easy to use and has been an absolute lifesaver. It is now my go to text editing program on the Centurion.

For more information on CED and how to use it, click this link.

Author: Ren14500

BLDMINOS (Build Minimal Operating System)

This was a custom JCL script written to automate building a minimal operating system that was small enough to fit on a single floppy. This was done for the Mini-Centurion that was built for an event in DFW. It was undoubtedly extremely tedious to write this script but it was an absolute life-saver, reducing the size of the OS by around 30 tracks!

For more information on the Mini-Centurion and this build, check out this video, as well as this video.

Author: Ren14500

COPY

This is a simple utility written to make copying files a little more intuitive. The Centurion does have several built in copy utilities, but each one is split up for each individual function. This script simplifies the act of copying greatly. The format to use this script in the OS if it is installed in the "S" folder is as follows (# is the platter): S.COPY SOURCEFILE # DESTFILE #

Author: Ren14500

EMU (UE14500 Emulator)

This is an amazing emulator of the UE14500 Vacuum Tube Computer. The emulator was originally written in period-appropriate style, using the C programming language and the curses library for terminal I/O. It was then ported to CPL for use on the Centurion, and it is 100% cycle accurate to the real deal.

For more detail on this emulator, check out this video.

Author: Ren14500

HELLO (Hellorld!)

This was a short little program written to run on loop at events. A user can approach, type their name, and get a greeting with a short explanation of the system and how to access some help.

Author: Usagi Electric

HELP

This is a primarily text only JCL script to provide help to newcomers to the OS. It includes a brief introduction to the OS, JCL, CPL and using CED. Programmatically it is very simple, but hopefully it will help get people on the right track for using the OS. This script can be executed by simply typing HELP at the main OS prompt.

Author: Usagi Electric

KEYCODES

This is a short and simple utility that prints the depressed key as well as the hexadecimal scancode the Operating System interprets. This was particularly useful for figuring how how the Centurion OS handles arrow keys as well as the operators on the separate 10-key number pad. The source code for this program is really fascinating because Ren does some really tricky stuff to get it working correctly. Give it a look and see if you can figure out what he did.

Author: Ren14500

MUXGEN (MUX Settings Generator)

This a JCL utility to program an individual MUX port for a specific baud rate and serial data format. Each serial port on the MUX card is fully programmable with regards to number of data bits, parity, stop bits and baud rate. But, it is a little convoluted to set that up and requires looking up specific values in the CPU6 Programmer's Manual. This script simplifies the process by asking the user for the specific values and then automatically runs the required utility.

Author: Usagi Electric

PE01 (Project Euler 01)

This was a programming exercise to learn the ins and outs of programming in CPL. This particular problem asks to find the sum of all multiples of 3 or 5 below 1000. Because this is quite an intense brute force calculation, there are some interesting requirements, notably the need to perform a service call to prevent a watchdog timer from timing out. The method we used in this program looks cool, but is not the appropriate way to tackle this problem.

For more information on why we programmed it this way, check out this video.

Author: Usagi Electric

SIEVE (The Sieve of Eratosthenes)

This a pure CPL program written for Dave Plummer's programming language drag race series. CPL is incredibly slow for this kind of calculation however because it does not feature any bit manipulation. The program would be much, much faster if programmed directly in assembly, but as the challenge called for a programming language, this implementation was kept as strictly CPL.

It should be noted that the time shown in the emulator screenshot below is inaccurate. The real hardware runs the same program in 76.3 seconds.

Author: Ren14500

WDOG (Watchdog Timer)

When programming the Project Euler program, we ran into a problem with the program taking too long and tripping a watchdog timer. To circumvent this, we drew a little spinning slash mark that performed a service call and kept the timer happy. However, this is not the best way to tackle this problem. To see what was the most efficient, Ren wrote a short program that tested how long different service calls. Running SVC(7) is by far the most efficient and requires the least amount of clock cycles to keep the watchdog happy.

Author: Ren14500