Differences between revisions 1 and 32 (spanning 31 versions)
Revision 1 as of 2005-03-24 20:16:25
Size: 1299
Editor: TimRiker
Comment:
Revision 32 as of 2005-05-17 18:32:27
Size: 6209
Editor: TimRiker
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
The FirstComputer that TimRiker ever worked on was at Penfield High School in Penfield, New York. It was likely an HP-2114A model. The FirstComputer that TimRiker ever worked on was at [http://www.penfield.edu/phs/ Penfield High School] in [http://www.penfield.org/web/ Penfield, New York]. It may have been an HP-2114C model. It used a form of time shared basic, but it was '''not''' a dual cpu model cabinet. It was running a time shared basic environment. Perhaps the "TIME-SHARING EXECUTIVE" mentioned in the [http://oscar.taurus.com/~jeff/2100/family/family.html sales brochure]?
Line 3: Line 3:
 * http://d116.com/vcf/east/1.0/ - see hp2114a.jpg TimRiker acquired a bunch of [http://rikers.org/gallery/hardware old HP hardware] including an [http://rikers.org/gallery/hardware-hp2116a HP-2116A] that he is in process of restoring. Check the [http://rikers.org/gallery/hardware Gallery] for pictures and updates as work progresses.
Line 7: Line 7:
 * HP-2114 style cover with 16 connected touch switches
Line 9: Line 10:
 * 1 "graphics" terminal (honeywell?)
 * 1 test crt terminal
Line 12: Line 11:
 * 1 text crt terminal
 * 1 "graphics" terminal (honeywell? I remember it had a graphics character set with a toggle button)
Line 13: Line 14:
 * external tape punch was not connected.
Line 16: Line 16:
 * external tape punch was not connected.
Line 17: Line 18:
It was running a time slicing basic environment. Perhaps the "TIME-SHARING EXECUTIVE" mentioned in the [http://oscar.taurus.com/~jeff/2100/family/family.html sales brochure]? Here are some useful links:
Line 19: Line 20:
There are multiple emulators around for this platform. TimRiker is trying to get one running for old time's sake. Here are some useful links:
 * http://kmt.hku.nl/~hans/pdf_files/hp2114c.pdf <- large pdf brochure
 * http://d116.com/vcf/east/1.0/ - see hp2114a.jpg
Line 23: Line 24:
 * http://www.infionline.net/~wtnewton/oldcomp/hp2100/ <- new OS in development, if you can believe that. ;))  * http://bitsavers.org/pdf/hp/2000TSB/ <- Timeshare BASIC specific stuff
* http://www.infionline.net/~wtnewton/oldcomp/hp2100/ <- new OS in development, if you can believe that. :))
Line 25: Line 27:
 * http://simh.trailing-edge.com/ <- SIMH simulator :))
 * http://kmt.hku.nl/~hans/contents_pages/digital.htm - pdf bruchures, etc.
 * http://www.classiccmp.org/HP/ - more docs and some tape dumps
 * http://www.decodesystems.com/hp2000/ - info and basic code
 * http://descanso.jpl.nasa.gov/RCSGSO/Proceedings/Paper/A0053Paper.pdf <- success story, includes document numbers of the needed pieces
 * http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=123682 - HP support questions with 1967 article re 2116 launch
 * http://www.pgcps.org/~mgemeny/access/ <- live system?
 * http://www.classiccmp.org/mailman/htdig/cctalk/2005-March/188582.html <- live system
 * http://www.brouhaha.com/~eric/software/tsbutils/ - tape utilities for *nix
 * http://www.brouhaha.com/~eric/software/asm21/ - hp assembler in perl
 * http://www.brouhaha.com/~eric/retrocomputing/hp/2000/ - pdfs, etc
 * http://groups.yahoo.com/group/hp2000family/ <- yahoo group. has complete simh access packages and info!
 * http://simh.trailing-edge.com/docs/hp2100_algol_howto_doc.txt - building algol with the assembler
 * http://hp1000.org/ <- links to other stuff
 * http://www.bolo.ch/?list=2&obj=289 < HP-2116B pictures

Hacking HOWTO:

 * install SIMH above and start "{{{hp2100}}}"
 * load the hp basic sources: "{{{LO basic1.abs}}}"
 * jump into basic "{{{GO 100}}}"
 * input a simple program like this one "forever": {{{
10 DEF FNA(X)=ATN(TAN(ATN(TAN(ATN(TAN(ATN(TAN(ATN(TAN(X))))))))))
20 DEF FNB(X)=FNA(FNA(FNA(FNA(FNA(FNA(FNA(FNA(FNA(FNA(FNA(X)))))))))))
30 DEF FNC(X)=FNB(FNB(FNB(FNB(FNB(FNB(FNB(FNB(FNB(FNB(FNB(X)))))))))))
40 DEF FND(X)=FNC(FNC(FNC(FNC(FNC(FNC(FNC(FNC(FNC(FNC(FNC(X)))))))))))
50 DEF FNE(X)=FND(FND(FND(FND(FND(FND(FND(FND(FND(FND(FND(X)))))))))))
60 DEF FNF(X)=FNE(FNE(FNE(FNE(FNE(FNE(FNE(FNE(FNE(FNE(FNE(X)))))))))))
80 PRINT FNF(1)
90 END
}}}
 * list the program: "{{{LIST}}}"
 * then run it: "{{{RUN}}}"
 * note that on real hardware this silly deeply nested program could take a very long time to finish. On a 1G ppc debian linux box with SIMH 3.3.1-1 it takes about a half hour and then prints '''1.''' :)
 * Here's a more useful program I whipped up that graphs trig functions {{{
100 REM TRIG BY TIM RIKER <TIM@RIKERS.ORG>
110 LET X1=-3.2
120 LET X2=3.2
130 LET X3=.1
140 LET Y1=-1.5
150 LET Y2=1.5
160 LET Y3=(Y2-Y1)/70
170 LET X4=(-X1)/X3
200 FOR X0=0 TO (X2-X1)/X3
210 LET X=X1+(X3*X0)
220 LET S0=INT(((SIN(X)-Y1)/Y3)-.5)
230 LET C0=INT(((COS(X)-Y1)/Y3)-.5)
240 LET T0=INT(((TAN(X)-Y1)/Y3)-.5)
250 LET Y0=INT(((0-Y1)/Y3)-.5)
300 FOR Y=0 TO 70
310 IF Y=T0 THEN 520
320 IF Y=S0 THEN 540
330 IF Y=C0 THEN 560
340 IF Y=Y0 THEN 580
350 IF X0=X4 THEN 600
500 PRINT " ";
510 GOTO 700
520 PRINT "T";
530 GOTO 700
540 PRINT "S";
550 GOTO 700
560 PRINT "C";
570 GOTO 700
580 PRINT "X";
590 GOTO 700
600 PRINT "Y";
700 NEXT Y
710 PRINT ""
720 NEXT X0
999 END
}}}

= emulator progress =

I grabbed the sources from:
 * http://oscar.taurus.com/~jeff/2100/hpbasic/

and the perl assembler from:

 * http://www.brouhaha.com/~eric/software/asm21/

patched 22255-08.txt thusly: {{{
- STBFAD2 SAVE ADDRESS
- P WCONT MOVE IN AND PROCESS
+ STB BFAD2 SAVE ADDRESS
+ JMP WCONT MOVE IN AND PROCESS
}}}
and asm21 thusly:{{{
- } elsif ($str =~ s/^([a-zA-Z.?%\#\$][0-9a-zA-Z.?%\/=\#\$]*)//) {
+ } elsif ($str =~ s/^([a-zA-Z.?%\#\$\&\[\/@\^\!][0-9a-zA-Z.?%\/=\#\$\&\[\/@\^\!]*)//) {
}}}
and compiled them up. I can load the binary in simh. I need to start it with {{{g 30000}}} which should then prompt for slot info, but it can't find the terminal. Here's the relevant source code: {{{
PTSBS CLC 0 TURN OFF ALL DEVICES
      LIA 1 LOAD I/O ADDRESS OF TTY
      AND .63 MASK TO LOWER 6-BITS
      STA B PUT ADDRESS IN B-REGISTER
      ARS,ARS SHIFT TO BITS (5-3)
      ARS
      SZA I/O ADDRESS >7?
      JMP ZGO YES-INITIALIZE PREPARE BASIC TTY
*
      HLT 55B INVALID I/O ADDRESS HALT
      JMP PTSBS TRY AGAIN
}}}
I'm not sure what to put as the tty address. The MUX in simh defaults to slot 40. While I'm sure that look obvious to some, it's not to me. :)) More info in the docs:
 * http://oscar.taurus.com/~jeff/2100/asmref/

The FirstComputer that TimRiker ever worked on was at [http://www.penfield.edu/phs/ Penfield High School] in [http://www.penfield.org/web/ Penfield, New York]. It may have been an HP-2114C model. It used a form of time shared basic, but it was not a dual cpu model cabinet. It was running a time shared basic environment. Perhaps the "TIME-SHARING EXECUTIVE" mentioned in the [http://oscar.taurus.com/~jeff/2100/family/family.html sales brochure]?

TimRiker acquired a bunch of [http://rikers.org/gallery/hardware old HP hardware] including an [http://rikers.org/gallery/hardware-hp2116a HP-2116A] that he is in process of restoring. Check the [http://rikers.org/gallery/hardware Gallery] for pictures and updates as work progresses.

The system config as best recollected:

  • HP-2114 style cover with 16 connected touch switches
  • mounted in a rack mount cabinet
  • 32k of RAM installed split 5/5/3/3 or similar for the 2 CRTs, card reader and teletype
  • [http://www.pdp8.net/asr33/asr33.shtml ASR-33 teletype] with punch tape reader (writer?)

  • 1 text crt terminal
  • 1 "graphics" terminal (honeywell? I remember it had a graphics character set with a toggle button)
  • 2? disk drives. (type? 8" floppy? drum?
  • card reader
  • line printer
  • external tape punch was not connected.

Here are some useful links:

Hacking HOWTO:

  • install SIMH above and start "hp2100"

  • load the hp basic sources: "LO basic1.abs"

  • jump into basic "GO 100"

  • input a simple program like this one "forever":

    10 DEF FNA(X)=ATN(TAN(ATN(TAN(ATN(TAN(ATN(TAN(ATN(TAN(X))))))))))
    20 DEF FNB(X)=FNA(FNA(FNA(FNA(FNA(FNA(FNA(FNA(FNA(FNA(FNA(X)))))))))))
    30 DEF FNC(X)=FNB(FNB(FNB(FNB(FNB(FNB(FNB(FNB(FNB(FNB(FNB(X)))))))))))
    40 DEF FND(X)=FNC(FNC(FNC(FNC(FNC(FNC(FNC(FNC(FNC(FNC(FNC(X)))))))))))
    50 DEF FNE(X)=FND(FND(FND(FND(FND(FND(FND(FND(FND(FND(FND(X)))))))))))
    60 DEF FNF(X)=FNE(FNE(FNE(FNE(FNE(FNE(FNE(FNE(FNE(FNE(FNE(X)))))))))))
    80 PRINT FNF(1)
    90 END
  • list the program: "LIST"

  • then run it: "RUN"

  • note that on real hardware this silly deeply nested program could take a very long time to finish. On a 1G ppc debian linux box with SIMH 3.3.1-1 it takes about a half hour and then prints 1. :)

  • Here's a more useful program I whipped up that graphs trig functions

    100 REM TRIG BY TIM RIKER <TIM@RIKERS.ORG>
    110 LET X1=-3.2
    120 LET X2=3.2
    130 LET X3=.1
    140 LET Y1=-1.5
    150 LET Y2=1.5
    160 LET Y3=(Y2-Y1)/70
    170 LET X4=(-X1)/X3
    200 FOR X0=0 TO (X2-X1)/X3
    210 LET X=X1+(X3*X0)
    220 LET S0=INT(((SIN(X)-Y1)/Y3)-.5)
    230 LET C0=INT(((COS(X)-Y1)/Y3)-.5)
    240 LET T0=INT(((TAN(X)-Y1)/Y3)-.5)
    250 LET Y0=INT(((0-Y1)/Y3)-.5)
    300 FOR Y=0 TO 70
    310 IF Y=T0 THEN 520
    320 IF Y=S0 THEN 540
    330 IF Y=C0 THEN 560
    340 IF Y=Y0 THEN 580
    350 IF X0=X4 THEN 600
    500 PRINT " ";
    510 GOTO 700
    520 PRINT "T";
    530 GOTO 700
    540 PRINT "S";
    550 GOTO 700
    560 PRINT "C";
    570 GOTO 700
    580 PRINT "X";
    590 GOTO 700
    600 PRINT "Y";
    700 NEXT Y
    710 PRINT ""
    720 NEXT X0
    999 END

emulator progress

I grabbed the sources from:

and the perl assembler from:

patched 22255-08.txt thusly:

-     STBFAD2    SAVE ADDRESS
-     P WCONT    MOVE IN AND PROCESS
+      STB BFAD2    SAVE ADDRESS
+      JMP WCONT    MOVE IN AND PROCESS

and asm21 thusly:

-    } elsif ($str =~ s/^([a-zA-Z.?%\#\$][0-9a-zA-Z.?%\/=\#\$]*)//) {
+    } elsif ($str =~ s/^([a-zA-Z.?%\#\$\&\[\/@\^\!][0-9a-zA-Z.?%\/=\#\$\&\[\/@\^\!]*)//) {

and compiled them up. I can load the binary in simh. I need to start it with g 30000 which should then prompt for slot info, but it can't find the terminal. Here's the relevant source code:

PTSBS CLC 0        TURN OFF ALL DEVICES
      LIA 1        LOAD I/O ADDRESS OF TTY
      AND .63      MASK TO LOWER 6-BITS
      STA B        PUT ADDRESS IN B-REGISTER
      ARS,ARS      SHIFT TO BITS (5-3)
      ARS
      SZA          I/O ADDRESS >7?
      JMP ZGO      YES-INITIALIZE PREPARE BASIC TTY
* 
      HLT 55B      INVALID I/O ADDRESS HALT
      JMP PTSBS    TRY AGAIN

I'm not sure what to put as the tty address. The MUX in simh defaults to slot 40. While I'm sure that look obvious to some, it's not to me. :)) More info in the docs:

RikerWiki: FirstComputer (last edited 2014-02-26 18:47:12 by TimRiker)