A classic Trivia Question

Doug Ingraham dpi at dustyoldcomputers.com
Thu Dec 4 15:09:14 CST 2014


It has been more than a couple of days and it is long past time to answer
the question which was what does

*.+1%2^2

do in the PDP-8 PAL assembler.

In the PAL assembler the * is not for multiplication.  It sets the origin
address which is where the next instruction or assembled piece of data will
be stored in memory.  The rest of the line is an equation where the
operators are performed from left to right.  The . is the current address
which has 1 added to it.  The % is the division operator so %2 then divides
the current address plus 1 by 2.  Finally the ^ is the multiplication
operator so that the whole mess before it is multiplied by 2.  The result
is that the origin address is set to the next even address in memory.  I
used this to align data to an even address boundary.

Rick Murphy was the first offline respondent with the correct answer so he
gets the gold star.

Doug Ingraham



On Sun, Nov 16, 2014 at 10:18 PM, Doug Ingraham <dpi at dustyoldcomputers.com>
wrote:

> In days of old when knights were bold and computers barely invented...
>
>
> In the PDP-8 PAL assembler what is the purpose of the following character
> sequence accomplish?
>
> *.+1%2^2
>
> If you know the answer good for you!  You get a gold star.  Please don't
> blurt out the answer.  Let people think about it a bit.  I'll post the
> answer in a couple of days.  I came up with this sequence this morning for
> use in an emulator I am working on.
>
>
> Doug Ingraham
>
>


More information about the cctech mailing list