30 views

Skip to first unread message

Mar 9, 1995, 1:46:57 PM3/9/95

to

On Fri, 17 Feb 1995 10:04:27 GMT,

Bernhard Baehr <b...@informatik.uni-hannover.de> wrote:

Bernhard Baehr <b...@informatik.uni-hannover.de> wrote:

>

>I announce the availability of the final version 1.0 of my simulator

>for the DEC PDP-8/E minicomputer running on the Apple Macintosh

>computer. The simulated machine is a PDP-8/E with 4K words of memory

>and an ASR 33 console teletype. Optionally a MC8-E Memory Extension

>(with up to 32K words of memory), an EAE, an auxiliary ASR 33 teletype,

>a high speed paper tape reader and punch, a RK8-E disk system, a

>LP8-E line printer and a Real Time Clock can be attached to the

>simulated PDP-8/E.

>

>The simulator is based on the PDP-8/E emulator of Bill Haygood. It

>is known to run on a wide variety of 680x0 and PowerPC Macintoshs

>running System 6.0.4 to 7.5. (Probably it runs on any Macintosh with

>System 4.1 or better and 128K ROMs.) The current version of the

>simulator does not contain native PowerPC code. On the fastest

>68040 Macintoshs the simulated PDP-8/E runs nearly with the speed

>of a hardware PDP-8/E.

>

Everybody seems to write PDP-8/E-emulators which run nearly as

fast as the original. (We too, but ours is faster than the original).

I prepared some bench marks, to show the speed differences, and I'd

be interested, if somebody else would either add the times of his

emulator to my table, or make suggestions for more benchmarks.

1. Benchmarks without I/O:

A program which calculates 1500 functions (squareroot, sine and

logarithm) and stores the results in a two-dimensional array.

Times are stopped between the "START" and "END" message on

the screen, without the compile time and the 17 lines at the

end of the programs.

The program is translated to three languages: BASIC, with 23-bit

accuracy and use of the EAE, FORTRAN-IV with 27-bit and PASCAL

with 35-bit. (Plus 1-bit for the sign).

2. Benchmarks with file-I/O (RK8E-disk)

The PASCAL.PA file was the last file on DSK: and I squished the

disk before assembling or editing, so that the head movement is

approximately constant.

A.

Assembling the PASCAL-S compiler (from nickel.ucs.indiana.edu)

with PAL8 without listing.

The source is a textfile with 140 000 characters in 9000 lines.

.R PAL8

*PASCAL<PASCAL/K

B.

Assembling the same compiler, with producing a 375 000 character

list-file.

.R PAL8

*PASCAL,PASCAL<PASCAL/K

C.

Reading and writing the PASCAL.PA with the OS/8-editor EDIT.SV:

.ED PASCAL.PA

*R

*E

.

Here are the hand measured times (in seconds):

.BA .FT .PS PAL8 PAL8(.LS) EDIT

-------------------------------------------------------------------

PDP8-E 16 18 44 75 192 91

486/33 (EISA) 6 8 15 28 79 45

with RAMDISK 6 8 15 25 55 35

486DLC/40 5 7 15 30 105 55

with RAMDISK 5 7 15 24 57 36

386/28 26 23 81

386/40 8 9 20 37 120 65

with RAMDISK 8 9 20 32 73 50

386SX/25 30 36 78 122 279 183

(I was searching for a PC which is nearly as fast as the original -8)

Here are the programs:

5 REM SHUDDER

10 N = 500

20 DIM A(4,500)

40 PRINT "START"

50 X = 0.01

60 J = 2

70 FOR I = 1 TO N

80 A(1,I) = X

90 Y = SQR(X)

100 A(J,I) = Y

110 Y = SIN(X)

120 A(J+1,I) = Y

130 Y = LOG(X)

140 A(J+2,I) = Y

150 X = X + 0.01

160 NEXT I

180 PRINT "END"

190 PRINT

195 PRINT " #";TAB(7);"X";TAB(22);"SQRT";TAB(37);"SIN";TAB(52);"N-LOG"

200 FOR I = 1 TO 17

210 PRINT I;TAB(5);A(1,I);TAB(20);A(2,I);TAB(35);A(3,I);TAB(50);A(4,I)

215 NEXT I

220 STOP

225 REM UNSHUDDER-1

230 END

***

C SIGH, THOSE WERE THE DAYS

DIMENSION A(4,500)

N = 500

WRITE (4,400)

400 FORMAT (' START')

X = 0.01

J = 2

DO 100 I = 1,N

A(1,I) = X

Y = SQRT(X)

A(J,I) = Y

Y = SIN(X)

A(J+1,I) = Y

Y = ALOG(X)

A(J+2,I) = Y

X = X + 0.01

100 CONTINUE

WRITE (4,404)

404 FORMAT(' END')

WRITE (4,440)

C 1 2 3 4 5

C 123456789a123456789b123456789c123456789d123456789e12

440 FORMAT(' # X SQRT SIN N-LOG')

DO 110 I = 1,17

WRITE (4,444) I, A(1,I), A(2,I), A(3,I), A(4,I)

444 FORMAT(I3,F7.3,3X,3(F13.9,2X))

110 CONTINUE

STOP

END

***

PROGRAM BENCH(OUTPUT);

(* REAL PROGRAMMERS DON'T USE PASCAL *)

CONST N = 500;

VAR X,Y: REAL;

I,J: INTEGER;

A: ARRAY[1..4,1..N] OF REAL;

BEGIN

WRITELN("START");

X := 0.01;

J := 2;

FOR I := 1 TO N DO

BEGIN

A[1,I] := X;

Y := SQRT(X);

A[J,I] := Y;

Y := SIN(X);

A[J+1,I] := Y;

Y := LN(X);

A[J+2,I] := Y;

X := X + 0.01;

END;

WRITELN("END");

WRITELN;

WRITELN(" # X SQRT SIN N-LOG");

FOR I := 1 TO 17 DO

BEGIN

WRITELN(I:3," ",A[1,I]:7:3," ",A[2,I]," ",A[3,I]," ",A[4,I]);

END;

END.

Klemens Krause

Universitaet Stuttgart

Institut f. Informatik

Stuttgart - Germany

Reply all

Reply to author

Forward

0 new messages

Search

Clear search

Close search

Google apps

Main menu