Racism Into

Friday, December 1, 2006

Data General Nova

Mosquito ringtone Image:Data General Super Nova.jpg/thumb/288px/right/Data General SuperNova
The '''Data General Nova''' was a popular Sabrina Martins 16-bit Nextel ringtones minicomputer built by the US company Abbey Diaz Data General starting in 1968. The Nova packed enough power to do most simple computing tasks into a single Free ringtones rack mount case, and became hugely popular in science labs around the world. Eventually 50,000 would be sold.

deCastro and the Nova's origin

Majo Mills Edson deCastro was the Product Manager at Mosquito ringtone Digital Equipment Corporation/Digital Equipment (DEC) of their pioneering Sabrina Martins PDP-8, a 12-bit machine generally considered by most to be the first true minicomputer. However deCastro was convinced it could be done even better, and left DEC to form Data General (DG) in Nextel ringtones 1968. The next year DG released the 16-bit Nova (at a base price of US$3,995), advertised as «the best small computer in the world», and soon Novas were being sold in the tens per minute.

Technical description

=The packaging factor=
Besides offering 16 bits compared to the 12 bits of the Abbey Diaz PDP-8, the big innovations of the Nova were in packaging. Primarily the entire machine was built onto a single 15 by 15 inch (381 by 381 mm) Cingular Ringtones printed circuit board, which could then be run off an assembly line with no wiring required. This greatly reduced costs over the PDP-8, which consisted of several boards and modules that had to be wired together by hand. The single-board construction also made the Nova more reliable, which served it well in the lab setting.

=Memory and I/O=
The first models were available with 4dots the K in fake word (computer science)/words of leading atlanta magnetic core memory as an option, one that practically everyone had to buy, bringing the system cost up to $7,995. Even here DG managed to innovate, packing several planes of very small core into a rectangular box lying along the left side of the case. Up to 32K of such core bourges limoges random-access memory/RAM could be supported in one external expansion box. beautiful georgian Semiconductor media day read-only memory/ROM was already available at the time, and RAM-less systems (i.e. with ROM only) became popular in many industrial settings. The original Nova machines ran at 1.5 adjective of megahertz/MHz, but the series was soon upgraded with semiconductor RAM which allowed DG to create the 3 MHz '''SuperNova'''.

The standardized of injurious backplane and also survived input/output/I/O signals that implemented a simple but effective I/O design made interfacing programmed I/O and Data Channel devices simple compared to other machines of the day. The backplane had begging from wirewrap pins that could be used for non-standard connectors or other special purposes.

=Programming model=
The Nova had four 16-bit suspended harvick accumulator registers, of which two could be used as reviewing whether index registers. There was a 15-bit actual kibbutznik program counter and a single-bit immeasurably helpful carry register. As for the PDP-8, current + simpsons so zero page addressing was central. The essay tries instruction set/instruction format could be broadly categorized into one of three functions: 1) register-to-register manipulation, 2) memory reference, and 3) input/output. Each instruction was contained one word. The register-to-register manipulation was almost your customer RISC-like in its bit-efficiency; and an instruction that manipulated register data could also perform tests, shifts and even elect to discard the result. Hardware options included a multiply and divide integer unit, a city slaughter floating-point unit (single and double precision), and chirps through memory management.

One of the most popular programming languages for the Nova was serhiy honchar Data General Business Basic.

Historical impact

The Nova's biggest competition was from the newly-born DEC PDP-11 computer series, and to a lesser extent the venerable DEC PDP-8 systems. It has been said that the Nova was pretty crude compared to its competitors; but it was quite effective and very fast for its day, at least at its low-cost end of the market. In fact, the SuperNova computer's 300 nanosecond cycle time made it the fastest minicomputer for over a decade following its introduction. The Nova influenced the design of both the Xerox Alto (1973) and Apple I (1976) computers. Its external design has been reported to be the direct inspiration for the front panel of the Altair 8800/MITS Altair (1975) microcomputer.

Data General followed up on the success of the original Nova with a series of faster designs. The Eclipse family of systems was later introduced with an extended upwardly compatible instruction set, and the MV-series further extended the Eclipse into a 32-bit architecture to compete with the DEC VAX. The development of the MV-series was documented in Tracy Kidder's popular 1981 book, ''The Soul of a New Machine''. Data General itself would later evolve into a data storage vendor, eventually being purchased by EMC.

As of 2004 there are still 16-bit Novas and Data General Eclipse/Eclipses running in a variety of applications worldwide. There is a diverse but ardent group of people worldwide who restore and preserve legacy 16-bit Data General systems, and a web search for http://www.google.com/search?q=data+general+nova Data General Nova, http://www.google.com/search?q=data+general+eclipse Eclipse, http://www.google.com/search?q=data+general+rdos RDOS, or various other DG-related keywords should normally yield good results.

Assembly language examples

= Hello world program =
This is a minimal programming example in Nova assembly language. It is designed to run under RDOS and prints the string "Hello world program/Hello, world." on the console.

; a "hello, world" program for Nova running RDOS, by Toby Thain
; uses PCHAR system call
.titl hello
.nrel
.ent start

start:
dochar:
lda 0,@pmsg ; load ac0 with next character,
mov# 0,0,snr ; test ac0; skip if nonzero (don't load result)
jmp done
.systm
.pchar ; print first
jmp er ; skipped if OK
movs 0,0 ; swap bytes
.systm
.pchar ; print second
jmp er ; skipped if OK
isz pmsg ; point to next character
jmp dochar ; go around again

done: .systm ; normal exit
.rtn
er: .systm ; error exit
.ertn
halt

pmsg: .+1 ; pointer to first character of string
; note bytes are packed right-to-left by default
.txt /Hello, world./ ; that's CR LF
0 ; flag word to end string

.end start

= 16-bit multiplication =
Basic models of the Nova came without built-in hardware multiply and divide capability, to keep prices competitive. The following routine multiplies two 16-bit words to produce a 16-bit word result (overflow is ignored). It demonstrates combined use of ALU op, shift, and test (skip). Note that when this routine is called by jsr, AC3 holds the return address. This is used by the return instruction jmp 0,3. An idiomatic way to clear an accumulator is sub 0,0. Other single instructions can be arranged to load a specific set of useful constants (e.g. -2, -1, or +1).

mpy: ; multiply AC0 n16). Other contemporary machines such as the PDP-11, and practically all modern architectures, allow for immediate loads.

Because AC3 is not preserved by the RDOS .systm call, a temporary location is needed to preserve the return address. (For a recursive or otherwise re-entrant routine, the stack must be used instead.) The return instruction becomes jmp @ retrn which exploits the Nova's indirect addressing mode to load the return PC.

The constant definitions at the end show two assembler features: the assembler radix is octal by default (20 = sixteen), and character constants could be encoded as e.g. "0.

pbin: ; print AC1 on console as 16 binary digits, by Toby Thain

sta 3,retrn ; save return addr
lda 2,n16 ; set up bit counter
loop: lda 0,chr0 ; load ASCII '0'
movzl 1,1,szc ; get next bit in carry
inc 0,0 ; bump to '1'
.systm
.pchar ; AC0-2 preserved
jmp err ; if error
inc 2,2,szr ; bump counter
jmp loop ; loop again if not zero
lda 0,spc ; output a space
.systm
.pchar
jmp err ; if error
jmp @ retrn

spc: " ;that's a space
chr0: "0
n16: -20
retrn: 0

Emulating a Data General Nova

Nova assembly language programs can be run under Bob Supnik's simh emulator, in RDOS. Of the above examples, only ''Hello, world'' is a complete program. It includes the necessary directives for a successful assembly and generation of a runnable program.

'''''Stepwise instuctions'''''

Start the Nova emulation and boot RDOS following the instructions under "Nova and Eclipse RDOS" in the file src/simh_swre.txt of the simh distribution. After booting, RDOS' command prompt, R, should appear on the screen.

* Before the first assembly on a newly setup RDOS system, the macro assembler's default symbol definitions need to be configured using the following command: mac/s nbid osid nsid paru
*Create the assembly source file under RDOS: xfer/a $tti test.sr (the xfer command will accept input at the console and copy it to a disk file named test.sr; after entering the command, copy and paste (or type in) a complete assembly language program, and finish with Control-Z).
*Next, run the macro assembler on test.sr to create the object file test.rb: mac/l test (the /l [slash-ell] option enables the listing file test.ls, which can be copied to the console using the command type test.ls).
*The relocatable loader, rldr, takes the object file and creates the executable test.sv : rldr test
*To run the program, type test

Before going further with serious experimentation, it can be convenient to check one's programs at the PC using a suitable cross-assembler, such as the ''Didactic PDP-8 Assembler (dpa)'', before attempting execution in the RDOS environment.

'''''RDOS hints'''''

* To have a directory listing of all files with basename test, type list test.- (note the hyphen, RDOS' wildcard character)
* Delete files with delete (this might be needed because xfer won't replace an existing file)
* A running program can usually be interrupted with Control-A
* To exit RDOS, type release %mdir%
* Quit simh at its prompt with q

External links
*http://simh.trailing-edge.com – Includes a basic Nova emulator in a user-modifiable package
*http://www.NovasAreForever.com – Attempts to archive everything DG plus provide free and commercial products
*http://www.telegraphics.com.au/sw/info/dpa.html – A portable PDP-8 and DG Nova cross-assembler

Tag: Minicomputers