Re: PDP11 configurator/website idea - VMS

This is a discussion on Re: PDP11 configurator/website idea - VMS ; >Heh, that would be hilariously useless as a website backend If you think PDP-11 native languages are so useless, uh, then why do you care? There's nothing magical about web programming that makes them a bad fit... Anyway what kind ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: Re: PDP11 configurator/website idea

  1. Re: PDP11 configurator/website idea

    >Heh, that would be hilariously useless as a website backend

    If you think PDP-11 native languages are so useless, uh, then why do you care?
    There's nothing magical about web programming that makes them a bad fit...

    Anyway what kind of "configurator" do you have in mind? It can mean
    different things. I thought the XCON thing was something along the lines
    of "if you want to use this printer with that CPU, you'll need controller
    AAA, cab kit XYZ, and don't forget to order cable 123 because it's not
    included with either the printer or the cab kit". But another meaning
    could be "I want to plug this list of peripherals into my Q-bus and I want
    to know what's the best order to put them in to make sure the grant daisy
    chains are continuous and in a sensible order". Or the easiest one is
    "I want to install this list of peripherals, some of which use floating
    CSRs/vectors, what are the right CSRs/vectors to assign so that the OS
    will find them all". That one's just a little bit of math and a chart,
    or you can just dial up the equivalent config in E11 (which sets up all
    the floating devices on the fly every time you change anything, unless
    you pin things down with SET commands) and then use SHOW commands to find
    out where each device ended up.

    Re BASIC-PLUS, I thought it went beyond just RSTS/E -- I'm sure there's an
    official RT-11 version, and I kind of thought there was an RSX version too?
    Also I know it was ported to Unix (it was running on 11/70s at Harvard when
    I took summer classes in the early/mid 80s), that probably wasn't officially
    sanctioned (or even legal) though.

    John Wilson
    D Bit
    ----------
    To unsubscribe (or subscribe) from (to) this list, send a message to
    info-pdp11-request@village.org, with the first line of the message
    body being "unsubscribe" or "subscribe", respectively (without the quotes).

  2. Re: PDP11 configurator/website idea

    John Wilson writes:

    > Or the easiest one is "I want to install this list of peripherals,
    > some of which use floating CSRs/vectors, what are the right
    > CSRs/vectors to assign so that the OS will find them all". That
    > one's just a little bit of math and a chart, [...]


    A little bit of math and a big chart. :-) I've written a small
    program to do it; .

    -tih
    --
    Tom Ivar Helbekkmo, Senior System Administrator, EUnet Norway Hosting
    www.eunet.no T +47-22092958 M +47-93013940 F +47-22092901 FWD 484145

  3. Re: PDP11 configurator/website idea

    I'm pretty sure we ran BASIC-PLUS 2 under RSX11M - probably 3.2, maybe 4.0.
    I assume it is backwards-compatible with BASIC-PLUS?

    Graham

    "John Wilson" wrote in message
    news:200412212349.iBLNn1r23337@dbit.com...
    > >Heh, that would be hilariously useless as a website backend

    >
    > If you think PDP-11 native languages are so useless, uh, then why do you

    care?
    > There's nothing magical about web programming that makes them a bad fit...
    >
    > Anyway what kind of "configurator" do you have in mind? It can mean
    > different things. I thought the XCON thing was something along the lines
    > of "if you want to use this printer with that CPU, you'll need controller
    > AAA, cab kit XYZ, and don't forget to order cable 123 because it's not
    > included with either the printer or the cab kit". But another meaning
    > could be "I want to plug this list of peripherals into my Q-bus and I want
    > to know what's the best order to put them in to make sure the grant daisy
    > chains are continuous and in a sensible order". Or the easiest one is
    > "I want to install this list of peripherals, some of which use floating
    > CSRs/vectors, what are the right CSRs/vectors to assign so that the OS
    > will find them all". That one's just a little bit of math and a chart,
    > or you can just dial up the equivalent config in E11 (which sets up all
    > the floating devices on the fly every time you change anything, unless
    > you pin things down with SET commands) and then use SHOW commands to find
    > out where each device ended up.
    >
    > Re BASIC-PLUS, I thought it went beyond just RSTS/E -- I'm sure there's an
    > official RT-11 version, and I kind of thought there was an RSX version

    too?
    > Also I know it was ported to Unix (it was running on 11/70s at Harvard

    when
    > I took summer classes in the early/mid 80s), that probably wasn't

    officially
    > sanctioned (or even legal) though.
    >
    > John Wilson
    > D Bit
    > ----------
    > To unsubscribe (or subscribe) from (to) this list, send a message to
    > info-pdp11-request@village.org, with the first line of the message
    > body being "unsubscribe" or "subscribe", respectively (without the

    quotes).



  4. Re: PDP11 configurator/website idea

    On Wed, 22 Dec 2004 10:51:07 +0100, Tom Ivar Helbekkmo
    wrote:

    >John Wilson writes:
    >
    >> Or the easiest one is "I want to install this list of peripherals,
    >> some of which use floating CSRs/vectors, what are the right
    >> CSRs/vectors to assign so that the OS will find them all". That
    >> one's just a little bit of math and a chart, [...]

    >
    >A little bit of math and a big chart. :-) I've written a small
    >program to do it; .


    That's prettty neat -- now I understand how all this floating stuff
    works.

    I do have one question though, why isn't the line:

    csrbase = roundup(csrbase + devtab[i].csralign,
    devtab[i].csralign);

    included in the closing section of the routine below as marked by
    ""?

    if (devtab[i].csr == FLOAT) {
    usertab[j].csr = csrbase;



    } else {
    usertab[j].csr = devtab[i].csr;
    }

    ---------
    for (i = 0; i < DEVTABLEN; i++) {
    if (devtab[i].csr == FLOAT)
    csrbase = roundup(csrbase + CSRLEN, devtab[i].csralign);
    for (j = 0; j < userdevs; j++) {
    if ((!strcmp(devtab[i].name, usertab[j].name)) &&
    (usertab[j].csr == 0)) {
    if ((devtab[i].vector == FLOAT) && (devtab[i].csr == FLOAT)) {
    vecbase = roundup(vecbase, devtab[i].vecalign);
    usertab[j].vector = vecbase;
    vecbase = vecbase + devtab[i].numvecs * VECLEN;
    usertab[j].csr = csrbase;
    csrbase = roundup(csrbase + devtab[i].csralign,
    devtab[i].csralign);
    continue;
    }
    if (devtab[i].vector == FLOAT) {
    vecbase = roundup(vecbase, devtab[i].vecalign);
    usertab[j].vector = vecbase;
    vecbase = vecbase + devtab[i].numvecs * VECLEN;
    } else {
    usertab[j].vector = devtab[i].vector;
    }
    if (devtab[i].csr == FLOAT) {
    usertab[j].csr = csrbase;
    } else {
    usertab[j].csr = devtab[i].csr;
    }
    break;
    }
    }
    --------



  5. Re: PDP11 configurator/website idea

    ian@beathoven.com (paramucho) writes:

    > I do have one question though, why isn't the line:
    >
    > csrbase = roundup(csrbase + devtab[i].csralign,
    > devtab[i].csralign);
    >
    > included in the closing section of the routine below [...]


    Because I never noticed that bug? :-)

    Actually, the code in question won't even be reached. There is no
    device that is in floating CSR space, but with a fixed interrupt
    vector. If there were, my existing code would expect multiple devices
    of that type to have individual vectors, but to share a CSR address.
    That can't be right -- it would just be silly. So, in effect, the
    whole "if (devtab[i].csr == FLOAT) {" group can be removed, and the
    loop can be simplified to:

    for (i = 0; i < DEVTABLEN; i++) {
    if (devtab[i].csr == FLOAT)
    csrbase = roundup(csrbase + CSRLEN, devtab[i].csralign);
    for (j = 0; j < userdevs; j++) {
    if ((!strcmp(devtab[i].name, usertab[j].name)) &&
    (usertab[j].csr == 0)) {
    if (devtab[i].vector == FLOAT) {
    vecbase = roundup(vecbase, devtab[i].vecalign);
    usertab[j].vector = vecbase;
    vecbase = vecbase + devtab[i].numvecs * VECLEN;
    if (devtab[i].csr == FLOAT) {
    usertab[j].csr = csrbase;
    csrbase = roundup(csrbase + devtab[i].csralign, devtab[i].csralign);
    continue;
    }
    } else {
    usertab[j].vector = devtab[i].vector;
    usertab[j].csr = devtab[i].csr;
    }
    break;
    }
    }
    }

    I've updated the code on my website. Thanks for spotting this! :-)

    -tih
    --
    Tom Ivar Helbekkmo, Senior System Administrator, EUnet Norway Hosting
    www.eunet.no T +47-22092958 M +47-93013940 F +47-22092901 FWD 484145

+ Reply to Thread