[Simh] PDP-6 Microtape bootstrap
Angelo Papenhoff
aap at papnet.eu
Thu Mar 1 05:23:36 EST 2018
On 01/03/18, Lars Brinkhoff wrote:
> Hello,
>
> Below is the PDP-6 Microtape (DECtape) bootstrap code used at the MIT AI
> Lab. There are some of us wondering why it was written this way? Why
> add one to the input word and check that it's negative, and that the
> right half is not zero?
>
> 0/ JFCL ;Nop.
> 1/ MOVSI (JFCL) ;Set 0 to nop.
> 2/ CONO 635550 ;Reset processor.
> 3/ CONO PI,11577 ;Reset priority interrupts.
> 4/ CONO UTC,223110 ;Reset Microtape controller.
> 5/ CONO DC,4010 ;Start transfer.
> 6/ CONSO DC,1000 ;Ready?
> 7/ JRST 6 ;No, loop.
> 10/ DATAI DC,13 ;Yes, store word at 13.
> 11/ AOJGE 13,6 ;Add one to contents of 13, and loop if positive.
> 12/ TRNE 13,-1 ;Right half zero?
> 13/ . ;No, execute.
> 14/ JRST 6 ;Yes, loop.
To that I want to add that the TRNE actually makes sense.
If the right half is zero, that implies the AOJGE caused a carry into
the left half and we probably don't want to execute an instruction then.
Why one is added and only negative instructions are executed is still a
mystery though.
I have asked Richard Greenblatt and Peter Samson about that piece of
code too, but they were puzzled as well.
It's not hard to write some code that puts a more conventional loader
into memory somewhere, but that still doesn't explain the strangeness
of this thing.
aap
More information about the Simh
mailing list