Preferences

The comments in this old PDP-10 SUPDUP code [5] are hilarious!

SUPDUP on ITS was so smart and opinionated, it had its own ideas about who was a loser and who was a winner, how to figure it out by checking INQUIR entries and relationships, and who it should never or always hassle about net-hopping (hopping through a PDP-10 over the net just to use it as a glorified terminal emulator).

It never hassled gumby or cstacy (because they were free to do whatever they wanted to, like flushing whiny annoying over-entitled alcoholic science fiction writers [1] [2] [3] [4]), but always hassled rms (because it was usually an imposter logging in as rms with password rms just to net hop through the system.)

[1] http://www.stormtiger.org/bob/humor/pournell/story.html

[2] https://www.hackerneue.com/item?id=15206151

[3] https://www.hackerneue.com/item?id=37723853

[4] https://www.hackerneue.com/item?id=37780515

[5] https://github.com/PDP-10/its/blob/master/src/sysnet/supdup....

            subttl LSRCHK and LSRWRN -- see if user is loser

    ;;; This checks to see if the loser is an AI or LCS member or on a
    ;;; winners list.  If not, a warning net-hopping message is printed
    ;;; and the program offers to kill itself off.

    ;;; The winner-p check has been extracted so that if at some point in
    ;;; the future this program is modified to check if it's running from
    ;;; a CRTSTY, those people may not be warned.

    ;;; If you mung this you might wish to mung CHTN similarly.

    ;;; skips unless the luser should be warned.
    lsrchk: pushj p,winchk      ;are they a winner?
         skipa          ;nope
          jrst popj1        ;yea; so skip
        ;; check to see if they're in loser table
        move t,[-loslen,,lostab]
        ;; winchk left xuname in tt
    lsloop: camn tt,(t)
         popj p,        ;loser -> don't skip
        aobjn t,lsloop
        ;; check inquir entry
        movei a,filech
        move b,[-lsrpgs,,hstpag];map lsr where host table will be
        pushj p,lsrtns"lsrmap
         jrst lsrlos        ;something wrong; print loser message
        .suset [.rxuname,,b]    ;xuname into b
        pushj p,lsrtns"lsrunm   ;find our entry in database
         jrst lsrlos        ;no inquir entry; must be loser
        .close filech,      ;close lsr file
        movei a,lsrtns"i$grp    ;we want to check group
        pushj p,lsrtns"lsritm
         popj p,        ;none means guest
        ildb a,a        ;get field
        caie a,"A       ; AI lab
         cain a,"L      ; LCS
          jrst lsloo1
        caie a,"V       ; NIL group
         cain a,"Z      ; Clinical Decision Making
          jrst lsloo1
        caie a,"C       ; Theory of Computation
         popj p,        ;they're not a lab member
    lsloo1: movei a,lsrtns"i$rel    ;Check relationship
        pushj p,lsrtns"lsritm
         popj p,        ;none means loser
        ildb a,a        ;get field
        caie a,"X       ;some losers put AX when they mean XA
        ;; These names are for NETWRK
    popj1:   aos (p)        ;otherwise skip
    cpopj:  popj p,         ;when returning

    lsrlos: .close filech,      ;close lsr file
        popj p,         ;don't skip

    ;;; Skip means these people know what they're doing; don't hassle them
    winchk: .suset [.rxuname,,tt]
        move t,[-winlen,,wintab]
    wnloop: camn tt,(t)
         jrst popj1     ;winner; skip
        aobjn t,wnloop
        popj p,

    ;;; these people aren't hassled
    wintab: irp x,,[gumby,alan,cstacy,cent,devon,dph,oaf,mly,jtw,jnc,klotz,cbf,sra,ed,swa,map,jbvb]
        sixbit/x/
    termin
    winlen==.-wintab

    ;;; These people are always hassled
    lostab: irp x,,[tk,hewitt,rms]
        sixbit/x/
    termin
    loslen==.-lostab

    ;;; warn loser that net-hopping is a waste of the machine
    lsrwrn: movei tt,[asciz/
    Using this machine to access another will needlessly
    drain resources, slowing the system both for you and other users.
    You'll probably get better response by connecting directly.

    You should not do this unless you have a good reason to do so.  If
    you have any questions, typing :LUSER to DDT will request a system
    programmer to assist you.

    Are you sure you want to net-hop?/]
        pushj p,outstr
        $call iot,[#ttyich,a],[#%tinwt] ;Wait for character
         .lose %lssys   
        caie a,"y
         cain a,"Y
          popj p,       ;it was a Y
        caie a,40       ;maybe it was a space?
         .logout 1,
        popj p,

This item has no comments currently.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal