Discussion:
[Simh] 101 Basic Games for RSTS/E (was Re: PDP11 on Simh for public access)
Tony Nicholson
2018-01-24 00:00:56 UTC
Permalink
On Tue, Jan 23, 2018 at 11:37 PM, Bryan Davies <***@gmail.com>
wrote:

[snip]

I just need to get it all in a nice neat box, connect up he VT100, and
> download some games and things for the guests to use.
>
>
Bryan (and all).

I first encountered RSTS/E in 1975 on a PDP-11/45 when I was a student when
I discovered a book "101 Basic Computer Games" with an accompanying DECtape.

Recently I tracked down a copy of the book in PDF format and an image of
the DECtape (that had to be fixed-up so that it was readable) on bitsavers .

The book is at -

http://www.bitsavers.org/pdf/dec/_Books/101_BASIC_Computer_Games_Mar75.pdf

I now have this running on RSTS/E V10.1 and RSTS V06C-03 under SIMH - after
some minor edits to fix changes to the Basic-Plus source file syntax
(spaces between keywords etc).

I've zipped-up the fixed DECtape image (DOS format) and an RL01 RSTS level
1.2 format disk image (label=GAMES) that you can copy the games from either
and run them!

The RL01 disk image is easiest (since DECtape support requires some
fiddling and correct pdp11 unibus 18-bit model selection).

In your SIMH .ini file (assuming you have sysgen'ed some RL type disks) you
can -
set rl enable
set rl0 rl01
att rl0 rl01-games.dsk

Then once RSTS/E is up as a privileged user just "MOUNT DL0: GAMES" and
look in DL0:[100,100]

The zip file is
https://drive.google.com/file/d/1IgZkafQABxWUXeuEkeq1GjkBe3sF2Zgx/view?usp=sharing

Tony
Mark Abene
2018-01-24 00:15:40 UTC
Permalink
That's great! Was this the same book by David Ahl?


On Tue, Jan 23, 2018 at 4:00 PM, Tony Nicholson <***@computer.org
> wrote:

> On Tue, Jan 23, 2018 at 11:37 PM, Bryan Davies <***@gmail.com>
> wrote:
>
> [snip]
>
> I just need to get it all in a nice neat box, connect up he VT100, and
>> download some games and things for the guests to use.
>>
>>
> Bryan (and all).
>
> I first encountered RSTS/E in 1975 on a PDP-11/45 when I was a student
> when I discovered a book "101 Basic Computer Games" with an accompanying
> DECtape.
>
> Recently I tracked down a copy of the book in PDF format and an image of
> the DECtape (that had to be fixed-up so that it was readable) on bitsavers .
>
> The book is at -
>
> http://www.bitsavers.org/pdf/dec/_Books/101_BASIC_Computer_Games_Mar75.pdf
>
> I now have this running on RSTS/E V10.1 and RSTS V06C-03 under SIMH -
> after some minor edits to fix changes to the Basic-Plus source file syntax
> (spaces between keywords etc).
>
> I've zipped-up the fixed DECtape image (DOS format) and an RL01 RSTS level
> 1.2 format disk image (label=GAMES) that you can copy the games from either
> and run them!
>
> The RL01 disk image is easiest (since DECtape support requires some
> fiddling and correct pdp11 unibus 18-bit model selection).
>
> In your SIMH .ini file (assuming you have sysgen'ed some RL type disks)
> you can -
> set rl enable
> set rl0 rl01
> att rl0 rl01-games.dsk
>
> Then once RSTS/E is up as a privileged user just "MOUNT DL0: GAMES" and
> look in DL0:[100,100]
>
> The zip file is https://drive.google.com/file/d/
> 1IgZkafQABxWUXeuEkeq1GjkBe3sF2Zgx/view?usp=sharing
>
> Tony
>
>
>
>
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
>
Paul Koning
2018-01-24 14:38:17 UTC
Permalink
> On Jan 23, 2018, at 7:00 PM, Tony Nicholson <***@computer.org> wrote:
>
> ...
> I've zipped-up the fixed DECtape image (DOS format) and an RL01 RSTS level 1.2 format disk image (label=GAMES) that you can copy the games from either and run them!

Note that a 1.2 format disk requires a sufficiently recent RSTS to use it. "flx" will produce disks in any of the three formats, though. For example, you need level 0 if you want RSTS 7 or older to make sense of the bits.

paul
Bryan Davies
2018-01-24 16:40:26 UTC
Permalink
Very many thanks for this Tony. It should be exactly what I need.

Unfortunately I've downloaded the RL zip and attached it in Simh but RSTS
won't mount it. It gives an 'Offline or Write Locked? error. I've also
tried the Writeenable switch but without success. I'll continue to
investigate but I'm posting here in case anyone else has any suggestions.



On 24 January 2018 at 00:00, Tony Nicholson <***@computer.org>
wrote:

> On Tue, Jan 23, 2018 at 11:37 PM, Bryan Davies <***@gmail.com>
> wrote:
>
> [snip]
>
> I just need to get it all in a nice neat box, connect up he VT100, and
>> download some games and things for the guests to use.
>>
>>
> Bryan (and all).
>
> I first encountered RSTS/E in 1975 on a PDP-11/45 when I was a student
> when I discovered a book "101 Basic Computer Games" with an accompanying
> DECtape.
>
> Recently I tracked down a copy of the book in PDF format and an image of
> the DECtape (that had to be fixed-up so that it was readable) on bitsavers .
>
> The book is at -
>
> http://www.bitsavers.org/pdf/dec/_Books/101_BASIC_Computer_Games_Mar75.pdf
>
> I now have this running on RSTS/E V10.1 and RSTS V06C-03 under SIMH -
> after some minor edits to fix changes to the Basic-Plus source file syntax
> (spaces between keywords etc).
>
> I've zipped-up the fixed DECtape image (DOS format) and an RL01 RSTS level
> 1.2 format disk image (label=GAMES) that you can copy the games from either
> and run them!
>
> The RL01 disk image is easiest (since DECtape support requires some
> fiddling and correct pdp11 unibus 18-bit model selection).
>
> In your SIMH .ini file (assuming you have sysgen'ed some RL type disks)
> you can -
> set rl enable
> set rl0 rl01
> att rl0 rl01-games.dsk
>
> Then once RSTS/E is up as a privileged user just "MOUNT DL0: GAMES" and
> look in DL0:[100,100]
>
> The zip file is https://drive.google.com/file/d/
> 1IgZkafQABxWUXeuEkeq1GjkBe3sF2Zgx/view?usp=sharing
>
> Tony
>
>
>
>
Paul Koning
2018-01-24 17:12:35 UTC
Permalink
> On Jan 24, 2018, at 11:40 AM, Bryan Davies <***@gmail.com> wrote:
>
> Very many thanks for this Tony. It should be exactly what I need.
>
> Unfortunately I've downloaded the RL zip and attached it in Simh but RSTS won't mount it. It gives an 'Offline or Write Locked? error. I've also tried the Writeenable switch but without success. I'll continue to investigate but I'm posting here in case anyone else has any suggestions.

On V10.1, right? I just tried it and it worked fine. Remember that you need the pack ID (which is "games") to mount the disk, unless you use the /override switch to say "mount it without pack ID check". Here's a test run:

pkoning:101-BASIC-Computer-Games pkoning$ ~/Documents/svn/flx/flx
flx> disk rl01-games.dsk
flx> ident
RSTS disk on rl01-games.dsk
Drive type: dl (rl01)
Device clustersize: 1
Device size: 10220
Device geometry: 256 / 2 / 20
Pack ID: games
Pack clustersize: 1
Revision level: 1.2
Last mount date: 24-Jan-2018
Last mount time: 09:49 AM
Pack flags: Private/system DLW
flx> ls

[0,1]
badb.sys satt.sys

[100,100]
animal.bas civilw.bas golf.bas king.bas rocket.bas stock.bas
...


pkoning:e11 pkoning$ pdp11 simu.ini

PDP-11 simulator V4.0-0 Beta git commit id: d3b6018d
sim> att rl1 -re ../../Downloads/101-BASIC-Computer-Games/rl01-games.dsk
RL: unit is read only
sim> bo rq
?
??

RSTS P10.1-L V101XM (DU0) INIT V10.1-0L


Today's date? 24-JAN-18

Current time? 12:6


Start timesharing? <Yes> NO


Option: <Start> HA LI

Name Address Vector Comments
TT0: 177560 060
RL0: 174400 160 Units: 0(RL01) 1(RL01)
RM0: 177440 210 Units: 0(RK06) 1(RK06) 2(RK06) 3(RK06) 4(RK06) 5(RK06)
6(RK06) 7(RK06)
RU0: 172150 P340 RQDX3 Units: 0(RA82) 1(RA82) 2(RD54) 3(RX50)
MU0: 174500 P344 TK50 Units: 0(TK50) 1(TK50) 2(TK50) 3(TK50)
TU0: 172440 224 BAE=+034, Units: 0(TE16 @TM03 #0) 1(TE16 @TM03 #0)
TC0: 177340 214
LP0: 177514 200
DZ0: 160100 300 Sub-lines: 8
DZ1: 160110 310 Sub-lines: 8
DZ2: 160120 320 Sub-lines: 8
DZ3: 160130 330 Sub-lines: 8
XE0: 174510 120 DELUA Address: 08-00-2B-CC-DD-EE

KW11L 177546 100
SR 177570
DR 177570

Hertz = 60.

Other: FPU, SL, 22-Bit, Data space, Cache w/address, System ID = 4660


Option: <Start>

24-Jan-18 12:06 PM

2 devices disabled

Proceed with system startup? <YES>

Beginning RSTS/E system startup...
24-Jan-18 12:06 PM Installing monitor overlays
24-Jan-18 12:06 PM Mounting disks
??Disk pack mount error
?Pack-id labels don't match
?Pack-id labels don't match
...

RSTS P10.1-L 24-Jan-18 12:06 PM
User: 1,211
Last interactive login on 04-Jan-02, 09:53 PM at KB0:
Last non-interactive login on 15-Aug-16, 01:51 PM


$ show disk

Disk Structure:
Dsk Open Size Free Clu Err Name Level Comments
DU0 21 1000000 941312 94% 16 0 V101 1.2 Pub, DLW
DU1 0 1000000 720512 72% 16 0 D 1.2 Pri, DLW
$ mount /over dl1
%Device write protected
$ show disk

Disk Structure:
Dsk Open Size Free Clu Err Name Level Comments
DL1 0 10220 8551 83% 1 0 GAMES 1.2 Pri, R-O, DLW
DU0 21 1000000 941312 94% 16 0 V101 1.2 Pub, DLW
DU1 0 1000000 720512 72% 16 0 D 1.2 Pri, DLW

$ dir dl1:[100,100]

Name .Typ Size Prot Name .Typ Size Prot DL1:[100,100]
GAMES .BAS 9 < 40> BLKJAC.ORG 17 < 40>
BOMBER.ORG 6 < 40> BOUNCE.BAS 3 < 40>
BOXING.BAS 8 < 40> BUG .BAS 13 < 40>
CHIEF .BAS 4 < 40> CHOMP .BAS 6 < 40>
CIVILW.ORG 16 < 40> CRAPS .BAS 6 < 40>
CUBE .ORG 9 < 40> DIAMND.BAS 2 < 40>
FLPFOP.ORG 5 < 40> FOOTBL.BAS 17 < 40>
FURS .BAS 12 < 40> GOLF .ORG 13 < 40>
GUESS .ORG 2 < 40> GUNNER.BAS 4 < 40>
HANG .ORG 7 < 40> HIQ .BAS 8 < 40>
HMRABI.BAS 9 < 40> HOCKEY.BAS 12 < 40>
HURKLE.BAS 3 < 40> KING .BAS 19 < 40>
LIFE .BAS 4 < 40> LITQZ .BAS 4 < 40>
MATHDI.BAS 4 < 40> MUGWMP.BAS 4 < 40>
NIM .BAS 9 < 40> HORSES.ORG 7 < 40>
POET .BAS 3 < 40> POKER .ORG 15 < 40>
ROCKET.ORG 7 < 40> ROCKT1.BAS 6 < 40>
SALVO .ORG 13 < 40> SNOOPY.BAS 7 < 40>
STARS .BAS 4 < 40> STOCK .BAS 15 < 40>
TARGET.BAS 5 < 40> 3DPLOT.BAS 1 < 40>
TOWER .BAS 8 < 40> TRAP .BAS 3 < 40>
23MTCH.BAS 3 < 40> UGLY .BAS 4 < 40>
BAGLES.BAS 5 < 40> BULEYE.BAS 3 < 40>
MADLIB.BAS 11 < 40> 1CHECK.BAS 5 < 40>
REVRSE.BAS 5 < 40> COMPIL.1ST 64 < 40>
BLKJAC.BAS 17 < 40> BOMBER.BAS 6 < 40>
CIVILW.BAS 16 < 40> CUBE .BAS 9 < 40>
FLPFOP.BAS 5 < 40> GOLF .BAS 13 < 40>
GUESS .BAS 2 < 40> HANG .BAS 7 < 40>
HORSES.BAS 7 < 40> POKER .BAS 16 < 40>
ROCKET.BAS 7 < 40> SALVO .BAS 14 < 40>
SPACWR.BAS 37 < 40> SPLAT .BAS 11 < 40>
WEKDAY.BAS 7 < 40> ZOOP .BAS 3 < 40>
ANIMAL.BAS 5 < 40> NICOMA.BAS 2 < 40>
SPACWR.ORG 37 < 40> SPLAT .ORG 11 < 40>
WEKDAY.ORG 7 < 40> ZOOP .ORG 3 < 40>
ANIMAL.ORG 5 < 40> NICOMA.ORG 2 < 40>
SHRINK.ORG 6 < 40> SHRINK.BAS 6 < 40>
COMPIL.COM 4 < 40>

Total of 694 blocks in 77 files in DL1:[100,100]

$ sw basic

Ready

old dl1:[100,100]animal

Ready

run
ANIMAL 12:06 PM 24-Jan-18
PLAY 'GUESS THE ANIMAL' WITH RSTS
THINK OF AN ANIMAL AND THE COMPUTER WILL TRY TO GUESS IT...

ARE YOU THINKING OF AN ANIMAL? yes
PLEASE RESPOND 'YES', 'NO', 'SAVE', OR 'LIST'
ARE YOU THINKING OF AN ANIMAL? YES
DOES IT SWIM? NO
IS IT A BIRD? NO
THE ANIMAL YOU WERE THINKING OF WAS A ? MOUSE
PLEASE TYPE IN A QUESTION THAT WOULD DISTINGUISH A MOUSE FROM A BIRD
? DOES IT HAVE FEATHERS?
FOR A MOUSE THE ANSWER WOULD BE? NO
ARE YOU THINKING OF AN ANIMAL? ^C
Bryan.e.davies
2018-01-24 18:17:42 UTC
Permalink
Ok thanks for the verification. I'll download and unzip again.
Attached pic is the PDP emulator on the VT100 at CCH.


-------- Original message --------
From: Paul Koning <***@comcast.net>
Date: 24/01/2018 17:12 (GMT+00:00)
To: Bryan Davies <***@gmail.com>
Cc: Tony Nicholson <***@computer.org>, SIMH <***@trailing-edge.com>
Subject: Re: [Simh] 101 Basic Games for RSTS/E (was Re: PDP11 on Simh for public access)



> On Jan 24, 2018, at 11:40 AM, Bryan Davies <***@gmail.com> wrote:
>
> Very many thanks for this Tony.   It should be exactly what I need.
>
> Unfortunately I've downloaded the RL zip and attached it in Simh but RSTS won't mount it.    It gives an 'Offline or Write Locked? error.   I've also tried the Writeenable switch but without success.   I'll continue to investigate but I'm posting here in case anyone else has any suggestions.

On V10.1, right?  I just tried it and it worked fine.  Remember that you need the pack ID (which is "games") to mount the disk, unless you use the /override switch to say "mount it without pack ID check".  Here's a test run:

pkoning:101-BASIC-Computer-Games pkoning$ ~/Documents/svn/flx/flx
flx> disk rl01-games.dsk
flx> ident
RSTS disk on rl01-games.dsk
   Drive type:         dl (rl01)
   Device clustersize: 1
   Device size:        10220
   Device geometry:    256 / 2 / 20
   Pack ID:            games
   Pack clustersize:   1
   Revision level:     1.2
   Last mount date:    24-Jan-2018
   Last mount time:    09:49 AM
   Pack flags:         Private/system DLW
flx> ls

[0,1]
badb.sys  satt.sys

[100,100]
animal.bas  civilw.bas  golf.bas    king.bas    rocket.bas  stock.bas
...


pkoning:e11 pkoning$ pdp11 simu.ini

PDP-11 simulator V4.0-0 Beta        git commit id: d3b6018d
sim> att rl1 -re ../../Downloads/101-BASIC-Computer-Games/rl01-games.dsk
RL: unit is read only
sim> bo rq
?
??

RSTS P10.1-L V101XM (DU0) INIT V10.1-0L


Today's date? 24-JAN-18

Current time? 12:6


Start timesharing? <Yes> NO


Option: <Start> HA LI

  Name  Address Vector  Comments
  TT0:   177560   060  
  RL0:   174400   160   Units: 0(RL01) 1(RL01)
  RM0:   177440   210   Units: 0(RK06) 1(RK06) 2(RK06) 3(RK06) 4(RK06) 5(RK06)
                               6(RK06) 7(RK06)
  RU0:   172150  P340   RQDX3   Units: 0(RA82) 1(RA82) 2(RD54) 3(RX50)
  MU0:   174500  P344   TK50    Units: 0(TK50) 1(TK50) 2(TK50) 3(TK50)
  TU0:   172440   224   BAE=+034, Units: 0(TE16 @TM03 #0) 1(TE16 @TM03 #0)
  TC0:   177340   214
  LP0:   177514   200
  DZ0:   160100   300   Sub-lines: 8
  DZ1:   160110   310   Sub-lines: 8
  DZ2:   160120   320   Sub-lines: 8
  DZ3:   160130   330   Sub-lines: 8
  XE0:   174510   120   DELUA Address: 08-00-2B-CC-DD-EE

  KW11L  177546   100
  SR     177570
  DR     177570

  Hertz = 60.

  Other: FPU, SL, 22-Bit, Data space, Cache w/address, System ID = 4660


Option: <Start>

24-Jan-18 12:06 PM

2 devices disabled

Proceed with system startup? <YES>

Beginning RSTS/E system startup...
24-Jan-18 12:06 PM   Installing monitor overlays
24-Jan-18 12:06 PM   Mounting disks
??Disk pack mount error
?Pack-id labels don't match
?Pack-id labels don't match
...

RSTS P10.1-L 24-Jan-18 12:06 PM
User: 1,211
Last interactive login on 04-Jan-02, 09:53 PM at KB0:
Last non-interactive login on 15-Aug-16, 01:51 PM


$ show disk

Disk Structure:
Dsk  Open    Size      Free    Clu   Err Name      Level  Comments
DU0    21 1000000  941312  94%  16     0 V101       1.2   Pub, DLW
DU1     0 1000000  720512  72%  16     0 D          1.2   Pri, DLW
$ mount /over dl1
%Device write protected
$ show disk

Disk Structure:
Dsk  Open    Size      Free    Clu   Err Name      Level  Comments
DL1     0   10220    8551  83%   1     0 GAMES      1.2   Pri, R-O, DLW
DU0    21 1000000  941312  94%  16     0 V101       1.2   Pub, DLW
DU1     0 1000000  720512  72%  16     0 D          1.2   Pri, DLW

$ dir dl1:[100,100]

Name .Typ    Size    Prot     Name .Typ    Size    Prot    DL1:[100,100]
GAMES .BAS       9   < 40>    BLKJAC.ORG      17   < 40>
BOMBER.ORG       6   < 40>    BOUNCE.BAS       3   < 40>
BOXING.BAS       8   < 40>    BUG   .BAS      13   < 40>
CHIEF .BAS       4   < 40>    CHOMP .BAS       6   < 40>
CIVILW.ORG      16   < 40>    CRAPS .BAS       6   < 40>
CUBE  .ORG       9   < 40>    DIAMND.BAS       2   < 40>
FLPFOP.ORG       5   < 40>    FOOTBL.BAS      17   < 40>
FURS  .BAS      12   < 40>    GOLF  .ORG      13   < 40>
GUESS .ORG       2   < 40>    GUNNER.BAS       4   < 40>
HANG  .ORG       7   < 40>    HIQ   .BAS       8   < 40>
HMRABI.BAS       9   < 40>    HOCKEY.BAS      12   < 40>
HURKLE.BAS       3   < 40>    KING  .BAS      19   < 40>
LIFE  .BAS       4   < 40>    LITQZ .BAS       4   < 40>
MATHDI.BAS       4   < 40>    MUGWMP.BAS       4   < 40>
NIM   .BAS       9   < 40>    HORSES.ORG       7   < 40>
POET  .BAS       3   < 40>    POKER .ORG      15   < 40>
ROCKET.ORG       7   < 40>    ROCKT1.BAS       6   < 40>
SALVO .ORG      13   < 40>    SNOOPY.BAS       7   < 40>
STARS .BAS       4   < 40>    STOCK .BAS      15   < 40>
TARGET.BAS       5   < 40>    3DPLOT.BAS       1   < 40>
TOWER .BAS       8   < 40>    TRAP  .BAS       3   < 40>
23MTCH.BAS       3   < 40>    UGLY  .BAS       4   < 40>
BAGLES.BAS       5   < 40>    BULEYE.BAS       3   < 40>
MADLIB.BAS      11   < 40>    1CHECK.BAS       5   < 40>
REVRSE.BAS       5   < 40>    COMPIL.1ST      64   < 40>
BLKJAC.BAS      17   < 40>    BOMBER.BAS       6   < 40>
CIVILW.BAS      16   < 40>    CUBE  .BAS       9   < 40>
FLPFOP.BAS       5   < 40>    GOLF  .BAS      13   < 40>
GUESS .BAS       2   < 40>    HANG  .BAS       7   < 40>
HORSES.BAS       7   < 40>    POKER .BAS      16   < 40>
ROCKET.BAS       7   < 40>    SALVO .BAS      14   < 40>
SPACWR.BAS      37   < 40>    SPLAT .BAS      11   < 40>
WEKDAY.BAS       7   < 40>    ZOOP  .BAS       3   < 40>
ANIMAL.BAS       5   < 40>    NICOMA.BAS       2   < 40>
SPACWR.ORG      37   < 40>    SPLAT .ORG      11   < 40>
WEKDAY.ORG       7   < 40>    ZOOP  .ORG       3   < 40>
ANIMAL.ORG       5   < 40>    NICOMA.ORG       2   < 40>
SHRINK.ORG       6   < 40>    SHRINK.BAS       6   < 40>
COMPIL.COM       4   < 40>   

Total of 694 blocks in 77 files in DL1:[100,100]

$ sw basic

Ready

old dl1:[100,100]animal

Ready

run
ANIMAL 12:06 PM 24-Jan-18
PLAY 'GUESS THE ANIMAL' WITH RSTS
THINK OF AN ANIMAL AND THE COMPUTER WILL TRY TO GUESS IT...

ARE YOU THINKING OF AN ANIMAL? yes
PLEASE RESPOND 'YES', 'NO', 'SAVE', OR 'LIST'
ARE YOU THINKING OF AN ANIMAL? YES
DOES IT SWIM? NO
IS IT A BIRD? NO
THE ANIMAL YOU WERE THINKING OF WAS A ? MOUSE
PLEASE TYPE IN A QUESTION THAT WOULD DISTINGUISH A MOUSE FROM A BIRD
? DOES IT HAVE FEATHERS?
FOR A MOUSE THE ANSWER WOULD BE? NO
ARE YOU THINKING OF AN ANIMAL? ^C
Tony Nicholson
2018-01-24 20:23:21 UTC
Permalink
On Thu, Jan 25, 2018 at 5:17 AM, Bryan.e.davies <***@gmail.com>
wrote:

> Ok thanks for the verification. I'll download and unzip again.
>
> Attached pic is the PDP emulator on the VT100 at CCH.
>

Sorry about the mix-up with RSTS disk formats. I knew it was different for
older versions.

I've just made a RSTS level 0.0 format RL01 disk image so you can use this
on older versions of RSTS/E (verified and written using RSTS/E V7.0-07).
You can get a zip file containing this at

https://drive.google.com/file/d/15iRczp1kYITHuH6zYNImtZgtguw_g66V/view?usp=sharing

and I also added it (rl01-games-rsts0-0.dsk) to the original zip file that
I shared.

If anyone needs this on an RK05 image to run under older versions of RSTS/E
(like V4B or V06C) - e-mail me privately (or use the DECtape image which I
know also works)!

And to Mark Abene - yes I think the book from bitsavers was an early
version of the book by Dave Ahl - before he left DEC to start Creative
Computing magazine.

Tony
Johnny Billquist
2018-01-25 13:18:55 UTC
Permalink
Since the disk pack contains basic sorces, this could also probably be used on rsx systems, but then we need a different file system. Care to create a disk in rt11 format, since that is pretty much the common file system that all oses have tools to read/write?

Johnny


Tony Nicholson <***@computer.org> skrev: (24 januari 2018 21:23:21 CET)
>On Thu, Jan 25, 2018 at 5:17 AM, Bryan.e.davies
><***@gmail.com>
>wrote:
>
>> Ok thanks for the verification. I'll download and unzip again.
>>
>> Attached pic is the PDP emulator on the VT100 at CCH.
>>
>
>Sorry about the mix-up with RSTS disk formats. I knew it was different
>for
>older versions.
>
>I've just made a RSTS level 0.0 format RL01 disk image so you can use
>this
>on older versions of RSTS/E (verified and written using RSTS/E
>V7.0-07).
>You can get a zip file containing this at
>
>https://drive.google.com/file/d/15iRczp1kYITHuH6zYNImtZgtguw_g66V/view?usp=sharing
>
>and I also added it (rl01-games-rsts0-0.dsk) to the original zip file
>that
>I shared.
>
>If anyone needs this on an RK05 image to run under older versions of
>RSTS/E
>(like V4B or V06C) - e-mail me privately (or use the DECtape image
>which I
>know also works)!
>
>And to Mark Abene - yes I think the book from bitsavers was an early
>version of the book by Dave Ahl - before he left DEC to start Creative
>Computing magazine.
>
>Tony

--
Skickat från min Android-enhet med K-9 Mail. UrsÀkta min fåordighet.
Tony Nicholson
2018-01-25 19:39:10 UTC
Permalink
On Fri, Jan 26, 2018 at 12:18 AM, Johnny Billquist <***@softjar.se> wrote:

> Since the disk pack contains basic sorces, this could also probably be
> used on rsx systems, but then we need a different file system. Care to
> create a disk in rt11 format, since that is pretty much the common file
> system that all oses have tools to read/write?
>

An RT-11 format RL01 with the 56 files from the DECtape is in a zip file at

https://drive.google.com/file/d/1hXBmOUL_dNQaYP6qH9vQ8VVe0KrLoNut/view?usp=sharing

When trying it on other systems be aware that in some of the BASIC-Plus
source files there are continuation lines prefixed by <LF><CR> line endings
(normal lines have <CR><LF>).

Also (in case you're wondering) there are only 56 files - since this was
the maximum number of files that would fit on a DOS-11 format DECtape.

Was there a second DECtape with the remaining games from the book? If not,
one of these days when i get a round tuit - I should type them in!

Have fun!

Tony


>
>
>
Johnny
>
>
> Tony Nicholson <***@computer.org> skrev: (24 januari 2018
> 21:23:21 CET)
>
>> On Thu, Jan 25, 2018 at 5:17 AM, Bryan.e.davies <***@gmail.com
>> > wrote:
>>
>>> Ok thanks for the verification. I'll download and unzip again.
>>>
>>> Attached pic is the PDP emulator on the VT100 at CCH.
>>>
>>
>> Sorry about the mix-up with RSTS disk formats. I knew it was different
>> for older versions.
>>
>> I've just made a RSTS level 0.0 format RL01 disk image so you can use
>> this on older versions of RSTS/E (verified and written using RSTS/E
>> V7.0-07). You can get a zip file containing this at
>>
>> https://drive.google.com/file/d/15iRczp1kYITHuH6zYNImtZgtguw_
>> g66V/view?usp=sharing
>>
>> and I also added it (rl01-games-rsts0-0.dsk) to the original zip file
>> that I shared.
>>
>> If anyone needs this on an RK05 image to run under older versions of
>> RSTS/E (like V4B or V06C) - e-mail me privately (or use the DECtape image
>> which I know also works)!
>>
>> And to Mark Abene - yes I think the book from bitsavers was an early
>> version of the book by Dave Ahl - before he left DEC to start Creative
>> Computing magazine.
>>
>> Tony
>>
>>
> --
> Skickat från min Android-enhet med K-9 Mail. UrsÀkta min fåordighet.
>



--
Tony Nicholson <***@computer.org>
Johnny Billquist
2018-01-25 23:44:46 UTC
Permalink
Cool. Thanks. Downloaded and unpacket.
Anyone interested and on HECnet can now find them on MIM::DU:[101GAMES]

Looked a little at one or two files. BASIC+2 do not like them. The code
uses special shorts, functions and specifics that don't match.
I wonder if BASIC+ accepts them either, or if this might be from some
other BASIC dialect that DEC had at some point.

If I have plenty of time at some point, I might sit down and write a
converter for them to BASIC+2 style.

Johnny

On 2018-01-25 20:39, Tony Nicholson wrote:
> On Fri, Jan 26, 2018 at 12:18 AM, Johnny Billquist <***@softjar.se
> <mailto:***@softjar.se>> wrote:
>
> Since the disk pack contains basic sorces, this could also probably
> be used on rsx systems, but then we need a different file system.
> Care to create a disk in rt11 format, since that is pretty much the
> common file system that all oses have tools to read/write?
>
>
> An RT-11 format RL01 with the 56 files from the DECtape is in a zip file at
>
> https://drive.google.com/file/d/1hXBmOUL_dNQaYP6qH9vQ8VVe0KrLoNut/view?usp=sharing
>
> When trying it on other systems be aware that in some of the BASIC-Plus
> source files there are continuation lines prefixed by <LF><CR> line
> endings (normal lines have <CR><LF>).
>
> Also (in case you're wondering) there are only 56 files - since this was
> the maximum number of files that would fit on a DOS-11 format DECtape.
>
> Was there a second DECtape with the remaining games from the book?  If
> not, one of these days when i get a round tuit - I should type them in!
>
> Have fun!
>
> Tony
>
>
> Johnny
>
>
> Tony Nicholson <***@computer.org
> <mailto:***@computer.org>> skrev: (24 januari 2018
> 21:23:21 CET)
>
> On Thu, Jan 25, 2018 at 5:17 AM, Bryan.e.davies
> <***@gmail.com <mailto:***@gmail.com>> wrote:
>
> Ok thanks for the verification. I'll download and unzip again.
>
> Attached pic is the PDP emulator on the VT100 at CCH.
>
>
> Sorry about the mix-up with RSTS disk formats.  I knew it was
> different for older versions.
>
> I've just made a RSTS level 0.0 format RL01 disk image so you
> can use this on older versions of RSTS/E (verified and written
> using RSTS/E V7.0-07). You can get a zip file containing this at
>
> https://drive.google.com/file/d/15iRczp1kYITHuH6zYNImtZgtguw_g66V/view?usp=sharing
> <https://drive.google.com/file/d/15iRczp1kYITHuH6zYNImtZgtguw_g66V/view?usp=sharing>
>
> and I also added it (rl01-games-rsts0-0.dsk) to the original zip
> file that I shared.
>
> If anyone needs this on an RK05 image to run under older
> versions of RSTS/E (like V4B or V06C) - e-mail me privately (or
> use the DECtape image which I know also works)!
>
> And to Mark Abene - yes I think the book from bitsavers was an
> early version of the book by Dave Ahl - before he left DEC to
> start Creative Computing magazine.
>
> Tony
>
>
> --
> Skickat från min Android-enhet med K-9 Mail. Ursäkta min fåordighet.
>
>
>
>
> --
> Tony Nicholson <***@computer.org
> <mailto:***@computer.org>>


--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Clem Cole
2018-01-25 23:53:27 UTC
Permalink
On Thu, Jan 25, 2018 at 6:44 PM, Johnny Billquist <***@softjar.se> wrote:

> if this might be from some other BASIC dialect that DEC had at some point.
>

​I think this is the Tops-10 BASIC dialect ​
ᐧ
Tony Nicholson
2018-01-26 00:03:37 UTC
Permalink
Definitely BASIC-Plus on RSTS! You may need to replace the “&” with
“PRINT” in some of the files.

Tony

On Fri, 26 Jan 2018 at 11:00, Clem Cole <***@ccc.com> wrote:

> On Thu, Jan 25, 2018 at 6:44 PM, Johnny Billquist <***@softjar.se> wrote:
>
>> if this might be from some other BASIC dialect that DEC had at some
>> point.
>>
>
> ​I think this is the Tops-10 BASIC dialect ​
> ᐧ
>
--
Tony Nicholson <***@computer.org>
Johnny Billquist
2018-01-26 00:23:41 UTC
Permalink
On 2018-01-26 01:03, Tony Nicholson wrote:
> Definitely BASIC-Plus on RSTS!  You may need to replace the “&” with
> “PRINT” in some of the files.

Which should tell you that it's not for BASIC+ on RSTS/E. :-)
Also, : for separating statements is, as far as I remember, also not in
BASIC+, which instead uses \, just like BASIC+2.

Clem's suggestions of something for Tops-10 could possibly be right, but
I thought Dave Ahl didn't come from that environment. I was thinking
that maybe BASIC-11 might match, but I've never used that implementation.

Johnny

>
> Tony
>
> On Fri, 26 Jan 2018 at 11:00, Clem Cole <***@ccc.com
> <mailto:***@ccc.com>> wrote:
>
> On Thu, Jan 25, 2018 at 6:44 PM, Johnny Billquist <***@softjar.se
> <mailto:***@softjar.se>> wrote:
>
>  if this might be from some other BASIC dialect that DEC had at
> some point.
>
>
> ​I think this is the Tops-10 BASIC dialect ​
> ᐧ
>
> --
> Tony Nicholson <***@computer.org
> <mailto:***@computer.org>>


--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Clem Cole
2018-01-26 01:15:51 UTC
Permalink
On Thu, Jan 25, 2018 at 7:23 PM, Johnny Billquist <***@softjar.se> wrote:

> I thought Dave Ahl didn't come from that environment.


I'm pretty sure Ahl was in Education System's group, which I thought at one
point was in MRO (Marlboro). Small-systems was in the Mill. MRO was
36-bit land. So he would have had access to the 10s, but I note you're
right there had been many 8s in the Education stream.

That said, few HSs could even afford them. Folks in HS's (like my father
who was teaching Math in a HS outside of Philadelphia during that time
period) were most likely running on remote timesharing systems via dial-up
lines - with GE(Honywell)/Mark-IV being the giant in that business (my own
entry in the computers with him in '67 was on the Mark-II and Mark-III).
DEC's customers that were trying to get into that business were mostly
supported by PDP-10s, not small systems.

RSTS Basic is a late entry, the language support for it, originally came
from the compiler group which again was originally PDP-10 based (also
remember the PDP-11 BLISS compiler needed a 10 to run it).

I can not look in my own archives from the time, my only PDP-10
documentation I have left from the early 70s, is the white monitor 'phone
book.' I do have later (circa '78) PDP-10/20 docs but that would have be
after the book described was published.

Clem


ᐧ
Paul Koning
2018-01-26 16:37:28 UTC
Permalink
> On Jan 25, 2018, at 8:15 PM, Clem Cole <***@ccc.com> wrote:
>
> ...
> RSTS Basic is a late entry, the language support for it, originally came from the compiler group which again was originally PDP-10 based (also remember the PDP-11 BLISS compiler needed a 10 to run it).

Are you talking about BASIC-PLUS-2? RSTS BASIC-PLUS dates from 1970, and was written under contract for DEC by Evans, Griffiths & Hart ("EGH"). It is essentially a P-code compiler, to use terminology that didn't appear until later; it doesn't generate any machine code. And as far as I know, it is not based on any BASIC implementation for any other system.

As for BLISS, there's BLISS-16 and BLISS-11. One came from Carnegie-Mellon; the other was built at DEC. Both are cross-compilers, but I don't remember which platform. PDP-10 for both? 10 for one and VAX for the other?

paul
Phil Budne
2018-01-26 17:08:51 UTC
Permalink
Paul Koning wrote:
> As for BLISS, there's BLISS-16 and BLISS-11. One came from Carnegie-Mellon; the other was built at DEC. Both are cross-compilers, but I don't remember which platform. PDP-10 for both? 10 for one and VAX for the other?

BLISS-11 was written in BLISS-10 (and both were written at C-MU), and
BLISS-11 was the jumping off point for COMMON BLISS. I think sources
for both 'B10 and 'B11 are on PDP-10 DECUS tapes.

BLISS-16 was a member of the COMMON BLISS family. I don't ever
remember seeing an EXE for it on a PDP-10, but I was never a COMMON
BLISS fan. I hacked on FINE at Stevens Tech (the computing center had
a copy of BLISS-36, the PDP-10 COMMON BLISS compiler, but it wasn't
available to the unwashed masses). When I went to DEC, I worked on
FORTRAN-10/20, which was also in BLISS-10. I was down in Marlborough
(MR1-2) and don't recall ever seeing COMMON BLISS sources.

I do recall a mention (perhaps in a published article?) of the
existence of a "cut down" version of BLISS-16 that could run on an '11.

I once sang in a chorus with someone who had worked on COMMON BLISS.
ISTR he said he was a contractor, not a DEC employee.

My boss on the F10 project was Sara Murphy, one of the original F10
developers, and I have some recall that she had been involved in a
fancy BASIC for TOPS-20 (I _think_ it was called BP2, but I could be
wrong).

phil
Paul Koning
2018-01-26 17:48:11 UTC
Permalink
> On Jan 26, 2018, at 12:08 PM, Phil Budne <***@ultimate.com> wrote:
>
> Paul Koning wrote:
>> As for BLISS, there's BLISS-16 and BLISS-11. One came from Carnegie-Mellon; the other was built at DEC. Both are cross-compilers, but I don't remember which platform. PDP-10 for both? 10 for one and VAX for the other?
>
> BLISS-11 was written in BLISS-10 (and both were written at C-MU), and
> BLISS-11 was the jumping off point for COMMON BLISS. I think sources
> for both 'B10 and 'B11 are on PDP-10 DECUS tapes.

Thanks. I've never used it, but I ran into it when looking at the CMU PDP-11 ALGOL-68 implementation. I had some DECtapes of that code, only the runtime library if I remember right. They seem to have disappeared, and I don't know if that compiler has been preserved. Note that ALGOL-68 is an entirely different language than ALGOL-60; in a number of areas it served as inspiration for C++.

paul
Johnny Billquist
2018-01-26 19:09:05 UTC
Permalink
On 2018-01-26 18:08, Phil Budne wrote:
> Paul Koning wrote:
>> As for BLISS, there's BLISS-16 and BLISS-11. One came from Carnegie-Mellon; the other was built at DEC. Both are cross-compilers, but I don't remember which platform. PDP-10 for both? 10 for one and VAX for the other?
>
> BLISS-11 was written in BLISS-10 (and both were written at C-MU), and
> BLISS-11 was the jumping off point for COMMON BLISS. I think sources
> for both 'B10 and 'B11 are on PDP-10 DECUS tapes.

Hmm, the sources could be fun to check.

> BLISS-16 was a member of the COMMON BLISS family. I don't ever
> remember seeing an EXE for it on a PDP-10, but I was never a COMMON
> BLISS fan. I hacked on FINE at Stevens Tech (the computing center had
> a copy of BLISS-36, the PDP-10 COMMON BLISS compiler, but it wasn't
> available to the unwashed masses). When I went to DEC, I worked on
> FORTRAN-10/20, which was also in BLISS-10. I was down in Marlborough
> (MR1-2) and don't recall ever seeing COMMON BLISS sources.

Right. As far as I know, BLISS-16 only ran under VMS.

> I do recall a mention (perhaps in a published article?) of the
> existence of a "cut down" version of BLISS-16 that could run on an '11.

That would be uBLISS (or Micro BLISS). As far as I know/heard, it got as
far as working, but it was abandoned as people decided it would not ever
become good enough to actually be used for any development.
I have a manual/documentation for uBLISS, but nothing of the actual code.

> I once sang in a chorus with someone who had worked on COMMON BLISS.
> ISTR he said he was a contractor, not a DEC employee.
>
> My boss on the F10 project was Sara Murphy, one of the original F10
> developers, and I have some recall that she had been involved in a
> fancy BASIC for TOPS-20 (I _think_ it was called BP2, but I could be
> wrong).

Yes. That would be the BASIC+2 for TOPS-20. It's written in BLISS, and
have nothing to do with the BASIC+2 for PDP-11. Except, I guess, that
they tried to be compatible.

Johnny

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Clem Cole
2018-01-26 19:26:28 UTC
Permalink
On Fri, Jan 26, 2018 at 2:09 PM, Johnny Billquist <***@softjar.se> wrote:

>
> Right. As far as I know, BLISS-16 only ran under VMS.

Hmm I'd be careful here. As I understand it,​ Hobbs has implied they did
the work on the 10 to start with because at the time TLG was using PDP-10s.
As one of the language designers, I'd believe him. That said, what saw
the light of day as product I can not say, I was not paying attention to
that in those days. Phil or Tim might know.

BTW -- fun side story, the BLISS "code comment" (C Pragmas if you will for
folks that don't speak a dead language) you will see in some old CMU system
code for C.mmp and Cm* is marked 'BOH' -- which means 'Buzz-Off-Hobbs'
telling him to turn his damned optimizer and listen to us kernel guys.
ᐧ
Johnny Billquist
2018-01-26 20:12:35 UTC
Permalink
On 2018-01-26 20:26, Clem Cole wrote:
>
>
> On Fri, Jan 26, 2018 at 2:09 PM, Johnny Billquist <***@softjar.se
> <mailto:***@softjar.se>> wrote:
>
>
> Right. As far as I know, BLISS-16 only ran under VMS.
>
> Hmm I'd be careful here.   As I understand it,​ Hobbs has implied they
> did the work on the 10 to start with because at the time TLG was using
> PDP-10s.   As one of the language designers, I'd believe him.  That
> said, what saw the light of day as product I can not say, I was not
> paying attention to that in those days.   Phil or Tim might know.

Looked around some more, and it seems both BLISS-16 and BLISS-32 could
be run under the PDP-10. Oh well. Never seen or heard about that in real
life, but I guess it must have existed at one point then.

Johnny

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Timothe Litt
2018-01-26 20:22:57 UTC
Permalink
On 26-Jan-18 15:12, Johnny Billquist wrote:
> On 2018-01-26 20:26, Clem Cole wrote:
>>
>>
>> On Fri, Jan 26, 2018 at 2:09 PM, Johnny Billquist <***@softjar.se
>> <mailto:***@softjar.se>> wrote:
>>
>>
>>     Right. As far as I know, BLISS-16 only ran under VMS.
>>
>> Hmm I'd be careful here.   As I understand it,​ Hobbs has implied
>> they did the work on the 10 to start with because at the time TLG was
>> using PDP-10s.   As one of the language designers, I'd believe him. 
>> That said, what saw the light of day as product I can not say, I was
>> not paying attention to that in those days.   Phil or Tim might know.
>
> Looked around some more, and it seems both BLISS-16 and BLISS-32 could
> be run under the PDP-10. Oh well. Never seen or heard about that in
> real life, but I guess it must have existed at one point then.
>
I used both in real life. 

I don't believe either was released externally.

BLISS would have done better in the outside world, except for the
DECision to price it higher than the market would bear.

>     Johnny
>
Hunter Goatley
2018-01-26 20:35:18 UTC
Permalink
On 1/26/2018 2:22 PM, Timothe Litt wrote:
>
> BLISS would have done better in the outside world, except for the
> DECision to price it higher than the market would bear.

Indeed! I was fortunate to get access to BLISS in college thanks to
DEC's CSLG program, but it was their second-most expensive compiler
license (after Ada), so virtually no one outside of DEC used it. When
they originally released Alpha, they weren't planning to make the BLISS
compiler available, but I and others worked to try to get DEC to change
that. As I'm sure you know, in the end, they released it with a free
license for both VAX and Alpha (and Itanium), but it was far too late
for most people to have any interest in adopting it. I still do some
BLISS coding, but I'm one of the few that I know of still doing it.

--
Hunter
------
Hunter Goatley, Process Software, http://www.process.com/
***@goatley.com http://hunter.goatley.com/
Timothe Litt
2018-01-26 21:09:20 UTC
Permalink
On 26-Jan-18 15:54, Rich Alderson wrote:
>> Date: Fri, 26 Jan 2018 14:35:18 -0600
>> From: Hunter Goatley <***@goatley.com>
>> On 1/26/2018 2:22 PM, Timothe Litt wrote:
>>> BLISS would have done better in the outside world, except for the
>>> DECision to price it higher than the market would bear.
>> Indeed! I was fortunate to get access to BLISS in college thanks to
>> DEC's CSLG program, but it was their second-most expensive compiler
>> license (after Ada), so virtually no one outside of DEC used it. When
>> they originally released Alpha, they weren't planning to make the BLISS
>> compiler available, but I and others worked to try to get DEC to change
>> that. As I'm sure you know, in the end, they released it with a free
>> license for both VAX and Alpha (and Itanium), but it was far too late
>> for most people to have any interest in adopting it. I still do some
>> BLISS coding, but I'm one of the few that I know of still doing it.
> In fact, when Digital announced the free licensing for BLISS-32 and BLISS-16,
> I immediately got in touch with our contact within Digital (help me out, Tim,
> what was Dick's last name? the guy who helped XKL get the 36-bit stuff and
> introduced you and me in Marlboro) about getting BLISS-36 released the same
> way. There may not have been a large market for it, but I wanted to make sure
> that XKL's customers had access if they wanted it.
Dick Greeley.  Former product manager in HPS, by then in the corporate
licensing group.
> Rich
>
Clem Cole
2018-01-26 21:30:35 UTC
Permalink
below.. at bit off topic from simulators .... sorry

On Fri, Jan 26, 2018 at 3:35 PM, Hunter Goatley <***@goatley.com>
wrote:

> On 1/26/2018 2:22 PM, Timothe Litt wrote:
>
>>
>> BLISS would have done better in the outside world, except for the
>> DECision to price it higher than the market would bear.
>>
>
> Indeed! I was fortunate to get access to BLISS in college thanks to DEC's
> CSLG program, but it was their second-most expensive compiler license
> (after Ada), so virtually no one outside of DEC used it. When they
> originally released Alpha, they weren't planning to make the BLISS compiler
> available, but I and others worked to try to get DEC to change that. As I'm
> sure you know, in the end, they released it with a free license for both
> VAX and Alpha (and Itanium), but it was far too late for most people to
> have any interest in adopting it. I still do some BLISS coding, but I'm one
> of the few that I know of still doing it.


​Yup it was hard to for $5K / cpu to compete with $100 plus you got the
sources and could run it on any system - - certainly for any university.
And what DEC failed to understand was both the power of the new
microprocessors and that university hacker types would want to mess with
the compiler itself.

Tim - while I agree BLISS at the time was a more complete/better language
--- the difference in the quality of the code that they generated was night
and day - assuming you have made it self hosting etc... but ..... I have
also wondered if "free" would have been good enough though. Access to the
sources so you could retarget it was a huge thing that helped C spread. In
my own case, in the summer of 1979 when we go the experimental parts at
Tektronix that would later become the 68000, I wanted/needed an HLL to mess
with it. What did I do? I hacked on the Ritchie C compiler and made a
crude backend -- good enough for an OS guy to do his work.

A year or so after that, when we did the TCP implementation, we needed a
HLL for our Vax (running VMS). I did manage to get Tek to buy a BLISS
license for it. But I remember all of us be amazed that DEC was trying to
charge so much for it.

Clem
ᐧ
Tim Stark
2018-01-28 18:45:58 UTC
Permalink
Folks,

There is BLISS source codes for TOPS-20 in pdp-10.trailing-edge.com.

There is a free copy of BLISS compilers for VAX and Alpha in Freeware CD dist.

There is a online version of The Design of an Optimizing Compiler on CMU website.

I have a question for you. Does anyone know any documents to learn how to write BLISS codes?

Thanks,
Tim

-----Original Message-----
From: Simh [mailto:simh-***@trailing-edge.com] On Behalf Of Phil Budne
Sent: Friday, January 26, 2018 12:09 PM
To: ***@trailing-edge.com
Subject: Re: [Simh] 101 Basic Games for RSTS/E (was Re: PDP11 on Simh for public access)

Paul Koning wrote:
> As for BLISS, there's BLISS-16 and BLISS-11. One came from Carnegie-Mellon; the other was built at DEC. Both are cross-compilers, but I don't remember which platform. PDP-10 for both? 10 for one and VAX for the other?

BLISS-11 was written in BLISS-10 (and both were written at C-MU), and
BLISS-11 was the jumping off point for COMMON BLISS. I think sources for both 'B10 and 'B11 are on PDP-10 DECUS tapes.

BLISS-16 was a member of the COMMON BLISS family. I don't ever remember seeing an EXE for it on a PDP-10, but I was never a COMMON BLISS fan. I hacked on FINE at Stevens Tech (the computing center had a copy of BLISS-36, the PDP-10 COMMON BLISS compiler, but it wasn't available to the unwashed masses). When I went to DEC, I worked on FORTRAN-10/20, which was also in BLISS-10. I was down in Marlborough
(MR1-2) and don't recall ever seeing COMMON BLISS sources.

I do recall a mention (perhaps in a published article?) of the existence of a "cut down" version of BLISS-16 that could run on an '11.

I once sang in a chorus with someone who had worked on COMMON BLISS.
ISTR he said he was a contractor, not a DEC employee.

My boss on the F10 project was Sara Murphy, one of the original F10 developers, and I have some recall that she had been involved in a fancy BASIC for TOPS-20 (I _think_ it was called BP2, but I could be wrong).

phil
_______________________________________________
Simh mailing list
***@trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh
Hunter Goatley
2018-01-28 19:00:06 UTC
Permalink
Hi, Tim.

> I have a question for you. Does anyone know any documents to learn how to write BLISS codes?

I'd recommend Matt Madison's "Introduction to BLISS" paper that he wrote
back in 1993. Postscript and PDF files can be downloaded from here:

http://vms.process.com/ftp/vms-freeware/fileserv/bliss-intro.zip

You may also be interested in the original article by Wulf that
introduced BLISS. You can find a PDF and Postscript files that I
formatted here:

http://vms.process.com/ftp/vms-freeware/fileserv/bliss-intro.zip


--
Hunter
------
Hunter Goatley, Process Software,http://www.process.com/
***@goatley.com
Hunter Goatley
2018-01-28 19:12:55 UTC
Permalink
On 1/28/2018 12:45 PM, Tim Stark wrote:

> I have a question for you. Does anyone know any documents to learn how to write BLISS codes?

It's also helpful to look at BLISS code. You can find all of the
freeware programs in my VMS archive that are written in BLISS by going
to this page and choosing BLISS for the Language.

http://vms.process.com/fileserv_search.html

--
Hunter
------
Hunter Goatley, Process Software,http://www.process.com/
***@goatley.com
Timothe Litt
2018-01-28 19:27:40 UTC
Permalink
On 28-Jan-18 13:45, Tim Stark wrote:
> Folks,
>
> There is BLISS source codes for TOPS-20 in pdp-10.trailing-edge.com.
>
> There is a free copy of BLISS compilers for VAX and Alpha in Freeware CD dist.
>
> There is a online version of The Design of an Optimizing Compiler on CMU website.
>
> I have a question for you. Does anyone know any documents to learn how to write BLISS codes?
>
>
There is an internal course called BLISS Primer.  It may be on-line; if
not, when I get around to sending more stuff to CHM, I'm sure it will be.

In the TOPS-10 & -20 software notebooks, there are the BLISS-36 Language
Guide, Installation manual, User Guide

TOPS-10 also has the XPORT manual.  XPORT is a library for writing
portable code; including user-mode IO.  Don't know why it's not in the
TOPS-20 set (or maybe I missed it.)

The language guide is pretty readable, if you know another programming
language.

The paper that I referenced earlier gives some context and history.
Phil Budne
2018-01-28 20:54:35 UTC
Permalink
Tim Stark wrote:
> There is BLISS source codes for TOPS-20 in pdp-10.trailing-edge.com.

As discussed recently:
http://mailman.trailing-edge.com/pipermail/simh/2018-January/017459.html
There are many BLISS languages!

I found BLISS-11 sources and binaries in decus catalog item 10-325:
directory [43,50325] in (The DECUS catalog numbers are decimal,
TOPS-10 PPNs are octal) at
http://pdp-10.trailing-edge.com/decuslib10-04/index.html

I see BLIS10.EXE files on various "FORTRAN-TOOLS" savesets of:
http://pdp-10.trailing-edge.com/FORTRAN-10_V7wLink_Feb83/index.html
http://pdp-10.trailing-edge.com/BB-4157F-BM_1983/index.html
http://pdp-10.trailing-edge.com/BB-D480C-SB_1981/index.html
http://pdp-10.trailing-edge.com/bb-4157j-bm_fortran20_v11_16mt9/index.html
http://pdp-10.trailing-edge.com/fortv11/index.html

Looks like BLISS-36 binaries are there too!!

http://pdp-10.trailing-edge.com/bls36v42/index.html
http://pdp-10.trailing-edge.com/bb-j939f-bm/index.html

I haven't spotted sources for BLISS-10 (ISTR when the FORTRAN-10/20
project found a bug someone else did a fix, so WE may not have had
them), and I CERTAINLY never saw sources for Common BLISS.

> There is a online version of The Design of an Optimizing Compiler on CMU website.
(which describes BLISS-11)

> I have a question for you. Does anyone know any documents to learn how to write BLISS codes?

The printed manual for BLISS-10 (DEC-10-LBRMA-A-D for v4, Copyright 1974).
is available at http://www.bitsavers.org/pdf/dec/pdp10/TOPS10/DEC-10-LBRMA-A-D_BLISS-10_Programmers_Manual_Ver_4_Feb74.pdf

A CMU manual for BLISS-10:
http://repository.cmu.edu/cgi/viewcontent.cgi?article=2826&context=compsci

I have a b/w photocopy of my DEC boss's copy of "BLISS-11 PROGRAMMERS
MANUAL" in a DEC pdp11 (sunset?) cover, Copyright 1972. The first
page says "The software described in this document is not suppoprted
by Digital Equipment Corporation" and there isn't a DEC part number.
86 pages (without counting the unnumbered pages in front).

Ah! Found this for BLISS-11, dated March 1972:
http://repository.cmu.edu/cgi/viewcontent.cgi?article=2983&context=compsci
(different than the DEC manual I have, ALL UPPER CASE, less chatty)

Common BLISS was an (EXPENSIVE) PRODUCT, and there *MUST* have
been a slew of manuals for it. The only thing I can spot in
my list of paper docs is a BLISS-36 pocket guide: AV-AT45A-TK (1983)
which I found here:
http://www.livingcomputers.org/Discover/Online-Systems/User-Documentation/Tops-10-v7-04/6_BLISS-36_Users_Guide.aspx
(not that I ever used it, never mind BLISS-32)

And I found this (1980) combined tutorial/reference for Common BLISS:
http://web.eah-jena.de/~kleine/history/languages/BlissLanguageGuide.pdf

There are some links at the bottom of:
https://en.wikipedia.org/wiki/BLISS

Slides for an intro to BLISS-32 session from 1993:
http://vms.process.com/scripts/fileserv/fileserv.com?BLISS-INTRO

In line with the original topic, I found printed and on-line
versions of the BASIC-PLUS-2 manual (one manual for TOPS-20 and pdp11!!):
http://www.bitsavers.org/pdf/dec/pdp11/basic/AA-0153A-TK_BASIC-PLUS-2_Language_Manual_Jul77.pdf
Phil Budne
2018-01-28 20:59:48 UTC
Permalink
I wrote:
> I found BLISS-11 sources and binaries in decus catalog item 10-325:
> directory [43,50325] in (The DECUS catalog numbers are decimal

catalog number is 10-213 (decimal)
Johnny Billquist
2018-01-26 17:47:39 UTC
Permalink
Bliss-11 was for the pdp10. Bliss-16 was for VMS.
I believe it Bliss-11 that came from CMU.

Johnny


Paul Koning <***@comcast.net> skrev: (26 januari 2018 17:37:28 CET)
>
>
>> On Jan 25, 2018, at 8:15 PM, Clem Cole <***@ccc.com> wrote:
>>
>> ...
>> RSTS Basic is a late entry, the language support for it, originally
>came from the compiler group which again was originally PDP-10 based
>(also remember the PDP-11 BLISS compiler needed a 10 to run it).
>
>Are you talking about BASIC-PLUS-2? RSTS BASIC-PLUS dates from 1970,
>and was written under contract for DEC by Evans, Griffiths & Hart
>("EGH"). It is essentially a P-code compiler, to use terminology that
>didn't appear until later; it doesn't generate any machine code. And
>as far as I know, it is not based on any BASIC implementation for any
>other system.
>
>As for BLISS, there's BLISS-16 and BLISS-11. One came from
>Carnegie-Mellon; the other was built at DEC. Both are cross-compilers,
>but I don't remember which platform. PDP-10 for both? 10 for one and
>VAX for the other?
>
> paul

--
Skickat från min Android-enhet med K-9 Mail. UrsÀkta min fåordighet.
Timothe Litt
2018-01-26 17:48:38 UTC
Permalink
On 26-Jan-18 11:37, Paul Koning wrote:
>
>> On Jan 25, 2018, at 8:15 PM, Clem Cole <***@ccc.com> wrote:
>>
>> ...
>> RSTS Basic is a late entry, the language support for it, originally came from the compiler group which again was originally PDP-10 based (also remember the PDP-11 BLISS compiler needed a 10 to run it).
> Are you talking about BASIC-PLUS-2? RSTS BASIC-PLUS dates from 1970, and was written under contract for DEC by Evans, Griffiths & Hart ("EGH"). It is essentially a P-code compiler, to use terminology that didn't appear until later; it doesn't generate any machine code. And as far as I know, it is not based on any BASIC implementation for any other system.
>
> As for BLISS, there's BLISS-16 and BLISS-11. One came from Carnegie-Mellon; the other was built at DEC. Both are cross-compilers, but I don't remember which platform. PDP-10 for both? 10 for one and VAX for the other?

I wrote a fair bit of BLISS at various stages of its evolution.  My
recollection is:

BLISS-10 & BLISS-11 came from Wulf & Co at CMU.  BLISS-10 is self-hosted.

BLISS-11 is an evolution of BLISS-10.  There was a PDP10-hosted version
of BLISS-11.  I don't think it was ported to VAX.

BLISS-36,-16,-32,-32E,-64E, MIPS, INTEL, IA64, are DEC's common BLISS -
evolved (and greatly extended) from BLISS-11, but not (really)
source-compatible for non-trivial programs.  "common" means that (with
carefully defined exceptions that can be conditionally compiled), the
same language is accepted by all, and it's possible to write portable
programs.  Including common BLISS itself.  RMS-10/20 is another
non-trivial example - same sources as VAX/RMS.  There are a number of
targets and host environment combinations that are supported.

BLISS-16 is hosted on both PDP-10 and VAX, producing PDP-11 object
code.  I used both.  I didn't encounter an Alpha-hosted version - but it
should have compiled & run there, so it probably existed.  Or was VESTed. 

Most software written in BLISS-10 & -11 was converted to common  BLISS.

There was an attempt at self-hosting BLISS-16, but it failed -
technically, it ran, but there really wasn't enough address space to
make it usable.  Cross-compiling wasn't popular (networks were crude),
so BLISS-16 was not as widely adopted.

For a more complete history, see
https://www.cs.tufts.edu/~nr/cs257/archive/ronald-brender/bliss.pdf
<https://www.cs.tufts.edu/%7Enr/cs257/archive/ronald-brender/bliss.pdf>


> paul
>
>
Clem Cole
2018-01-26 19:09:30 UTC
Permalink
On Fri, Jan 26, 2018 at 12:48 PM, Timothe Litt <***@ieee.org> wrote:

> I wrote a fair bit of BLISS at various stages of its evolution. My
> recollection is:
>
> BLISS-10 & BLISS-11 came from Wulf & Co at CMU. BLISS-10 is self-hosted
>
​Right - Wulf, Steve Hobbs et al, FWIW: I just had lunch with Steve a few
minutes ago.​

> .
>
> BLISS-11 is an evolution of BLISS-10. There was a PDP10-hosted version of
> BLISS-11. I don't think it was ported to VAX.
>
> BLISS-36,-16,-32,-32E,-64E, MIPS, INTEL, IA64, are DEC's common BLISS -
> evolved (and greatly extended) from BLISS-11, but not (really)
> source-compatible for non-trivial programs. "common" means that (with
> carefully defined exceptions that can be conditionally compiled), the same
> language is accepted by all, and it's possible to write portable programs.
> Including common BLISS itself. RMS-10/20 is another non-trivial example -
> same sources as VAX/RMS. There are a number of targets and host
> environment combinations that are supported.
>
> BLISS-16 is hosted on both PDP-10 and VAX, producing PDP-11 object code.
> I used both. I didn't encounter an Alpha-hosted version - but it should
> have compiled & run there, so it probably existed. Or was VESTed.
>
> Most software written in BLISS-10 & -11 was converted to common BLISS.
>
> There was an attempt at self-hosting BLISS-16, but it failed -
> technically, it ran, but there really wasn't enough address space to make
> it usable. Cross-compiling wasn't popular (networks were crude), so
> BLISS-16 was not as widely adopted.
>

​This follows my recollection/understanding with the minor tweak of
addition being BLISS-INTEL64 (not to be confused with IA64), which is what
the VMS, Inc for using now for the new OVMS port to Intel*64 systems. I
believe that is currently running on an Alpha and cross-compiling, but Neil
Faiman (one of the authors) was not at the usual 'compiler group Friday
lunch' today to ask. Last I knew it was not 100% self hosting, although I
think Neil has also said he had the development running on his Mac. So he
may be cross compiling from a Mac not OVMS/Alpha - which would all testing
on his laptop. (I've sent him email to make sure and if I'm miss-informed
I'll update).

The other thing to add is there were at least two generations of the
compilers within DEC that I knew about. Tim you may have know of a third
when I was off doing other things. The last (current) is the 'Gem'
compilers which was a rewrite to allow N font-ends, with Y back-ends. I
thought 'Compatible BLISS' was done to create BLISS-36/16/32 (PDP-10, 11,
Vax) from the original CMU base; but was only targeting BLISS. AFAIK, the
original Compatible BLISS compiler was developed on the PDP-10 and
eventually replaced the CMU code. Prism forced the rewrite of the
back-ends and with it the later generation and TLG wanted to clean up its
act with a single back-end/optimizer that was common for all the languages
[hence the Gem project - I'd have to ask Rich Grove for the details].
IIRC, Vax was used as the base for that system, although it moved to Alpha
by the mid/late 1990s.

Clem

ᐧ
Timothe Litt
2018-01-26 21:28:58 UTC
Permalink
On 26-Jan-18 14:09, Clem Cole wrote:
>
>
> The other thing to add is there were at least two generations of the
> compilers within DEC that I knew about. 
Yes. 
> Tim you may have know of a third when I was off doing other things.  
> The last (current) is the 'Gem' compilers which was a rewrite to allow
> N font-ends, with Y back-ends.   I thought 'Compatible BLISS' was done
> to create BLISS-36/16/32 (PDP-10, 11, Vax) from the original CMU base;
> but was only targeting BLISS. 
Yes - "Common BLISS", not "compatible".  But Common BLISS also included
a lot of language changes.

> AFAIK, the original Compatible BLISS compiler was developed on the
> PDP-10 and eventually replaced the CMU code. 
Yes - VMS was initially developed under TOPS-20 with the cross tools. 
The developers were happy when it became self-hosted on the VAX, though
they lost a lot in moving from a mature environment.  But pride of self
covers a lot of pain.

The LCG products moved to Common BLISS - FORTRAN, RMS, APL perhaps the
most notable.  One or two might have been left behind because they were
so stable.  But none come immediately to mind.

> Prism forced the rewrite of the back-ends and with it the later
> generation and TLG wanted to clean up its act with a single
> back-end/optimizer that was common for all the languages [hence the
> Gem project - I'd have to ask Rich Grove for the details].  IIRC, Vax
> was used as the base for that system, although it moved to Alpha by
> the mid/late 1990s.
>
Sounds right.  The -16 and -36 versions stayed with the native backend
and didn't get much attention once GEM took off.  At least, I don't
recall GEM support for them.  However, there was minimal change to the
language, so Common BLISS remained common.  (I think the changes were
stuff like architecture-specific PSECT attributes, alignments &
builtins.)  GEM was very successful in consolidating optimization
efforts across all the languages.  It also made it feasible to add
object code generation for various runtime environments for multiple
languages.  Turned an n * m problem into essentially n + m.

Alpha pretty much repeated the VAX route (plus the stupid mistake of
splitting the VMS sources).  It cross-compiled from VAX to simulation,
then the internal early development alpha subset hardware, then alpha. 
But it was a lot easier, since we had real networks and
cross-architecture clusters; you could compile on a VAX, dismount the
disk, and boot on an Alpha ADU in about 30 seconds; later, compile on a
VAX and run user mode on Alpha without dismounting.  OSF/1 was another
story; I wasn't involved in that.

Because of GEM, compiler "generation" gets a bit fuzzy - updates give
BLISS new optimizations and targets (some radically different), but
(almost) all the work is in GEM, not the front end.  But GEM would race
along for a while, but not be incorporated into the released languages
until there was some forcing function.  That could be a long time for
BLISS, but not so long for FORTRAN and C.  So it depends on where you
draw the line - is GEM part of the compiler, or not?  No doubt the
compiler guys can point to examples where GEM changes affected the
language front ends, but from afar it seemed a pretty stable interface. 
I don't think there was any technical reason that the front end, IL
optimizer, code generators and object generators couldn't have been
separate sharable libraries - and separately patchable/upgradable.  But
I suspect there was marketing (and qualification) pull toward hiding the
boundaries when packaging.  After all, some 3rd party might have written
a backend for a non-DEC architecture.

All three (CMU ,BLISS, GEM) back ends used considerable creativity in
interpreting the instruction sets, and as time went on gave hand-coded
assembler a run for its money.  They especially liked to do computations
with bizarre-looking address calculations.  (Not all of which ran fast
on all processors.)  In one case, a particularly "clever" encoding of a
test on a link-time constant broke RMS on an unreleased VAX CPU. 
Interestingly, this one instruction was the ONLY time this construct was
encountered in all of VMS (including the top dozen layered products), so
waiting for the hardware spin wasn't as bad as it might have been.

Every time I do handstands with C #if/#define I still wish for BLISS %if
and %macro.  (I once had to port a few 100K lines of my BLISS code to C
on a 68000, and even with automation, converting macros and keyword
initialized data structures to C was a painful exercise in devolution by
obfuscation...)


> Clem
>
> ᐧ
Hunter Goatley
2018-01-26 21:49:00 UTC
Permalink
On 1/26/2018 3:28 PM, Timothe Litt wrote:

> Sounds right.  The -16 and -36 versions stayed with the native backend
> and didn't get much attention once GEM took off.  At least, I don't
> recall GEM support for them.

I believe that's correct.

> Alpha pretty much repeated the VAX route (plus the stupid mistake of
> splitting the VMS sources).  It cross-compiled from VAX to simulation,

I was porting a lot of freeware from VAX to Alpha when all that was
available were the cross-compilers. The BLISS cross-compiler was great,
but the early C cross-compilers were more problematic.

> All three (CMU ,BLISS, GEM) back ends used considerable creativity in
> interpreting the instruction sets, and as time went on gave hand-coded
> assembler a run for its money.  They especially liked to do
> computations with bizarre-looking address calculations.  (Not all of
> which ran fast on all processors.) In one case, a particularly
> "clever" encoding of a test on a link-time constant broke RMS on an
> unreleased VAX CPU. Interestingly, this one instruction was the ONLY
> time this construct was encountered in all of VMS (including the top
> dozen layered products), so waiting for the hardware spin wasn't as
> bad as it might have been.

I vaguely remember hearing about that.

BLISS-32 on VAX generated some amazing optimizations. Before I got into
BLISS, I programmed almost exclusively in MACRO-32, and it was fun to
compare code I wrote to the assembly code generated by the BLISS
compiler. Several times, I encountered generated code that was a lot
more efficient than the code I wrote, which I thought was very
efficient. I learned a few MACRO tricks looking at the code generated.
It was less fun trying to understand the GEM output for Alpha. ;-)

> Every time I do handstands with C #if/#define I still wish for BLISS
> %if and %macro.  (I once had to port a few 100K lines of my BLISS code
> to C on a 68000, and even with automation, converting macros and
> keyword initialized data structures to C was a painful exercise in
> devolution by obfuscation...)

Yes, the BLISS macros and lexicals are awesome, and it also kills me
that C never had them.

Hunter
Johnny Billquist
2018-01-26 21:55:48 UTC
Permalink
On 2018-01-26 22:49, Hunter Goatley wrote:
> On 1/26/2018 3:28 PM, Timothe Litt wrote:
>
>> Sounds right.  The -16 and -36 versions stayed with the native backend
>> and didn't get much attention once GEM took off.  At least, I don't
>> recall GEM support for them.
>
> I believe that's correct.

So, no GEM for BLISS-16, and most likely no chance of it being ported to
Alpha then. Thanks for confirming that.

>> All three (CMU ,BLISS, GEM) back ends used considerable creativity in
>> interpreting the instruction sets, and as time went on gave hand-coded
>> assembler a run for its money.  They especially liked to do
>> computations with bizarre-looking address calculations.  (Not all of
>> which ran fast on all processors.) In one case, a particularly
>> "clever" encoding of a test on a link-time constant broke RMS on an
>> unreleased VAX CPU. Interestingly, this one instruction was the ONLY
>> time this construct was encountered in all of VMS (including the top
>> dozen layered products), so waiting for the hardware spin wasn't as
>> bad as it might have been.
>
> I vaguely remember hearing about that.
>
> BLISS-32 on VAX generated some amazing optimizations. Before I got into
> BLISS, I programmed almost exclusively in MACRO-32, and it was fun to
> compare code I wrote to the assembly code generated by the BLISS
> compiler. Several times, I encountered generated code that was a lot
> more efficient than the code I wrote, which I thought was very
> efficient. I learned a few MACRO tricks looking at the code generated.
> It was less fun trying to understand the GEM output for Alpha. ;-)

Heh. I've had similar experiences with BLISS-16. I've learned a trick or
two looking at the code generated, and it can do some rather neat
tricks. Definitely impressive code generated. Not seen that level from
any other PDP-11 compiler.

Johnny

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Bob Eager
2018-01-26 23:15:05 UTC
Permalink
On Fri, 26 Jan 2018 22:55:48 +0100
Johnny Billquist <***@softjar.se> wrote:

> Heh. I've had similar experiences with BLISS-16. I've learned a trick
> or two looking at the code generated, and it can do some rather neat
> tricks. Definitely impressive code generated. Not seen that level
> from any other PDP-11 compiler.

How many people have read this book? (I have it)

It's about the design of an early BLISS compiler.

http://amzn.eu/irCsXhi
Phil Budne
2018-01-27 05:11:33 UTC
Permalink
Bob Eager wrote:
> How many people have read this book? (I have it)
I own it, but have never studied it.

> It's about the design of an early BLISS compiler.
BLISS-11

> http://amzn.eu/irCsXhi
Tom Morris
2018-01-27 18:25:18 UTC
Permalink
On Fri, Jan 26, 2018 at 4:28 PM, Timothe Litt <***@ieee.org> wrote:

> the front end, IL optimizer, code generators and object generators
>

IL optimizer == GEM "middle end" or was that a local colloquialism?

Tom
Clem Cole
2018-01-27 19:01:54 UTC
Permalink
On Sat, Jan 27, 2018 at 1:25 PM, Tom Morris <***@gmail.com> wrote:

> On Fri, Jan 26, 2018 at 4:28 PM, Timothe Litt <***@ieee.org> wrote:
>
>> the front end, IL optimizer, code generators and object generators
>>
>
> IL optimizer == GEM "middle end" or was that a local colloquialism?
>
​I've never heard that term.

IL optimizer was just that. There are also machine specific optimizers
run after code generation.

In the case of the ​Intel, there are parallelism passes now done also,
first on the IL and then later on the during CG.
ᐧ
Clem Cole
2018-01-27 18:59:31 UTC
Permalink
On Fri, Jan 26, 2018 at 4:28 PM, Timothe Litt <***@ieee.org> wrote:

> I don't think there was any technical reason that the front end, IL
> optimizer, code generators and object generators couldn't have been
> separate sharable libraries - and separately patchable/upgradable.
>
​I was under the impression that the shared libraries were just that and
DEC was pretty tight about if the fix was in the backend, all front end
languages had to be tested (more in a minute).​

But I suspect there was marketing (and qualification) pull toward hiding
> the boundaries when packaging.
>
​Maybe in marketing (undeserved) but qual was in important.​



> After all, some 3rd party might have written a backend for a non-DEC
> architecture.
>
​Unlikely - the sad truth is that when both the K&A folks and Intel
compiler groups had access to the all the code and the doc (and the people
that designed it), guess what code base was used.. not GEM.​

Grove used to say the DEC (Gem) compiler DNA was being ground up and
reinserted into the Intel compiler. To this day the Intel IL is not as
rich as the Gem IL and it drives a lot of the old DEC team crazy. From
what I gather, the closest IL has been what LLVM did, but I gather than is
still pretty weak for some language structures such as FORTRAN (and I
believe PL/1).

Speaking for myself and my own personal experiences in using the both the
DEC and Intel tool chains over the years, the common back-end/runtime is acute
and you see how well Gem did vs an issue Intel has had. I've spent years
trying to get the testing and installer folks to 'get it' when it comes to
dependancies (I was once given an Intel div level award for 'fixing' this
issue - although 5 years later I discovered much of the work we had done
had been lost and I had a deal into a new group numbskulls -- sigh - I do
think it is current correct - if you believe/know otherwise sent me email
offline).

Intel Fortran (like DEC Fortran) is dependent on the actually
source language specific runtime (because it's written in C or BLISS)
and both runtimes are dependent on a bunch of common runtime code, not just
language specific stuff. If you make a change to the last or middle ones:
you have to ensure that you test what is dependent upon; and and when you
install don't create (and release) private versions. i.e. install common
runtimes, then Fortran specific, then the Fortran compiler etc... I'm
always amazed that such a simple idea is lost on some of the installation
folks (as much as a I used to b*tch at the DEC setld installer team, they
did tend to get this right).



ᐧ
Timothe Litt
2018-01-28 20:42:55 UTC
Permalink
On 27-Jan-18 13:59, Clem Cole wrote:
>
>
> On Fri, Jan 26, 2018 at 4:28 PM, Timothe Litt <***@ieee.org
> <mailto:***@ieee.org>> wrote:
>
> I don't think there was any technical reason that the front end,
> IL optimizer, code generators and object generators couldn't have
> been separate sharable libraries - and separately
> patchable/upgradable. 
>
> ​I was under the impression that the shared libraries were just that
> and DEC was pretty tight about if the fix was in the backend, all
> front end languages had to be tested (more in a minute).​
>
I could be wrong - I followed GEM development off and on as a matter of
curiosity, but didn't get into the internals - however, I was under the
impression that GEM was built into the compilers from object libraries,
not linked as sharable images.  In any case, GEM was not exposed or
documented externally.  And I don't recall any language-independent
patch being issued for GEM - common issues resulted in a patch for each
language - however things were packaged.

What was regression tested internally was quite different from what was
released.  BLISS was regression tested daily, but rarely released (even
internally).  IIRC, there were a lot of GEM changes to support C
optimization and FORTRAN parallelization.  (And language changes.)  And
those languages were released fairly frequently to satisfy customers &
benchmarks.  But I tracked progress through the GEM and language
notesfiles, so I may have a skewed view. 

> But I suspect there was marketing (and qualification) pull toward
> hiding the boundaries when packaging.
>
> ​Maybe in marketing (undeserved) but qual was in important.​
>
>  
>
> After all, some 3rd party might have written a backend for a
> non-DEC architecture.
>
> ​Unlikely -  the sad truth is that when both the K&A folks and Intel
> compiler groups had access to the all the code and the doc (and the
> people that designed it), guess what code base was used..  not GEM.​
>
That's reality - in a different space-time continuum. 

In the original (DEC-centric) STC, those decisions were made from the
point of view of DEC being the center of the universe, and not wanting
DEC's IP to leak onto other architectures.  Either BLISS itself, or
products coded in it.  The same view that didn't license XMI; greatly
restricted BI licenses; and was too little too late with expanding the
Alpha ecosystem.  (Contrast with PDP-11, where every Unibus system came
with a license grant to build a peripheral...)

Similarly, the DECision on BLISS pricing made sense if you looked at
what DEC invested (I think Brender's paper said a team of 16 people
(pre-GEM) and a couple of $M) and what having it was worth to DEC
engineering.  It didn't recognize how customers would value BLISS, or
what adoption by a wider crowd would be worth to DEC in the long run.

In the current STC, well, I saw a lot of NIH in Intel.  I suspect that
what you report amounts to "Why tear up a "perfectly good compiler" to
incorporate technology from a "failed company", when the result isn't
directly marketable?" 

Of course, both share the same defect - a shortsighted world view. 
Which is easy to see a few decades later.

> Grove used to say the DEC (Gem) compiler DNA was being ground up and
> reinserted into the Intel compiler.   To this day the Intel IL is not
> as rich as the Gem IL and it drives a lot of the old DEC team crazy.  
> From what I gather, the closest IL has been what LLVM did, but I
> gather than is still pretty weak for some language structures such as
> FORTRAN (and I believe PL/1).
>
I wouldn't know; it's been a long time since I dabbled in compilers. 
Mostly pre-GEM timeframe.  But I'm not surprised.  GEM was built &
evolved by engineers from the ground up to support multiple languages at
equivalent optimization levels.  Most other ILs start as an internal
tool for one language; when extended, the rule is to make minimal
changes to support each additional language.  This keeps short term
costs down (regressions against and changes to the first language - and
tools), but you lose expressiveness (and optimizations).  And it ends up
being warty and hackish.  But the incremental cost of the next wart/hack
is always less than the cost of rototilling.  There's probably a formal
proof to derive NIH from this observation :-)

Old New England axiom: Never time to do it right; always time to do it over.

Knuth's version: When writing software, do it once to understand the
problem.  Then plan on throwing out what you built, and write it
correctly from scratch.

Neither is put to use in the technology world...at least not often.

> Speaking for myself and my own personal experiences in using the both
> the DEC and Intel tool chains over the years, the common
> back-end/runtime is acute and you see how well Gem did vs an issue
> Intel has had.   I've spent years trying to get the testing
> and installer folks to 'get it'  when it comes to dependancies (I was
> once given an Intel div level award for 'fixing' this issue - although
> 5 years later I discovered much of the work we had done had been lost
> and I had a deal into a new group numbskulls -- sigh - I do think it
> is current correct - if you believe/know otherwise sent me email offline).
>
No clue.  I had little contact with the Intel (including ex-DEC)
compiler folks when @INTC; I was trying to overcome NIH in other arenas.
> Intel Fortran (like DEC Fortran) is dependent on the actually
> source language specific runtime (because it's written in C or BLISS)
> and both runtimes are dependent on a bunch of common runtime code, not
> just language specific stuff.   If you make a change to the last or
> middle ones: you have to ensure that you test what is dependent upon;
> and and when you install don't create (and release) private versions.
>  i.e. install common runtimes, then Fortran specific, then the Fortran
> compiler etc...   I'm always amazed that such a simple idea is lost on
> some of the installation folks (as much as a I used to b*tch at the
> DEC setld installer team, they did tend to get this right).
>
>
>  
> ᐧ
DEC had a long history (going back to the 36-bit world) of managing &
qualifying complex software dependencies.  And the discipline to pass
the lessons along.  .EXEs from VMS 1.0 run today - sharable libraries
included (no private versions necessary.)

M$ did not have the history.  The resulting "DLL HELL" and "installation
nightmares" are well known, and not resolved to this day.  (And don't
get me started on the challenges of uninstalling...)

Linux is somewhat in the middle - the current container craze tries to
prevent interactions by - having private copies of sharable libraries. 
So they're sharable, but not shared (outside each container).  And I'm
tracking a project where some components require Python 2 and others
require Python 3 - in the same container.  So even the languages aren't
upward compatible.  But RPMs and DEBs seem to have learned from setld
(and VMSINSTAL/PCSI).  Unix sharable library versioning is capable of
being sane - but to the extent that there are standards, compliance is
spotty.  So people give up and static link...

INTC studied software development with M$, adopting its practices.  (Not
necessarily its best ones.)

Q.E.D.

Was it admiral Nelson who observed that those who don't learn from
history are doomed to repeat it?

SimH does a great job of preserving the ability to use the artifacts. 
However, preserving the knowledge that created them is a different
problem, as yet unsolved.

Grump.
J. David Bryan
2018-01-28 21:24:13 UTC
Permalink
On Sunday, January 28, 2018 at 15:42, Timothe Litt wrote:

> Was it admiral Nelson who observed that those who don't learn from
> history are doomed to repeat it?

George Santayana ("Those who cannot remember the past are condemned to
repeat it").

-- Dave
Johnny Billquist
2018-01-26 19:17:26 UTC
Permalink
On 2018-01-26 18:48, Timothe Litt wrote:
> BLISS-36,-16,-32,-32E,-64E, MIPS, INTEL, IA64, are DEC's common BLISS -
> evolved (and greatly extended) from BLISS-11, but not (really)
> source-compatible for non-trivial programs.  "common" means that (with
> carefully defined exceptions that can be conditionally compiled), the
> same language is accepted by all, and it's possible to write portable
> programs.  Including common BLISS itself.  RMS-10/20 is another
> non-trivial example - same sources as VAX/RMS.  There are a number of
> targets and host environment combinations that are supported.
>
> BLISS-16 is hosted on both PDP-10 and VAX, producing PDP-11 object
> code.  I used both.  I didn't encounter an Alpha-hosted version - but it
> should have compiled & run there, so it probably existed.  Or was VESTed.

I don't think BLISS-16 ran on PDP-10, but I could be wrong. I've never
seen or heard anything about BLISS-16 running on Alpha or beyond. I
guess it could be possible to do, but I sortof doubt anyone did. If
anyone have the bits, I would be very interested in hearing about it, as
I would like to recompile some bits and pieces. (Any BLISS-16 compiler
would be a good start.)

> Most software written in BLISS-10 & -11 was converted to common  BLISS.
>
> There was an attempt at self-hosting BLISS-16, but it failed -
> technically, it ran, but there really wasn't enough address space to
> make it usable.  Cross-compiling wasn't popular (networks were crude),
> so BLISS-16 was not as widely adopted.

Well, parts of the RSX kernel is written in BLISS-16, and all of RMS-11.
Also some parts of DECnet-11M-PLUS.
That much I know. I don't know what else might been written in BLISS-16.

Johnny

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Clem Cole
2018-01-26 19:38:51 UTC
Permalink
On Fri, Jan 26, 2018 at 2:17 PM, Johnny Billquist <***@softjar.se> wrote:
>
>
> I don't think BLISS-16 ran on PDP-10, but I could be wrong. I've never
> seen or heard anything about BLISS-16 running on Alpha or beyond.

​Gem did exactly that conceptually.​



> I guess it could be possible to do, but I sortof doubt anyone did.

​It's a testing problem. DEC was not only doing emergency fixes ​for the
PDP-11 by the time of Alpha, so I agree. I don't think TLG did anything
with the EOL systems by then, they had their hands full with Vax, Alpha and
386; plus all the front ends.




> If anyone have the bits, I would be very interested in hearing about it,
> as I would like to recompile some bits and pieces. (Any BLISS-16 compiler
> would be a good start.)

​VMSinc had the Gem compiler as part of their license. As I say, they
have Neil hacking on it again. But I believe that he is only worried
about Itanium and INTEL*64 at the moment.​ I also do not know what they
are doing with the front-ends. Clearly, they are working with the BLISS
front-end, but I have not idea what HP has them doing for the other
languages. I would expect to see C/C++/Fortran brought forward at least
through the dialect that DEC/Compaq/HP had at EOL, so customer code will
recompile, since I know of OVMS code in those three languages.

Clem
ᐧ
Paul Koning
2018-01-26 19:45:09 UTC
Permalink
> On Jan 26, 2018, at 2:38 PM, Clem Cole <***@ccc.com> wrote:
>
> ...
> ​VMSinc had the Gem compiler as part of their license. As I say, they have Neil hacking on it again. But I believe that he is only worried about Itanium and INTEL*64 at the moment.​ I also do not know what they are doing with the front-ends.

One of the more curious front ends of GEM is the Alpha assembler. I found out about that when doing some Alpha hand-optimizing early on (a handcoded "memcpy with TCP checksum calculation while doing it" if I remember right). It turned out I could write drafts of that code and give it to the assembler with a /OPTIMIZE switch to let the back end take what I wrote and do stuff to it. It wasn't always right, but it was a neat source of ideas.

The only other optimizing assembler I can think of is SOAP, way back in the 1950s.

paul
Timothe Litt
2018-01-26 21:49:11 UTC
Permalink
On 26-Jan-18 14:45, Paul Koning wrote:
> ent.​ I also do not know what they are doing with the front-ends.
> One of the more curious front ends of GEM is the Alpha assembler. I found out about that when doing some Alpha hand-optimizing early on (a handcoded "memcpy with TCP checksum calculation while doing it" if I remember right). It turned out I could write drafts of that code and give it to the assembler with a /OPTIMIZE switch to let the back end take what I wrote and do stuff to it. It wasn't always right, but it was a neat source of ideas.
Well, not exactly an optimizing assembler.  It sort of looks like one. 
But the real story is that the Alpha port needed to deal with the large
amount of MACRO-32 in VMS.  The solution was to treat MACRO-32 as a
compiled language, and generate a GEM front end for it.  There was a lot
of optimization that was absolutely required if you wanted tolerable
code - e.g. most VAX instructions set condition codes, but they are
rarely tested - and when tested, usually only a subset of those set are
involved in the test.  So tracking condition code generation and
consumption is a big win.  And when you look at address generation,
there's a lot of opportunity for CSE elimination, and other
optimizations.  Then you wanted to schedule the generated code for Alpha
- which is a lot of re-ordering, packing & the like.

Then it was extended for the Alpha instruction set (psect attributes,
instructions, etc).

At this point, you have a compiler for low level language, that happens
to look like assembler.  Externally, perhaps a distinction without a
difference; internally, quite different.  And if you're unlucky enough
to have to do instruction level debug, very different from traditional
assembler.

There also was the argument that you really couldn't (well, shouldn't)
write pure assembler for Alpha because the best scheduling depends on
the implementation (how many execution units, of what sorts & latencies;
predictions, speculations, prefetch; etc.)

PALcode has some unique constraints that do require manual scheduling,
as do some diagnostics.  But it does turn out to be true that Alpha
assembler is best understood (and used) as a low-level compiled
language, not an assembler.

> The only other optimizing assembler I can think of is SOAP, way back in the 1950s.
>
> paul
>
>
Johnny Billquist
2018-01-26 21:59:40 UTC
Permalink
On 2018-01-26 22:49, Timothe Litt wrote:
>
> On 26-Jan-18 14:45, Paul Koning wrote:
>> ent.​ I also do not know what they are doing with the front-ends.
>> One of the more curious front ends of GEM is the Alpha assembler. I found out about that when doing some Alpha hand-optimizing early on (a handcoded "memcpy with TCP checksum calculation while doing it" if I remember right). It turned out I could write drafts of that code and give it to the assembler with a /OPTIMIZE switch to let the back end take what I wrote and do stuff to it. It wasn't always right, but it was a neat source of ideas.
> Well, not exactly an optimizing assembler.  It sort of looks like one.
> But the real story is that the Alpha port needed to deal with the large
> amount of MACRO-32 in VMS.  The solution was to treat MACRO-32 as a
> compiled language, and generate a GEM front end for it.  There was a lot
> of optimization that was absolutely required if you wanted tolerable
> code - e.g. most VAX instructions set condition codes, but they are
> rarely tested - and when tested, usually only a subset of those set are
> involved in the test.  So tracking condition code generation and
> consumption is a big win.  And when you look at address generation,
> there's a lot of opportunity for CSE elimination, and other
> optimizations.  Then you wanted to schedule the generated code for Alpha
> - which is a lot of re-ordering, packing & the like.
>
> Then it was extended for the Alpha instruction set (psect attributes,
> instructions, etc).
>
> At this point, you have a compiler for low level language, that happens
> to look like assembler.  Externally, perhaps a distinction without a
> difference; internally, quite different.  And if you're unlucky enough
> to have to do instruction level debug, very different from traditional
> assembler.
>
> There also was the argument that you really couldn't (well, shouldn't)
> write pure assembler for Alpha because the best scheduling depends on
> the implementation (how many execution units, of what sorts & latencies;
> predictions, speculations, prefetch; etc.)
>
> PALcode has some unique constraints that do require manual scheduling,
> as do some diagnostics.  But it does turn out to be true that Alpha
> assembler is best understood (and used) as a low-level compiled
> language, not an assembler.

Are we talking about MACRO-32 or Alpha assembler now? They are two
different things. PALcode, I would assume, you actually wanted an Alpha
assembler for. Porting lots of VMS stuff needed the MACRO-32 compiler.
Exactly what Paul was doing, and in which language, was a bit unclear to
me. I was assuming he was talking about Alpha assembler, and not
MACRO-32, but I could be wrong.

Johnny

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Paul Koning
2018-01-26 22:13:42 UTC
Permalink
> On Jan 26, 2018, at 4:59 PM, Johnny Billquist <***@softjar.se> wrote:
>
> On 2018-01-26 22:49, Timothe Litt wrote:
>> ...
>> There also was the argument that you really couldn't (well, shouldn't) write pure assembler for Alpha because the best scheduling depends on the implementation (how many execution units, of what sorts & latencies; predictions, speculations, prefetch; etc.)
>> PALcode has some unique constraints that do require manual scheduling, as do some diagnostics. But it does turn out to be true that Alpha assembler is best understood (and used) as a low-level compiled language, not an assembler.
>
> Are we talking about MACRO-32 or Alpha assembler now? They are two different things. PALcode, I would assume, you actually wanted an Alpha assembler for. Porting lots of VMS stuff needed the MACRO-32 compiler. Exactly what Paul was doing, and in which language, was a bit unclear to me. I was assuming he was talking about Alpha assembler, and not MACRO-32, but I could be wrong.

Yes, native Alpha assembler. Obviously that is machine dependent if you're optimizing very seriously. The purpose of the exercise was to see if you could do TCP checksum in software while moving network data between the Ethernet NIC buffers and other places, at the same speed as a simple memcpy. The answer is yes: if you're at all careful, you can do the necessary arithmetic at times when the CPU would otherwise have been waiting for memory accesses. The same tends to be true for simple data processing actions on buffers in many other machines, for that matter. Many years later I did RAID-5 and RAID-6 (XOR based) in software in a similar way, the cost was simply that of passing over the memory buffers and the arithmetic involved had an effective cost of zero.

paul
Johnny Billquist
2018-01-26 20:18:48 UTC
Permalink
On 2018-01-26 20:38, Clem Cole wrote:
>
>
> On Fri, Jan 26, 2018 at 2:17 PM, Johnny Billquist <***@softjar.se
> <mailto:***@softjar.se>> wrote:
>
>
> I don't think BLISS-16 ran on PDP-10, but I could be wrong. I've
> never seen or heard anything about BLISS-16 running on Alpha or beyond.
>
> ​Gem did exactly that conceptually.​

Wasn't/isn't GEM the compiler core used for most languages later on? I
didn't think BLISS itself was using GEM, but I don't know at all.
However, I believe/assume/think I heard that GEM itself is written in BLISS.

> I guess it could be possible to do, but I sortof doubt anyone did.
>
> ​It's a testing problem.   DEC was not only doing emergency fixes ​for
> the PDP-11 by the time of Alpha, so I agree.   I don't think TLG did
> anything with the EOL systems by then, they had their hands full with
> Vax, Alpha and 386; plus all the front ends.

When the Alpha came out, the PDP-11 was not dead. But I would not expect
that much work was done anymore. They had tools and products, which they
continued to use and improve. But moving to a new platform for any of it
would have been very doubtful.

> If anyone have the bits, I would be very interested in hearing about
> it, as I would like to recompile some bits and pieces. (Any BLISS-16
> compiler would be a good start.)
>
> ​VMSinc had the Gem compiler as part of their license.   As I say, they
> have Neil hacking on it again.   But I believe that he is only worried
> about Itanium and INTEL*64 at the moment.​  I also do not know what they
> are doing with the front-ends.   Clearly, they are working with the
> BLISS front-end, but I have not idea what HP has them doing for the
> other languages.  I would expect to see C/C++/Fortran brought forward at
> least through the dialect that DEC/Compaq/HP had at EOL, so customer
> code will recompile, since I know of OVMS code in those three languages.

Yes, BLISS is being worked on, as is GEM. I saw some comment by on the
progress and issues around this from some VSI person not long ago.
But all that is far removed from anything PDP-11 related.

Johnny

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
John Forecast
2018-01-27 16:21:04 UTC
Permalink
> On Jan 26, 2018, at 2:17 PM, Johnny Billquist <***@softjar.se> wrote:
>
> On 2018-01-26 18:48, Timothe Litt wrote:
>> BLISS-36,-16,-32,-32E,-64E, MIPS, INTEL, IA64, are DEC's common BLISS - evolved (and greatly extended) from BLISS-11, but not (really) source-compatible for non-trivial programs. "common" means that (with carefully defined exceptions that can be conditionally compiled), the same language is accepted by all, and it's possible to write portable programs. Including common BLISS itself. RMS-10/20 is another non-trivial example - same sources as VAX/RMS. There are a number of targets and host environment combinations that are supported.
>> BLISS-16 is hosted on both PDP-10 and VAX, producing PDP-11 object code. I used both. I didn't encounter an Alpha-hosted version - but it should have compiled & run there, so it probably existed. Or was VESTed.
>
> I don't think BLISS-16 ran on PDP-10, but I could be wrong. I've never seen or heard anything about BLISS-16 running on Alpha or beyond. I guess it could be possible to do, but I sortof doubt anyone did. If anyone have the bits, I would be very interested in hearing about it, as I would like to recompile some bits and pieces. (Any BLISS-16 compiler would be a good start.)
>
>> Most software written in BLISS-10 & -11 was converted to common BLISS.
>> There was an attempt at self-hosting BLISS-16, but it failed - technically, it ran, but there really wasn't enough address space to make it usable. Cross-compiling wasn't popular (networks were crude), so BLISS-16 was not as widely adopted.
>
> Well, parts of the RSX kernel is written in BLISS-16, and all of RMS-11. Also some parts of DECnet-11M-PLUS.
> That much I know. I don't know what else might been written in BLISS-16.
>
Do you know which parts ended up in Bliss? I was project lead for the first version of DECnet-11M-Plus which was written entirely in Macro-11 (Well there may have been Fortran/Basic etc in the run-time libraries).

John.

> Johnny
>
> --
> Johnny Billquist || "I'm on a bus
> || on a psychedelic trip
> email: ***@softjar.se || Reading murder books
> pdp is alive! || tryin' to stay hip" - B. Idol
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
Johnny Billquist
2018-01-27 17:06:15 UTC
Permalink
On 2018-01-27 17:21, John Forecast wrote:
>
>> On Jan 26, 2018, at 2:17 PM, Johnny Billquist <***@softjar.se> wrote:
>>
>> On 2018-01-26 18:48, Timothe Litt wrote:
>>> BLISS-36,-16,-32,-32E,-64E, MIPS, INTEL, IA64, are DEC's common BLISS - evolved (and greatly extended) from BLISS-11, but not (really) source-compatible for non-trivial programs. "common" means that (with carefully defined exceptions that can be conditionally compiled), the same language is accepted by all, and it's possible to write portable programs. Including common BLISS itself. RMS-10/20 is another non-trivial example - same sources as VAX/RMS. There are a number of targets and host environment combinations that are supported.
>>> BLISS-16 is hosted on both PDP-10 and VAX, producing PDP-11 object code. I used both. I didn't encounter an Alpha-hosted version - but it should have compiled & run there, so it probably existed. Or was VESTed.
>>
>> I don't think BLISS-16 ran on PDP-10, but I could be wrong. I've never seen or heard anything about BLISS-16 running on Alpha or beyond. I guess it could be possible to do, but I sortof doubt anyone did. If anyone have the bits, I would be very interested in hearing about it, as I would like to recompile some bits and pieces. (Any BLISS-16 compiler would be a good start.)
>>
>>> Most software written in BLISS-10 & -11 was converted to common BLISS.
>>> There was an attempt at self-hosting BLISS-16, but it failed - technically, it ran, but there really wasn't enough address space to make it usable. Cross-compiling wasn't popular (networks were crude), so BLISS-16 was not as widely adopted.
>>
>> Well, parts of the RSX kernel is written in BLISS-16, and all of RMS-11. Also some parts of DECnet-11M-PLUS.
>> That much I know. I don't know what else might been written in BLISS-16.
>>
> Do you know which parts ended up in Bliss? I was project lead for the first version of DECnet-11M-Plus which was written entirely in Macro-11 (Well there may have been Fortran/Basic etc in the run-time libraries).

PHONE is written in BLISS. The rest of BLISS I can find is for
PRO/DECnet, where it appears the equivalent of NCP was instead written
in BLISS, along with NICE (they're called NMT and NSO). Both subsystems
last worked in in 1985.

The only Fortran or Basic I can find are demo programs on how to use the
NETFOR library.

Johnny

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Paul Koning
2018-01-26 16:33:21 UTC
Permalink
> On Jan 25, 2018, at 7:23 PM, Johnny Billquist <***@softjar.se> wrote:
>
> On 2018-01-26 01:03, Tony Nicholson wrote:
>> Definitely BASIC-Plus on RSTS! You may need to replace the “&” with “PRINT” in some of the files.
>
> Which should tell you that it's not for BASIC+ on RSTS/E. :-)
> Also, : for separating statements is, as far as I remember, also not in BASIC+, which instead uses \, just like BASIC+2.

Not true. BASIC-PLUS, at least starting with RSTS V5 or thereabouts, *supports* BP2 syntax as an alternate option. But it does not insist on it and it still supports the old syntax as well. Here is RSTS V10.1:

list
BPTEST 11:30 AM 26-Jan-18
10 & "hi there" :
& "line 2, with <LF> continuation"
20 end

Ready

run
BPTEST 11:30 AM 26-Jan-18
hi there
line 2, with <LF> continuation

Ready

For BP2, & as shorthand for PRINT is not allowed, : must be replaced by \, and continuation lines must be &<crlf> rather than <lf>. If you do that, the file will still work with BASIC-PLUS in RSTS/E (but not on V4A).

paul
Warren Young
2018-01-26 00:34:45 UTC
Permalink
On Thu, Jan 25, 2018 at 4:44 PM, Johnny Billquist <***@softjar.se> wrote:

>
> I wonder if...this might be from some other BASIC dialect that DEC had at
> some point.
>

I believe we're using these BASIC programs as-is in our OS/8 distribution
<http://tangentsoft.com/pidp8i/#os8>. 1975 is late in the PDP-8's lifetime,
but also right at its peak of use, especially in education, since the
microcomputer revolution had just barely gotten rolling by that point.
Johnny Billquist
2018-01-26 00:52:56 UTC
Permalink
On 2018-01-26 01:34, Warren Young wrote:
> On Thu, Jan 25, 2018 at 4:44 PM, Johnny Billquist <***@softjar.se
> <mailto:***@softjar.se>> wrote:
>
>
> I wonder if...this might be from some other BASIC dialect that DEC
> had at some point.
>
> I believe we're using these BASIC programs as-is in our OS/8
> distribution <http://tangentsoft.com/pidp8i/#os8>. 1975 is late in the
> PDP-8's lifetime, but also right at its peak of use, especially in
> education, since the microcomputer revolution had just barely gotten
> rolling by that point.

Hmm. I would not expect much of that code to work on the BASIC that's
under OS/8 without changes as well.
I also checked another file, and found a comment that they should all
work on RSTS/E and RSTS-11, except for SPACWR and another one, and of
course I did most of my examination on SPACWR.
So that explains it. That specific file have more issues. Maybe the
others will work fine in BASIC+ then.

Johnny

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Al Kossow
2018-01-26 00:59:57 UTC
Permalink
On 1/25/18 4:52 PM, Johnny Billquist wrote:

> Hmm. I would not expect much of that code to work on the BASIC that's under OS/8 without changes as well.

Edusystem BASIC?

Didn't he come out of that world?
Johnny Billquist
2018-01-26 01:11:13 UTC
Permalink
Yeah, as far as I can recall he was at EduSystems. Didn't really reflect that they might have had their own dialect. But that would make sense.

Johnny


Al Kossow <***@bitsavers.org> skrev: (26 januari 2018 01:59:57 CET)
>
>
>On 1/25/18 4:52 PM, Johnny Billquist wrote:
>
>> Hmm. I would not expect much of that code to work on the BASIC that's
>under OS/8 without changes as well.
>
>Edusystem BASIC?
>
>Didn't he come out of that world?
>
>
>_______________________________________________
>Simh mailing list
>***@trailing-edge.com
>http://mailman.trailing-edge.com/mailman/listinfo/simh

--
Skickat från min Android-enhet med K-9 Mail. UrsÀkta min fåordighet.
Warren Young
2018-01-26 01:16:09 UTC
Permalink
On Thu, Jan 25, 2018 at 5:52 PM, Johnny Billquist <***@softjar.se> wrote:

> On 2018-01-26 01:34, Warren Young wrote:
>
>> On Thu, Jan 25, 2018 at 4:44 PM, Johnny Billquist <***@softjar.se
>> <mailto:***@softjar.se>> wrote:
>>
>> I wonder if...this might be from some other BASIC dialect that DEC
>> had at some point.
>>
>> I believe we're using these BASIC programs as-is in our OS/8 distribution
>> <http://tangentsoft.com/pidp8i/#os8>.
>>
>
> Hmm. I would not expect much of that code to work on the BASIC that's
> under OS/8 without changes as well.
>

I'm basing that on a report from Bill Cattey who used that PDF to repair
several broken programs on the os8.rk05 disk image we were shipping prior
to rolling our own OS/8 distribution based on primary source media.

However, a search for "PDP" in that PDF turns up several interesting bits:

p20: a reference to "PDP-11 BASIC". This program is not among the set we
ship with our OS/8 distribution. I don't know if it's because it's been
tried and doesn't run or if no one bothered to put it in.

p27: a reference to the PDP-8 and the EduSystem 35, which was PDP-8 based;
but this BASBAL.BA program isn't among those we ship, either.

p102: a reference to "PDP-11 BASIC", but the first few lines are the same
in our OS/8 FOOTBL.BA! I did not read more closely to find out if the
similarity continues. (I thought I was done comparing on-screen BASIC
programs to printed BASIC programs by the late 1980s. :) )

p144: a reference to a PDP-7; we ship LIFE.BA, but line 2 says:

2 REMARKABLY TRANSLATED TO OS8 BASIC BY KAY R. FISHER ...DEC

p235: another reference to "PDP-11" BASIC; we also ship a WEKDAY.BA, and Ms
Fisher is back with another REMark:

20 REM MODIFIED TO LOOK RESPECTABLE ON PDP-8'S BY KAY R. FISHER ...DEC

So, apparently we are apostate, no longer living strictly by the book. :)
Paul Koning
2018-01-26 16:18:38 UTC
Permalink
> On Jan 25, 2018, at 6:44 PM, Johnny Billquist <***@softjar.se> wrote:
>
> Cool. Thanks. Downloaded and unpacket.
> Anyone interested and on HECnet can now find them on MIM::DU:[101GAMES]
>
> Looked a little at one or two files. BASIC+2 do not like them. The code uses special shorts, functions and specifics that don't match.
> I wonder if BASIC+ accepts them either, or if this might be from some other BASIC dialect that DEC had at some point.
>
> If I have plenty of time at some point, I might sit down and write a converter for them to BASIC+2 style.

There is a converter to do that for RSTS, I believe it was included as a standard tool. Can't remember the name. The line ending conventions can be done by running it through TECO (read with /B+ and save with /B2). But other details, like the use of colon rather than backslash as statement separator you'll have to do by hand.

BASIC-PLUS and BASIC-PLUS-2 are different languages. It's not hard to write a program acceptable to both, but source text that predates the release of BASIC-PLUS-2 are likely to need work. And sufficiently old ones (like ones written for RSTS V4A) definitely will, because in those version, BASIC-PLUS did not yet support the -2 compatible syntax.

paul
khandy21yo
2018-01-26 01:58:54 UTC
Permalink
Rsts basic+ has two modes. Extend and noextend,
Noextend is the original mode, where 'line continues with a linseed and ends with a return. The & character works as a shortcut for print. Statements were separated with a colon :
Extend mode was changed things around. It was a later addition. 'line continues used the &, statement separator was the /, and shortcuts were gone.
Put a line at the front of the code like '1 noextend and they may work fine as is.



Sent from my Galaxy Tab® A
-------- Original message --------From: Clem Cole <***@ccc.com> Date: 1/25/18 6:15 PM (GMT-07:00) To: Johnny Billquist <***@softjar.se> Cc: Simh <***@trailing-edge.com> Subject: Re: [Simh] 101 Basic Games for RSTS/E (was Re: PDP11 on Simh for public access)


On Thu, Jan 25, 2018 at 7:23 PM, Johnny Billquist <***@softjar.se> wrote:
 I thought Dave Ahl didn't come from that environment. 
I'm pretty sure Ahl was in Education System's group, which I thought at one point was in MRO (Marlboro).    Small-systems was in the Mill.  MRO was 36-bit land.   So he would have had access to the 10s, but I note you're right there had been many 8s in the Education stream.
That said, few HSs could even afford them.  Folks in HS's  (like my father who was teaching Math in a HS outside of Philadelphia during that time period) were most likely running on remote timesharing systems via dial-up lines - with GE(Honywell)/Mark-IV being the giant in that business (my own entry in the computers with him in '67 was on the Mark-II and Mark-III).   DEC's customers that were trying to get into that business were mostly supported by PDP-10s, not small systems.
RSTS Basic is a late entry, the language support for it, originally came from the compiler group which again was originally PDP-10 based (also remember the PDP-11 BLISS compiler needed a 10 to run it).
I can not look in my own archives from the time, my only PDP-10 documentation I have left from the early 70s, is the white monitor 'phone book.'  I do have later (circa '78) PDP-10/20 docs but that would have be after the book described was published.
Clem

ᐧ
Kevin Handy
2018-01-26 02:25:11 UTC
Permalink
Ok, I already have a tool to convert old "noextend" basic+ to the newer
"extend" format.

It is 'b1filter.cc' in the src directory of

git clone http://github.com/khandy21yo/btran.git

it handles the end-of-line stuff as well as the '&' for print. There are
some things it doesn't handle, like missing semi-colons in PRINT statements.

There are some of the '101 basic ganmes' in the 'examples' directory, as
well as a 'unbac' which might be useful for some.


On Thu, Jan 25, 2018 at 6:58 PM, khandy21yo <***@gmail.com> wrote:

> Rsts basic+ has two modes. Extend and noextend,
>
> Noextend is the original mode, where 'line continues with a linseed and
> ends with a return. The & character works as a shortcut for print.
> Statements were separated with a colon :
>
> Extend mode was changed things around. It was a later addition. 'line
> continues used the &, statement separator was the /, and shortcuts were
> gone.
>
> Put a line at the front of the code like '1 noextend and they may work
> fine as is.
>
>
>
>
> Sent from my Galaxy Tab® A
>
> -------- Original message --------
> From: Clem Cole <***@ccc.com>
> Date: 1/25/18 6:15 PM (GMT-07:00)
> To: Johnny Billquist <***@softjar.se>
> Cc: Simh <***@trailing-edge.com>
> Subject: Re: [Simh] 101 Basic Games for RSTS/E (was Re: PDP11 on Simh for
> public access)
>
>
>
> On Thu, Jan 25, 2018 at 7:23 PM, Johnny Billquist <***@softjar.se> wrote:
>
>> I thought Dave Ahl didn't come from that environment.
>
>
> I'm pretty sure Ahl was in Education System's group, which I thought at
> one point was in MRO (Marlboro). Small-systems was in the Mill. MRO was
> 36-bit land. So he would have had access to the 10s, but I note you're
> right there had been many 8s in the Education stream.
>
> That said, few HSs could even afford them. Folks in HS's (like my father
> who was teaching Math in a HS outside of Philadelphia during that time
> period) were most likely running on remote timesharing systems via dial-up
> lines - with GE(Honywell)/Mark-IV being the giant in that business (my own
> entry in the computers with him in '67 was on the Mark-II and Mark-III).
> DEC's customers that were trying to get into that business were mostly
> supported by PDP-10s, not small systems.
>
> RSTS Basic is a late entry, the language support for it, originally came
> from the compiler group which again was originally PDP-10 based (also
> remember the PDP-11 BLISS compiler needed a 10 to run it).
>
> I can not look in my own archives from the time, my only PDP-10
> documentation I have left from the early 70s, is the white monitor 'phone
> book.' I do have later (circa '78) PDP-10/20 docs but that would have be
> after the book described was published.
>
> Clem
>
>
> ᐧ
>
khandy21yo
2018-01-28 21:43:40 UTC
Permalink
There is a project on gitnub called BLISS-M. Is it comparable with any version of bliss discussed here? 
Never had BLISS on anything until long after it would have been useful. So how does BLISS compare to C as a systems programming language? Is it worth learning at this late date?


Sent from my Galaxy Tab® A
-------- Original message --------From: Phil Budne <***@ultimate.com> Date: 1/28/18 1:59 PM (GMT-07:00) To: ***@trailing-edge.com, ***@ultimate.com, ***@gmail.com Subject: Re: [Simh] 101 Basic Games for RSTS/E (was Re: PDP11 on Simh for public access)
I wrote:
> I found BLISS-11 sources and binaries in decus catalog item 10-325:
> directory [43,50325] in (The DECUS catalog numbers are decimal

catalog number is 10-213 (decimal)
Johnny Billquist
2018-01-28 21:49:52 UTC
Permalink
It's more or less a dead language, unless you are in a very specific
environment. So no, most likely it is not worth learning, if you are
thinking that you might work with it.

Compared to C? Well, it is similar, I'd guess/say.

Johnny

On 2018-01-28 22:43, khandy21yo wrote:
> There is a project on gitnub called BLISS-M. Is it comparable with any
> version of bliss discussed here?
>
> Never had BLISS on anything until long after it would have been useful.
> So how does BLISS compare to C as a systems programming language? Is it
> worth learning at this late date?
>
>
>
> Sent from my Galaxy Tab® A
>
> -------- Original message --------
> From: Phil Budne <***@ultimate.com>
> Date: 1/28/18 1:59 PM (GMT-07:00)
> To: ***@trailing-edge.com, ***@ultimate.com, ***@gmail.com
> Subject: Re: [Simh] 101 Basic Games for RSTS/E (was Re: PDP11 on Simh
> for public access)
>
> I wrote:
> > I found BLISS-11 sources and binaries in decus catalog item 10-325:
> > directory [43,50325] in (The DECUS catalog numbers are decimal
>
> catalog number is 10-213 (decimal)
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
>
>
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
>

--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Hunter Goatley
2018-01-28 23:38:00 UTC
Permalink
On 1/28/2018 3:49 PM, Johnny Billquist wrote:

> It's more or less a dead language, unless you are in a very specific
> environment. So no, most likely it is not worth learning, if you are
> thinking that you might work with it.

If you're writing code that's strictly for VMS and will never be used
anywhere else, BLISS is a fine choice, if you're interested in learning it.

> Compared to C? Well, it is similar, I'd guess/say.

BLISS-32 was designed as an operating systems language, so you can
easily do things in BLISS that you can't do in C. On VAX, you could
write subroutines that could be called via JSB instructions in MACRO,
for example.

On the other hand, C has the C RTL. BLISS has no RTL, so be prepared for
lots of calls to LIB$ and friends and system services.

Hunter
Timothe Litt
2018-01-29 01:08:14 UTC
Permalink
On 28-Jan-18 18:38, Hunter Goatley wrote:
> On 1/28/2018 3:49 PM, Johnny Billquist wrote:
>
>> It's more or less a dead language, unless you are in a very specific
>> environment. So no, most likely it is not worth learning, if you are
>> thinking that you might work with it.
>
Agree.
> If you're writing code that's strictly for VMS and will never be used
> anywhere else, BLISS is a fine choice, if you're interested in
> learning it.
>
Agree.
>> Compared to C? Well, it is similar, I'd guess/say.
>
> BLISS-32 was designed as an operating systems language, so you can
> easily do things in BLISS that you can't do in C. On VAX, you could
> write subroutines that could be called via JSB instructions in MACRO,
> for example.
>
Generally agree.  But it's not a bright line.

IIRC, DECC added #pragma linkage for that.  But that only matters in
kernel code - any user mode JSB linkage  in the VAX calling standard has
a corresponding CALL linkage. 

But BLISS does it in the language proper; including allocating storage
in specific PSECTs.  And with its macros, it is much easier to do those
sorts of things portably.

The C language standard leaves a lot to the implementers' imagination -
or creative interpretation.  BLISS doesn't.

If I need to access device registers portably, I'll take BLISS over the
varying implementations of C's constant, readonly, and volatile.

> On the other hand, C has the C RTL. BLISS has no RTL, so be prepared
> for lots of calls to LIB$ and friends and system services.
>
Which are problematic/impossible in inner modes.  Then again, the C RTL
for inner modes is a late addition, and has restrictions.

You have to know your environment with either language. 

POSIX C provides a rich user-mode function library. 

BLISS requires that you provide your own.  But in the VMS environment,
that's done for you (see starlet.req, lib.req).  That's richer - but
hardly portable.   Then again, the only other targets are DEC/OSF1,
TOPS-10/20 & PDP-11s.  Which, except for this community, probably aren't
of interest.

If you stick with user mode, the details are different, but the
languages are roughly comparable (especially if you include the XPORT
library for BLISS).

It's all academic unless you are working in one of the supported
environments.

> Hunter
Jordi Guillaumes Pons
2018-01-29 09:24:04 UTC
Permalink
Jordi Guillaumes i Pons
***@jordi.guillaumes.name
HECnet: BITXOW::JGUILLAUMES


>
> IIRC, DECC added #pragma linkage for that. But that only matters in kernel code - any user mode JSB linkage in the VAX calling standard has a corresponding CALL linkage.


Just as side info


IBM added a different C compiler to zOS (MVS) to do systems stuff. They call it “Metal-C” and comes with a different RTL and assorted header files to invoke the MVS macros and address its control blocks.

I don’t know anyone who uses it. We toke a look into it and went back to using assembler to interface with the system.

IBM itself still uses PL/X as systems implementation language., which as far as I know has not been made available to the public until relatively recent times. As the name hints at, it’s a PL/I derivative tailored for systems and low level stuff (although the “regular” PL/I can do it without too much changes).


Jordi Guillaumes i Pons
***@jordi.guillaumes.name
HECnet: BITXOW::JGUILLAUMES
Tim Shoppa
2018-01-29 13:01:47 UTC
Permalink
At one point in the 80’s/90’s several of the standard VMS command line tools were PL/1. I’m thinking in particular of the Error Log Formatter (ANALYZE/ERROR) but I recall some other ANALYZE/ sources being PL/1 as well.

I seem to recall DUMP and maybe some tape utilities were in Pascal.

The talk at DECUS was that Digital purposefully made sure every language was represented in VMS sources!

In the 2000s I recall a lot of the PL/1 and BLISS system sources had been converted to C. I’m guessing the conversion had to be done because not enough staff knew PL/1 or BLISS anymore.

Tim

> On Jan 29, 2018, at 4:24 AM, Jordi Guillaumes Pons <***@jordi.guillaumes.name> wrote:
>
>
> Jordi Guillaumes i Pons
> ***@jordi.guillaumes.name
> HECnet: BITXOW::JGUILLAUMES
>
>
>>
>> IIRC, DECC added #pragma linkage for that. But that only matters in kernel code - any user mode JSB linkage in the VAX calling standard has a corresponding CALL linkage.
>
>
> Just as side info

>
> IBM added a different C compiler to zOS (MVS) to do systems stuff. They call it “Metal-C” and comes with a different RTL and assorted header files to invoke the MVS macros and address its control blocks.
>
> I don’t know anyone who uses it. We toke a look into it and went back to using assembler to interface with the system.
>
> IBM itself still uses PL/X as systems implementation language., which as far as I know has not been made available to the public until relatively recent times. As the name hints at, it’s a PL/I derivative tailored for systems and low level stuff (although the “regular” PL/I can do it without too much changes).
>
>
> Jordi Guillaumes i Pons
> ***@jordi.guillaumes.name
> HECnet: BITXOW::JGUILLAUMES
> _______________________________________________
> Simh mailing list
> ***@trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
Jordi Guillaumes i Pons
2018-01-29 13:11:05 UTC
Permalink
Jordi Guillaumes Pons


El 29 gen 2018, a les 14:01, Tim Shoppa <***@gmail.com> va escriure:

> At one point in the 80’s/90’s several of the standard VMS command line tools were PL/1. I’m thinking in particular of the Error Log Formatter (ANALYZE/ERROR) but I recall some other ANALYZE/ sources being PL/1 as well.
>
[BITXOW]$ monitor/interval=invalid %MONITOR-E-INVINTSP, invalid /INTERVAL specification-PLI-F-CONVERSION, PL/I CONVERSION condition.-PLI-I-ONSOURCE, The conversion source is 'I###.-PLI-I-ONCNVPOS, T

;)
Clem Cole
2018-01-28 23:32:41 UTC
Permalink
On Sun, Jan 28, 2018 at 4:43 PM, khandy21yo <***@gmail.com> wrote:

>
> Never had BLISS on anything until long after it would have been useful. So
> how does BLISS compare to C as a systems programming language? Is it worth
> learning at this late date?
>

​I'll try to answer your questions in verse order - probably not worth
learning; except for some education value and the ability to read and
really understand any BLISS code you might come upon (if the later is
something you really need/want to do).

Armando Stetner, of the TIG (Telephone Industries Group in MKO) once made a
set of 'BLISS is Ignorance' buttons which he gave to a lot of people (I
still have mine). While I loved the language, I loathed it too. ​I'm in
a interesting position here, because I learned BLISS before I learned C,
since I was CMU type at the time and a student of Wulf and his wife.

40 years later, I've written way more C then BLISS. But as Tim was saying
there were some things about BLISS which I still miss - primarily the macro
system and the way conditional compilation was handled. It was much more
sane that C's preprocessor; and the PDP-11 optimizer (discussed in the
Green Book) made the Ritchie C compiler see almost like a toy.

Remember, part of there design of the language was with software
engineering in mind. Parnas et al was publishing and there was a lot of
thought about what made for good programs. Hence, no goto. Similarly, it
included a macro and conditional compilation system - which I think was
something that really made BLISS and C much more useful than say PASCAL.
In fact, people wrote macro systems like m4 and RATFOR so that PL/1 and
FORTRAN could be conditionally compiled in a manner than was reasonable.
I've always said, for really SW engineering you need to have it (the
problem with C/C++ is that it gets abused and some resulting code is worse
because of it).

The CMU BLISS compiler had one of my favorite errors of all time BTW. You
could use single letter like i, j, and k for loop variables, but if your
real variable were less than 6 chars, you could get an
'unimaginative variable name' warning. So for real system programs,
expressions tended to actually have meaning and code was readable and easy
to understand.

BTW, like C, everything in BLISS is an expression and I think that worked
well. Also for the PDP-10 at least, it is had no language runtime (by the
time of Alpha I think that was not wholly true). There were a ton of
associated libraries, but the compiler did everything. C never really
quite got to that because the Ritchie compiler was much smaller, so Dennis
put a lot into the runtime under the covers. Frankly, as a user since
you are always using libraries, I never saw much of a difference.

BLISS suffered one major design error (which was self inflicted and is an
example of theory vs. practice) and a number of smaller ones that became
sort of a death of thousand cuts.

The big issue is the Wulf's choice of a 'store into' and 'contents of'
operators vs. the traditional 'assignment' and C style pointer
indirection. His theory is 100% correct and it made the language much
cleaner and >>once you understood it<<; much more regular. C ended up with
*, &, -> and a dot operator to handle different linguistic items. BLISS
is much more compact and from a >>compiler's writers standpoint<<
mathematically explicit (which is what Bill was of course). The idea was
that if the language was consistent it make for better programs. The
problem is that in practice, humans do not read code the same way as a
compiler and the BLISS conventions take a lot of getting used to. Plus if
you are 'multi-lingual' your brain has to switch between the two schemes.
[Bill would later admit privately at least, it was great concept that in
practice, just did not pan out].

And finally, in the days of the old drum printers, if you ever look at
printouts you will see a certain amount of 'bouncing' of text in a line,
caused by the head solenoids firing a little early or late. This means
tops and bottoms of characters were often cut off and small symbols (like
the period) might not be seen at all on the paper (although if you looked
carefully you might see a small indentation from where is was supposed to
have been -- I have examples of this effect in some old listings BTW). We
used to say, if your program did not work, get a pepper shaker and a sponge
then pour a few dots and remove a few others, and it would start to work
;-)

On the smaller side, there were things like the N different exits. IIRC
Wulf used to say that was a bad idea and he should have supported labels
and then allowed and 'exit' to got to a label. The language took the
Algol BEGIN/END and Algol68 idea of spelling word backwards to note the end
of a something (SET TES, NSET TESN ...). And of course because
the implementation of the language was done originally on the PDP-10 and
then later moved to create a PDP-11 target but as a cross compiler, the
language needed a PDP-10 to use it. In both cases, there was a lot of
memory available and style of the was used to develop the compiler, showed.

The self hosting of the B and C compilers by Ken and Dennis on a small
memory system ensured them to be able to be used. It forced the compiler
passes to be in separate processes and the passes used disk files (as
opposed to memory) to share information. It also meant things like
needing to use a separate assembler to create the output objects, which
BLISS could do directly.

But these things could have been solved if it had been worth it. I think
Tim's observation about the pricing was what killed the language. I've
often wondered if a the sources had been available and the compiler was
free, would people have used it to create back-ends for other processors,
such as the 8-bit or 16 microprocessors that show up in the mid to late 70s?

We used C because we a head start with the Ritchie and later Johnson
compilers. Part of the deal with DEC when Gordon brought BLISS in, was
that DEC got exclusive rights to the CMU compiler (which CMU was perfectly
happy to sell to them -- that's another sad story of my alma mater).
Plus you needed a PDP-10, which when it was designed was not an issue;
because most CS depts did have one. But few places really got to see the
sources and if you look at were the first microprocessor compilers show up,
they were not from place like MIT, Stanford or CMU. It was at smaller
schools running PDP-11s (although later the MIT C compilers would become
the standard basis for the 8086 and 68000 from Steve Ward's RTS team).

Clem


ᐧ
Timothe Litt
2018-01-29 00:29:10 UTC
Permalink
On 28-Jan-18 18:32, Clem Cole wrote:
>
>
> On Sun, Jan 28, 2018 at 4:43 PM, khandy21yo <***@gmail.com
> <mailto:***@gmail.com>> wrote:
>
>
> Never had BLISS on anything until long after it would have been
> useful. So how does BLISS compare to C as a systems programming
> language? Is it worth learning at this late date?
>
>
> ​I'll try to answer your questions in verse order - probably not worth
> learning; except for some education value and the ability to read and
> really understand any BLISS code you might come upon (if the later is
> something you really need/want to do).
>
> Armando Stetner, of the TIG (Telephone Industries Group in MKO) once
> made a set of 'BLISS is Ignorance' buttons which he gave to a lot of
> people (I still have mine).   While I loved the language, I loathed it
> too.  ​I'm in a interesting position here, because I learned BLISS
> before I learned C, since I was CMU type at the time and a student of
> Wulf and his wife.
>
> 40 years later, I've written way more C then BLISS.  But as Tim
> was saying there were some things about BLISS which I still miss -
> primarily the macro system and the way conditional compilation was
> handled.   It was much more sane that C's preprocessor; and the PDP-11
> optimizer (discussed in the Green Book) made the Ritchie C compiler
> see almost like a toy.
>
> Remember, part of there design of the language was with software
> engineering in mind.  Parnas et al was publishing and there was a lot
> of thought about what made for good programs.  Hence, no goto. 
> Similarly, it included a macro and conditional compilation system -
> which I think was something that really made BLISS and C much more
> useful than say PASCAL.    In fact, people wrote macro systems like m4
> and RATFOR so that PL/1 and FORTRAN could be conditionally compiled in
> a manner than was reasonable.  I've always said, for really SW
> engineering you need to have it (the problem with C/C++ is that it
> gets abused and some resulting code is worse because of it).
>
> The CMU BLISS compiler had one of my favorite errors of all time BTW.
>   You could use single letter like i, j, and k for loop variables, but
> if your real variable were less than 6 chars, you could get an
> 'unimaginative variable name' warning.  So for real system programs,
> expressions tended to actually have meaning and code was readable and
> easy to understand.
>
> BTW, like C, everything in BLISS is an expression and I think that
> worked well.  Also for the PDP-10 at least, it is had no language
> runtime (by the time of Alpha I think that was not wholly true).  
> There were a ton of associated libraries, but the compiler did
> everything.   C never really quite got to that because the Ritchie
> compiler was much smaller, so Dennis put a lot into the runtime under
> the covers.  Frankly, as a user since you are always using libraries,
> I never saw much of a difference.
>
> BLISS suffered one major design error (which was self inflicted and is
> an example of theory vs. practice) and a number of smaller ones that
> became sort of a death of thousand cuts.
>
> The big issue is the Wulf's choice of a 'store into' and 'contents of'
> operators vs. the traditional 'assignment' and C style pointer
> indirection.  His theory is 100% correct and it made the language much
> cleaner and >>once you understood it<<; much more regular.  C ended up
> with *, &, -> and a dot operator to handle different linguistic items.
>   BLISS is much more compact and from a >>compiler's writers
> standpoint<< mathematically explicit (which is what Bill was of
> course).  The idea was that if the language was consistent it make for
> better programs. The problem is that in practice, humans do not read
> code the same way as a compiler and the BLISS conventions take a lot
> of getting used to.   Plus if you are 'multi-lingual' your brain has
> to switch between the two schemes.   [Bill would later admit privately
> at least, it was great concept that in practice, just did not pan out].
>
> And finally, in the days of the old drum printers, if you ever look at
> printouts you will see a certain amount of 'bouncing' of text in a
> line, caused by the head solenoids firing a little early or late.  
> This means tops and bottoms of characters were often cut off and small
> symbols (like the period) might not be seen at all on the paper
> (although if you looked carefully you might see a small indentation
> from where is was supposed to have been -- I have examples of this
> effect in some old listings BTW).  We used to say, if your program did
> not work, get a pepper shaker and a sponge  then pour a few dots and
> remove a few others, and it would start to work ;-)
>
> On the smaller side, there were things like the N different exits.  
> IIRC Wulf used to say that was a bad idea and he should have supported
> labels and then allowed and 'exit' to got to a label.   The language
> took the Algol BEGIN/END and Algol68 idea of spelling word backwards
> to note the end of a something (SET TES, NSET TESN ...).    And of
> course because the implementation of the language was done originally
> on the PDP-10 and then later moved to create a PDP-11 target but as a
> cross compiler, the language needed a PDP-10 to use it.   In both
> cases, there was a lot of memory available and style of the was
> used to develop the compiler, showed.
>
> The self hosting of the B and C compilers by Ken and Dennis on a small
> memory system ensured them to be able to be used.   It forced the
> compiler passes to be in separate processes and the passes used disk
> files (as opposed to memory) to share information.   It also meant
> things like needing to use a separate assembler to create the output
> objects, which BLISS could do directly.
>
> But these things could have been solved if it had been worth it.  I
> think Tim's observation about the pricing was what killed the
> language.   I've often wondered if a the sources had been available
> and the compiler was free, would people have used it to create
> back-ends for other processors, such as the 8-bit or 16
> microprocessors that show up in the mid to late 70s?
>
> We used C because we a head start with the Ritchie and later Johnson
> compilers.    Part of the deal with DEC when Gordon brought BLISS in,
> was that DEC got exclusive rights to the CMU compiler (which CMU
> was perfectly happy to sell to them -- that's another sad story of my
> alma mater).    Plus you needed a PDP-10, which when it was designed
> was not an issue; because most CS depts did have one.   But few places
> really got to see the sources and if you look at were the first
> microprocessor compilers show up, they were not from place like MIT,
> Stanford or CMU.   It was at smaller schools running PDP-11s (although
> later the MIT C compilers would become the standard basis for the 8086
> and 68000 from Steve Ward's RTS team).
>
> Clem
>
>
C as an expression language is a bit of a stretch.  Most C statements
don't return a value; all bliss statements (except ';') do.

Read the Belanger paper that I referenced earlier for his (BLISS's) side
of the comparison, including remarks on the dot operator.  There are
lots of stories about dot bugs, since languages that avoid implicit
dereferencing of addresses are not what people first experience. In
reality, there were fewer dot bugs that survive first contact; they tend
to have obvious effects.  Period, however, was an unfortunate choice for
the lexeme.  It could look like comma on an LPT, as well as perforate. 
In defense of BLISS, I would point out that the C rules for implicit
dereferencing and the 5 operators (Clem left out []) are also confusing
to novices.  Especially when combined with precedence.  Dot is no worse
than remembering to apply gender in French/Spanish (and neuter in
Russian) if you're a native English speaker.  Or Sigil's in Perl.

Belanger points out, and I agree, that the biggest design error was that
values don't have a size; all BLISS values are the native wordsize. 
This causes some unnecessary awkwardness, and math using %BPUNIT,
%BPVAL, %BPADDR and %UPVAL when defining values in structures.  This
usually gets hidden with macros (or SDL) - but is unnecessarily awkward
compared to C.

C requires an RTL, even if you don't do I/O.  The real RTL issue is not
so much whether one is required, but whether it's segmented so that it
can be used in kernel mode.  E.g. the usermode malloc() does not work in
a device driver.  But other RTL routines assume malloc() is available. 
This is quite doable if planned for; in the case of VAX C, the goal was
user mode compatibility, not kernel mode use.  This was a reasonable
goal (allowed POSIX compliance), but inhibited adoption for system
programming.

Fred Kleinsorge managed to find a subset of VAXC constructs that avoided
the worst of the RTL, and was able to put VWS (and DECWindows) terminal
emulation into inner modes.  I used this for some specialized drivers
(rather than BLISS because I reused and modified Fred's code).

The Alpha port of VMS emphasized writing new stuff in C, and a real
subset kernel mode RTL was developed for DECC.  (DECC is more dependent
on an RTL than VAXC).

I, too, have ended up writing much more C than BLISS.  (And still more
if you count the C cousins like javascript & Perl.)

It's like VHS and Beta.  Partly religious, but the best technology
doesn't win when when "good enough" is cheaper.

BLISS is like the PDP-10.  I miss both, but the world has (mostly) moved on.

I'm mostly agnostic; "pick the tool that fits the job".  But constrained
by the era :-(
Hunter Goatley
2018-01-29 16:36:49 UTC
Permalink
On 1/28/2018 3:43 PM, khandy21yo wrote:
> There is a project on gitnub called BLISS-M. Is it comparable with any
> version of bliss discussed here?

That's Matt Madison's attempt to create a BLISS that could be used on
Linux and other systems. It's been a while since he last updated it, so
I'm not sure what its current status is. The last time I tried to build
it, I didn't have a new enough Linux system to get it to build. I was
just looking at that yesterday, thinking that I should give it another
go sometime.

(For non-VMS people, Matt wrote a number of pretty major freeware
products in BLISS back in the day, most notably MX and NETLIB.)

Hunter
Phil Mendelsohn
2018-01-29 15:24:09 UTC
Permalink
> Subject Re: [Simh] BLISS ( was Re: 101 Basic Games for RSTS/E (was Re:
> PDP11
> on Simh for public access))
> From J. David Bryan <***@acm.org>
> To SIMH List <***@trailing-edge.com>
> Date Sun 15:24
> On Sunday, January 28, 2018 at 15:42, Timothe Litt wrote:
>
> Was it admiral Nelson who observed that those who don't learn from
> history are doomed to repeat it?
>
>
> George Santayana ("Those who cannot remember the past are condemned to
> repeat it").

As this is one of those epigrams that has probably had multiple
independent authors over millenia, I prefer:

"He who forgets the pasta is doomed to reheat it."


Cheers,
Phil M

P.S.: the subject of this thread is growing enough parenthesis to start
being confused with Lisp.

--
"Behind the times but ahead of the game"
--Becky M
Loading...