CommodoreZ.com

Data General Nova 1200 Minicomputer

The oldest computer in my collection by a significant margin is this beautiful Data General Nova 1200 from 1971. It's also the only machine I own which is classified as a minicomputer, rather than a microcomputer. It arrived in my care mostly intact, and didn't need much before I could run simple software tests. The power supply was the main thing to get sorted first. I've got 4 different 8K core memory boards available. 3 respond as anticipated, one does not. I adjusted the addressing on the boards to put them all in sequence in the address space, now giving me 24K of contiguous memory. I've also installed and set the jumpers of my new Cassette I/O board. After that, I ran some diagnostic software and located a fault in the TTL to RS232 level shifter, which I repaired. Once the serial tests confirmed the board as working, I toggled in the bootloader and loaded up Binary Loader program. After that, I loaded BASIC over serial, which ran first try!

What I'm working on right now:
Playing with BASIC.
Then figuring out additional serial devices so I can control more equipment.

I'm looking for a few things for my Nova 1200:
Documentation for the 107-000116-08 Quad Multiplexer board I have. Heck, if you know the address used by that device, I want to hear it because it will help.
Rack rails compatible with the Nova 1200
Diablo drive and interface card. I want mass storage one day


My goal was to run BASIC on my Nova. And now that I've done that, I've got some other ideas on what to do next




Here's what it looks like with the top plate removed, showing the top of the power supply, one of the core memory boards, and the backplane.



The only part of the computer that required significant repair before I could run it was the power supply. The large electrolytic capacitors needed to be reformed, which I was successful on 4 out of 5 caps. The fifth, which was the smallest, simply had to be replaced outright. Initial tests under dummy load kept blowing fuses, which was traced to a massive diode bridge rectifier with a short. After that was replaced, dummy load tests indicated this thing was ready to be reassembled.



You can watch my Nova 1200 in action here, computing the 24th Fibonacci Number.



In this video, I'm pre-loading the AC3 accumulator with octal 30 (decimal 24). I start the program counter from location 00102, although that isn't how the program was intended to run. The result is stored in AC0 after the program halts, which is octal 132440 (decimal 46368).

00100: 060277 | START:  INTDS           ; Disable interrupts
00101: 074477 |         READS 3         ; AC3 = How many values to compute
00102: 174420 |         NEGZ 3, 3       ; We can only count up
00103: 020411 |         LDA 0, ZERO, 1  ; AC0 = Term 1
00104: 105420 |         INCZ 0, 1       ; AC1 = Term 2
00105: 111020 | LOOP:   MOVZ 0, 2       ; AC2 = Next Term
00106: 133020 |         ADDZ 1, 2
00107: 121020 |         MOVZ 1, 0       ; Term 1 = Term 2
00110: 145020 |         MOVZ 2, 1
00111: 175424 |         INCZ 3, 3, SZR
00112: 000773 |         JMP LOOP, 1
00113: 063077 |         HALT
00114: 000000 | ZERO:   0

The demonstration here was written by my friend QuantX, who also wrote the assembler which you can check out here. He's working on making a C compiler that is Nova-compatible, and I'm certainly interested in seeing where that goes.

Need to test serial output on a Cassette I/O board? QuantX assembled something for that too!

00100: 060277 | start:		INTDS		; Disable interrupt
00101: 020112 | 		LDA 0, asciibeg	; Load constants
00102: 024113 | 		LDA 1, asciiend
                
00103: 063511 | mainloop:	SKPBZ 0, 11	; Wait untill TTO is free
00104: 000777 | 		JMP -1, 1
                
00105: 061111 | 		DOAS 0, 11	; Output to TTO
                
00106: 101420 | 		INCZ 0, 0	; Increment char to be printed
                
00107: 106455 | 		SUBO# 0, 1, SNR	; Check if end of ascii table
00110: 020112 | 		LDA 0, asciibeg	; Reset starting constant
00111: 000103 | 		JMP mainloop	; Loop
                
00112: 000040 | asciibeg:	40
00113: 000177 | asciiend:	177




This page was last updated on 6-23-2021
Home