home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / alt / sys / pdp8 / 98 < prev    next >
Encoding:
Text File  |  1992-11-22  |  5.8 KB  |  124 lines

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