Subject: Teeny Tiny RX01 Bootstrap

From: [email-masked] (Charles Lasner)
Date: Mon, 29 Mar 1993 17:16:12 GMT

By popular demand, here is the tiny bootstrap for the RX01.  It is for drive
zero only, does not retry indefinitely, depends on the "kerclunka" self-test
to do the reading for it, and is either for actual RX01 or compatible, or
for RX02 set for RX01 mode only.

There are only 13 significent words to load, and a bunch of zeroes in a row
(which must be 0000) and one don't care location (a subroutine header) which
can be loaded with the previous or next location's contents to save a switch
setting operation, etc.

/	TINY RX01 DRIVE ZERO ONLY BOOTSTRAP.

			*33			/STARTS LOADING HERE

00033	6755	SHANGG,	SDN			/BOOTSTRAP STARTS HERE; DONE FLAG UP?
00034	5054		JMP	SLODE1		/TRY TRANSFER FLAG IF DONE FLAG IS NOT UP
00035	7326		NL0002			/SETUP FOR EMPTYING
00036	6751		LCD			/LOAD THE COMMAND

00037	0000		ZBLOCK	SLP-.		/0000'S WILL EXECUTE AND FALL THROUGH TO SLP!
00040	0000
00041	0000
00042	0000
00043	0000
00044	0000
00045	0000
00046	0000

00047	4053	SLP,	JMS	SLODE		/GET A WORD
00050	3002	SLPSTR,	DCA	SBOOT&177+2	/PUT A WORD
00051	2050		ISZ	SLPSTR		/BUMP TO NEXT WORD
00052	5047		JMP	SLP		/KEEP GOING UNTIL SLP IS OVERLAYED!

00053	5047	SLODE,	.-.			/LOAD A WORD ROUTINE;OK to use same as previous or following or anything else
00054	6753	SLODE1,	STR			/WORD READY?
00055	5033		JMP	SHANGG		/NO, TRY DONE
00056	6752		XDR			/YES, GET A WORD
00057	5453		JMP I	SLODE		/RETURN

00060	7004	SBU,	0^20+7004		/INDICATE UNIT ZERO TO NEXT LEVEL

This is the shortest way to get an RX system going by hand.

cjl

---

From: jones@pyrite (Douglas W. Jones,201H MLH,3193350740,3193382879)
Date: Mon, 29 Mar 1993 20:57:51 GMT

>From article <[email-masked]>,
by [email-masked] (Charles Lasner):

> 00037	0000		ZBLOCK	SLP-.
> 00040	0000
> 00041	0000
> 00042	0000
> 00043	0000
> 00044	0000
> 00045	0000
> 00046	0000
> 
> 00047	4053	SLP,	JMS	SLODE

This is a wonderful bit of code!  My assembler sure wouldn't have guessed
how many zeros to make from the source you've given.  In fact, any number
of zeros, including zero, would have worked here!  Obviously, there was
a prologue prior to the code you gave that specified an initial value
for SLP so that pass 1 of the assembler could figure out how many zeros
to put out!

				Doug Jones
				[email-masked]

---

From: [email-masked] (Charles Lasner)
Date: Tue, 30 Mar 1993 17:23:16 GMT

>for SLP so that pass 1 of the assembler could figure out how many zeros

Yes, smart, ain't it! :-)

Actually, the entire output is contrived because:

1)	It is a fragment ripped out of a larger source (The P?S/8 RX non-system
handler) file and thus lacks certain definitions.  Also, did you expect that
the RX definitions would also be predefined in the assembler? :-).

2)	PDP-8 assemblers don't usually output those 0000 words the way
stated in the file (PAL-10 actually does something like that in some early
versions), and instead would just output the first of the zeroes.  The next
generated word would follow at the appropriate location.

3)	There is a deliberate falsehood in the file.  The location of the
subroutine header is shown as ".-." which is a convention for a 0000 value
as a placeholder only, not that literally 0000 is required to be stored there,
etc.  When the program executes, the stored PC goes there, so contents is
totally unimportant.  However, the contrived listing showed the same octal
value as the previous location.  This is to aid in toggling in the values
since it means to just press DEP twice without actually changing the switch
register.  (I did indicate that the location might as well be the same value as
either the previous or next word to avoid the unnecessary manual step.  This
altering of the listing is thus contrary to the related source lines, but in
fact the best thing to place there for the purpose, etc.)

So, there isn't any assembler "magic" at work here :-).  In any case, this was
posted here as a source guide to the octal numbers that need to be used for a
manual boot in the shortest, least painful way.

cj "let your fingers do the walking" l