# Comparative Timings of variousData General 16-bit CPUs

Presented here, the reader will find the results of a trivial exercise which the author undertook when curious about the relative performance of his assorted DG machines.

The program itself is a trifling little thing and uses no instructions other than those defined in the basic instruction set .

The program used was as follows:

```   0001  TRIFL
.TITL   TRIFL

;    I'm going to use this little trifle to test the
; comparative speeds of the various DG processors I have in
; my collection.
;
;    The overall logic is simple enough to qualify as almost
; brain-dead. We'll go ahead and zap AC0 (in case it isn't
; already) and increment it by one until it overflows back to
; zero. When that happens, we'll bump another (negative)
; value until it, too, goes to zero; at that point,
; we'll call it quits and halt.

;    The object will be to measure, by eyeball-and-wristwatch,
; the amount of time the whole thing runs for.

000000         .LOC 0               ; Set PC to zero

00000 102440 START:  SUBO    0,0          ; Zap AC0 for the initial loop
00001 101404 LOOP:   INC     0,0,SZR      ; Bump AC0 until it wraps
00002 000001         JMP     LOOP         ; Keep going....

;    When we get here, AC0 has been incremented 2^16 times
; (65,536). This should make for a good delay test.

00003 024020         LDA     1,COUNT      ; Load the loop count
00004 125405         INC     1,1,SNR      ; and bump it; skip if not done.
00005 063077         HALT                 ; We're done - stop the CPU
00006 044020         STA     1, COUNT     ; Save the current loop count and
00007 000001         JMP     LOOP         ; go back and do it again....

000020         .LOC 20              ; Set PC to 20 (for convenience)
00020 177400 COUNT:  -256.                ; Loop count

000000         .END    START
```

As can be seen, there's no advanced programming in here, just a simple brute- force attempt at gathering a gross comparison of the machines here. For those of you who are wondering why I didn't use an ISZ instruction for the COUNT, it had to do with the fact that on the Eclipse console the STOP/STORE feature doesn't stop the processor on an ISZ (STOP/ADDR does, but wasn't what I was looking for).

Here are the results in order of speed:

```	 Machine	Time
-------	----

Eclipse S/130	21s
Eclipse S/230	21s
Nova 4		22s
Nova 840	26s
Nova 2		27s
Nova 3		30s
Desktop Gen-10	33s *
Rolm 1602B	33s +
Desktop Gen-20	34s
Eclipse S/20	34s *
Nova 1200	45s
Nova MP/100	89s
MicroNOVA       89s

```

The "wristwatch-and-eyeball" method does have its problems. If one is staring at the watch it's tough to tell just when the CPU halts; if you're staring at the computer you can't be concentrating on the watch. Such is life. I need to go out and buy a stopwatch.

The little Novas were fun in that the sounds they usually make change when they halt and the power consumption drops (the switching supplies' audible pitch increases slightly). This made it a bit easier to tell when one stopped. The Eclipses are too loud in normal operation to tell what was going on.

[ Museum Lobby ] [ Museum Catalogue ] [ Carl's Homepage ]