[ Home  |  FAQ-Related Q&As  |  General Q&As  |  Answered Questions ]


    Search the Q&A Archives


In the early 1970s, I worked in the Small Systems Group at...

<< Back to: PDP-8 Frequently Asked Questions (posted every other month)

Question by MarkR
Submitted on 3/29/2004
Related FAQ: PDP-8 Frequently Asked Questions (posted every other month)
Rating: Not yet rated Rate this question: Vote
In the early 1970s, I worked in the Small Systems Group at DEC.
Shortly after I joined, someone showed me a few instructions you could
toggle in which would clear one 4K memory bank.  They presented it as
a puzzle - i.e. can you figure out how this works.  I remember going
home and puzzling over it for days, but eventually I figured it out.

As an intellectual exercise, I was recently trying to remember the
instructions.  I think I've come close, but as I try to mentally work
out how they'd execute, I don't think I've got it quite right.  And I
don't have a PDP-8 to try it out on.  (Someday I'll get around to
downloading a PDP-8 emulator.)  In the meantime, I have two questions.
First of all, is there anyone out there who remembers the correct
instructions?  And second of all, is there anyone out there who knows
who in the world originally wrote this code?  The way the code
executes is pretty convoluted, and the code has always struck me as a
brilliant hack.

Anyway, here's the code I remember:

   0004   TAD 5
   0005   DCA I 10
   0006   JMP 4
   0007   ISZ 10
   0010   10

      Mark Rosenthal
      mbr@arlsoft.com


Answer by wvdmark
Submitted on 5/31/2004
Rating: Not yet rated Rate this answer: Vote
I think it goes the following way:
0005 TAD 5
0006 DCA I 10
0007 JMP 5
0010 10

10 is autoincrement
starts by putting DCA I 10 until end of memory, wraps around, until:
0005 DCA I 10 /* TAD gets replaced
0006 DCA I 10
0007 JMP 5
0010 5
0011 DCA I 10
....
0005 DCA I 10
0006 0000  /* gets wiped out with 0 (no TAD)
0007 JMP 5
0010 6
0011 DCA I 10
....
0005 DCA I 10
0006 0000
0007 0000  /* same as before
0010 7     /* drops thru
0011 DCA I 10
....
0005 DCA I 10
0006 0000
0007 0000
0010 0000
0011 DCA I 10
....
now we only have DCA I 10 or 0000 in memory
will eventually wipe out all DCA I 10.
Haven't tried it out, my PDP-8 is dusty.
Is this correct?

 

Answer by wvdmark
Submitted on 6/1/2004
Rating: Not yet rated Rate this answer: Vote
Sorry...
It was supposed to be TAD 6

 

Your answer will be published for anyone to see and rate.  Your answer will not be displayed immediately.  If you'd like to get expert points and benefit from positive ratings, please create a new account or login into an existing account below.


Your name or nickname:
If you'd like to create a new account or access your existing account, put in your password here:
Your answer:

FAQS.ORG reserves the right to edit your answer as to improve its clarity.  By submitting your answer you authorize FAQS.ORG to publish your answer on the WWW without any restrictions. You agree to hold harmless and indemnify FAQS.ORG against any claims, costs, or damages resulting from publishing your answer.

 

FAQS.ORG makes no guarantees as to the accuracy of the posts. Each post is the personal opinion of the poster. These posts are not intended to substitute for medical, tax, legal, investment, accounting, or other professional advice. FAQS.ORG does not endorse any opinion or any product or service mentioned mentioned in these posts.

 

<< Back to: PDP-8 Frequently Asked Questions (posted every other month)


[ Home  |  FAQ-Related Q&As  |  General Q&As  |  Answered Questions ]

© 2008 FAQS.ORG. All rights reserved.