home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: alt.sys.pdp8
- Path: sparky!uunet!psinntp!news.columbia.edu!watsun.cc.columbia.edu!lasner
- From: lasner@watsun.cc.columbia.edu (Charles Lasner)
- Subject: Re: What I've got and what I'd like to have
- Message-ID: <1992Nov22.110859.14642@news.columbia.edu>
- Sender: usenet@news.columbia.edu (The Network News)
- Nntp-Posting-Host: watsun.cc.columbia.edu
- Reply-To: lasner@watsun.cc.columbia.edu (Charles Lasner)
- Organization: Columbia University
- References: <1992Nov18.165758.6984@mr.med.ge.com> <1992Nov19.182924.25967@plx.com>
- Date: Sun, 22 Nov 1992 11:08:59 GMT
- Lines: 110
-
- In article <1992Nov19.182924.25967@plx.com> asgard@sparky (J.R. Stoner) writes:
- >
- >Um, nope. Mine was 33 words long and started: 7126, 1060, 6755...
- >You must have been using a different RIM that I did.
-
- Wrong.
-
- RIM is a standard name for a paper-tape format and its loader: it stands for
- Read-In Mode. It proscribes a format that is a subset of the paper-tape
- loading format known as BIN. In Bin format, origins are optional, as the
- next word is implicitly to be loaded at the next location, etc. In RIM
- format, each word must be preceded by an explicit origin, since the loader
- has no ability to auto-increment the loading address. Additionally, the
- BIN format ends with a checksum not meant to be loaded, while RIM format
- has no checksum. It is possible to create a "universal" binary tape as
- follows:
-
- *200 /ARBITRARY ORIGIN
-
- FIRST, CLA /CLEAN UP
-
- *. /FOR RIM'S BENEFIT
-
- TAD 300 /NEXT INSTRUCTION
-
- *. /FOR RIM'S BENEFIT
-
- TAD 301 /NEXT INSTRUCTION
-
- *. /FOR RIM'S BENEFIT
-
- HLT /NEXT INSTRUCTION
-
- *. /FOR RIM'S BENEFIT
-
- Such a binary tape is essentially in RIM format because the programmer
- inserted the required origins where needed. Note the use of an extra origin
- after the last instruction. This is necessary because the checksum outputted
- to the tape will become a junk value loaded there! Without that "safety"
- origin, the last instruction would get overlayed by the junk value. Of course
- this tape is acceptable to BIN format in the normal way.
-
- Now back to the poster's reference:
-
- You are indicating the RX01 bootstrap which is 30 words long. This has zero
- to do with RIM. I believe that you are equating the fact that you toggle in
- the RX boot, and the other poster toggles in a RIM loader. They are for
- quite different purposes. His machine has only paper-tape as a peripheral,
- while you have a floppy-disk-based machine, and you are toggling in the
- code to bootstrap the O/S on floppy. His machine must always have a paper-tape
- loader available, since that's all he has available at that point.
-
- BTW, the RIM loader is shorter than some of the boot sequences of certain
- peripherals, so it's less hand work to toggle in the RIM loader, and boot
- by reading in a short paper-tape of the longer boot. The RIM loader is
- in fact shorter than the RX01 or RX02 bootstraps (30 and 34 locations
- respectively; I think your reference to 33 is to the octal value of where
- to *start* the code, not the length, as both of these routines start at
- 0033.). The RIM loader is 18 words long.
-
- I know of one user who made a continuous loop of such a RIM program on a
- model 33 Teletype. The tape consisted of multiple copies of the RX boot
- with the leader-trailer carefully glued together. The machine was always
- started with the RIM loader, and then the reader was manually enabled. This
- would read in one copy of the RX boot and start it up. It was the standard
- RX boot code augmented by a patch to the RIM loader itself to auto-start
- the RX code. (This machine actually had the MI8E Diode boot loader card,
- but the contents was the RIM loader, not the RX01 bootstrap.)
-
- BTW, there is a much shorter way to boot the RX01 than the DEC-supplied
- bootstrap. The reason is that the DEC bootstrap is longer than necessary
- for two specific items:
-
- 1) It attempts to boot on either drive 0 or drive 1. Booting from
- drive one may in fact be undesirable, but in any case, it is usually not
- worth toggling in longer code just for this frill.
-
- 2) Because of 1), the code doesn't take advantage of the self-test
- that the drive performs every time power-clear occurs. Since the boot
- code starts with CLEAR, CONT (START on older machines), the self-test
- always occurs, but is usable only on drive 0. (Drive 1 is merely
- recalibrated, but drive 0 is recalibrated and read as well. The boot
- code merely replicates what the self-test does, but supports doing so
- on either drive.)
-
- Thus, it is possible to toggle in a much shorter boot that expects the
- power-clear-induced self-test to play an integral role in the boot process.
-
- I can dig up this shorter boot, which I think was posted to pdp8-lovers
- about a year ago. I believe that version can be slightly trimmed as well,
- but makes the code dependent on the CPU being an 8/e. (Most are, but
- the RX8E/RX01/02 or the DSD-210 equivalent can be placed in the DW8E, and
- thus could be attached to a PDP-8 or LINC-8. I believe the shortened version
- depends on the proper execution of CLA CLL CML IAC RTL to load the AC with
- 0006, which can't work on those two machines; it would function on any
- DW8E-P hooked to an 8/i, 8/l or -12 however.)
-
- The DEC-standard RX01/02 boot code is 4 words longer than the RX01-only
- version. It not only boots either drive, it also attempts to load in
- either density. And it also functions on RX01. However, because it is
- longer than 32 words, it cannot be implemented on the MI8E Diode Loader
- module, and thus is only an option of the 8/a boot card. By paring the
- code down, it is possible to write a version than *can* fit into 32 words
- and thus could be implemented on the MI8E card. This could be a version
- that only supports drive 0, and possibly could require a front-panel
- switches setting to select single versus double density. Alternatively,
- the front panel switches could select both the drive unit and the density
- if there is enough room.
-
- cjl
-