From grisha@athena.mit.edu Thu Nov 4 10:24:46 EST 1993 Article: 447 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!gatech!howland.reston.ans.net!spool.mu.edu!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!athena.mit.edu!grisha From: grisha@athena.mit.edu (Crystobal J. Junta) Newsgroups: alt.folklore.computers,alt.sys.pdp8 Subject: Re: The FOCAL interpreter - more problems Date: 1 Nov 1993 12:27:13 GMT Organization: Massachusetts Institute of Technology Lines: 14 Distribution: world Message-ID: <2b2vb1$h3j@senator-bedfellow.MIT.EDU> References: <2anou4$p76@samba.oit.unc.edu> <1993Oct28.140429.8373@news.uiowa.edu> <1993Oct29.152857.29424@ifi.informatik.uni-stuttgart.de> <1993Oct31.115333.29222@nomina.lu.se> NNTP-Posting-Host: w20-575-37.mit.edu Xref: samba.oit.unc.edu alt.folklore.computers:49865 alt.sys.pdp8:447 Since it has been established that there are problems with 1. Line numbering 2. Functions (or lack thereof) 3. Parenthesis 4. I/O, perhaps we should define some sort of FOCAL standard - I think we as FOCAL fans at this time have the ultimate authority to do so. Some feel that we have to use FOCAL 1969 as a standard. Well, then would anyone please post an accurate description of 1969 language before each of us starts hacking the interpreter in question to extend it our own way. Also, a question - what are the decent pdp8 emulators, and where can I find one? -C.J.Junta From jones@pyrite Thu Nov 4 10:25:41 EST 1993 Article: 448 of alt.sys.pdp8 Newsgroups: alt.folklore.computers,alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!vixen.cso.uiuc.edu!moe.ksu.ksu.edu!hobbes.physics.uiowa.edu!news.uiowa.edu!news From: jones@pyrite (Douglas W. Jones,201H MLH,3193350740,3193382879) Subject: Re: The FOCAL interpreter - more problems Sender: news@news.uiowa.edu (News) Message-ID: <1993Nov1.150943.23647@news.uiowa.edu> Date: Mon, 1 Nov 1993 15:09:43 GMT References: <2b2vb1$h3j@senator-bedfellow.MIT.EDU> Nntp-Posting-Host: pyrite.cs.uiowa.edu Organization: University of Iowa, Iowa City, IA, USA Lines: 200 Xref: samba.oit.unc.edu alt.folklore.computers:49873 alt.sys.pdp8:448 >From article <2b2vb1$h3j@senator-bedfellow.MIT.EDU>, by grisha@athena.mit.edu (Crystobal J. Junta): > .... Well, then would anyone please post an > accurate description of 1969 language before each of us starts > hacking the interpreter in question to extend it our own way. What follows is a uuencoded copy of the FOCAL 1969 paper tape. To use it, you need a PDP-5, or any model of PDP-8, with 4K of memory, a paper tape reader (high or low speed) and a BIN loader. An emulator that can emulate a paper-tape reader will do just as well as the real machine. This tape consists of two consecutive BIN format load images, preceeded, followed, and separated by binary leader. To load it into memory, start by loading the BIN loader, then mount the paper tape on the appropriate tape reader (high speed or low speed reader, depending on how your BIN loader is configured), and then: Start the bin loader. It will stop after loading image number 1. Start the bin loader again. It will stop after loading image number 2. Start the program at address 0200. It will begin with a dialog asking you whether you want to keep the trig functions or turn the space they occupy over to more user code. (Note that, being a core memory machine, FOCAL stays loaded once you load it, whether the power fails or not. Most FOCAL users would only go through the above once in a blue moon. begin 644 focal.bin M@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("` M@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(!"`$`!+`,L`Q8# M``0`"P$`-``````````C.!D/```\`AH-`````!0'``````````$`````&@\` M```````C.`````!`+````````#\P&@\++!0,%CX6-@`!`@T````%```"#`(' M`@,#'P(*`@T\`C\``BX_`3X`/S`!/P`/`C\_/CP_`C`](#T2/3,_/3\[/S<` M/P(`(``0&!$M+PTP`#(`&2`:!AD@&@\0#Q0'!1$--00_!1P%+!(\%0(+#`<1 M%#41+105`P(2(A,P!`L-#PT;$!T')`<`$#(7%D$^(SD^""T^"1\8$C@!&0`8 M%@H6&`L*%24I"1H8"!@R"1H8%R4J)2<`.P0\)28J#P(J&A`E)B4F"1H8#Q@0 M)24('1@+)3`E,2LR*CD0%B4L"10(-3X@)38(,!@(&#((-QP()3`\""4E)28( M-@D./B`J,"4U)2XI/R4@!@D,$CPH*3\8$@@2.`$J&@``)3`(-@D*/B@K$A@> M)SD()P,Z""8^("4V""""$( M(0@+!!`&`P8,"@(*`ST#$@0&'0HN`3\-,S,Q.B`8+A@6)2<+.0$^$"XJ%B4@ M#`,(-B4B"BTE*1`>.`$E&0P+J`B4@#@LE&"H#$!8E)24G#`,'.R4I*ALE M)24L"#<8*BH$"#\D,S@@"#\E*24E*@0".B4L)2TE-@@P&`@8,@@W'`@("!@7 M)#09`!`6)24E*24G`#X*.24F*CL(,#@!&`@8,B4J)2<`.0HY)28K!@``/"@( M-C@A&#D/#!,,&`H,"CT(*R`(.3X@*Q0("@\,&#D,.1@Y+#D3##L`+PPD*S@` M,STS&BLF,S(8)C`!+1X``#`F,!8P(2LO.@`O+`H["C@7(`L""CD",0L*`B4" M(@(A`B,")`(@`BP".P(-)30"(@(-)388,B4F)24E*`\W*A8(-@$2"#$8,24E M)2@/-RH6*A$E,BH?"#$8+B8P#`L8,28O)"L;#P@P&!@(&#@A"!D_*"HQ#!@X M(0@Q/B@K!0@8"#@J(1`G#@$(&0@%.2$("SX0)38(&0@X&!D(,1P8$!@+#QP8 M$!@D!P4?-!@``"TA"!@8"0P)."$+#SX@*BP0&!`8+2$```@V"0P^("\/)24K M$#T0/0<``!````````@V"0T^(!,;"#8+%A@L""P_""\;"#8+%S\H$QLO&R0' M"Q@C*#,8```;&!@D+1X)'Q@2#`L8.2PY"B$*&@HI"B88*@HK"BL&"`8,```( M+"4B""TE(@@N)2(*`24B)248+24T*A`08\*"H-"1,N#```"#-`HT.`$!!PHS&C0P`2X^&Q8` M`#H@"Q88-S`!"`X^("L;,`(K(@D3&#<0#@D%&"\X(`HS&`@X`!P($"\K*1@< M"C,:-0HS&C0X(#`F"0$E*24K$!(,$CPH*S\8-PD!)2DE*24K"#\E*0D6&2HI M/P@R/B`J#`@(."$(%S\`+B$**24I"`@8.3@`$#(J(@PY`1()`SX@*A\X(!@R M."`("!@(##D!`1@Q+B$5&`PY`0$(!CX@*A@<.2H9`QP(,!@8"!DX(0@8/B@M M(0P8&PX+#1@/&!`E)24I)24E*24E)2D0&`P8)PPE)24I$!@D!P08```E&`@_ M)2D(.`D)"!@J*Q0B&0T``"@I6@8``````RT&#P,!#"PQ.38Y/PUC.!'38=```Z(!LR+A,G&A,R+APD!S8=!AX6'0``+APK`BL2 M*PXG#@@E/"@E-C\()"DD!S```K%00,&3=L````&QP(*B4O`1(8 M&@@:."$\*`L6&QT(*CPH*B$!$AL;"QT+&ST(*A@Z(`@:&QLX(`@;/0`Z``@: M/0@J,PL6/0`Z``L7&#D/&0@Y&QX(.3@A&#D+%1<>#QX+&#\(*C4?'A`Y*Q$7 M'A`;.@`(*CXH*RX+'0@;/2`K+0L;/0`Z`#@A"!LX(1@:"!L(&CXH*R,(&C@! M/P@)!2,>$!HK`PD")2DK`S@@"QX;'BHJ``4_.@`'/S8Q*#$L```````````G M&A,=+QXN`#@@"!L8&Q,<*RLX(!L<*PL,#"L+.@`G&@D")2D2``P,(QX3'"LR M."`;'"LS```()1@H""4_""0I+SEN````&"88)!@E&"<;#!@H"#8*-#PH*A`) M"3X@*A$X(!@H)C8(-@HU/B@J$"(7+@````@V"C(^*"X7)3$N%RHG""P;"R(W M$PP^("4V)C8J&`@V"0H_""X7"#8*,S\@+A<(-@$2*B`\.SPF/14](` M/P@J/0H#/P`J-2,O$Q(J,2H[."`((!@@)Q,3$BHX$A,N$P@@/P`K!`@D/P`N M$RL&""0_``H#/R`N$P@@&"0((1@E""(8)@@C&"0$``!`H)"DG)Q`G+P$((3XH)38((#@A.`$C M%#\`(RLG*",!+Q,T`0``""08)`D4`"4((3\`."`8*`@E/"@O)C\()"D((3PH M+R8O%#40.QTZ,3HN.@```#L`"",X(1@C""(X(#P8.0$8(@@A."`\&#D!&"$O M*P``""@_""0I+SMZ````/"@N`!HL&BL*+QHM.0`*+#@(&BP**SP0*A`Y``HN M.`@:*Q(M*@@*+#@(&BT.`#@A"BH:+`HM.0`.+!XL$BPX!`HK#BP>+#P0+@`2 M+!8L+@`J)CD"```````````_-#\I```:`!HL"C`:+3P()1`00>!`\@,3`["08@ M*!(%*3(N.2PR+C0L,BXT``!>`#\-'AH$*`0/(#(N,CL4("(3"0X%+"`##Q,) M#@4``%X.(!\B.P0/(#$P.PD&("@2!2DR+C4[$@``7AD_#1XB!#(3(!@&/2TQ M.R`2``!>(3\-'B@%&A,@&`8],```7B<_#1X[%"@!(!(%.PD@*!(%+3`9!1,I M(#$P+C4L,3`N-#4L,3`N-0``7CH_#1\$%"T@$P44(!(%/2TQ.Q(``%\#/PT? M$10R"08@*!(%+3`.#RDQ,"XV+#$P+C@``%\0/PT?*!0\%"`A(A`,!0$3!2`! M#A,7!1(@)QD%$R<@#Q(@)PX/)R`B.P<@,3`N-```7R<_#0``%1`3!10@$@4] M,3L2``!?+S\-/!2`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("` M@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("` B@`````````````````````#__P````````````````#0_X"` ` end From magnus@thep.lu.se Thu Nov 4 10:42:25 EST 1993 Article: 449 of alt.sys.pdp8 Newsgroups: alt.folklore.computers,alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!pipex!sunic!news.lth.se!news.lu.se!magnus From: magnus@thep.lu.se (Magnus Olsson) Subject: Re: The FOCAL interpreter - more problems Message-ID: <1993Nov1.155322.12239@nomina.lu.se> Sender: news@nomina.lu.se (USENET News System) Nntp-Posting-Host: dirac.thep.lu.se Organization: Dept. of Theoretical Physics, Lund University, Lund, Sweden References: <2b2vb1$h3j@senator-bedfellow.MIT.EDU> <1993Nov1.150943.23647@news.uiowa.edu> Date: Mon, 1 Nov 1993 15:53:22 GMT Lines: 21 Xref: samba.oit.unc.edu alt.folklore.computers:49877 alt.sys.pdp8:449 In article <1993Nov1.150943.23647@news.uiowa.edu>, Douglas W. Jones,201H MLH,3193350740,3193382879 wrote: >From article <2b2vb1$h3j@senator-bedfellow.MIT.EDU>, >by grisha@athena.mit.edu (Crystobal J. Junta): > > >What follows is a uuencoded copy of the FOCAL 1969 paper tape. To use >it, you need a PDP-5, or any model of PDP-8, with 4K of memory, a paper >tape reader (high or low speed) and a BIN loader. An emulator that can >emulate a paper-tape reader will do just as well as the real machine. Could anybody please recommend such an emulator for Unix? I've seen lots of emulators around, but not being acquainted with the real thing I have some difficulty deciding which of them are good and which aren't. Magnus Olsson | \e+ /_ Department of Theoretical Physics | \ Z / q University of Lund, Sweden | >----< magnus@thep.lu.se, thepmo@selund.bitnet | / \===== g PGP key available via finger or on request | /e- \q From jpk@Ingres.COM Thu Nov 4 10:42:51 EST 1993 Article: 450 of alt.sys.pdp8 Newsgroups: alt.folklore.computers,alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!emory!europa.eng.gtefsd.com!uunet!decwrl!decwrl!rtech!ingres!jpk From: jpk@Ingres.COM (Jon Krueger) Subject: Re: FOCAL - some more questions Message-ID: <1993Nov1.205919.23550@pony.Ingres.COM> Lines: 12 Reply-To: jpk@Ingres.COM (Jon Krueger) Organization: Ingres Corporation, a subsidiary of The ASK Group, Inc. References: <1993Oct19.161828.5467@nomina.lu.se> <2a1m9o$b4j@senator-bedfellow.mit.edu> <1993Oct20.151252.17762@nomina.lu.se> <2anou4$p76@samba.oit.unc.edu> Date: 1 Nov 93 20:59:19 GMT Xref: samba.oit.unc.edu alt.folklore.computers:49893 alt.sys.pdp8:450 Charles Lasner writes: > Perhaps we need a definitive spec for just what FOCAL actually is. I can see it now ... ANSI FOCAL :-) -- Jon -- Jon Krueger jpk@ingres.com The intention was not omissional. From jhhl@panix.com Thu Nov 4 10:43:16 EST 1993 Article: 451 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!emory!europa.eng.gtefsd.com!news.ans.net!cmcl2!panix!not-for-mail From: jhhl@panix.com (Henry Lowengard) Newsgroups: alt.sys.pdp8 Subject: Re: Playing Music (Was: MUCAL) Date: 1 Nov 1993 20:17:18 -0500 Organization: PANIX Public Access Internet and Unix, NYC Lines: 22 Message-ID: <2b4ceu$hi1@panix.com> References: <2ahp6l$e4d@panix.com> <1993Oct26.142913.4309@news.uiowa.edu> NNTP-Posting-Host: panix.com In <1993Oct26.142913.4309@news.uiowa.edu> jones@cs.uiowa.edu writes: >From article <2ahp6l$e4d@panix.com>, by jhhl@panix.com (Henry Lowengard): >> The best we high school students came up with was 2 part, but we made >> an 'autobooting' tape which played Bach's prelude #2 .... >If anyone has any of these old paper tapes, I'd dearly love to try to >run them! Please, hunt them up if you have them! > Doug Jones > jones@cs.uiowa.edu Sorry Mr. Jones: The highschool went Macintosh a few years ago, the college went to pdp11 and then Vax. Although I have one tape, I'm not sure what's on it! (pointers to emulator sources please??? I have a NeXT and would love to fake up the panel etc.!) jhhl @ panix.com -- +---------------------------------------------------------------------------+ | jhhl @panix.com Henry Lowengard 43 W16 #2D NYC 10011-6320 USA | +---------------------------------------------------------------------------+ From jhhl@panix.com Thu Nov 4 10:43:46 EST 1993 Article: 452 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!darwin.sura.net!udel!news.intercon.com!panix!not-for-mail From: jhhl@panix.com (Henry Lowengard) Newsgroups: alt.sys.pdp8 Subject: Re: RIM (was: MUCAL) Date: 1 Nov 1993 20:20:37 -0500 Organization: PANIX Public Access Internet and Unix, NYC Lines: 21 Message-ID: <2b4cl5$i6b@panix.com> References: <2ahp6l$e4d@panix.com> <1993Oct26.143118.4420@news.uiowa.edu> NNTP-Posting-Host: panix.com In <1993Oct26.143118.4420@news.uiowa.edu> jones@cs.uiowa.edu writes: >From article <2ahp6l$e4d@panix.com>, by jhhl@panix.com (Henry Lowengard): >>> one output line.) >> >> Now, I used to be able to do the RIM loader sight unseen in a few seconds,, >> but I'm surprised it hasn't shown up in signatures here. >> (that's a subtle request for an addition to the FAQ) [RIM loader code deleted] Thank you!!!!!!!!!!!!!!!!! My fingers know it - I've forgotten! Now all I need is a sound file of the teletype's various noises - reading tapes, punching holes , RUBOUT!, linefeed... for an accurate simulation! (not really) jhhl @ panix.com -- +---------------------------------------------------------------------------+ | jhhl @panix.com Henry Lowengard 43 W16 #2D NYC 10011-6320 USA | +---------------------------------------------------------------------------+ From jones@pyrite Thu Nov 4 10:44:11 EST 1993 Article: 453 of alt.sys.pdp8 Newsgroups: alt.config,alt.sys.pdp8 Path: samba.oit.unc.edu!concert!xanth.cs.odu.edu!lll-winken.llnl.gov!sundance.llnl.gov!fastrac.llnl.gov!usenet.ee.pdx.edu!news.reed.edu!batcomputer!caen!math.ohio-state.edu!howland.reston.ans.net!europa.eng.gtefsd.com!uunet!news.uiowa.edu!news From: jones@pyrite (Douglas W. Jones,201H MLH,3193350740,3193382879) Subject: Re: What about alt.lang.focal? Sender: news@news.uiowa.edu (News) Message-ID: <1993Nov2.203427.27519@news.uiowa.edu> Date: Tue, 2 Nov 1993 20:34:27 GMT References: <1993Nov2.155633.28415@nomina.lu.se> Nntp-Posting-Host: pyrite.cs.uiowa.edu Organization: University of Iowa, Iowa City, IA, USA Lines: 14 Xref: samba.oit.unc.edu alt.config:19325 alt.sys.pdp8:453 >From article <1993Nov2.155633.28415@nomina.lu.se>, by magnus@thep.lu.se (Magnus Olsson): > Considering the amount of traffic on the wonderful [well... :-)] old > programming lagnuage FOCAL on alt.sys.pdp8 and alt.folklore.computers, > I'd like to propose a new newsgroup on the altnet: > > alt.lang.focal. While the traffic about FOCAL has been more than I ever expected to see, it hasn't in any way interfered with the normal conduct of business in alt.sys.pdp8, and I see no need to introduce another newsgroup for the language. Doug Jones jones@cs.uiowa.edu From dave@esi.COM.AU Thu Nov 4 10:45:11 EST 1993 Article: 454 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!inxs.concert.net!taco!lll-winken.llnl.gov!uwm.edu!math.ohio-state.edu!cs.utexas.edu!uunet!munnari.oz.au!metro!news.ci.com.au!eram!dave From: dave@esi.COM.AU (Dave Horsfall) Newsgroups: alt.config,alt.sys.pdp8 Subject: Re: What about alt.lang.focal? Message-ID: <4785@eram.esi.COM.AU> Date: 3 Nov 93 06:38:06 GMT References: <1993Nov2.155633.28415@nomina.lu.se> Followup-To: alt.config Organization: Pacific ESI, Sydney, AUSTRALIA Lines: 6 X-Disclaimer: "Me, speak for us?" X-Witty-Saying: "Mobius strip - see other side for instructions" Xref: samba.oit.unc.edu alt.config:19343 alt.sys.pdp8:454 As one who used FOCAL many years ago, I would love to see it! Let's see who can create a self-replicating FOCAL program... -- Dave Horsfall (VK2KFU) VK2KFU @ VK2RWI.NSW.AUS.OC PGP 2.3 dave@esi.COM.AU ...munnari!esi.COM.AU!dave available From lasner@sunSITE.unc.edu Thu Nov 4 10:49:05 EST 1993 Article: 455 of alt.sys.pdp8 Path: samba.oit.unc.edu!sunSITE!lasner From: lasner@sunSITE.unc.edu (Charles Lasner) Newsgroups: alt.sys.pdp8 Subject: Re: FOCAL - some more questions Date: 4 Nov 1993 15:22:08 GMT Organization: University of North Carolina, Chapel Hill Lines: 29 Message-ID: <2bb6n0$j65@samba.oit.unc.edu> References: <2anou4$p76@samba.oit.unc.edu> <1993Oct28.140429.8373@news.uiowa.edu> NNTP-Posting-Host: calypso.oit.unc.edu In article , Greg Ewing wrote: > >Where can one get this from? I have a crazy idea for an adventure >game with an embedded fully-functional PDP-8, and a genuine language >implementation from the period would be just the thing to go with it. > >Are there any other pieces of PDP-8 software around? A BASIC and/or >operating system would be neat. All of the PDP-8 items requested are in the process of being added to sunsite. The only problems left (other than cranking it out into files of appropriate formats and all the other librarian-type stuff, etc.) is that unless you already have a bootable PDP-8 system, it's difficult to get one up, unless someone mails you the relevant media. I have solved the problem of getting Kermit-12 up though: Assuming you have an OS/8 system up already, you use ODT to type up some short programs that you then use to download the Kermit-12 binaries from a (cross your fingers!) clean connection, such as a null modem to another machine, etc. The result is a starter version of Kermit-12 which is robust enough to use to get the rest of the files, etc. But without snail mail help, some people are stuck to get started (unless they are going to emulate the whole thing!). cjl From lasner@sunSITE.unc.edu Thu Nov 4 10:49:16 EST 1993 Article: 456 of alt.sys.pdp8 Path: samba.oit.unc.edu!sunSITE!lasner From: lasner@sunSITE.unc.edu (Charles Lasner) Newsgroups: alt.sys.pdp8 Subject: Re: The FOCAL interpreter - more problems Date: 4 Nov 1993 15:41:44 GMT Organization: University of North Carolina, Chapel Hill Lines: 38 Message-ID: <2bb7ro$jo0@samba.oit.unc.edu> References: <2b2vb1$h3j@senator-bedfellow.MIT.EDU> <1993Nov1.150943.23647@news.uiowa.edu> NNTP-Posting-Host: calypso.oit.unc.edu In article <1993Nov1.150943.23647@news.uiowa.edu>, Douglas W. Jones,201H MLH,3193350740,3193382879 wrote: >From article <2b2vb1$h3j@senator-bedfellow.MIT.EDU>, >by grisha@athena.mit.edu (Crystobal J. Junta): > >> .... Well, then would anyone please post an >> accurate description of 1969 language before each of us starts >> hacking the interpreter in question to extend it our own way. It's real dangerous to have some revisionist version of a FOCAL-like language because each quirk really matters. It's even more serious than the differences you find in C implementations, etc. > >This tape consists of two consecutive BIN format load images, preceeded, >followed, and separated by binary leader. The reason for this is that Rick Merrill decided to split the source code up into FOCAL.ZZM and FLOAT.ZZM. (His naming convention is to start at .ZZZ and newer edits go backwards!) Each can be assembled separately, and there are only a few global equates from one to the other. FLOAT is mostly the floating point interpreter and input output routines while FOCAL is the language interpreter, etc. >(Note that, being a core memory machine, FOCAL stays loaded once you >load it, whether the power fails or not. Most FOCAL users would only go >through the above once in a blue moon. This is only true for paper-tape users, which eventually were in the minority. Most serious users of the -8 could run at least P?S/8 from a DECtape and in fact ran OS/8 from a DECtape, RX01/02 or RK8E or other disk such as the DSD-240 half-removable cartridge disk, etc. cjl From jones@cs.uiowa.edu Sat Nov 6 12:34:49 EST 1993 Article: 457 of alt.sys.pdp8 Newsgroups: alt.folklore.computers,alt.sys.pdp8 Path: samba.oit.unc.edu!concert!xanth.cs.odu.edu!news.larc.nasa.gov!lerc.nasa.gov!usenet.ins.cwru.edu!howland.reston.ans.net!vixen.cso.uiuc.edu!moe.ksu.ksu.edu!hobbes.physics.uiowa.edu!news.uiowa.edu!news From: jones@cs.uiowa.edu Subject: Re: The FOCAL interpreter - more problems Sender: news@news.uiowa.edu (News) Message-ID: <1993Nov4.163318.7769@news.uiowa.edu> Date: Thu, 4 Nov 1993 16:33:18 GMT References: <1993Nov3.210618.9107@vpnet.chi.il.us> Nntp-Posting-Host: pyrite.cs.uiowa.edu Organization: University of Iowa, Iowa City, IA, USA Lines: 31 Xref: samba.oit.unc.edu alt.folklore.computers:50016 alt.sys.pdp8:457 >From article <1993Nov3.210618.9107@vpnet.chi.il.us>, by cgordon@vpnet.chi.il.us (gordon hlavenka): > > It seems to me that it was actually "A=10", "B=11", etc., similar to > Hexadecimal notation. Someday I'll put FOCAL,1969 back on my 8e and > try it. Having FOCAL 1969 handy, running on an emulator on my workstation, here's the definitive answer, cut and pasted from the window where I ran it: --- cut CONGRATULATIONS!! YOU HAVE SUCCESSFULLY LOADED 'FOCAL,1969' ON A PDP-8 COMPUTER. SHALL I RETAIN LOG, EXP, ATN ?:YES PROCEED. *T 0A,0B,0C," ... ",0X,0Y,0Z,! = 1.0000= 2.0000= 3.0000 ... = 24.0000= 25.0000= 26.0000 *T 0AA,0K,! = 11.0000= 11.0000 * --- cut So, it wasn't like hex at all. The second example above makes it clear that FOCAL is of only limited use for text processing! Doug Jones jones@cs.uiowa.edu From grisha@athena.mit.edu Sat Nov 6 12:35:02 EST 1993 Article: 458 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!rutgers!att-out!att!linac!uchinews!vixen.cso.uiuc.edu!uwm.edu!cs.utexas.edu!math.ohio-state.edu!sol.ctr.columbia.edu!news.kei.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!athena.mit.edu!grisha From: grisha@athena.mit.edu (Crystobal J. Junta) Newsgroups: alt.config,alt.sys.pdp8 Subject: Re: What about alt.lang.focal? Message-ID: <2b89qc$7ll@senator-bedfellow.MIT.EDU> Date: 3 Nov 93 12:56:44 GMT References: <1993Nov2.155633.28415@nomina.lu.se> Followup-To: alt.config Organization: Massachusetts Institute of Technology Lines: 10 NNTP-Posting-Host: m1-142-6.mit.edu Xref: samba.oit.unc.edu alt.config:19388 alt.sys.pdp8:458 In article <1993Nov2.155633.28415@nomina.lu.se>, magnus@thep.lu.se (Magnus Olsson) writes: |> Considering the amount of traffic on the wonderful [well... :-)] old |> programming lagnuage FOCAL on alt.sys.pdp8 and alt.folklore.computers, |> I'd like to propose a new newsgroup on the altnet: |> |> alt.lang.focal. |> Yes!!!!!!!!!! Sure!!!!!!! Great idea!!! I am all for it!!! From grisha@athena.mit.edu Sat Nov 6 12:35:19 EST 1993 Article: 459 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!rutgers!att-out!att!linac!uchinews!vixen.cso.uiuc.edu!uwm.edu!cs.utexas.edu!math.ohio-state.edu!magnus.acs.ohio-state.edu!usenet.ins.cwru.edu!eff!news.kei.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!athena.mit.edu!grisha From: grisha@athena.mit.edu (Crystobal J. Junta) Newsgroups: alt.folklore.computers,alt.sys.pdp8 Subject: Re: FOCAL - some more questions Message-ID: <2b89rb$7ll@senator-bedfellow.MIT.EDU> Date: 3 Nov 93 12:57:15 GMT References: <1993Oct19.161828.5467@nomina.lu.se> <2a1m9o$b4j@senator-bedfellow.mit.edu> <1993Oct20.151252.17762@nomina.lu.se> <2anou4$p76@samba.oit.unc.edu> <1993Nov1.205919.23550@pony.Ingres.COM> Organization: Massachusetts Institute of Technology Lines: 7 NNTP-Posting-Host: m1-142-6.mit.edu Xref: samba.oit.unc.edu alt.folklore.computers:50118 alt.sys.pdp8:459 In article <1993Nov1.205919.23550@pony.Ingres.COM>, jpk@Ingres.COM (Jon Krueger) writes: |> Charles Lasner writes: |> |> > Perhaps we need a definitive spec for just what FOCAL actually is. |> |> I can see it now ... ANSI FOCAL :-) And why not? :-) From cgordon@vpnet.chi.il.us Sat Nov 6 12:35:36 EST 1993 Article: 460 of alt.sys.pdp8 Newsgroups: alt.folklore.computers,alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!umn.edu!spool.mu.edu!howland.reston.ans.net!pipex!uunet!amiserv!vpnet!cgordon From: cgordon@vpnet.chi.il.us (gordon hlavenka) Subject: Re: The FOCAL interpreter - more problems Message-ID: <1993Nov3.210618.9107@vpnet.chi.il.us> Organization: Vpnet - Public Access Unix and Usenet References: <2anou4$p76@samba.oit.unc.edu> <1993Oct28.140429.8373@news.uiowa.edu> <1993Oct29.152857.29424@ifi.informatik.uni-stuttgart.de> <1993Oct31.115333.29222@nomina.lu.se> Date: Wed, 3 Nov 1993 21:06:18 GMT Lines: 16 Xref: samba.oit.unc.edu alt.folklore.computers:50129 alt.sys.pdp8:460 Magnus Olsson wrote: > >Also, which is more important, the interesting "letters as digits" >feature of FOCAL doesn't seem to work. I'm of course referring to the >fact that all letters except 'E' should be interpreted as digits, so >that 'A'=1, 'B'=2 and so on, and that it should be possible to use >numerical literals such as "0YES" and "0NO". It seems to me that it was actually "A=10", "B=11", etc., similar to Hexadecimal notation. Someday I'll put FOCAL,1969 back on my 8e and try it. -- ---------------------------------------------------- Gordon S. Hlavenka cgordon@vpnet.chi.il.us Proud father of Daniel Scott born August 9, 1993 From ar045@yfn.ysu.edu Mon Nov 8 11:38:51 EST 1993 Article: 461 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!usenet.ins.cwru.edu!news.ysu.edu!yfn.ysu.edu!ar045 From: ar045@yfn.ysu.edu (Chad R. Knupp) Newsgroups: alt.sys.pdp8 Subject: HELP: SUPERCOMPUTER OS NEEDED Date: 5 Nov 1993 20:45:08 GMT Organization: St. Elizabeth Hospital, Youngstown, OH Lines: 15 Message-ID: <2bee0k$8er@news.ysu.edu> Reply-To: ar045@yfn.ysu.edu (Chad R. Knupp) NNTP-Posting-Host: yfn.ysu.edu I know this post probably doesn't follow the topic of this group well...however, I'm posting to a lot of places in the hopes of finding a few people. I'm looking for people who can give me some info on OS9 and/or VRTX, both are supercomputer os's written by Microware. I need a # to Microware and/or a place to buy both of the affor mentioned products. Also, maybe someone has some info on Applied Inteligence Systems... I'm looking to purchase a virtual memory extention bus... I need to know what kind of drivers it requires and what kind of hardware is needed. If you work for either company or have been a customer, please contact me asap. Thanx much for your time. --cHad Knupp From xb302@city.ac.uk Mon Nov 8 11:40:28 EST 1993 Article: 462 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!agate!doc.ic.ac.uk!cs.city.ac.uk!city!xb302 From: xb302@city.ac.uk (VENESS J) Subject: When is PC incremented? Message-ID: <1993Nov7.011523.26620@city.ac.uk> Summary: Question asking in what major state in the PC incremented Keywords: PDP, PDP-8, PC, JMS Sender: news@city.ac.uk (Unix Network News) Nntp-Posting-Host: euston Organization: The City University X-Newsreader: TIN [version 1.2 PL2] Date: Sun, 7 Nov 93 01:15:23 GMT Lines: 44 Hello (-; This is my first posting to this group so allow me to introduce myself. My name is John Veness, and as my final year BSc Computer Science project here at Royal Holloway, University of London, I'm writing a Structural Simulator of a PDP-8 with Graphical User Interface (so it says 'ere ;). Hi to my tutor, Adrian Johnstone, if he's reading btw! I'm writing it in C, using Motif. Now my question. As I'm doing a *structural* simulator, I want it to be as close to the actual -8 hardware as possible. I've got Intro to Programming and a copy of user manuals (PDP-8/L and /A) and I've read the FAQs and WHAT-IS-A-PDP8 and I've noticed an inconsistency in the documentation as to when exactly (ie which major state - Fetch, Defer, or Execute) the Program Counter is incremented. In Intro to Programming, the PC is said to *always* contain the address of the next instruction to be executed (my emphasis). In the PDP-8/L users manual it says that after the instruction is transferred from the address pointed to by the PC, and after the opcode is transferred to the IR, the PC is incremented by one. So these two both agree that the PC is incremented practically straightaway after used to fetch the instruction currently being executed. The thing that struck me was what about Memory Reference Instructions which use addresses on the current page? Specifically what about an MRI instruction on the last word (offset 0177) on a page? The current page is defined in the PDP-8/A manual as the page containing the instruction being *executed*, as determined by bits 0-4 of the PC (my emphasis - bit's 0-4 are the high bits). If the PC is always pointing to the *next* instruction to be executed, then this contradicts that, in the case where the instruction is at the end of a page boundary (as bits 0-4 of the PC will be one greater than they should). Also, in the PDP-8/L manual, the documentation of JMS says that the contents of the PC are written into the address designated by the instruction, and then that address is loaded into the PC. Considering that JMS stores the address one after the JMS instruction into the address given in the instruction, this says that PC is incremented before it is stored there. But saying that the PC is then set to that address, implies that the PC is incremented *after* that, as control passes to the instruction *after* the address designated by the instruction. I hope I've made my confusion clear! Can any1 tell me what the correct situation is? John 'Pelago' Veness From cgordon@vpnet.chi.il.us Mon Nov 8 11:40:43 EST 1993 Article: 463 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!rutgers!usc!howland.reston.ans.net!europa.eng.gtefsd.com!uunet!amiserv!vpnet!cgordon From: cgordon@vpnet.chi.il.us (gordon hlavenka) Newsgroups: alt.folklore.computers,alt.sys.pdp8 Subject: Re: The FOCAL interpreter - more problems Message-ID: <1993Nov7.080135.21416@vpnet.chi.il.us> Date: 7 Nov 93 08:01:35 GMT References: <1993Nov3.210618.9107@vpnet.chi.il.us> <1993Nov4.163318.7769@news.uiowa.edu> Organization: Vpnet - Public Access Unix and Usenet Lines: 14 Xref: samba.oit.unc.edu alt.folklore.computers:50316 alt.sys.pdp8:463 In article <1993Nov4.163318.7769@news.uiowa.edu>, wrote: > >*T 0A,0B,0C," ... ",0X,0Y,0Z,! >= 1.0000= 2.0000= 3.0000 ... = 24.0000= 25.0000= 26.0000 >*T 0AA,0K,! >= 11.0000= 11.0000 >* I stand corrected. -- ---------------------------------------------------- Gordon S. Hlavenka cgordon@vpnet.chi.il.us Proud father of Daniel Scott born August 9, 1993 From jones@pyrite Mon Nov 8 11:41:20 EST 1993 Article: 464 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!emory!europa.eng.gtefsd.com!howland.reston.ans.net!math.ohio-state.edu!hobbes.physics.uiowa.edu!news.uiowa.edu!news From: jones@pyrite (Douglas W. Jones,201H MLH,3193350740,3193382879) Subject: Re: When is PC incremented? Sender: news@news.uiowa.edu (News) Message-ID: <1993Nov8.002846.22898@news.uiowa.edu> Date: Mon, 8 Nov 1993 00:28:46 GMT References: <1993Nov7.011523.26620@city.ac.uk> Nntp-Posting-Host: pyrite.cs.uiowa.edu Organization: University of Iowa, Iowa City, IA, USA Lines: 16 >From article <1993Nov7.011523.26620@city.ac.uk>, by xb302@city.ac.uk (VENESS J): > Now my question. ... > the PDP-8/L users manual it says that after the instruction is transferred > from the address pointed to by the PC, and after the opcode is transferred > to the IR, the PC is incremented by one. Looking at Figure 3.8 of the PDP-8/E Processor Maintenance Manual, in TS1, the PC is incremented, but MA (the memory address register) holds the value of PC prior to increment. Then, TS2 and TS3 do things, and finally, in TS4, the MODIFY CPMA stuff happens, during which bits of MA may be transferred to CPMA to build the operand address. Enough? Doug Jones jones@cs.uiowa.edu From grisha@athena.mit.edu Fri Nov 12 11:16:03 EST 1993 Article: 465 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!emory!europa.eng.gtefsd.com!howland.reston.ans.net!sol.ctr.columbia.edu!news.kei.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!athena.mit.edu!grisha From: grisha@athena.mit.edu (Crystobal J. Junta) Newsgroups: alt.sys.pdp8,alt.config Subject: alt.lang.focal Followup-To: alt.sys.pdp8 Date: 10 Nov 1993 22:03:50 GMT Organization: Massachusetts Institute of Technology Lines: 15 Distribution: world Message-ID: <2brog6$2s4@senator-bedfellow.MIT.EDU> NNTP-Posting-Host: m2-225-5.mit.edu Xref: samba.oit.unc.edu alt.sys.pdp8:465 alt.config:19472 So, shall we call for votes on the creation of alt.lang.focal? Also, on an unrelated note, anyone knows of a pdp-8 emulator in a public domain? Thanks. -- **************************************************** * Live from New York, it's Saturday Night!!! * **************************************************** * To err is human; to forgive is not our policy * **************************************************** * Grigory Golberg grisha@athena.mit.edu * **************************************************** From magnus@thep.lu.se Fri Nov 12 11:17:45 EST 1993 Article: 466 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8,alt.config,alt.folklore.computers,comp.lang.misc Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!emory!europa.eng.gtefsd.com!howland.reston.ans.net!pipex!sunic!news.lth.se!news.lu.se!magnus From: magnus@thep.lu.se (Magnus Olsson) Subject: alt.lang.focal - more thoughts (was Re: alt.lang.focal) Message-ID: <1993Nov10.231937.17535@nomina.lu.se> Followup-To: alt.config,alt.sys.pdp8 Sender: news@nomina.lu.se (USENET News System) Nntp-Posting-Host: dirac.thep.lu.se Organization: Dept. of Theoretical Physics, Lund University, Lund, Sweden References: <2brog6$2s4@senator-bedfellow.mit.edu> Date: Wed, 10 Nov 1993 23:19:37 GMT Lines: 59 Xref: samba.oit.unc.edu alt.sys.pdp8:466 alt.config:19477 alt.folklore.computers:50554 comp.lang.misc:9607 In article <2brog6$2s4@senator-bedfellow.mit.edu>, Crystobal J. Junta wrote: >So, shall we call for votes on the creation of alt.lang.focal? That's not required. It would be needed to create a mainstream group comp.lang.focal, but somehow I don't think the interest in Focal is quite big enough to warrant a comp.lang.* group... :-) So my proposal is to create an altnet group instead. All that is needed for creating such a group is that it be discussed on alt.config in advance, which condition has been fulfilled. I'd just like to point out a few things: My intention in proposing the group was not to relieve alt.sys.pdp8 from an excessive amount of Focal-generated traffic. As has been pointed out, the number of Focal posts hasn't been so big that it's disturbed the normal traffic of alt.sys.pdp8. However, I think that alt.sys.pdp8 isn't the ideal newsgroup for discussing Focal, especially since people who're interested in Focal but not in PDP-8's will probably never get the idea to look in this newsgroup for posts about Focal! Also, I think that having a special group for Focal will stimulate interest in the language and generate more traffic. This is one of the rationales for the existance of alt.lang.teco and alt.lang.intercal, both of which are extremely low-volume groups. I'm aware that this reasoning is frowned at on the mainstream Usenet, where groups are supposed to be created because there already is a lot of traffic on a topic, not because somebody hopes that the traffic will be generated. It is clear that the traffic on Focal so far does not warrant a mainstream comp.lang.focal. But this is altnet, where slightly different rules apply. Since the proposal is completely serious and the group has been discussed on alt.config, it would be OK to issue a newgroup message now. However, before I do that, I'd like to ask you all a question: Provided the group is created, should we encourage the posting of source code related to Focal (i.e. either Focal code or source for Focal interpreters?). I think we should, since such code would be a bit too marginal to post on comp.sources.misc, and might drown in the general noise on alt.sources. But I'd like to have your views on this. Bottom line: if no serious objections are voiced _on alt.config_ within the next few days, I'll send out a newgroup message early next week. Happy Hacking! Magnus Olsson | \e+ /_ Department of Theoretical Physics | \ Z / q University of Lund, Sweden | >----< magnus@thep.lu.se, thepmo@selund.bitnet | / \===== g PGP key available via finger or on request | /e- \q From bennett@scm.dsto.gov.au Fri Nov 12 11:18:14 EST 1993 Article: 467 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!xanth.cs.odu.edu!lll-winken.llnl.gov!uwm.edu!cs.utexas.edu!uunet!munnari.oz.au!foxhound.dsto.gov.au!fang.dsto.gov.au!dstos3.dsto.gov.au!bennett From: bennett@scm.dsto.gov.au Newsgroups: alt.folklore.computers,alt.sys.pdp8 Subject: Re: FOCAL - some more questions Date: 11 Nov 93 09:44:28 +1030 Organization: Defence Science and Technology Organisation Lines: 9 Distribution: world Message-ID: <1993Nov11.094428.1@scm.dsto.gov.au> References: <1993Oct19.161828.5467@nomina.lu.se> <2a1m9o$b4j@senator-bedfellow.mit.edu> <1993Oct20.151252.17762@nomina.lu.se> <2anou4$p76@samba.oit.unc.edu> <1993Nov1.205919.23550@pony.Ingres.COM> <2b89rb$7ll@senator-bedfellow.MIT.EDU> NNTP-Posting-Host: dstos3.dsto.gov.au Xref: samba.oit.unc.edu alt.folklore.computers:50578 alt.sys.pdp8:467 > |> Charles Lasner writes: > |> > Perhaps we need a definitive spec for just what FOCAL actually is. > |> I can see it now ... ANSI FOCAL :-) It shouldn't be hard to standardise - wasn't DEC the only implementor ? Regards, John Bennett bennett@scm.dsto.gov.au From lasner@sunSITE.unc.edu Fri Nov 12 21:07:20 EST 1993 Article: 468 of alt.sys.pdp8 Path: samba.oit.unc.edu!sunSITE!lasner From: lasner@sunSITE.unc.edu (Charles Lasner) Newsgroups: alt.sys.pdp8 Subject: Re: FOCAL - some more questions Date: 13 Nov 1993 02:07:46 GMT Organization: University of North Carolina, Chapel Hill Lines: 220 Message-ID: <2c1fhi$ol4@samba.oit.unc.edu> References: <1993Oct19.161828.5467@nomina.lu.se> <1993Nov1.205919.23550@pony.Ingres.COM> <2b89rb$7ll@senator-bedfellow.MIT.EDU> <1993Nov11.094428.1@scm.dsto.gov.au> NNTP-Posting-Host: calypso.oit.unc.edu In article <1993Nov11.094428.1@scm.dsto.gov.au>, wrote: >> |> Charles Lasner writes: >> |> > Perhaps we need a definitive spec for just what FOCAL actually is. >> |> I can see it now ... ANSI FOCAL :-) > >It shouldn't be hard to standardise - wasn't DEC the only implementor ? Well.... It depends on how you look at it: The original FOCAL is the product of the twisted mind of Richard Merrill, or Rick Focal as some people refer to him :-). He released two different versions of it, the original usually known as FOCAL, 8/68, which is somewhat incompatible with later versions, and FOCAL, 1969 which is usually the definitive version. All known variants do stem from these two versions, but not necessarily compatibly. Some high-schoolers produced improvements and variants on the 8/68 version that eventually were known by names such as FOCAL '73 and TAFT FOCAL. Still others produced variants on FOCAL, 1969 which led to the versions for P?S/8 and OS/8. The P?S/8 one tends to be as compatible as possible at the binary level because there is also a large amount of documentation on how to patch and customize the original 1969 version that would otherwise go to waste. The P?S/8 version is copyright me personally, and consists of an assembly language overlay to the unmodified original. Legally, DEC owns the paper-tape binary that you load before my modifications that turn it into the P?S/8 system program, so in theory, until DEC releases FOCAL, 1969, you must independently come up with your own copy of FOCAL, 1969 in binary form (presumably paper-tape which is then read into P?S/8 as a binary file, etc.) to allow the creation of the composite P?S/8 system program, etc. In general, the P?S/8 version is compatible with the original. Several routines have been rewritten to save space, such as the original SQRT function has been recoded in about 30% of the original space with more accuracy! Some of the P?S/8 modifications are to implement option switches to produce some of the more popular patches. For example, some people have posted FOCAL output showing the obnoxious "=" sign in the output. While it is true that it's cute to type up a program such as: Type 1+1 = 2.00000* The presence of the equals sign quickly gets tiresome. When you invoke the P?S/8 system program FOCAL with the /E switch set, you get the equals (for compatibility!) but the default is to remove it. (This allows FOCAL programming to format the output precisely. Look in the Programming Languages manual for some awful output examples where the presence of the equals makes no esthetic sense, etc.) There are other similar small patch option switches such as removing the input prompt character which makes it useful for batch input processing, etc. Other P?S/8 enhancements have to do with interfacing to the P?S/8 file system so that binary patch files and FOCAL source and data files can be passed to FOCAL. The assembly language patches can be created exactly as described in the prevailing documentation, and then assembled. The resulting binary files can overlay FOCAL directly, since the P?S/8 implementation also includes a binary patch loader that's compatible with the normal P?S/8 binary loader (except it cannot load areas of memory outside of FOCAL's perview, etc.). Thus, the entire thrust of P?S/8 FOCAL is to be as compatible as possible with FOCAL, 1969, but add in the utility of the O/S and avoid the drudgery of paper-tape, etc. There are various versions of derivatives of FOCAL, 1969 for OS/8, the original having been known as OMSI FOCAL. The final variant of that derivative is generally known as FOCAL F. (The binary file may be called something like FOCL.SV, etc.) (I believe the author is Jim Van Zee.) Many changes internally have been done to this FOCAL, which now requires 8K. (Note that the original and the P?S/8 version both run in 4K; there is an official 8K patch for the 4K versions, and P?S/8 is compatible with the 8K patch as well.) Access to the OS/8 file system is available, as well as many additional built-in functions. (Note: one of the most powerful features of FOCAL is that you can roll your own function add-ons in assembly language to do virtually anything. The original and P?S/8 allow this intended function, but FOCL doesn't really have as much capability in this area, as well as being fairly incompatible with the original, and largely undocumented. The original is so well documented that there are even DECUS-supported documents on how to patch and write your own add-on functions. P?S/8 FOCAL is compatible with virtually every aspect of the documentation, etc.) The source of FOCAL, 1969 was migrated to the PDP-9/15 using a brute force approach: a common utility on the PDP-9/15 called 89TRAN. (The program I believe was originally known as 8TRAN, but the later version gives some control as to what aspects of the PDP-15 are/are not taken advantage of. PDP-9 code can run in page mode on the PDP-15, but PDP-15 bank mode code cannot run on a PDP-9, etc.) Thus, the implemented language should be fairly close to the PDP-8 original. There exists a variant of FOCAL expressly for the PDP-12 and the DIAL-MS operating system called FOCAL-12. It was developed by Lenny Elekman using the DIAL10 (aka PAL12) bi-lingual variant of the PAL10 PDP-10 TOPS10 PDP-8 cross-assembler. (Note: the source of FOCAL-12 is not assemblable on the PDP-12! This is because the DIAL-MS assembler is not compatible enough with PAL12! The later OS/8 product aka PAL12 is somewhat closer to being compatible and can assemble the source with a few changes, but the only known PDP-8 method to assemble the original source without modifications is to use the P?S/8 PAL assembler with the bi-lingual option switch set. In that mode, the P?S/8 assembler not only assembles normal PDP-8 code using two's complement arithmetic where necessary, it also becomes a LINC assembler for 10-bit segment addressing and one's complement arithmetic. FOCAL-12 is written largely in LINC mode to accomodate the PDP-12 hardware, etc.) The binary output obtained by assembling FOCAL-12 must be loaded into DIAL-MS where it runs as a normal user binary program. Once loaded, Library commands can be used to access DIAL-MS files. (Note: P?S/8 supports certain display overlay packages that are somewhat compatible with the related syntax of FOCAL-12, i.e., the analogous functions of FOCAL-12 were used as a model for the display function patches for P?S/8 FOCAL, thus in part, FOCAL-12 documentation also explains the P?S/8 version when used that way, etc.) The starting point for FOCAL-12 was FOCAL, 1969, so, putting aside the PDP-12 and DIAL-MS specific augmentations, the language is pretty much the same. FOCAL-12 also corrects a minor bug in the "ASK" command of FOCAL, 1969. A dubious project later at DEC produced FOCAL-8. FOCAL-8, in spite of what might be thought about it, consists merely of FOCAL, 1969 with the following changes/additions: 1) A reprinted manual, using the then current new cover style. 2) Patches to the portions of FOCAL concerned with configuring it for various computers. 3) The afore-mentioned fix to the "ASK" command code taken from FOCAL-12. (Of the three areas, #1 is clearly the most useful :-). Note: the equivalent of the FOCAL-12 derived fix is contained in the P?S/8 FOCAL implementation. Basically, the problem involves making the code one word longer, thus making FOCAL-8 not as binary-compatible with FOCAL, 1969 as could be achieved. (The affected page becomes mostly an address off, etc.) However, by cleverly recoding another routine on the same page, said routine becomes one word shorter. Thus, the net effect of introducing the optimization and bug fix is to occupy the same amount of space. The entire sequence is about 20-odd words long to implement the fix to the binary of FOCAL, 1969 and is now standard in P?S/8 FOCAL. Thus, it wasn't necessary to make the binary of FOCAL-8 incompatible with FOCAL, 1969, yet this is what was done!) The model-dependent patches are a curiousity in themselves: The original FOCAL, 1969 can run on a PDP-5 by discovering that the CPU was a -5 and self-patching the interrupt handler, etc. It can also run on an 8/s by avoiding the instructions only available in later models. Since FOCAL, 1969 was introduced before the 8/e, only prior models are identified, although it runs fine on any 8/e,f,m,a system except for mis-identifying the machine as a PDP-8. All other models of PDP-8 are specifically called out: PDP-8, 8/i, 8/l, LINC-8, -12, and a special-case where the machine has an AX08 attached to it changes the name to LAB-8, and makes some of the built-in functions work for the AX08. However, FOCAL-8 only runs on 8/e or newer! Most, but not all of the model-checking is excised out, but not in a straight-forward way, since there is also a hidden agenda or two: a) DEC actually sold a patch to FOCAL-8 known as the "FOCAL-8 Family of -8" patch. What this did was merely to restore the original capability of FOCAL, 1969! (Note: FOCAL, 1969 was distributed free to -8 purchasers, but the FOCAL-8 patch cost extra to accomplish the same thing!) b) In an incredibly sneaky manner, the model-check code in FOCAL-8 includes an unorthodox check for the DCC-112 series of computers, sold by Digital Computer Controls (later a division of Data General). These computers were serious competition to the PDP-8 and actually in some cases run faster than the 8/e (but have positive bus, not Omnibus). The way the sneaky code works is it references two instructions by adding them together, then adding on a fudge-factor constant to the sum, produces an OPR-class instruction which is then stored in-line and executed. Depending on the results of the way the AC changes, the code decides whether or not the CPU is allegedly one of the DCC models. If not, the code proceeds normally to startup the rest of FOCAL in the normal manner. However, if the CPU is discovered to be a DCC machine, certain important pointers are clobbered so that as programs are loaded later, FOCAL will tend to self-destruct! The effect is cumulative, so that minor testing will seem to work, yet significent program loading will tend to shred the code as the stack pointer points to code instead of free space! Since the OPR instruction that starts this operation isn't in the binary, and the temporary location where it's executed is overlayed long before the rest of FOCAL is operational, it's virtually impossible to find this nasty test. (This may be the earliest documented "computer virus"!) Additionally, the listing file sold by DEC for FOCAL-8 uses XLIST in the area of the sneaky code, so the listing is deliberately obscuring only this small portion of the code. The listing is cleverly showing a dodge: some seemingly innocent code is generated where the sneaky code goes, however, examination of the binary shows the origin setting backs up and there is double-loading in the affected areas. The binary in memory is as I described it, not as the listing indicates! (The listing shows the first binary load, but the sneaky code is the second binary load, thus overlaying the first code. Using BITMAP of P?S/8 or OS/8 plainly shows double-loading in the affected area when you read in the paper-tape of FOCAL-8, etc.) (Somewhere, I have a source file I wrote up, which plainly shows all of the binary differences between FOCAL-8 and FOCAL, 1969, which are otherwise minimal. You assemble the short file, and then load FOCAL, 1969 followed by the binary derived from this source file, and the result is the FOCAL-8 binary, including the sneaky patch. My original intent in producing the file was to help eliminate that "ASK" code bug, but the file also shows someone's less than honorable intentions, etc. in writing the model-testing code; there is no useful purpose served in making FOCAL self-destruct!) I will leave it to others to describe the FOCAL-11 variations, which I understand are quite substantial. (But could merely be function differences, not language differences!) cjl From steveq@swifty.dap.CSIRO.AU Mon Nov 15 18:18:14 EST 1993 Article: 469 of alt.sys.pdp8 Newsgroups: alt.folklore.computers,alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!darwin.sura.net!europa.eng.gtefsd.com!uunet!munnari.oz.au!mel.dit.csiro.au!its.csiro.au!dmssyd.syd.dms.CSIRO.AU!steveq From: steveq@swifty.dap.CSIRO.AU (Stephen Quigg) Subject: : FOCAL - The King of Sumaria (game) Message-ID: Sender: news@syd.dms.CSIRO.AU Nntp-Posting-Host: swifty.dap.csiro.au Organization: CSIRO, Division of Applied Physics, Sydney References: <2anou4$p76@samba.oit.unc.edu> <1993Oct28.140429.8373@news.uiowa.edu> <2au2s4$bir@samba.oit.unc.edu> Date: Sun, 14 Nov 1993 21:41:41 GMT Lines: 141 Xref: samba.oit.unc.edu alt.folklore.computers:50768 alt.sys.pdp8:469 Here's a "real" FOCAL program. It comes from volume 2 of "Programming Languages" (1970). I typed it in by hand, so there may still be a typo in it, but what I've given you is a session run on my '8/E, ie the program DOES run. For those of you running FOCAL on an '8, Load FOCAL-8 without extended functions, then load "King of Sumeria". I did this using a comms program called PROCOMM; I simply did an ASCII transfer after setting up a delay after each line sent to allow FOCAL time to digest it. The session that follows was captured under the "log" feature of PROCOMM. I have some other FOCAL games etc on paper tape. Now that I have the means to get stuff out to the "real" world, I'll try to post some more soon. Cheers, Steve Quigg. PS There's a few PDP-8 enthusiasts here in OZ, but the alt.sys.pdp8 newsgroup doesn't seem to get in or out of the country; all we get is stuff that was cross-posted, that seems to then filter back into alt.sys.pdp8 once it gets here. ------------------------------------------------------------------------------ King of Sumaria ABSTRACT: The "King of Sumaria" is a game which challenges your ability to forsee the consumer market. Hamurabi, your servant, will state the following facts about last year, and you must decide the number of acres you will need, and how many bushels of grain you expect to distribute as food. You will base your decisions on these facts. 1. Number of people who died of starvation. 2. Number of new people who came to the city. 3. Number of acres owned by the city. 4. Number of bushels harvested per acre. 5. Total number of bushels that were harvested. 6. Number of bushels that were destroyed. 7. Number of bushels currently in storage. Then, based on your decisions, Hamurabi will state a new report of the above information. WRITE ALL C-FOCAL,1969 01.10 S P=95;S S=2800;S H=3000;S E= 200;S Y=3;S A=1000;S I=5;S Q=1 02.10 S D=0 02.20 D 6;T !!!"LAST YEAR"!D," STARVED, 02.25 T !I," ARRIVED,";S P=P+I;I (-Q)2.3 02.27 S P=FITR(P/2);T !"**PLAGUE**"! 02.30 T !"POPULATION IS"P,!!"THE CITY OWNS 02.35 T A," ACRES."!!;I (H-1)2.5;T "WE HARVESTED 02.40 D 3.2 02.50 T !" RATS ATE "E," BUSHELS, YOU NOW HAVE 02.60 T !S," BUSHELS IN STORE."! 03.10 D 6; D 8;S Y=C+17;T "LAND IS TRADING AT 03.20 T Y," BUSHELS PER ACRE;";S C=1 03.30 D 4.3;A " BUY?"!Q;I (Q)7.2,3.8 03.40 I (Y*Q-S)3.9,3.6;D 4.6;G 3.3 03.50 D 4.5;G 3.3 03.60 D 3.9:G 4.8 03.70 S A=A+Q;S S=Y*Q;S C=0 03.80 A !"TO SELL?"!Q;I (Q)7.2,3.9;S Q=-Q;I (A+Q)3.5 03.90 S A=A+Q;S S=S-Y*Q;S C=0 04.10 T !"BUSHELS TO USE 04.11 A " AS FOOD?"!Q;I (Q)7.7;I (Q-S)4.2,4.7;D 4.6;G 4.1 04.20 S S=S-Q;S C=1 04.30 A !"HOW MANY ACRES OF LAND DO YOU WISH TO 04.35 A !"PLANT WITH SEED? "D 04.40 I (D)7.2;I (A-D)4.45;I (FITR(D/2)-S-1)4.65;D 4.6;G 4.3 04.45 D 4.5;G 4.3 04.50 D 7;T A," ACRES."! 04.60 D 7;D 2.6 04.65 I (D-10*P-1)5.1;D 7;T P," PEOPLE."!;G 4.3 04.70 D 4.2 04.80 D 6;T "YOU HAVE NO GRAIN LEFT AS SEED !!"!S D=0 05.10 S S=S-FITR(D/2);D 8;S Y=C;S H=D*Y 05.20 D 8;S E=0;I (FITR(C/2)-C/2)5.3;S E=S/C 05.30 S S=S-E+H;D 8;S I=FITR(C*(20*A+S)/P/100+1);S C=FITR(Q/20) 05.40 S Q=FITR(10*FABS(FRAN()));I (P-C)2.1;S D=P-C;S P=C;G 2.2 06.10 T !!"HAMURABI: "%5 07.10 I (C)7.2;S C=C-1;D 6;T "BUT YOU HAVE ONLY";R 07.20 D 6;T !"GOODBYE!"!!;Q 08.10 S C=FITR(5*ABS(FRAN()))+1 * * *GO HAMURABI: LAST YEAR = 0 STARVED, = 5 ARRIVED, POPULATION IS= 100 THE CITY OWNS= 1000 ACRES. WE HARVESTED= 3 BUSHELS PER ACRE; RATS ATE = 200 BUSHELS, YOU NOW HAVE = 2800 BUSHELS IN STORE. HAMURABI: LAND IS TRADING AT= 18 BUSHELS PER ACRE; HOW MANY ACRES OF LAND DO YOU WISH TO BUY? :0 TO SELL? :0 BUSHELS TO USE AS FOOD? :2000 HOW MANY ACRES OF LAND DO YOU WISH TO PLANT WITH SEED? :800 HAMURABI: LAST YEAR = 0 STARVED, = 3 ARRIVED, POPULATION IS= 103 THE CITY OWNS= 1000 ACRES. WE HARVESTED= 1 BUSHELS PER ACRE; RATS ATE = 0 BUSHELS, YOU NOW HAVE = 1200 BUSHELS IN STORE. HAMURABI: LAND IS TRADING AT= 18 BUSHELS PER ACRE; HOW MANY ACRES OF LAND DO YOU WISH TO BUY? :?01.00 @ 03.30 * From magnus@thep.lu.se Mon Nov 15 18:18:30 EST 1993 Article: 470 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8,alt.folklore.computers Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!emory!europa.eng.gtefsd.com!uunet!EU.net!sunic!news.lth.se!news.lu.se!magnus From: magnus@thep.lu.se (Magnus Olsson) Subject: alt.lang.focal newgrouped Message-ID: <1993Nov15.200145.1609@nomina.lu.se> Sender: news@nomina.lu.se (USENET News System) Nntp-Posting-Host: conny.thep.lu.se Organization: Dept. of Theoretical Physics, Lund University, Lund, Sweden References: <2brog6$2s4@senator-bedfellow.mit.edu> <1993Nov10.231937.17535@nomina.lu.se> <2buuq6$2j6@senator-bedfellow.mit.edu> Date: Mon, 15 Nov 1993 20:01:45 GMT Lines: 10 Xref: samba.oit.unc.edu alt.sys.pdp8:470 alt.folklore.computers:50808 I've just sent out a newgroup message for alt.lang.focal. Provided your News manager doesn't see any objectionable in it, the group will hopefully be created at your site within a few days. If it isn't, please let me know. Magnus Olsson | \e+ /_ Department of Theoretical Physics | \ Z / q University of Lund, Sweden | >----< magnus@thep.lu.se, thepmo@selund.bitnet | / \===== g PGP key available via finger or on request | /e- \q From magnus@thep.lu.se Mon Nov 15 18:18:47 EST 1993 Article: 471 of alt.sys.pdp8 Newsgroups: alt.lang.focal,alt.sys.pdp8,alt.folklore.computers,comp.lang.misc Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!emory!europa.eng.gtefsd.com!howland.reston.ans.net!pipex!sunic!news.lth.se!news.lu.se!magnus From: magnus@thep.lu.se (Magnus Olsson) Subject: Welcome to alt.lang.focal! Message-ID: <1993Nov15.220601.5402@nomina.lu.se> Followup-To: alt.lang.focal Sender: news@nomina.lu.se (USENET News System) Nntp-Posting-Host: dirac.thep.lu.se Organization: Dept. of Theoretical Physics, Lund University, Lund, Sweden Date: Mon, 15 Nov 1993 22:06:01 GMT Lines: 17 Xref: samba.oit.unc.edu alt.sys.pdp8:471 alt.folklore.computers:50813 comp.lang.misc:9624 Welcome to alt.lang.focal! This newsgroup is intended for the discussions of all aspects of the FOCAL programming language, and for the distribution of FOCAL programs and FOCAL related sources (such as C sources for FOCAL interpreters). If you don't get alt.lang.focal at your site, but are reading this message in another newsgroup, please wait for a few days to see if it appears, then consult your news admin. Happy hacking! Magnus Olsson | \e+ /_ Department of Theoretical Physics | \ Z / q University of Lund, Sweden | >----< magnus@thep.lu.se, thepmo@selund.bitnet | / \===== g PGP key available via finger or on request | /e- \q From coon@convex.com Tue Nov 23 14:10:21 EST 1993 Article: 472 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!darwin.sura.net!howland.reston.ans.net!cs.utexas.edu!convex!coon From: coon@convex.com (Rich Coon) Subject: HELP Message-ID: <1993Nov21.022819.1913@convex.com> Sender: usenet@convex.com (news access account) Nntp-Posting-Host: convex1.convex.com Organization: CONVEX Computer Corp, Richardson, TX USA Date: Sun, 21 Nov 1993 02:28:19 GMT X-Disclaimer: This message was written by a user at CONVEX Computer Corp. The opinions expressed are those of the user and not necessarily those of CONVEX. Lines: 22 Thanks to Ted Cantrall, I am now the proud owner of a DECmat I! Yeah! I have actually plugged it together (including an LQP02) and it all works. My only problem is I would like to run something besides COS 310. The 8'ers Ted had have WPS, some accounting, etc. but no COMP, or DDT, or macrel or PAL or any other development stuff. I'd really like to run OS/?78 and wok in macrel or PAL, but I can't even toggle in something to allow me to down load anything! Is there some kind sole out there who (if I provided teh floppies) could put a useful system on them????? Any help is apprecitated!!! Thanks in Advance, Rich Coon coon@convex.com From mbg@world.std.com Tue Nov 23 14:10:58 EST 1993 Article: 473 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!gatech!howland.reston.ans.net!usenet.ins.cwru.edu!eff!news.kei.com!bloom-beacon.mit.edu!world!mbg From: mbg@world.std.com (Megan) Subject: Re: alt.lang.focal Message-ID: Organization: The World Public Access UNIX, Brookline, MA References: <2brog6$2s4@senator-bedfellow.MIT.EDU> Date: Mon, 22 Nov 1993 07:59:19 GMT Lines: 57 grisha@athena.mit.edu (Crystobal J. Junta) writes: >So, shall we call for votes on the creation of alt.lang.focal? >Also, on an unrelated note, anyone knows of a pdp-8 emulator in >a public domain? I have one which I got from the net some months ago. I don't remember from where, but the following is the README which comes with it, it may help. - - - - - This is the source for a simple, curses-based PDP8 simulator. It was written by Neil A. B. Gray for use with his book, N.A.B Gray, "Introduction to Computer Systems," Prentice-Hall, Australia, 1987. US ISBN 0-13-480386-8 Neil tells me that it implements all of the PDP8 instruction set, including the less well-known combined opcodes. It also supports a simplified collection of I/O instructions (simulating disks and such). The code is in the public domain, but if you're going to use it, port it to X windows, or whatever, it would be nice if you credited Neil with the initial creation. Why not send him a postcard? His address is Associate Professor N. A. B. Gray Department of Computer Science University of Wollongong PO Box 1144 Wollongong NSW 2500 Australia or via email: nabg@cs.uow.edu.au *************************************************************** The files in this archive are: README this file assmblgo.c assemble and go exec8.c the simulator exec8.p pascal version of the above oldtrace8.c older version of the simulator smap.c Simple Minded Assembler Program smap.p pascal version of the above symbols trace8.c Simulator with tracing trace8.p pascal version of the above *************************************************************** From mbg@world.std.com Tue Nov 23 14:11:40 EST 1993 Article: 474 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!decwrl!world!mbg From: mbg@world.std.com (Megan) Subject: Re: alt.lang.focal Message-ID: Organization: The World Public Access UNIX, Brookline, MA References: <2brog6$2s4@senator-bedfellow.MIT.EDU> Date: Tue, 23 Nov 1993 01:52:05 GMT Lines: 12 adam@owlnet.rice.edu (Adam Justin Thornton) writes: >In article mbg@world.std.com (Megan) writes: >Sounds great, but, well, ah, where is the archive to be found? As I mentioned, I don't know where I got it from, but with the author's address in the readme file I listed, you might contact him directly (maybe he's got an even more up-to-date version). Megan Gentry From lasner@sunSITE.unc.edu Thu Nov 25 13:32:25 EST 1993 Article: 475 of alt.sys.pdp8 Path: samba.oit.unc.edu!sunSITE!lasner From: lasner@sunSITE.unc.edu (Charles Lasner) Newsgroups: alt.sys.pdp8 Subject: Re: alt.lang.focal Date: 25 Nov 1993 18:31:49 GMT Organization: University of North Carolina, Chapel Hill Lines: 271 Message-ID: <2d2tml$65a@samba.oit.unc.edu> References: <2brog6$2s4@senator-bedfellow.MIT.EDU> NNTP-Posting-Host: calypso.oit.unc.edu In article , Megan wrote: >grisha@athena.mit.edu (Crystobal J. Junta) writes: > >>So, shall we call for votes on the creation of alt.lang.focal? >>Also, on an unrelated note, anyone knows of a pdp-8 emulator in >>a public domain? > >I have one which I got from the net some months ago. I don't >remember from where, but the following is the README which comes >with it, it may help. [description deleted] Sorry, but that's not a "complete" emulator! To really be a PDP-8 emulator that "matters" you need all of the following: 1) Some means of loading/saving the contents of 4K of memory arbitrarily within the host file system. 2) Total support of any of the 4096 possible instructions, not just the most likely combinations. Real programs execute far more than the referenced program allows. (Note: PDP-8 programs do occasionally execute instructions that "make no sense" because the instructions are used to form constants. The inclusion of an innocuous micro-coded bit into an OPR instruction could form a needed constant, and the constant could be placed in line after another instruction that might skip to "protect" it. For example: SDN /SKIP ON DONE, CLEAR DONE FLAG ON RX8E L7770, SPA SNA SZL CLA /THIS CAN BE SKIPPED BUT WON'T ITSELF SKIP! This sequence clears the RX8E done flag, yet prevents problems executing the code that would follow, since the worst thing that could happen is that the AC would be cleared. (Note, the AC would already be cleared, which is why the instruction can't skip!) And the program could require the constant 7770, so instead of using an ordinary NOP (there are three of them!), the constant is executable, etc. A proper PDP-8 emulator must handle these cases correctly! 3) It must have unconditionally-compatible support for the device 03/04 console terminal. This means a glass TTY: that does CR and LF correctly, and doesn't demand ^S/^Q support from within the emulator since much of the (especially early) PDP-8 code ran from synchronized asynchronous terminals. (Meaning that the terminal's printing speed was the same as the interface baud rate. No protocol is required in that situation, just merely to tend to the interface itself, etc.) (Note also that OS/8, unlike P?S/8, is similarly deficient in this area! OS/8 has a two-page handler called KL8E which *does* handle the DC1/DC3 protocol, but its usage is optional, and further many OS/8 programs do their own output without the handler! Virtually all programs that do their own terminal I/O do not handle ^S/^Q. Contrast this with P?S/8 where *all* system programs do handle ^S/^Q correctly.) 4) PDP-8 interrupts must be handled in a realistic manner. This means that interrupts, if enabled, must cause overlap of background and foreground processing. The pitfall is that the console output flag could virtually always be up causing interrupt servicing and no effective background processing. Thus, you get all of the overhead of interrupt handling, and none of the benefits. (Note: on the DECmates, the use of device 04 interrupts is not recommended for this very reason! Essentially, when TLS is performed, it is trapped and the PDP-8 CPU doesn't run! CP memory routines are enterred that talk to the built-in video hardware to emulate the latest character outputted to the VT-220 screen; this operation could take several milliseconds, etc. Once the screen operation is finished, the PDP-8 program is re-enterred, but the console output flag is now raised! Thus, by the time the PDP-8 program runs again, the flag has magically raised in no CPU cycles! Thus, if interrupts are used, only interrupt handlers run until there is no more output to process. All of the output buffering code is wasted! Faster throughput is achieved by never using interrupts and assuming the flag is always up (which is the recommended procedure for DECmate-specific programming).) Since so many PDP-8 programs run without interrupts, a desirable feature could be to disable them, since the emulator would likely run faster that way, but interrupts are necessary for programs such as FOCAL that use them effectively, etc. The best way to implement this is that the emulator have alternate "engines" for interrupt and non-interrupt operation switchable as required. This eliminates the need to test whether interrupts should be polled; execution of the emulated ION and IOF instructions would switch engines, etc. Thus, the fastest emulation of non-interrupt code is achieved this way, and also the fastest, albeit slower, emulation of interruptible code. 5) The emulator must pass all of the diagnostics of some specific model, preferably the PDP-8/e. (There are programs that require the 8/e instruction set.) Additionally, model-dependent quirks must be handled carefully, so that programs that check for this are satisfied. Thus, a proper emulator of a PDP-8/e mustn't handle certain operate cases the way a DCC-112 would, since that would make FOCAL-8's DCC virus-bomb code wake up and self-destruct the program! FOCAL, 1969 attempts to identify the CPU it's running on, and it would be proper to accomodate that code correctly. (Note: FOCAL, 1969 uses this code to handle problem cases such as the PDP-5 and -8/s. The rest is part of a frill of model identification. There is a bug in the code that confuses the -8/i and -8/l because it depends on an unreliable test: The -8/i, -8/l, and -12 all share a common quirk, the ability to execute NL3776, which depends on the quirk that when you rotate in both directions, the end most bits get cleared. The -12 is properly tested for LINC mode presence, thus eliminating that case, but there is no CPU check for the difference between -8/i and -8/l. Instead, the console is assumed to be 110 baud teletype! Using the TTY output flag as a "clock", a series of 6000 (I/O NOP) instructions is executed. Assuming the -8/l to be slower, then the TTY output flag will be raised by this point, unless it's an -8/i in which case it isn't raised yet. Of course the test is invalid because the console flag could raise sooner because the console is faster than 110 baud, or because the -8/i memory is tuned slower than the nominal speed of an -8/l, which is often the case. -8/l's generally used better memory that more likely satisfied their requirement for a slower machine. Earlier -8/i memory was actually inferior and generally demanded slowing the machine down to even slower than an -8/l! Thus for either reason, the test can come up wrong between these two! There is a fix I discovered which is used within P?S/8 and also in Kermit-12: The -8/l executes the instruction 7601 as a NOP contrary to all other -8 models. This is because all EAE instructions are inhibited, even this innocuous one, which will merely clear the AC on an -8/i or -12. Thus, the simple test is to load the AC and test whether it was cleared by 7601 execution. If not, it's an -8/l; all the rest of the model discovery then becomes straight-forward, etc.) 6) Additionally, it would be nice to have EAE added to the emulator. Many programs come in a form with EAE required or emulated by inefficient -8 code. Clearly emulated EAE is faster if performed by the host emulator than by emulated -8 code! Note that -8/e EAE is much more complex than -8/i,-12 EAE. (-8 EAE is a subset of -8/i EAE missing one operation that loads the step counter. To fake it, the EAE diagnostic for the -8 performs a normalize operation with a predictable step counter result, then reads it back to compare the result to the expected value. On the -8, this method must be used if the step counter must be loaded to an arbitrary value, presumably as a result of using EAE both in background and foreground and specifically in an interrupt dismissal routine, etc.) Note that EAE is specifically unavailable on all models besides the -8 and LINC-8, -8/i and -12, -8/e,f,m, or any -8/a box with the -8/e CPU cards (KK8F). Additionally the EAE of certain DCC machines is incompatible because it implements the EAE instruction set of the first PDP-8/e Handbook (1971) which was never made available by DEC. (Rumor has it that DEC published this false EAE specification as a red herring to make DCC waste its resources, then produced the larger -8/e EAE set as we know it. The DCC set implements instructions that never existed on DEC machines such as NMU (unsigned normalize), etc. while DEC implemented compatible EAE with mode B extensions such as double-precision, etc. Thus DCC EAE cannot be used on any DEC program, while any mode A program can run on any DEC machine with EAE!) 7) A useful feature would be to support the reader/punch (02/03) as a pair of files in the host system such as reader.bin and punch.bin. The reader flag would always raise in response to RFC unless at EOF. Punch output would always be appended to the punch output file as a series of 8-bit characters, etc. Assuming that the file reader.bin would be a series of 8-bit frames from the original paper-tapes, we already have a series of utilities to transfer programs in binary-paper-tape form to other systems where a host emulator could be run, such as a PC. These files are being archived on sunsite.unc.edu to form a PDP-8 diagnostic library, etc. Any system that can run the .BOO-format utilities that exist for OS/8, MS-DOS, VMS, unix, etc. can transfer PDP-8 binary files this way. Note that any OS/8 .SV program can be converted to binary using the SV2BN.SV utility and then sent via this method, etc. Using Kermit-12 on an OS/8 system, the files can be sent via Kermit to other systems, etc. ASCII files can be sent directly, binaries can be first converted to .BOO files, and image files can first be converted to binary files with SV2BN. Thus, any OS/8 file can be stored on another system as a .BIN file as long as the OS/8 system at the other end (even an emulated one!) can be used to decode the file into its original form, etc. It is note-worthy that certain systems (such as Poly Basic) are distributed on paper-tape, which when loaded causes a system to appear on an RF08, etc. Thus, the reader support is needed to create the RF08 images! This also applies to the Disk Monitor System (assuming there are masochists out there that want to run this!) which can only run on devices that can be expressed as records of 129 12-bit words such as the RF08, and is distributed on paper-tape, etc. There even exists a version of the SABR/Fortran that uses a swapping linking loader explicitly for the DF and RF version of the DMS, etc. 8) A truly useful emulator must support extended memory. 32K is standard, but support for the three additional methods should be considered. These are DEC's KT8A which allows 64K and 128K maximum modes, and the CESI MEC8 which allows 128K and 512K maximum modes. (From an emulator point of view, all CESI modes are the same; the difference is that the CESI 128K max mode is hardware compatible with the KT8A, albeit not software compatible. The CESI 512K mode requires CESI-specific memory modules DEC never made, etc. Thus, CESI programming must look for memory sizes of 32K, 64K, 96K, 128K, 256K, 384K, 512K, but all of the programming methods are identical, etc.) 9) A truly useful emulator must support a disk device, preferably one that really exists on an actual PDP-8 model. There are two preferable devices to emulate: a) The RF08 is a standard device that all PDP-8 systems support, and the maximum normal configuration is the size of a single full-size OS/8 logical device (4096 records of 256 12-bit words on 4 platters). There exists an obscure version of the RF08 that includes the DV08 option that uses up to 8 platters that can be trivially supported by OS/8. Since these are DMA devices, it is easier for the emulator to handle them, since most of the work doesn't involve cycle emulation, etc. The best way to handle RF08 emulation involves the use of an RF image file, preferably a RAM-disk. b) The MDC8 is a CESI device that is an intelligent SCSI host adaptor for the Omnibus. Coupled with SCSI controllers and drives, there exist systems with bootable hard disks of a large size, and also bootable HD 5.25" and 3.5" diskettes. Some systems even support SyQuest removable cartridge disks which are now available for up to 105 MBytes/cartridge. The emulator advantage of the MDC8 is that all of the work is normally off-loaded to an on-board micro that communicates with the -8 via DMA. Thus, the emulator can read the memory of the emulated -8 and proceed to perform the indicated SCSI command to available devices, possibly in actual form, depending on the host configuaration. (For example, a PC with an SCSI adaptor could issue the precise commands to a SyQuest drive that the actual -8 would, and cause the identical action, merely having to transfer memory data into/out of the PDP-8 memory to mimic the MDC8's DMA activity, etc. In this way, a SyQuest cartridge could be bootable both on the actual PDP-8 and also on the emulated one!) Practical configurations of MDC8 I have access to support a slight variant of the standard IBM-PC 5.25" HD diskette format. Thus, a PC-based -8 emulator could support this format as well. This allows a single diskette to be moved between an actual PDP-8 and an emulated one. (Note: newer Mac systems can support the 3.5" variant format to achieve the same level of inter-compatibility using HD diskettes, etc.) Thus, the MDC8 represents the best overall device to emulate, since it's not limited to non-dismountable devices of modest storage size, and can also support transferable media. Both the RF08 and MDC8 allow for a low-overhead emulation, etc. 10) Some people have requested graphical emulations of front panels, etc. Towards that end I would recommend something like the PDP-8 MARS panel or even the PDP-12 console, which is the most elaborate, or even the LINC-8 panel which has more registers displayed, etc. Note that most emulators will be running on machines where the underlying memory is wider than 12-bits. This allows various debugging aids to be added such as fetch trap, exec trap, write-exception, etc. Also usage counts can be added to help optimize code, etc. 11) Additional peripherals can be supported, such as fancier terminal emulations, and also analog hardware. A most useful addition would be an analog display. Assuming a PC-type machine with VGA, the VC8E could be emulated. Periodically, display elements are moved from the screen as the emulated -8 code adds them on. If fine tuning is allowed, a realistic display can be achieved. On such a system, it would be possible to play the games MOONLANDER and POLY SPACEWAR. (These programs run on the following hardware: 4K -8 with EAE, 03/04 terminal, analog display such as the VC8E, some form of pair of 4-bit input devices such as switches in parallel with the console switch register or connected to a DR-8E digital input register, etc. Perhaps someone can invent a suitable alternative for the input box, which perhaps could be implemented as an actual pair of boxes connected to the parallel printer port!) Support of the RF08 and paper-tape, coupled with emulation of the time-share trap option, allows the running of TSS8, which some people have interest in, etc. So, to make a successful emulator, it takes a bit more than the referenced program! cjl From magnus@thep.lu.se Mon Nov 29 09:43:37 EST 1993 Article: 476 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8,alt.folklore.computers,alt.lang.focal,alt.config,comp.lang.misc Path: samba.oit.unc.edu!concert!gatech!howland.reston.ans.net!pipex!sunic!news.lth.se!news.lu.se!magnus From: magnus@thep.lu.se (Magnus Olsson) Subject: Whatever became of alt.lang.focal Message-ID: <1993Nov25.211547.15702@nomina.lu.se> Followup-To: alt.sys.pdp8 Summary: Did the newgrp message really go out? Sender: news@nomina.lu.se (USENET News System) Nntp-Posting-Host: dirac.thep.lu.se Organization: Dept. of Theoretical Physics, Lund University, Lund, Sweden Date: Thu, 25 Nov 1993 21:15:47 GMT Lines: 38 Xref: samba.oit.unc.edu alt.sys.pdp8:476 alt.folklore.computers:51467 alt.config:19829 comp.lang.misc:9670 Since there seemed to be some demand for the group, I sent out a newgroup message for alt.lang.focal last week. I also posted a "welcome" message, crossposted to some other groups. The result was a bit confusing: The group promptly appeared on our NNTP server (news.ldc.lu.se). However, it didn't appear on the closest upstream site (news.lth.se). I asked the admin at that site to create it, which he did. I did get some replies to my "welcome" message by email (including a rude one from some Gothenburg student who wondered if I didn't have funnier things to do :-( ). However, the group has seen absolutely no traffic, except for my welcome message, which leads me to believe that the newgroup message never propagated out into the world. So, what I'm asking is this: has the group alt.lang.focal appeared at your site? If not, please let me know and I'll try to get a new newgroup message through... :-( Magnus (who does have a lot of more important things to do, but does this anyway, since it's fun). Magnus Olsson | \e+ /_ Department of Theoretical Physics | \ Z / q University of Lund, Sweden | >----< magnus@thep.lu.se, thepmo@selund.bitnet | / \===== g PGP key available via finger or on request | /e- \q From greg@huia.canterbury.ac.nz Mon Nov 29 09:45:23 EST 1993 Article: 477 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!wupost!waikato!canterbury.ac.nz!huia!greg From: greg@huia.canterbury.ac.nz (Greg Ewing) Subject: Re: alt.lang.focal Message-ID: Nntp-Posting-Host: huia.canterbury.ac.nz Reply-To: greg@huia.canterbury.ac.nz (Greg Ewing) Organization: University of Canterbury, Christchurch, New Zealand References: <2brog6$2s4@senator-bedfellow.MIT.EDU> <2d2tml$65a@samba.oit.unc.edu> Date: Thu, 25 Nov 1993 22:48:28 GMT Lines: 72 Hey, great! Someone shares one of my weirder interests! A few years ago I wrote a PDP-8 emulator that ran under SunView and had a nice big GUI front panel. I got as far as emulating the basic machine plus a TTY device. I had plans for a DECtape emulator complete with animation of spinning tape reels, but other activities intervened. Recent discussions here have rekindled my interest. I may be persuadable to resurrect the project - see below... |> To really be a PDP-8 emulator that "matters" you need all of the following: |> |> 2) Total support of any of the 4096 possible instructions, not just the |> most likely combinations. Well, my emulator was based on the description of what each bit in the OPR instruction was supposed to do, and didn't put any restrictions on combining them. Never having used a real 8, however, I wouldn't know about any combinations with "undocumented" effects which couldn't be deduced by reading the manual. |> 3) It must have unconditionally-compatible support for the device 03/04 |> console terminal. This means a glass TTY: that does CR and LF |> correctly, and doesn't demand ^S/^Q support from within the emulator As far as I remember it used a serial port in raw mode, and didn't do anything special with any character - is that good enough? |> 4) PDP-8 interrupts must be handled in a realistic manner. I don't remember if I got around to interrupts. I may have provided the mechanism in the emulator, but I didn't get around to implementing any interrupt-driven devices. |> 5) The emulator must pass all of the diagnostics of some specific model, If anyone can send me or point me towards a sufficiently interesting body of genuine PDP-8 software, I may be persuaded to develop an X-windows version and attempt to make it run all of the aforementioned software correctly. I am willing to make the results of such a project freely available in exchange for some neat software to run on it. Actually I'm willing to do that anyway, it's just that if I have some neat software it'll greatly increase the chance that I'll do something about it! |> 7) A useful feature would be to support the reader/punch (02/03) as a |> pair of files in the host system such as reader.bin and punch.bin. What I think I would do is have the basic emulator communicate with device emulators via pipes, so that new devices could be plugged in easily. One of the devices could be an adaptor to make a file look like a character device. |> These |> files are being archived on sunsite.unc.edu to form a PDP-8 diagnostic |> library, etc. Sounds great! Is it just diagnostics, or are there any operating systems, interpeters, games, etc. there too? |> 10) Some people have requested graphical emulations of front panels, etc. That's half the fun! Especially now that I can do it in colour... |> cjl Greg Ewing, Computer Science Dept, +--------------------------------------+ University of Canterbury, | A citizen of NewZealandCorp, a | Christchurch, New Zealand | wholly-owned subsidiary of Japan Inc.| greg@cosc.canterbury.ac.nz +--------------------------------------+ From ccs@aber.ac.uk Mon Nov 29 09:45:41 EST 1993 Article: 478 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!pipex!uknet!gdt!aber!ccs From: ccs@aber.ac.uk (Christopher Samuel) Subject: Re: Whatever became of alt.lang.focal Message-ID: <1993Nov26.104309.18372@aber.ac.uk> Organization: University of Wales - Aberystwyth - Prifysgol Cymru References: <1993Nov25.211547.15702@nomina.lu.se> Date: Fri, 26 Nov 1993 10:43:09 GMT Lines: 15 In article <1993Nov25.211547.15702@nomina.lu.se> magnus@thep.lu.se (Magnus Olsson) doodled: > has the group alt.lang.focal appeared at your site? If not, please > let me know and I'll try to get a new newgroup message through... It made it OK to Aberystwyth,Wales, it's just a shame there are no PDP-8 hackers around here to post to it.. Chris -- Christopher Samuel, Computer Unit, U.W Aberystwyth, Aberystwyth, WALES E-mail: ccs@aber.ac.uk PGP 2.3 public key available on request "Sssh! This is postmodern theory: speak too loud and you'll destroy it!" - jlk0@aber.ac.uk From U204056@HNYKUN11.URC.KUN.NL Mon Nov 29 09:45:59 EST 1993 Article: 479 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8,alt.folklore.computers,alt.lang.focal,alt.config,comp.lang.misc Path: samba.oit.unc.edu!concert!gatech!europa.eng.gtefsd.com!uunet!EU.net!sun4nl!sci.kun.nl!HNYKUN11.URC.KUN.NL!U204056 From: U204056@HNYKUN11.URC.KUN.NL Subject: Re: Whatever became of alt.lang.focal Message-ID: <16C92105FCS85.U204056@HNYKUN11.URC.KUN.NL> Sender: news@sci.kun.nl (News owner) Nntp-Posting-Host: vm.uci.kun.nl Organization: K.U. Nijmegen References: <1993Nov25.211547.15702@nomina.lu.se> Date: Fri, 26 Nov 1993 17:37:40 GMT Lines: 48 Xref: samba.oit.unc.edu alt.sys.pdp8:479 alt.folklore.computers:51522 alt.config:19841 comp.lang.misc:9673 In article <1993Nov25.211547.15702@nomina.lu.se> magnus@thep.lu.se (Magnus Olsson) writes: > > >Since there seemed to be some demand for the group, I sent out a newgroup >message for alt.lang.focal last week. I also posted a "welcome" message, >crossposted to some other groups. > > >The result was a bit confusing: > >The group promptly appeared on our NNTP server (news.ldc.lu.se). >However, it didn't appear on the closest upstream site (news.lth.se). >I asked the admin at that site to create it, which he did. > >I did get some replies to my "welcome" message by email (including a >rude one from some Gothenburg student who wondered if I didn't have >funnier things to do :-( ). > >However, the group has seen absolutely no traffic, except for my >welcome message, which leads me to believe that the newgroup message >never propagated out into the world. > >So, what I'm asking is this: > >has the group alt.lang.focal appeared at your site? If not, please >let me know and I'll try to get a new newgroup message through... > >:-( > >Magnus Unfortunately alt.lang.focal has not yet appeared here. As far as the funny things bit is concerned, why shouldn't one do things that can be fun ? I can't wait to sign in alt.lang.focal ! Paul. > >(who does have a lot of more important things to do, but does this >anyway, since it's fun). > > > Magnus Olsson | \e+ /_ > Department of Theoretical Physics | \ Z / q > University of Lund, Sweden | >----< > magnus@thep.lu.se, thepmo@selund.bitnet | / \===== g >PGP key available via finger or on request | /e- \q From U204056@HNYKUN11.URC.KUN.NL Mon Nov 29 09:46:19 EST 1993 Article: 480 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8,alt.folklore.computers,alt.lang.focal,alt.config,comp.lang.misc Path: samba.oit.unc.edu!concert!gatech!howland.reston.ans.net!pipex!sunic!EU.net!sun4nl!sci.kun.nl!HNYKUN11.URC.KUN.NL!U204056 From: U204056@HNYKUN11.URC.KUN.NL Subject: Re: PDP 8 emulator Message-ID: <16C93DB4FS85.U204056@HNYKUN11.URC.KUN.NL> Sender: news@sci.kun.nl (News owner) Nntp-Posting-Host: vm.uci.kun.nl Organization: K.U. Nijmegen References: <1993Nov25.211547.15702@nomina.lu.se> <16C92105FCS85.U204056@HNYKUN11.URC.KUN.NL> Date: Sat, 27 Nov 1993 14:35:30 GMT Lines: 14 Xref: samba.oit.unc.edu alt.sys.pdp8:480 alt.folklore.computers:51570 alt.config:19865 comp.lang.misc:9680 Much to my surprise I saw that I have the pdp8 emulation software which was discussed here some days ago an tape. As I recall there was some doubt where it came from. Well I can't tell that either but I'm quite willing, if there's still demand for it, to upload it to some ftp-site. I propose nic.funet.fi, if that's all right. I don't think I'm willing to send it out myself to all those who would like to have it, at the moment I'm to busy to do that, unless ofcourse, just one or two of you are interested in this software. Well, I'll wait until next friday to see how much demand there is. And then I'll make up my mind and post here what I'll do. bye, Paul. From mbg@world.std.com Mon Nov 29 09:47:11 EST 1993 Article: 481 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!gatech!howland.reston.ans.net!spool.mu.edu!bloom-beacon.mit.edu!world!mbg From: mbg@world.std.com (Megan) Subject: Re: alt.lang.focal Message-ID: Organization: The World Public Access UNIX, Brookline, MA References: <2brog6$2s4@senator-bedfellow.MIT.EDU> <2d2tml$65a@samba.oit.unc.edu> Date: Sun, 28 Nov 1993 19:59:54 GMT Lines: 27 I've been working on the emulator I mentioned, adding such things as producing 'assembly' listings, adding some more symbols, allowing multiple statements per line (separated by ';'). I'm currently working on allowing pc-relative (.{+|-}symbol) and 'label-relative' (label{+|-}value). Basically, I'm trying to allow the assembler front-end for the program to recognize as much of the pal8 syntax as possible. Back with I programmed -8's, we didn't have a disk and I hadn't learned how to use the assembler, so I did all of my coding by hand and toggled the programs into the 8/I directly. So I have to admit not being as knowledgable about pal8 syntax as I'm sure most here are (not to mention I didn't do any interrupt programming so didn't know how the interrupt system worked, nor did I even know about the auto-index registers - but I'm 'catching up' on this knowledge now) so I would like to ask if someone has a pal8 document on-line that they could forward. I'm also going to be looking into the emulation and see if it really does handle the microinstructions correctly. Megan Gentry Former RT-11 Developer From kherron@ms.uky.edu Mon Nov 29 09:47:26 EST 1993 Article: 482 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!gatech!howland.reston.ans.net!usenet.ins.cwru.edu!ukma!n-f-m From: kherron@ms.uky.edu (Kenneth Herron) Newsgroups: alt.config,alt.lang.focal,alt.sys.pdp8 Subject: Re: Whatever became of alt.lang.focal Followup-To: alt.lang.focal Date: 28 Nov 1993 22:21:19 -0500 Organization: University Of Kentucky, Dept. of Math Sciences Lines: 17 Message-ID: <2dbprf$bv2@s.ms.uky.edu> References: <1993Nov25.211547.15702@nomina.lu.se> NNTP-Posting-Host: s.ms.uky.edu Xref: samba.oit.unc.edu alt.config:19899 alt.sys.pdp8:482 In article <1993Nov25.211547.15702@nomina.lu.se>, Magnus Olsson wrote: |I sent out a newgroup message for alt.lang.focal last week. | |However, the group has seen absolutely no traffic, except for my |welcome message, which leads me to believe that the newgroup message |never propagated out into the world. Welcome to alt. New groups behave like that. Actually, it's not as bad as you think. We've gotten fifteen articles for the group so far. That's actually over one per day :-) -- Kenneth Herron kherron@ms.uky.edu University of Kentucky +1 606 257 1429 Dept. of Mathematics "If you ever drop your keys in a river of molten lava, let 'em go because, man, they're gone." From grisha@athena.mit.edu Mon Nov 29 09:47:37 EST 1993 Article: 483 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!gatech!howland.reston.ans.net!sol.ctr.columbia.edu!news.kei.com!bloom-beacon.mit.edu!senator-bedfellow.mit.edu!athena.mit.edu!grisha From: grisha@athena.mit.edu (Crystobal J. Junta) Newsgroups: alt.sys.pdp8,alt.folklore.computers,alt.lang.focal,alt.config,comp.lang.misc Subject: Re: PDP 8 emulator Date: 29 Nov 1993 03:59:22 GMT Organization: Massachusetts Institute of Technology Lines: 9 Distribution: world Message-ID: <2dbs2q$egk@senator-bedfellow.MIT.EDU> References: <1993Nov25.211547.15702@nomina.lu.se> <16C92105FCS85.U204056@HNYKUN11.URC.KUN.NL> <16C93DB4FS85.U204056@HNYKUN11.URC.KUN.NL> NNTP-Posting-Host: w20-575-53.mit.edu Xref: samba.oit.unc.edu alt.sys.pdp8:483 alt.folklore.computers:51661 alt.config:19901 comp.lang.misc:9691 In article <16C93DB4FS85.U204056@HNYKUN11.URC.KUN.NL>, U204056@HNYKUN11.URC.KUN.NL writes: |> |> it to some ftp-site. I propose nic.funet.fi, if that's all right. |> I don't think I'm willing to send it out myself to all those who Sure, why not. Do upload it! Thanks. From jones@cs.uiowa.edu Mon Nov 29 09:48:04 EST 1993 Article: 484 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!math.ohio-state.edu!hobbes.physics.uiowa.edu!news.uiowa.edu!news From: jones@cs.uiowa.edu Subject: Assemblers, emulators Sender: news@news.uiowa.edu (News) Message-ID: <1993Nov29.040358.26764@news.uiowa.edu> Date: Mon, 29 Nov 1993 04:03:58 GMT References: Nntp-Posting-Host: pyrite.cs.uiowa.edu Organization: University of Iowa, Iowa City, IA, USA Lines: 17 >From article , by mbg@world.std.com (Megan): > > I've been working on the emulator I mentioned, adding such things > as producing 'assembly' listings, adding some more symbols, allowing > multiple statements per line (separated by ';'). My PDP-8 assembler is now up and running reliably enough that I'll make it widely available. I've been using it to write RX01 diagnostic code, complicated enough stuff that the assembler has seen reasonable exercise. At the same time, I've been adding an RX01 to my emulator. The emulator will be released when I get a rudimentary X-windows front panel up and running-- enough that you can toggle in a RIM loader and mount files as emulated paper tapes on the high speed reader-punch. The RX01 will come later. Doug Jones jones@cs.uiowa.edu From jones@cs.uiowa.edu Mon Nov 29 09:48:22 EST 1993 Article: 485 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!math.ohio-state.edu!hobbes.physics.uiowa.edu!news.uiowa.edu!news From: jones@cs.uiowa.edu Subject: RX01 Sender: news@news.uiowa.edu (News) Message-ID: <1993Nov29.040954.26934@news.uiowa.edu> Date: Mon, 29 Nov 1993 04:09:54 GMT Nntp-Posting-Host: pyrite.cs.uiowa.edu Organization: University of Iowa, Iowa City, IA, USA Lines: 11 In attempting to write diagnostic code and an emulator for an RX01 diskette drive, I've come to wonder about the sanity of the entire design, particularly with respect to the way the RX01 supports interrupts. The interrupt at the end of the transfer of a sector between the RX01 interface and main memory seems to be a really useless feature, for example. Did any RX01 software run with interrupts enabled? Doug Jones jones@cs.uiowa.edu From jones@cs.uiowa.edu Mon Nov 29 09:51:11 EST 1993 Article: 486 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!math.ohio-state.edu!hobbes.physics.uiowa.edu!news.uiowa.edu!news From: jones@cs.uiowa.edu Subject: PDP 8 emulator standards Sender: news@news.uiowa.edu (News) Message-ID: <1993Nov29.043300.27275@news.uiowa.edu> Date: Mon, 29 Nov 1993 04:33:00 GMT Nntp-Posting-Host: pyrite.cs.uiowa.edu Organization: University of Iowa, Iowa City, IA, USA Lines: 48 With the number of "full function" emulators being developed, I wonder if we ought to try to agree on some standards. 1) A proposed standard for the core image file, saved on emulator shutdown and loaded on startup: I am using Lasner's IPL file format, with the added rule that line 1 of the file may begin with the characters #!, followed by the absolute path name of the emulator (thus allowing the system to be named and run by the name of its core image file under UNIX). I have core image files sitting around in this format containing RIM, RIM+BIN and RIM+BIN+FOCAL, and if people will agree to support this format (or any other equally sensible standard), we can exchange "core images" of our machines. Lasner's IPL format allows comments, and a nice standard use for these comments would be to indicate what devices the core image expects to be supported by its emulator. 2) A proposed standard for representations of paper tapes to be mounted on emulated high speed tape readers and punches: This is easy -- 8 bit wide by however long is needed binary files. Most emulators allready do this, it's so obvious. 3) A proposed standard for representing RX01 diskettes emulated on a host system. I'm using C streams for this, with random access to 128 byte blocks of the stream representing sectors of the disk. Sector zero of the stream is reserved. The first 4 bytes of the file must be rx01. I haven't started to deal with any uses for other bytes, but the following suggest themselves: 1) an indication of how the disk is formatted -- specifically, how are the sectors interleaved. The actual address of the sector in the file is computed by adding the sector number to the track number times the number of sectors per track, but access latency depends on the interleave factor. 2) a bit table of which sectors are "deleted". This feature of the RX01 is one I don't intend to support, but I suppose we should reserve space for the table anyway. Does it even fit in 128 bytes? Is it worth supporting? 4) And what about DECtapes? I'll tackle a DECtape format someday, and I've previously proposed a natural one -- each pair of lines on tape makes up one 6 bit data byte, with the two extra bits used to hold the mark track. Probably the file should start with the word DECtape, with the data followiing that, starting with the end-of-tape zone. It won't make for fast emulation, but it would be very high fidelity. From jeff@crash.cts.com Mon Nov 29 09:51:48 EST 1993 Article: 487 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!emory!wupost!udel!news.sprintlink.net!crash!jeff From: jeff@crash.cts.com (Jeff Makey) Subject: Re: RX01 Organization: Future Procrastinators of America Date: 28 Nov 93 22:37:58 PST Message-ID: <1993Nov28.223758.13904@crash> References: <1993Nov29.040954.26934@news.uiowa.edu> Lines: 14 In article <1993Nov29.040954.26934@news.uiowa.edu>, wrote: >The interrupt at the >end of the transfer of a sector between the RX01 interface and main memory >seems to be a really useless feature If you are writing to the disk, such an interrupt would tell you when the memory is available for some other use. If you are in a hurry, this sure beats waiting until the real I/O is done. If you are reading from the disk, it just tells you when your data is available. :: Jeff Makey Department of Tautological Pleonasms and Superfluous Redundancies Department Domain: jeff@crash.cts.com UUCP: nosc!crash!jeff From awpsys@ritvax.isc.rit.edu Tue Dec 7 18:08:38 EST 1993 Article: 488 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8,alt.folklore.computers,alt.lang.focal,alt.config,comp.lang.misc Path: samba.oit.unc.edu!concert!gatech!europa.eng.gtefsd.com!uunet!psinntp!isc-newsserver!ritvax.isc.rit.edu!AWPSYS From: awpsys@ritvax.isc.rit.edu Subject: Re: PDP 8 emulator Message-ID: <1993Nov29.142056.16470@ultb.isc.rit.edu> Sender: news@ultb.isc.rit.edu (USENET News System) Nntp-Posting-Host: vaxa-eth.isc.rit.edu Reply-To: awpsys@ritvax.isc.rit.edu Organization: Rochester Institute of Technology References: <1993Nov25.211547.15702@nomina.lu.se> <16C92105FCS85.U204056@HNYKUN11.URC.KUN.NL>,<16C93DB4FS85.U204056@HNYKUN11.URC.KUN.NL> Date: Mon, 29 Nov 1993 14:20:56 GMT Lines: 8 Xref: samba.oit.unc.edu alt.sys.pdp8:488 alt.folklore.computers:51684 alt.config:19915 comp.lang.misc:9694 I'm interesting in a PDP-8 Emulator. (Does it come with PAL-8 or other assembler?) Also. IS there a version of Focal in C or other high level language ftp-able anywhere? - Andy From jones@cs.uiowa.edu Tue Dec 7 18:10:30 EST 1993 Article: 489 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8,alt.folklore.computers,alt.lang.focal,comp.lang.misc Path: samba.oit.unc.edu!concert!gatech!howland.reston.ans.net!math.ohio-state.edu!hobbes.physics.uiowa.edu!news.uiowa.edu!news From: jones@cs.uiowa.edu Subject: PDP-8 emulator available Sender: news@news.uiowa.edu (News) Message-ID: <1993Nov29.225539.16188@news.uiowa.edu> Date: Mon, 29 Nov 1993 22:55:39 GMT Nntp-Posting-Host: pyrite.cs.uiowa.edu Organization: University of Iowa, Iowa City, IA, USA Lines: 41 Xref: samba.oit.unc.edu alt.sys.pdp8:489 alt.folklore.computers:51710 comp.lang.misc:9698 I've just put a few minutes into packaging the core of my PDP-8 emulator into an exportable form. The emulator is written in C and it should run on just about any UNIX system. It is tied fairly closely to UNIX by the character-at-a-time I/O system. As distributed, the emulator does not support any devices other than the console terminal and the high speed reader-punch. As distributed, it is configured for 4K of memory, but it can be reconfigured with up to 32K. The distribution is full of hooks for other devices. The emulator comes with no nice front-panel support -- it supports a small subset of ODT to fake up the basic front panel function, though, from the console terminal, with extensions to allow files to be mounted on the devices. There is a minimal manual included with the emulator. It, plus DEC's original documentation for the PDP-8, or perhaps, with the material in the alt.sys.pdp8 faq files, should be sufficient to use the emulator. The emulator's paper tape reader can read the .bin files produced by my PAL-subset cross assembler. Support for an X-windows based front panel is pending, as is support for other devices. All devices supported by this emulator have simulated I/O latency that should be very difficult to distinguish from real hardware from the point of view of software running on the emulator. This leads to some performance penalties, and it leads to I/O speeds that are orders of magnitude slower than you may expect from a modern system. It is particularly annoying (but educational) to deal with an emulated 110 baud teletype when you're running on a modern RISC platform. (There are, however, "jumpers" you can "cut and solder" in the emulator to change the speeds of the simulated devices! The emulator includes a 4K core image dump of FOCAL 1969 as a test program, in Lasner's .IPL format. Thus, the most important use of this emulator may be as a base on which to run FOCAL 1969. If you want it, send E-mail. I'll distribute it as a uuencoded, compressed shell archive, about 813 lines long (which is under the limit of 1000 lines that most internet mail forwarders are guaranteed to pass without truncation). Doug Jones jones@cs.uiowa.edu From greg@huia.canterbury.ac.nz Tue Dec 7 18:10:51 EST 1993 Article: 490 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!gatech!howland.reston.ans.net!agate!ames!decwrl!decwrl!waikato!comp.vuw.ac.nz!canterbury.ac.nz!huia!greg From: greg@huia.canterbury.ac.nz (Greg Ewing) Subject: Re: RX01 Message-ID: Nntp-Posting-Host: huia.canterbury.ac.nz Reply-To: greg@huia.canterbury.ac.nz (Greg Ewing) Organization: University of Canterbury, Christchurch, New Zealand References: <1993Nov29.040954.26934@news.uiowa.edu> Date: Tue, 30 Nov 1993 01:47:52 GMT Lines: 8 In article <1993Nov29.040954.26934@news.uiowa.edu>, jones@cs.uiowa.edu writes: |> The interrupt at the |> end of the transfer of a sector between the RX01 interface and main memory |> seems to be a really useless feature Not if you want to overlap processing with I/O. You start a transfer, then go away and do something else. The interrupt lets you know when the transfer is complete. From greg@huia.canterbury.ac.nz Wed Dec 8 00:19:08 EST 1993 Article: 491 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!gatech!howland.reston.ans.net!pipex!doc.ic.ac.uk!decwrl!decwrl!waikato!canterbury.ac.nz!huia!greg From: greg@huia.canterbury.ac.nz (Greg Ewing) Subject: Re: PDP 8 emulator standards Message-ID: Nntp-Posting-Host: huia.canterbury.ac.nz Reply-To: greg@huia.canterbury.ac.nz (Greg Ewing) Organization: University of Canterbury, Christchurch, New Zealand References: <1993Nov29.043300.27275@news.uiowa.edu> Date: Tue, 30 Nov 1993 02:06:57 GMT Lines: 21 In article <1993Nov29.043300.27275@news.uiowa.edu>, jones@cs.uiowa.edu writes: |> With the number of "full function" emulators being developed, I wonder if |> we ought to try to agree on some standards. |> |> 4) And what about DECtapes? I'll tackle a DECtape format someday, and |> I've previously proposed a natural one -- each pair of lines on tape |> makes up one 6 bit data byte, with the two extra bits used to hold |> the mark track. ... |> It won't make for fast emulation, but it would be very high fidelity. This sounds like a good format to use for interchange. An emulator wanting more speed could convert it to/from an internal format when the tape was mounted/unmounted. Now - are those 6-bit bytes big-endian or little-endian? We could get into quite a religious war on that one :-) Greg Ewing, Computer Science Dept, +--------------------------------------+ University of Canterbury, | A citizen of NewZealandCorp, a | Christchurch, New Zealand | wholly-owned subsidiary of Japan Inc.| greg@cosc.canterbury.ac.nz +--------------------------------------+ From greg@huia.canterbury.ac.nz Wed Dec 8 00:20:24 EST 1993 Article: 492 of alt.sys.pdp8 Newsgroups: alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!usc!wupost!waikato!canterbury.ac.nz!huia!greg From: greg@huia.canterbury.ac.nz (Greg Ewing) Subject: Emulator design Message-ID: Nntp-Posting-Host: huia.canterbury.ac.nz Reply-To: greg@huia.canterbury.ac.nz (Greg Ewing) Organization: University of Canterbury, Christchurch, New Zealand Date: Tue, 30 Nov 1993 02:58:52 GMT Lines: 45 I've been thinking about the architecture of my emulator-to-be-perhaps-maybe. I'd like to share some of my thoughts and see if any other emulator writers have any comment to make. My current idea is to run the emulator itself and each of the I/O devices as a separate process. The devices and CPU communicate through sockets by means of UDP datagrams. A suitable protocol would be devised to carry the information which passes over the I/O bus. From CPU to device, this would include the IOT instruction bits and the AC contents. The device would be able to supply data to load into the AC or cause a skip, and also have the means to request an interrupt or transfer chunks of data in or out of the memory. An optimisation will probably be necessary to keep device flags local to the CPU, so that interprocess communication isn't needed on every skip-on-flag instruction. Advantages I can see in the multiple-process architecture: - It makes the system very modular - Multi-threading seems to be a natural way to emulate pieces of hardware that operate in parallel - Devices can be plugged into/out of a running system (or was this not a recommended practice?) - Debugging a device is simplified: just attach a debugger to the device process - A crashed device won't bring down the system What do you think about this idea? If it turns out to be practical, perhaps the protocol could be developed into a net.standard so we could swap device emulators! Greg Ewing, Computer Science Dept, +--------------------------------------+ University of Canterbury, | A citizen of NewZealandCorp, a | Christchurch, New Zealand | wholly-owned subsidiary of Japan Inc.| greg@cosc.canterbury.ac.nz +--------------------------------------+ From johnv@sun.rhbnc.ac.uk Wed Dec 8 00:21:11 EST 1993 Article: 493 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!sol.ctr.columbia.edu!johnv From: johnv@sun.rhbnc.ac.uk (John E. Veness) Newsgroups: alt.sys.pdp8 Subject: Re: alt.lang.focal Date: 30 Nov 1993 20:45:52 GMT Organization: Columbia University Center for Telecommunications Research Lines: 22 Message-ID: <2dgbe0$lfs@sol.ctr.columbia.edu> NNTP-Posting-Host: lt7.cs.rhbnc.ac.uk X-Newsreader: TIN [version 1.2 PL2] mbg@world.std.com (Megan) writes: > adam@owlnet.rice.edu (Adam Justin Thornton) writes: > > >In article mbg@world.std.com (Megan) writes: > > >Sounds great, but, well, ah, where is the archive to be found? > > As I mentioned, I don't know where I got it from, but with the > author's address in the readme file I listed, you might contact > him directly (maybe he's got an even more up-to-date version). > > Megan Gentry That looked like the thing imaginatively called pdp8_sim, available in sunsite.unc.edu:/pub/academic/computer-science/history/pdp-8/emulator/ pdp8_sim.tar.Z. I got it to use the assembler in order to test *my* emulator! (-; Pel -- hmm, no .sig From dcs.rhbnc.ac.uk Wed Dec 8 00:21:40 EST 1993 Article: 494 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!darwin.sura.net!howland.reston.ans.net!sol.ctr.columbia.edu!johnv From: johnv@sun.rhbnc.ac.uk (John E. Veness) Newsgroups: alt.sys.pdp8 Subject: Re: PDP-8 emulator available Followup-To: alt.sys.pdp8 Date: 30 Nov 1993 21:09:31 GMT Organization: Columbia University Center for Telecommunications Research Lines: 15 Message-ID: <2dgcqb$mpg@sol.ctr.columbia.edu> References: <1993Nov29.225539.16188@news.uiowa.edu> Reply-To: dcs.rhbnc.ac.uk NNTP-Posting-Host: lt7.cs.rhbnc.ac.uk X-Newsreader: TIN [version 1.2 PL2] jones@cs.uiowa.edu wrote: [snip] : If you want it, send E-mail. I'll distribute it as a uuencoded, : compressed shell archive, about 813 lines long (which is under the limit : of 1000 lines that most internet mail forwarders are guaranteed to pass : without truncation). : Doug Jones : jones@cs.uiowa.edu Why not upload it to one of the ftp sites in the FAQ, like sunsite? Pel -- hmm, still no .sig From johnv@dcs.rhbnc.ac.uk Wed Dec 8 00:23:01 EST 1993 Article: 495 of alt.sys.pdp8 Path: samba.oit.unc.edu!concert!news-feed-2.peachnet.edu!darwin.sura.net!howland.reston.ans.net!sol.ctr.columbia.edu!johnv From: johnv@sun.rhbnc.ac.uk (John E. Veness) Newsgroups: alt.sys.pdp8 Subject: Group 3 OPR instructions Date: 30 Nov 1993 21:40:16 GMT Organization: Columbia University Center for Telecommunications Research Lines: 44 Message-ID: <2dgek0$mpg@sol.ctr.columbia.edu> Reply-To: johnv@dcs.rhbnc.ac.uk NNTP-Posting-Host: lt7.cs.rhbnc.ac.uk X-Newsreader: TIN [version 1.2 PL2] Well everybody seems to be writing a pdp-8 simulator! My one (for my third year CS project - I've mentioned it before) is much less advanced that many that have been discussed. It'll have an X windows interface, with a view of the front panel, as well as other views of the memory etc. At the moment I'm using a text 'snapshot' format, which is similar to the output from 'smap' in the 'pdp8_sim' packages mentioned earlier, with extensions for storing the AC, L, PC, and recently added MQ. The talk on this group about standards, and how much to simulate, are very useful for me! Anyway, my question this time is a very simple one. I've so far simulated all the MRI instructions, the group 1 OPR instructions, and the group 2 OPR instructions. I wish to add the group 3 OPRs, but I don't really have documentation on them. I have Intro to Programming, and a Intersil 6100 book, and they don't really help. The 6100 seems to have three instructions in group 3, CLA, MQL, and MQA (working out how to do the combination SWP of MQL and MQA was just a bit difficult - well, a bit more than the two separately). Anyway, I don't have any details of the EAE instructions, as the 6100 doesn't have them. I have access (through my project supervisor) to the PDP8/L and PDP8/A books, but couldn't find it in a quick glance in the /A (the /A seemed to have the same 3 instructions as the 6100). Is it worth me looking in the /L one? Or can any1 point me to a place on the net or elsewhere (ie easily found books) where I can get the info? The FAQ only lists groups 1 and 2. As a last resort, someone could type in what all the instructions are, which would be very helpful, though beyond the call of duty. (However, once it was done it could then be put in the FAQ). (-; Thanks in advance. Pel -- _ John Veness |_)_ | _, _, _ johnv@dcs.rhbnc.ac.uk | (_'|(_|(_|(_) (_)