************************************************************************
************************************************************************
***                                                                  ***
***                                                                  ***
***                            NutWorks                              ***
***                           ----------                             ***
***              The Inter-Net Virtual Magazine Which States         ***
***                    That Life Is A Four Letter Word.              ***
***                                                                  ***
***                                                                  ***
***  November  1985   Issue 3, Volume II.   NutWorks is Published    ***
***  monthly.  Leonard M. Friedman aka Spock (CALBC821@CUNYVM)       ***
***  Virtual Editor in Chief.                                        ***
***                                                                  ***
************************************************************************
************************************************************************
 
                          From the Bridge
                          ===============
 
Captains Log:
Stardate 850611
Commander Spock Reporting.
 
   Approximately one and a half years ago something appeared on bitnet
that would  change interpersonal relationships on the network forever.
For it was  then the first  chat machine appeared.   A chat for anyone
who might not know is similar to a CB on the computer.  In other words
you send  one message and  everyone on the channel you are signed onto
will see that message.
 
   The very first chat  appeared in  Maine and provided people with an
excellent way to meet fellow students and discuss Life,  The Universe,
and  Everything,  which  alot of  the time  had  something  to do with
computers.   Discussions  included  recent  political events,  sharing
of ones problems and  many virtual friendships  were  born and a large
number of them went beyond being virtual into real relationships where
the people met and remained friends.
 
   The  chat at  Maine was short lived and was taken down volluntarily
by the  person who  wrote it  for reasons unknown to me.   It was soon
replaced by CHAT@PSUVM1 which would become the model for future  chats
to aspire to.  Discussions there also varied widely and were very kept
in good taste not to affend anyone.    If anyone had personal business
to discuss with a fellow netter they simply created a private password
protected  channel and  went there  and could  talk in whatever manner
they wished without offending anyone.  Hence everyone was happy except
for the staff who said that chatting wasted too much CPU time;  placed
to much of a load on the network,  and was generally disruptive.  This
eventually spelled the end of the CHAT at PSUVM.
 
   During this time  many chats  popped  up and died.   It  became  an
adventure to try and keep up with the chats that were currently active
and those that had been shut down.  Some of the chats worth mentioning
are Multi-Talk, Missing Link, and various others...
 
   Out  Of the  chats  grew something called  "Conferencing machines",
Relay and Forum  are examples.   Relay and Forum  have the  same basic
concept as chats with a few differences  (which will be the discussion
of  a  future  article  on the  evolution  and  history  of chats  and
conferencing systems).  The main  difference that I  want to point out
is that  many schools  decided  that  they would  tolerate  them  on a
trial basis.
 
   The Conferencing machines are a great and wonderful thing when used
with  "PROPER DISCRETION".  There are  several  rules that  constitute
proper discretion:
 
           1) Thou shalt not  chat  and take up a  terminal when other
              people are waiting that have to do work.  (For those who
              will  say  that  I  am  hogging  a  terminal  and  being
              disruptive myself  when doing this  magazine allow me to
              point out the fact that  I have my own  terminal at home
              and  hence am  bothering no one,  nor preventing  anyone
              from doing any work.)  In  some schools  they  can  just
              throw you off the terminal if you are just sitting there
              chatting and preventing others who need to  do work from
              doing so. I think that this policy should be implemented
              NETWORK WIDE.
 
           2) Thou  shalt  not  be  abusive  to  fellow  users.  It is
              apparent  that  many of  the new  users do not know what
              abusive means so i will explain further.
 
              a)  Thou shalt not curse. Not only is it not neccessary,
                  but it is offensive to people.
 
              b)  Thou  shalt  not  be  generally  obnoxious  to other
                  chatters.  Try and  keep things in  GOOD TASTE  will
                  ya!
 
              c)  Thou shalt  not enagage  in so called  computer-sex,
                  compu-sex, bitsex,  or whatever you want to call it.
                  In other  words to the girl  who has  caused  such a
                  fire on csnews flame  I  don't care  if you  are wet
                  between the legs !!!  What a slut !!! SHEESH !!!  If
                  you must do that  type stuff,  at least take it to a
                  private channel !!!
 
              d)  Thou shalt not send  pictures  over chats.  Not only
                  is it  annoying to  those  people  who  are  on slow
                  modems,   but  it  increases  RSCS  network  traffic
                  unneccessarily.
 
              e)  Thou shalt not send multiple messages (repeating the
                  same message over and over).  SEE D FOR REASONS.
 
           3) The main thing is SIMPLE CONSIDERATION, nothing more.
 
------------------------------------------------------------------------
 
 
                            NutWorks News
                            =============
 
   1) Nutworks will be avialable for Bitnet  users on the  Forum Confer-
encing system  via  the  /getf  Nutworks Issue###  command.  Back issues
have already  been  placed on Forum.  For Usenet users it will be avail-
able  through  Alan (ALAN@NCSUVM.bitnet).  For  more  information please
consult the NutWorks Info File availalbe in a solar  system near you !!!
 
   2) The Staff has decided that on top of distributing NutWorks through
the Forum Conferencing System to create a mailing list.  To get yourself
added to this list send a memo with your account, node, and name (First,
Last) to any of the following:
 
          Lenny aka Spock        CALBC821 @ CUNYVM   (Bitnet)
          Scott aka Orion        CSCSRH   @ CCNYVME  (Bitnet)
          Alan  aka Alan         Alan     @ NCSUVM   (Bitnet, Usenet)
 
Note: Names are strictly for reference purposes.
 
   3) I recently discovered that all the issues of  NutWorks  from  when
Brent was still running  NutWorks (Issue 1 - 4, Vol I) are  Available on
SERVER at TAMCBA as well as the Forum Conferencing System.  I have  sent
them  Vol II.  TAMCBA is 12 nodes from CUNYVM I think.
 
   5) Brent CJ Britton is no longer  involved  with NutWorks.  Please DO
NOT send any correspondence to him.
 
------------------------------------------------------------------------
 
 
                      Straight from the Horse's Mouth
                      ===============================
 
      After unbearable inquision  concerning the  spelling of the word
   'NutWorks', Brent C.J. Britton, our founder, had this to say:
 
      "Well,  'NutWorks'  is just this  word,  you know ?  I mean,  at
   first we were going to call it 'Networks' or 'Networx' or something,
   the implication  being  that the magazine is a  collection of works
   from around the net.  But once it became obvious that we were going
   to be putting out a HUMOR magazine,  we changed the 'net' to 'nut.'
 
      "The 'W' is capitalized just to make the distinction between the
   two  words  'Nut'  and  'Works.' It can  therefor  be  derived that
   NutWorks is a collection of 'works' done by a bunch of  'nuts' from
   the 'net.' "Actually, off the record, it's a Soviet ploy.  You see,
   'NutWorks',  when converted  to hex,  is  'd5a4a3e6969992a2'  which
   happens to be the firing sequence code on a bunch of Soviet nuclear
   missles or something.
 
      I don't know...  they told me to use  'NutWorks'  and they'd pay
   me a whole sh*tload of money...  hey, turn that tape recorder off!!
   Hey! Get back here!  Oh Sh*t.."
 
------------------------------------------------------------------------
 
 
                          Software for Nothing
                          ====================
                          by: Brent CJ Britton
 
With appoligies to Mark Knopfler.
 
 
I waaaant my.. I waaaant my... I waaaant my C-R-T......
 
Now look at them hackers,
That's the way ya' do it.
Ya' play with mem'ry that you cannot see.
Now that ain't workin, that's the way ya do it.
Get your software for nothing and your chips for free.
 
Now that ain't workin, gotta CPU-it.
Let me tell ya, them guys ain't dumb.
Maybe crash the system with your little finger,
Maybe crash the system with your thumb.
 
    We got to install micro-data-bases,
    Gotta make things run like a breeeeze.
    We gotta help these foreign students,
    We gotta help these mindless E.E.'s...
 
The little Hacker with the Pepsi and the Munchos:
Yeah, buddy, don't like to SHARE...
The little Hacker got his own compiler,
The little guy don't change his underwear.
 
    We got to install the latest debugger,
    Under budget, and optimiiiiiiized.
    We got to have more muddy-black coffee,
    We got a green glow in our eyyyyyyes...
 
I shoulda' learned to play with Pascal.
I shoulda' learned to program some.
Look at that drive, I'm gonna stick it on the channel,
Man, it's better than the old one...
 
And who's up there, what's that?  Beeping noises?
He's bangin on the keyboard like a chimpanze.
Oh that aint workin, that's the way ya do it,
Get your software for nothin', get your chips for free.
 
------------------------------------------------------------------------
 
 
                              Advertisement
                              =============
 
Name: CATT - Completely Autonomous Touring Tester
 
Manufactured by: MOMCATT - Makers Of Many CATTs
Anytown USA (Offices around the World)
 
FEATURES
 
Low Power CPU
Self Portable Operation
Dual Video Inputs
Dual Audio Inputs
Audio Output
Main Input Multiplexed with Error Output
Auto Search for Input Data
Auto Search for Output Bin
Auto Learn Program in ROM
Auto Sleep When Not in Use
Wide Operating Temp. Range
Self Cleaning
 
Production Details
 
   After basic construction,   the unit undergoes 6 weeks of ROM
programming and burn-in testing.   MOMCATT will typically reject
inferior products,  but sometimes  people will  salvage rejected
units.  These factory seconds may or may not perform the same as
units  that  pass the standard  acceptance testing.   All of the
previously listed features are  installed during  this interval.
Since  MOMCATT  uses  many  different  suppliers,  there is wide
variation  between the  individual units.  Some of the component
matching  may  be  so poor  that a  feature  may not  even work.
Fortunately,  these units are so cheap that replacement is never
difficult.
 
Set up and Use
 
   When acquiring a  CATT,  it is best to visit  MOMCAT  and see
what units are currently available.  The consumer should examine
each unit to verify that all I/O channels are operational.   The
user  should  also look  for obvious  bugs in  or on the system.
Although these bugs are usually trivial and easily removed, they
are  indicative  of  the  production  environment  at  the local
MOMCATT outlet.  When a CATT has been selected, it should be put
in a  suitable  packing  case for transport to the new operating
environment.  Failure to  properly package a  CATT may result in
damage to the unit or injury to the user.
 
   When the  CATT  is first brought up,  it should be in a quiet
room, with only the primary user(s) present.  The CATT should be
taken out of the  shipping crate and  the self learning  program
should be started by showing the CATT the output bin.   The next
step is to show the CATT the input bin(s).  Some CATTs need more
help getting started than other CATTs.   If the user already has
one  CATT  and is  bringing up  a second,  it may be possible to
download the new CATT from the older more experienced CATT.   In
either case,   the new CATT should be in self learn mode most of
the first  day or two.   When  the  CATT  is new,  it also has a
tendency to  sleep()  when the learn buffer overflows.   THIS IS
NORMAL. When the learn buffer fills, the CATT will go to sleep(),
and the  DMA system  will take  over  and store  the new data in
permanent  memory.  In  a  few  days,  the  CATT  will be freely
interacting with the operating environment.   The user should be
aware that the  CATT  is still too  new to be allowed out of the
home. Full portability comes later,  after more extended burn-in
(some users never let the  CATT  out,  this has some advantages,
such as longer unit life).  You should also know  that if a CATT
gets used to going out,   you will  have a  hard time keeping it
inside for  extended  periods  of time.   One other caution,  if
allowed out,  a CATT may try to port itself to the other side of
the street.  Some  CATTs  have been  known to take  fatal errors
during this process, errors which are never recoverable.
 
   Your  CATT  should have it's own system name.  This name will
have to be repeated for the  CATT  many times so  that the learn
program reads it correctly. This will be important later on when
you want to get the  CATT's  attention.   Another way to get the
CATT's attention is to boot it.   While this is a very effective
method, some users feel that too much booting is akin to abusing
the system.  If the  CATT knows it's system name,  you can cause
the CATT to boot itself by shouting the name at it.
 
   Many  users  want to play  games on their system.  CATTs play
games best when they are young.   Older CATTs seem to lose their
flexibility, and their joy-sticks lose calibration too.  Some of
the better CATT games are:    FETCH, MIRROR, STRING, SQRT, JUMP,
and CHASE. FETCH is played the same as with the K-9 system,  the
only difference is that the object code must be smaller.  MIRROR
is played by placing the  CATT in front of a mirror and watching
it attempt to parse itself.  Occasionally,  the CATT will become
alarm()ed by the mirror image, panic(), and run away. Re-booting
will get it back up.  STRING is a game where the CATT parses the
end of a data string that is dragged along the floor.  SQRT is a
game for when the CATT does something that you do not like,  you
use the well known aversion to water as a form of negative feed-
back.  JUMP is a game like STRING, only the data string is moved
through the air  and the  CATT  reaches new  heights of parsing.
JUMP may also be played with a stairway or CATT pole.   In these
versions,  the  CATT  jumps down instead of up.   Some users may
combine the two games for even more action. CHASE is a game that
is played with two  CATTs  or a CATT and a  K-9  system. In this
game,   each  system takes a turn as the data,   while the other
tries to parse it. Many other games are also possible.   Some of
these are:  SING,  and DANCE.  These  games rely  on the  CATT's
desire for  fishy input data.  By tempting the  CATT  with fishy
data, you can extract many wonderful audio outputs.
 
Maintenance
 
   CATTs usually require  little  maintenance.   Every year they
should be taken to a VET (Vastly Experienced Technician) for PM.
The VET will check the I/O ports and the operating hardware. Any
problems that arise between visits  should also be  taken to the
VET. VET fees are usually reasonable. Some CATTs are perodically
plagued by heat problems. A trip to the VET can fix this problem
permanently.
 
Conclusions
 
   As CATTs get older they  generally  become  more docile.  The
learn  program becomes more efficient and they sometimes get too
smart  for  their  own  good.   Some  CATTs  even start to watch
television  (encourage them to watch NOVA,  it is good for them,
esp.  shows about birds and spiders).  Another  good  thing  for
CATTs is tropical fish (yes, it is hard to believe, but they  do
start hobbies). Most CATTs also like to have a few toys. This is
OK until they rip them open to  see what is inside.   A properly
cared for CATT can give you years of steady service.  Many users
like the first so much that they will get a second or even third
CATT. Most people really don't need all the extra capacity,  but
they enjoy the more complex games that can be run.   I'd like to
hear from other CATT users if they  have any special application
programs  available. If there  is enough  interest maybe  we can
start a news group called net.micro.catt.
 
------------------------------------------------------------------------
 
 
                       JACKPOTTING: What is it?
                       ========================
            (Contributed by the Mad Pirate RAAQC987@CUNYVM)
 
 
       JACKPOTTING was done rather successfully a while back in
       (you guessed it) New York.
 
What the culprits did was:
 
     Sever (actually cross over) the line between the ATM and the
     host.  insert a  microcomputer between the ATM and the host.
     insert a fradulent card into the ATM. (card = cash card, not
     hardware)
 
What the ATM did was:
 
     Send a signal to the host, saying "Hey!  Can I give this guy
     money, or is he broke, or is his card invalid?"
 
What the microcomputer did was:
 
     Intercept the  signal  from the host,   discard it,   send a
     there is no one using the ATM" signal.
 
What the host did was:
 
     Get the "no one using" signal, send back a  "Okay,  Then for
     for God's sake don't spit out any money!"  signal to ATM.
 
What the microcomputer did was:
 
     Intercept signal (again), throw it away (again), send  "Wow!
     That guy is like  TOO  rich!   Give him as much  money as he
     wants.  In fact,  he's so loaded,  give him  ALL the cash we
      have!  He is really a valued customer." signal.
 
What the ATM did:
 
     What else?  Obediently dispense cash till the cows came home
     (or very nearly so).
 
What the crooks got:
 
     Well, in excess of  $120,000  (for one weekend's work),  and
     several years when they were caught.
 
 
   This story was used at a  CRYPTOGRAPHY  conference  I attended
a while  ago  to  demonstrate  the  need  for better  information
security.  The lines between  ATM's  &  their hosts  are  usually
'weak' in the sense that the  information  transmitted on them is
generally  not  encrypted  in  any  way.   One  of the  ways that
JACKPOTTING can be defeated is to encrypt the information passing
between the  ATM  and the host.   As long as the  key  cannot  be
determined from the cipher text, the transmission  (and hence the
transaction) is secure.
 
   A more believable,  technically accurate story might concern a
person who uses a computer between the  ATM and the host in order
to  determine the  key  before  actually  fooling  the  host.  As
everyone knows,  people find  cryptanalysis  a very  exciting and
engrossing subject ...don't they?  (Hee-Hee)
 
         __________
          |        |--<<<<---|    |---<<<<---------/-----\
          |  ATM   |   microcomputer              / host  \
          |        |         |    |               |       |
          |        |         |    |                \      /
          |________|--->>>>--|    |--->>>>----------\----/
 
 
   I know the person that accomplished this feat,  here in Orange
County. In the following, "B of A" = Bank of America.
 
in the very recent past:
 
   The  B of A  ATM's  are connected through dedicated lines to a
host  computer  as  the  Bishop said.   However,  for maintenance
purposes,  there is at least one separate dial-up line also going
to that same host computer. This guy basically BS'ed his way over
the phone  until  he found  someone stupid enough to give him the
number.   After finding that,  he had has Apple hack at the code.
Simple.
 
Step 2:
 
    He had a friend go to an  ATM  with any  B of A ATM card.  He
stayed at home with the  Apple  connected  to the host.  When his
friend inserted the card, the host displayed it. The guy with the
Apple modified the  status & number  of the  card directly in the
host's memory.  He turned the card into a security card, used for
testing  purposes.  At that  point,  the  ATM  did  whatever  its
operator told it to do.
 
   The next day,   he went into the bank with the  $2000  that he
received, talked to the manager and told him every detail of what
he'd done.  The manager  gave him his  business card and told him
that he had a job waiting for him when he got out of school.
 
   Now,  B of A  has been warned,  they  might have  changed  the
system.   On the other hand,  it'd be awful  expensive to do that
over  the whole  country when  only a  handful of people have the
resources and  even less  have the  intelligence to duplicate the
feat. Who knows?
 
-----------------------------------------------------------------------
 
 
             "Real Programmers Don't Use PASCAL"  PART I
             ===========================================
            (Contributed by Chris Condon  BITLIB@YALEVMX)
 
 
     Back in the good old days -- the "Golden Era" of computers,  it
  was easy to separate the men from the boys (sometimes called "Real
  Men" and "Quiche Eaters" in the literature).   During this period,
  the Real Men were the ones  that understood  computer programming,
  and the Quiche Eaters were the ones that didn't.   A real computer
  programmer  said  things like  "DO 10 I=1,10"  and  "ABEND"  (they
  actually talked in capital letters, you understand),  and the rest
  of the world said things like   "computers are too complicated for
  me" and "I can't relate to computers -- they're so impersonal". (A
  previous work points out that Real Men don't "relate" to anything,
  and aren't afraid of being impersonal.)
 
     But, as usual, times change. We are faced today with a world in
  which  "little old ladies"  can get  computers in  their microwave
  ovens, 12-year-old kids can blow Real Men out of the water playing
  "Asteroids" and "Pac-Man",  and anyone can buy and even understand
  their very own Personal Computer. The Real Programmer is in danger
  of  becoming extinct,  of being  replaced by  high-school students
  with TRASH-80's.
 
     There is a clear need to point out the differences between  the
  typical high-school junior "Pac-Man" player and a Real Programmer.
  If  this  difference  is  made  clear, it  will  give  these  kids
  something to aspire to -- a role model,  a Father Figure.  It will
  also  help explain to the  employers of  Real Programmers  why  it
  would be a mistake to replace the  Real Programmers on their staff
  with  12 - year - old "Pac-Man" players  (at a considerable salary
  savings).
 
 
                           LANGUAGES
                           ---------
 
     The easiest way to tell a Real Programmer from the  crowd is by
  the programming language he  (or she)  uses.  Real Programmers use
  FORTRAN.  Quiche Eaters use PASCAL.  Nicklaus Wirth,  the designer
  of PASCAL,   gave a talk once  at which he was asked   "How do you
  pronounce your name?". He replied,"You can either call me by name,
  pronouncing it 'Veert',  or call me by value,  'Worth'."   One can
  tell immediately from this comment that Nicklaus Wirth is a Quiche
  Eater.  The only  parameter  passing  mechanism  endorsed by  Real
  Programmers is call-by-value-return, as implemented in the IBM\370
  FORTRAN-G and H compilers.   Real programmers don't need all these
  abstract  concepts to  get  their jobs  done -- they are perfectly
  happy with a keypunch, a FORTRAN IV compiler, and a beer.
 
     *  Real Programmers do List Processing in FORTRAN.
 
     *  Real Programmers do String Manipulation in FORTRAN.
 
     *  Real Programmers do Accounting (if they do it at all)
                         in FORTRAN.
 
     *  Real Programmers do Artificial Intelligence programs
                         in FORTRAN.
 
  If you can't do it in FORTRAN, do it in assembly language.  If you
  can't do it in assembly language, it isn't worth doing.
 
 
                     STRUCTURED PROGRAMMING
                     ----------------------
 
     The academics in computer science have gotten into the "struct-
  ured programming" rut over the past several years. They claim that
  programs  are more  easily understood  if the programmer uses some
  special language constructs and techniques.   They don't all agree
  on exactly which constructs, of course, and the examples  they use
  to show their particular point of view  invariably fit on a single
  page of some obscure  journal or  another -- clearly not enough of
  an example to convince anyone. When I got out of school, I thought
  I was the best programmer in the world.   I could write an unbeat-
  able tic-tac-toe program,   use five different computer languages,
  and create 1000-line programs that  WORKED.  (Really!)  Then I got
  out into the Real World.    My first task in the Real World was to
  read and understand a 200,000-line FORTRAN program,  then speed it
  up by a factor of two.  Any Real Programmer will tell you that all
  the Structured Coding  in the world won't help you solve a problem
  like that -- it takes actual talent.    Some quick observations on
  Real Programmers and Structured Programming:
 
     *  Real Programmers aren't afraid to use GOTO's.
 
     *  Real Programmers can write five-page-long DO loops without
                         getting confused.
 
     *  Real Programmers like Arithmetic IF statements -- they make
                         the code more interesting.
 
     *  Real Programmers write self-modifying code, especially if
                         can save 20 nanoseconds in the middle of
                         a tight loop
 
     *  Real Programmers don't need comments -- the code is obvious.
 
     *  Since FORTRAN doesn't have a structured IF,  REPEAT - UNTIL,
        or CASE statement,   Real Programmers  don't  have  to worry
        about not using them.   Besides,  they can be simulated when
        necessary using assigned GOTO's.
 
     Data  Structures  have  also  gotten  a  lot  of  press lately.
  Abstract Data Types, Structures, Pointers, Lists, and Strings have
  become  popular in certain  circles.   Wirth  (the above-mentioned
  Quiche Eater)   actually wrote  an entire book contending that you
  could write a program  based on  data structures,   instead of the
  other way around.   As all Real Programmers know,  the only useful
  data structure is the Array.  Strings, lists, structures,  sets --
  these are all special cases of arrays  and can be treated that way
  just as easily without  messing up  your programing  language with
  all sorts of complications. The worst thing about fancy data types
  is that you have to declare them,  and Real Programming Languages,
  as we all know, have implicit typing based on the  first letter of
  the (six character) variable name.
 
 
                       OPERATING SYSTEMS
                       -----------------
 
     What kind of  operating  system  is used by a  Real Programmer?
  CP/M? God forbid -- CP/M, after all,  is basically a toy operating
  system.   Even  "little old ladies"  and grade school students can
  understand and use CP/M.
 
     Unix is a  lot more  complicated  of course -- the typical Unix
  hacker never can remember what the  "PRINT" command is called this
  week -- but  when it  gets right  down to it,  Unix is a glorified
  video game.   People don't do  Serious Work on Unix systems:  they
  send jokes around the world on  UUCP-net and write adventure games
  and research papers.
 
     No, your Real Programmer uses   OS\370.   A good programmer can
  find and understand the description of the  IJK305I  error he just
  got in his JCL manual.  A great programmer  can write  JCL without
  referring to the manual at all. A truly outstanding programmer can
  find bugs buried in a  6 megabyte  core dump  without using a hex-
  calculator.  (I have actually seen this done.)
 
     OS is a truly  remarkable  operating system.   It's possible to
  destroy days of work with a single misplaced space,   so alertness
  in the programming staff is encouraged.   The best way to approach
  the system is through a  keypunch.   Some people  claim there is a
  Time Sharing system that runs on OS\370, but after careful study I
  have come to the conclusion that they were mistaken.
 
 
                       PROGRAMMING TOOLS
                       -----------------
 
     What kind of tools  does a  Real Programmer use?  In theory,  a
  Real Programmer  could run his  programs by  keying them  into the
  front panel of the computer.   Back in the days when computers had
  front panels,  this was actually done occasionally.   Your typical
  Real Programmer knew the entire bootstrap loader by memory in hex,
  and toggled it in whenever it got destroyed by his program.  (Back
  then,   memory was memory -- it didn't go away when the power went
  off.  Today,   memory either forgets things when you don't want it
  to,   or remembers  things long  after  they're better forgotten.)
  Legend  has  it  that  Seymore  Cray,   inventor  of  the  Cray  I
  supercomputer  and  most  of  Control Data's  computers,  actually
  toggled the first operating system for the CDC7600 in on the front
  panel from memory when it was first powered on.  Seymore, needless
  to say, is a Real Programmer.
 
     One of my favorite  Real Programmers  was a  systems programmer
  for Texas Instruments.  One day he got a long distance call from a
  user  whose  system  had  crashed  in the  middle of  saving  some
  important work. Jim was able to repair  the damage over the phone,
  getting the user to toggle in  disk I/O instructions  at the front
  panel, repairing system tables in hex,   reading register contents
  back  over the  phone.  The  moral  of this  story:   while a Real
  Programmer  usually includes  a  keypunch and  lineprinter  in his
  toolkit,  he can get along with just a front panel and a telephone
  in emergencies.
 
     In some companies,   text  editing  no  longer  consists of ten
  engineers standing in line to use an 029 keypunch.   In fact,  the
  building I work in  doesn't  contain a single keypunch.   The Real
  Programmer  in this  situation  has to  do his  work with a  "text
  editor"  program.  Most systems  supply several  text  editors  to
  select from,  and the Real Programmer  must be careful to pick one
  that reflects  his personal  style.  Many people  believe that the
  best text editors  in the world were  written  at  Xerox Palo Alto
  Research  Center for  use  on  their  Alto and  Dorado  computers.
  Unfortunately,  no Real Programmer would ever use a computer whose
  operating system is called SmallTalk, and would certainly not talk
  to the computer with a mouse.
 
     Some of the concepts in these Xerox editors have been incorpor-
  ated into  editors  running on  more  reasonably  named  operating
  systems -- EMACS and VIbeing two.   The problem with these editors
  is that Real Programmers consider   "what you see is what you get"
  to be just as bad a concept in Text Editors as it is in women.  No
  the Real Programmer wants a   "you asked for it, you got it"  text
  editor -- complicated,  cryptic, powerful, unforgiving, dangerous.
  TECO, to be precise.
 
     It has been observed that a TECO  command sequence more closely
  resembles transmission line noise than readable text.   One of the
  more entertaining games to play with TECO  is to type your name in
  as a command line  and try to  guess what it does.  Just about any
  possible  typing  error  while  talking  with  TECO  will probably
  destroy  your  program,  or  even  worse -- introduce  subtle  and
  mysterious bugs in a once working subroutine.
 
     For this reason,   Real Programmers  are  reluctant to actually
  edit a program that is close to working.  They find it much easier
  to just patch the binary object code directly,   using a wonderful
  program called SUPERZAP   (or its equivalent on non-IBM machines).
  This works so well that many  working programs on IBM systems bear
  no relation to the original  FORTRAN code.    In many cases,   the
  original source code is no longer available. When it comes time to
  fix a program like this,    no manager would even think of sending
  anything less than a  Real Programmer  to do the job -- no  Quiche
  Eating structured programmer would even know where to start.  This
  is called "job security".
 
          Some programming tools NOT used by Real Programmers:
 
     *  FORTRAN preprocessors like  MORTRAN and RATFOR.  The
        Cuisinarts of programming -- great for making Quiche.
        See comments above on structured programming.
 
     *  Source language debuggers. Real Programmers can read core
        dumps.
 
     *  Compilers with array bounds checking. They stifle creat-
        ivity,  destroy most of the interesting  uses for  EQUI-
        VALENCE, and make it impossible to modify the  operating
        system.   code with negative subscripts.   Worst of all,
        bounds checking is inefficient.
 
     *  Source code maintenance systems. A Real Programmer keeps his
        code locked up in a card file,   because it implies that its
        owner cannot leave his important programs unguarded.
 
------------------------------------------------------------------------
 
 
              A long time ago, on a node far, far away (from ucbvax)
              a great Adventure (game?) took place...
 
 
 
        XXXXX   XXXXXX   XXXX        X    X    XX    XXXXX    XXXX    X
        X    X  X       X    X       X    X   X  X   X    X  X    X   X
        X    X  XXXXX   X            X    X  X    X  X    X   XXXX    X
        X    X  X       X            X XX X  XXXXXX  XXXXX        X   X
        X    X  X       X    X       XX  XX  X    X  X   X   X    X
        XXXXX   XXXXXX   XXXX        X    X  X    X  X    X   XXXX    X
 
            It is a period of system war.  User programs striking from
         a hidden directory,  have won their first victory against the
         evil Administrative Empire.  During  the battle,   User spies
         managed to steal secret source code to the Empire's  ultimate
         program:  The  Are-Em Star,  a privileged root  program  with
         enough power to  destroy  an entire file  structure.  Pursued
         by the Empire's sinister audit trail,   Princess Linker races
         aboard her  shell script,  custodian  of the  stolen listings
         that could save her people,  and restore freedom and games to
         the network...
 
         -------------------------------------------------------------
 
            THE CONTINUING SAGA OF THE ADVENTURES OF LUKE VAXHACKER
 
         -------------------------------------------------------------
 
            Luke  had grown  up on an  out of the way terminal cluster
         whose natives spoke only BASIC,  but even  he could recognize
         an old ASR-33. "It needs an EIA conversion at least," sniffed
         3CPU, who was (as usual) trying to do several things at once.
 
            Lights flashed in  Con Solo's  eyes  as he whirled to face
         the  parallel  processor.   "I  have  added  a  few  jumpers.
         The Milliamp Falcon can run current loops around any Imperial
         TTY fighter.   She  is fast  enough  for you."   "Who is your
         co-pilot?" asked PDP-1 Kenobie. "Two Bacco, here, my Bookie."
         "Odds aren't good,"  said the brownish lump beside him,   and
         then fell silent,  or over.  Luke couldn't tell which way was
         top underneath  all those  leaves.  Suddenly,  RS232  started
         spacing wildly. They turned just in time to see a write cycle
         coming down the UNIBUS toward them.   "Imperial Bus Signals!"
         shouted Con Solo.   "Let's boot this popsicle stand!   Tooie,
         set clock fast!"  "Ok, Con," said Luke.  "You said this crate
         was fast enough.  Get us out of here!"   "Shut up,  kid!  Two
         Bacco,   prepare to make the jump into system space! I'll try
         to keep their buffers full."   As the bookie began to compute
         the  vectors  into  low core,  spurious  characters  appeared
         around the Milliamp Falcon.  "They're firing!"  shouted Luke.
         "Can't you do something?"
 
            "Making the  jump  to system  space takes time,  kid.  One
         missed cycle and you could come down right in the middle of a
         pack of stack frames!"  "Three to five we can go now,"   said
         the  bookie.   Bright chunks  of  position  independent  code
         flashed by the cockpit as the  Milliamp Falcon jumped through
         the  kernel  page  tables.  As the  crew  breathed  a sigh of
         relief, the bookie started paying off bets.  "Not bad, for an
         acoustically coupled network," remarked 3CPU.   "Though there
         was a little phase jitter as we changed parity."
 
         -------------------------------------------------------------
 
            << Princess Linker's capture  and rm of /usr/alderaan >>
 
         -------------------------------------------------------------
 
             The Milliamp Falcon hurtles on through system space...
 
            Con Solo  finished checking the various control and status
         registers,  finally  convinced himself that they had lost the
         Bus Signals as they  passed the  terminator.   As he returned
         from the I/O page,  he smelled smoke.  Solo wasn't concerned.
         The Bookie always got a little hot  under the  collar when he
         was  losing  at chess.  In fact,  RS232  had just  executed a
         particularly clever MOV that had  blocked the  Bookie's  data
         paths. The Bookie, who had been setting the odds on the game,
         was caught  holding  all the cards.  A  little  strange for a
         chess game...
 
         Across the  room,  Luke  was too  busy  practicing  bit-slice
         technique to  notice the  commotion.  "On  a  word  boundary,
         Luke,"  said PDP-1.  "Don't  just hack at it.  Remember,  the
         Bytesaber is the weapon of the Red-eye Night.   It is used to
         trim offensive lines of code.  Excess  handwaving  won't  get
         you anywhere.  Listen for the Carrier."
 
            Luke turned back to the drone,   which was humming quietly
         in the air next to him.  This time Luke's actions complement-
         ed  the  drone's  attacks  perfectly.   Con Solo,   being  an
         unimaginative  hacker,  was not impressed.  "Forget this bit-
         slicing stuff.  Give me a good  ROM blaster any day."  "~~j~~
         hhji~~,"  said Kenobie,  with no  clear  inflection.  He fell
         silent for a few seconds,  and reasserted his control.  "What
         happened?"   asked Luke.  "Strange,"  said PDP-1.   "I felt a
         momentary glitch in the Carrier.  It's equalized now."
 
            "We're coming up on user space," called Solo from the CSR.
         As they cruised safely through  stack frames,  the emerged in
         the new context only to be bombarded by freeblocks.
 
            "What the..." gasped Solo.  The screen showed clearly:
 
                        /usr/alderaan: not found
 
            "It's the right inode, but it's been cleared! Twoie, where
         is the nearest  file?"  "3 to 5  there is one..."  the Bookie
         started to say,  but was interrupted by a bright flash off to
         the left. "Imperial TTY fighters!" shouted Solo.  "A whole DZ
         of them!  Where are they coming from?" "Can't be far from the
         host  system,"  said  Kenobie.  "They  all  have  direct  EIA
         connections."
 
            As  Solo began  to give chase,  the ship lurched suddenly.
         Luke noticed the link count was at  3  and  climbing rapidly.
         "This is no regular file,"   murmured Kenobie.   "Look at the
         ODS  directory  structure ahead!   They  seem to have us in a
         tractor beam." "There's no way we will unlink in time,"  said
         Solo.  "We're going in."
 
         -------------------------------------------------------------
 
            Stay tuned as for are next issue whe we find out how Luke,
         Con and the good Princess get out of this fine mess  they're
         in. --Ed
 
         -------------------------------------------------------------
 
------------------------------------------------------------------------
 
 
                      OP CODES PART II (F - Q)
                      ========================
                (Contributed By Knappy 8350428 @ UWAVM)
 
    mnemonic      meaning
    --------      -------
    FB            Find Bugs
    FCJ           Feed Card and Jam
    FDR           Fill Disk Randomly
    FFF           Form Feed Forever
    FLD           FLing Disc
    FLI           Flash Lights Impressively
    FM            Forget Memory
    FMP           Finish My Program
    FOPC          [Set] False Out-of-paper Condition
    FPC           Feed Paper Continuously
    FPT           Fire Photon Torpedoes
    FRG           Fill with Random Garbage
    FSM           Fold, Spindle and Mutilate
    FSRA          Forms Skip & Run Away
    GBB           Go to Back of Bus
    GCAR          Get Correct Answer Regardless
    GDP           Grin Defiantly at Programmer
    GDR           Grab Degree and Run
    GENT          GENerate Thesis
    GESE          Generate Exciting Sound Effects
    GEW{JO}       Go to the End of the World {Jump Off}
    GID           Generate Input Device
    GIE           Generate Irreversible Error
    GLC           Generate Lewd Comment
    GMC           Generate Machine Check
    GMCC          Generate Machine Check and Cash
    GND           Guess at Next Digit
    GOD           Generate Output Device
    GORS          GO Real Slow
    GRAB          Generate Random Address & Branch
    GREM          Generate Random Error Message
    GREP          Global Ruin, Expiration and Purgation [UNIX]
    GRMC          Generate Rubber Machine Check
    GS            Get Strange [ randomly  inverts  bits being fed to the
                   instruction decoder"
    GSB           Gulp and Store Bytes
    GSI           Generate Spurious Interrupts
    GSU           Geometric Shift Up
    HAH           Halt And Hang
    HCF           Halt & Catch Fire
    HCP           Hide Central Processor [ makes virtual CPU's act  like
                   virtual memories"
    HCRS          Hang in Critical Section
    HDO           Halt and Disable Operator
    HDRW          Halt and Display Random Word
    HELP          Type "No help available"
    HF            Hide a File
    HGD           Halt, Get Drunk
    HHB           Halt and Hang Bus
    HIS           Halt in Impossible State
    HOO           Hide Operator's Output
    HRPR          Hang up and Ruin Printer Ribbon
    HUAL          Halt Until After Lunch
    IA            Illogical And
    IAI           Inquire and ignore
    IAND          Illogical And
    IBR           Insert Bugs at Random
    ICB           Interrupt, crash and burn
    ICM           Immerse Central Memory
    ICMD          Initiate Core Melt-Down
    ICSP          Invert CRT Screen Picture
    IDC           Initiate Destruct Command
    IDI           Invoke Divine Intervention
    IDPS          Ignore Disk Protect Switch
    IEOF          Ignore End Of File
    IF            Invoke Force
    IGI           Increment Grade Immediately
    IGIT          Increment Grade Immediately Twice
    II            Inquire and Ignore
    IIB           Ignore Inquiry & Branch
    IIC           Insert Invisible Characters
    IIL           Irreversable Infinite Loop
    IM            Imagine Memory
    IMPG          IMPress Girlfriend
    INCAM         INCrement Arbitrary Memory location
    INOP          Indirect No-op
    IO            Illogical Or
    IOI           Ignore Operator's Instruction
    IOP           Interrupt processor, Order Pizza
    IOR           Illogical OR
    IP            Increment and Pray
    IPS           Incinerate Power Supply
    IPS           Increment Processor Status
    IPT           Ignite Paper Tape
    IRB           Invert Record & Branch
    IRB           Invert Record and Branch
    IRC           Insert Random Commands
    IRE           Insert Random Errors
    IRPF          Infinite Recursive Page Fault
    ISC           Ignore Supervisor Calls
    ISC           Insert Sarcastic Comments
    ISI           Ignore Silly Instructions
    ISI           Increment and Skip on Infinity
    ISP           Increment and Skip on Pi
    ITML          Initiate Termites into Macro Library
    IU            Ignore User
    JAA           Jump Almost Always
    JFM           Jump on Full Moon
    JHRB          Jump to H&R Block
    JIL           Jump In Lake
    JM            Jump Maybe
    JMAT          JuMp on Alternate Thursdays
    JNL           Jump when programmer is Not Looking
    JOM           Jump Over Moon
    JRAN          Jump RANdom [ not to be confused with  IRAN  -  Idiots
                   random"
    JRCF          Jump Relative and Catch Fire
    JRGA          Jump Relative and Get Arrested
    JRN           Jump RaNdom
    JRSR          Jump to Random Subroutine
    JT            Jump if Tuesday
    JTR           Jump To Register
    JTZ           Jump to Twilight Zone
    JUMP          don't JUMP
    JWN           Jump When Necessary
    KCE           Kill Consultant on Error
    KUD           Kill User's Data
    LAGW          Load And Go Wrong
    LAP           Laugh At Program(mer)
    LBTPS         Let's Blow This Popsicle Stand (Context switch)
    LCC           Load & Clear Core
    LCD           Load and Clear Disk
    LCK           Lock Console Keyswitch
    LEB           Link Edit Backwards
    LIA           Load Ineffective Address
    LMB           Lose Message & Branch
    LMO           Load and Mug Operator
    LMYB          Logical MaYBe
    LN            Lose inode Number [UNIX]
    LOSM          Log Off System Manager
    LP%PAS        Line Printer - Print And Smear
    LP%RDD        Line Printer - Reverse Drum Direction
    LP%TCR        Line Printer - Tangle and Chew Ribbon
    LPA           Lead Programmer Astray
    LRD           Load Random Data
    LSBL          Lose Super BLock [UNIX only]
    LSPSW         Load and scrample PSW
    LWM           Load Write-only Memory
    MAB           Melt Address Bus
    MAN           Make Animal Noises
    MAZ           Multiply Answer by Zero
    MBC           Make Batch Confetti
    MBH           Memory Bank Hold-up
    MBTD          Mount Beatles on Tape Drive
    MBTOL         Move Bugs to Operator's Lunch
    MC            Move Continuous
    MD            Move Devious
    MDB           Move & Drop Bits
    MDDHAF        Make Disk Drive Hop Across Floor
    MLP           Multiply and Lose Precision
    MLR           Move & Loose Record
    MLSB          Memory Left Shift & Branch
    MMLG          Make Me Look Good
    MNI           Misread Next Instruction
    MOP           Modify Operator's Personality
    MOU           MOunt User [causes computer to screw you once again]
    MOVC          Move Computer
    MPLP          Make Pretty Light Pattern
    MSGD          Make Screen Go Dim
    MSIP          Make Sure Plugged In
    MSR           Melt Special Register
    MST           Mount Scotch Tape
    MT%HRDV       MagTape - High speed Rewind and Drop Vacuum
    MTI           Make Tape Invalid
    MW            Malfunction Whatever
    MWC           Move & Wrap Core
    MWT           Malfunction Without Telling
    NEGP          NEGate Programmer
    NTGH          Not Tonight, I've Got a Headache
    OCF           Open Circular File
    OH            OverHeat
    OML           Obey Murphy's Law
    OPP           Order Pizza for Programmer
    OSI           Overflow Stack Indefinitely
    OTL           Out To Lunch
    PADZ          Pack Alpha & Drop Zones
    PAS           Print And Smear
    PAUD          PAUse Dramatically
    PAZ           Pack Alpha Zone
    PBC           Print & Break Chain
    PBD           Print and Break Drum
    PBM           Pop Bubble Memory
    PBPBPBP       Place Backup in Plain Brown  Paper  Bag, Please " for
                   stealing code"
    PBST          Play Batch mode Star Trek
    PCI           Pleat Cards Immediate
    PCR           Print and Cut Ribbon
    PD            Punch Disk
    PEHC          Punch Extra Holes in Cards
    PFE           Print Floating Eye [Roguers look out!]
    PFML          Print Four Million Lines
    PI            Punch Invalid
    PIBM          Pretend to be an IBM
    PIC           Print Illegible Characters
    PIC           Punch Invalid Character
    PIRI          Print In Red Ink
    PLSC          Perform light show on console
    PNRP          Print Nasty Replies to Programmer
    PO            Punch Operator
    PPA           Print Paper Airplanes
    PPL           Perform Perpetual Loop
    PPP           Print Programmer's Picture
    PPSW          Pack program status word
    PRS           PRint and Smear
    PSP           Print and Shred Paper
    PSP           Push Stack Pointer
    PSR           Print and Shred Ribbon
    QBB           Query Bit Bucket
    QWA           Quit While Ahead
 
------------------------------------------------------------------------
 
 
 
                           NutWorks Staff
                           ==============
 
 Editor in Chief           Lenny aka Spock        CALBC821 @ CUNYVM
 Associate Editor          Scott aka Orion        CSCSRH   @ CCNYVME
 Distribution Manager      Alan  aka Alan         Alan     @ NCSUVM
 Distribution FORUM        Steve aka Segger       STEVE    @ BITNIC
 
