Size: 5601
Comment:
|
Size: 5811
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 36: | Line 36: |
* 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 |
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]?
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:
http://kmt.hku.nl/~hans/pdf_files/hp2114c.pdf <- large pdf brochure
http://d116.com/vcf/east/1.0/ - see hp2114a.jpg
http://oscar.taurus.com/~jeff/2100/ <- pictures, even some software!
http://bitsavers.org/pdf/hp/21xx/ <- many of the manuals in pdf format
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.
http://www.bitsavers.org/pdf/hp/21xx/poyner1.htm <- article about the history
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
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 recursive 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:
- STB BFAD2 SAVE ADDRESS - JMP WCONT MOVE IN AND PROCESS + STBFAD2 SAVE ADDRESS + P 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: