In honor of Pi Day (March 14) I decided to write code for a pi calculation using the 8-bit processor. I had to learn binary floating point, and chose the IEEE-754 single-precision standard to do the calculation. The calculation is a numeric integration using the perimeters of polygons of increasing sides contained within the unit circle. The perimeter approaches 2 pi as the number of sides increases. I had to create subroutines for adding, subtracting, multiplying and dividing floating point numbers, and for doing square roots. Here is a screenshot of the calculation:
The output is two columns of 32-bit floating point numbers in IEEE-754 format. The left column is the number of sides in the polygon, and the number in the right column is the value of pi derived from the perimeter. The value of pi calculated is 0x40490FD7, which is 3.1415918 decimal. It reached this value when the polygon had 16384 sides. This value of pi is within the limits of the number of significant figures carried in the IEEE-754 format and the rounding errors of the subroutines in the algorithm. The code is a little less than 6 kilobytes long, and the calculation took about 2 minutes. I have placed the code files on the 8-bit code page.
Customer David Byres (his blog about gadgets is here) has made some 3D printed stands for the CPUville computer with the bus display attached:
They allow one to run the computer while holding it upright:
If you are interested in obtaining these stands, please let me know, and I will see if David will print some for you.
One of the criticisms of the CPUville Z80 computer kit is that the circuit board lacks mounting holes. But customer Ted McFadden has designed a 3D printed case (with mounting holes at the corners) for the computer board, and has posted the design on a Thingiverse page. He has offered the design for use under a Creative Commons license, available without charge if you print your own case. If you don't have a 3D printer, but want a case, contact me, and I will see if Ted can print one for you.
Due to an increase in the cost of the circuit board, I am forced to increase the price of the computer kit to $45.00, effective January 1, 2018. I could probably find a cheaper supplier abroad, but I would like to stick with an American manufacturer, Advanced Circuits in Aurora, Colorado. I hope you understand, and will continue to support CPUville (and Advanced Circuits) with your purchases. Thanks.
Many customers have contacted me wondering if there was a way to keep the bus display connected after adding the serial interface or disk and memory expansion boards to the basic computer. I had thought that no one would want to do this, since the serial interface and disk expansion boards need to run on the fast clock, so the bus display would just be a blur, but now I realize that especially with the serial interface, one might want to simply switch between the slow and fast clocks from time to time to demonstrate the bus activity on the slow clock without having to disconnect and reconnect the serial interface. So, I am offering for sale the custom cables shown in the photo above. These allow the bus display to remain connected while the serial interface is in use. They also work with the disk and memory board attached. If you would like a set of these cables, contact me. I will sell 11-inch cables for $6.50. I can make longer cables if you like, just tell me how long and I will quote you a price.
For those of you who have CP/M 2.2 running on the CPUville Z80 kit computer, you have no doubt noticed that adding files to the CP/M system from the PC is a bit awkward. One has to use the CP/M program MONITOR.COM to do a binary transfer of the file into the computer memory, then the CP/M built-in command SAVE to store the file onto the CP/M disk. I had sought to use any of several XMODEM-type CP/M programs to do file transfers, but they all required a system with two serial ports, one for the terminal, and one for a modem to do the file transfer.
However, customer Stephen Williams has modified two XMODEM CP/M utilities to perform file transfers from the PC to the CPUville Z80 kit computer over the single serial port. These utilities, PCGET and PCPUT were created by Mike Douglas for his Altair 8800 Clone computer. He derived them from the original XMODEM-based file transfer utilities created by Ward Christensen in 1977 for his early bulletin board systems. With the permission of both Mike Douglas and Stephen Williams I have placed the code for these utilities on the CPUville CP/M code page for download.
PCGET will transfer a file from the PC over the serial interface onto the CP/M disk, and PCPUT will transfer a file from the CP/M disk to the PC. To do this, one must be using a terminal emulation program with the ability to do XMODEM-protocol file transfers. In the Linux environment, minicom will do this. In the Mac environment, the serial program will work. In Windows however, the Realterm program recommended for use with the CPUville Z80 kit computer does not do XMODEM transfers. Instead, use the ExtraPuTTY program.
One last thing: to get PCGET.COM onto the CPUville computer you will have to do the MONITOR.COM binary transfer and CP/M SAVE procedure, as explained in the disk and memory expansion kit instructions. After that, you can use PCGET to do file transfers.
You probably noticed that I have redone the entire website. I made these improvements:
Let me know if you like it. Feel free to suggest improvements. If you find errors, or broken links, please let me know.
I have finished the 8-bit processor prototype. It is working well. Here is a demo video:
Note that the processor is connected by an adapter to the CPUville Z80 computer system board, plugged into the Z80 socket. I plan to put details of the design and construction of this processor on the web site in the future.
It has come to my attention that some 6116 2K RAM ICs that have been shipped with the CPUville Z80 computer kits may be defective. You can test yours by running the memory test program, located at 0x0074 in the v.7 EPROM. If you believe you have a defective 6116 RAM IC please let me know, and I will send you a replacement.
I am developing an 8-bit computer processor that I may offer as a kit.This processor is similar to the original CPUville TTL processor, with some important differences. First, it has an 8-bit data bus, and a 16-bit address bus (that is, a 64K address space), matching the Z80's data and address bus. This means it can use the same system as the CPUville Z80 computer, by plugging into the Z80 slot on the computer kit board (using a cable of course). Second, I fix some of problems with the original processor, in main, that the ALU size did not match the instruction size, preventing easy uploading of programs. Instructions on the 8-bit processor are of varying length, instead of the single size of the original processor. Also, I have strengthened some of the hardware issues, for instance, latching the controls that need to be held steady when the state changes for writing memory or ports. A kit for this processor may cost $80 to $100. Anyone interested?
Tiny BASIC! In discussion with another hobbyist I realized I could assemble Tiny BASIC and it would fit into the CPUville Z80 computer 2K ROM space, taking the place of the v.7 EPROM. I made a few modifications to the code to match the CPUville computer's port addresses and UART status bits, and it works fine:
This is Li-Chen Wang's original Tiny BASIC that was first published in Dr. Dobb's Journal of Computer Calisthenics and Orthodontia in May, 1976. Here is a link to a draft of the instruction manual I am preparing. If you would like the code, please email me. I can also sell you a pre-programmed EPROM with Tiny BASIC for $4.50.
Older News and Issues items moved here.