PiDP-8/I Software

Hex Artifact Content
Log In

Artifact 189f34b27f4dcda4e1bad5080fd30b5044717229:

Wiki page [TD8E vs TC08] by tangent 2020-01-26 22:05:48.
0000: 44 20 32 30 32 30 2d 30 31 2d 32 36 54 32 32 3a  D 2020-01-26T22:
0010: 30 35 3a 34 38 2e 39 33 37 0a 4c 20 54 44 38 45  05:48.937.L TD8E
0020: 5c 73 76 73 5c 73 54 43 30 38 0a 4e 20 74 65 78  \svs\sTC08.N tex
0030: 74 2f 78 2d 6d 61 72 6b 64 6f 77 6e 0a 50 20 63  t/x-markdown.P c
0040: 63 33 37 30 66 63 33 39 35 61 39 38 35 31 62 38  c370fc395a9851b8
0050: 30 38 62 64 34 66 61 63 39 36 63 36 31 65 39 63  08bd4fac96c61e9c
0060: 37 65 63 30 31 33 38 0a 55 20 74 61 6e 67 65 6e  7ec0138.U tangen
0070: 74 0a 57 20 33 30 30 38 0a 23 20 54 68 65 20 50  t.W 3008.# The P
0080: 72 6f 62 6c 65 6d 0d 0a 0d 0a 54 68 65 20 60 6f  roblem....The `o
0090: 73 38 2e 74 75 35 36 60 20 66 69 6c 65 20 73 68  s8.tu56` file sh
00a0: 69 70 70 65 64 20 77 69 74 68 20 65 61 72 6c 79  ipped with early
00b0: 20 72 65 6c 65 61 73 65 73 20 6f 66 20 74 68 65   releases of the
00c0: 20 50 69 44 50 2d 38 2f 49 20 73 6f 66 74 77 61   PiDP-8/I softwa
00d0: 72 65 20 77 61 73 20 61 6e 20 69 6d 61 67 65 20  re was an image 
00e0: 63 72 65 61 74 65 64 20 66 72 6f 6d 20 61 20 44  created from a D
00f0: 45 43 74 61 70 65 20 66 6f 75 6e 64 20 72 75 6e  ECtape found run
0100: 6e 69 6e 67 20 6f 6e 20 73 6f 6d 65 6f 6e 65 27  ning on someone'
0110: 73 20 50 44 50 2d 38 20 73 79 73 74 65 6d 2e 20  s PDP-8 system. 
0120: 54 68 61 74 20 73 79 73 74 65 6d 20 68 61 64 20  That system had 
0130: 61 20 54 44 38 45 20 22 53 69 6d 70 6c 65 20 44  a TD8E "Simple D
0140: 45 43 74 61 70 65 22 20 63 6f 6e 74 72 6f 6c 6c  ECtape" controll
0150: 65 72 20 74 68 61 74 20 72 65 71 75 69 72 65 64  er that required
0160: 20 74 68 65 20 43 50 55 20 74 6f 20 6d 6f 6e 69   the CPU to moni
0170: 74 6f 72 20 74 68 65 20 74 61 70 65 20 61 73 20  tor the tape as 
0180: 69 74 20 73 70 65 64 20 70 61 73 74 20 74 68 65  it sped past the
0190: 20 68 65 61 64 73 2c 20 61 6e 64 20 74 72 61 6e   heads, and tran
01a0: 73 66 65 72 72 65 64 20 64 61 74 61 20 74 68 72  sferred data thr
01b0: 6f 75 67 68 20 74 68 65 20 41 43 2c 20 6e 6f 74  ough the AC, not
01c0: 20 62 79 20 75 73 69 6e 67 20 44 69 72 65 63 74   by using Direct
01d0: 20 4d 65 6d 6f 72 79 20 41 63 63 65 73 73 2e 0d   Memory Access..
01e0: 0a 0d 0a 4d 6f 73 74 20 73 75 72 76 69 76 69 6e  ...Most survivin
01f0: 67 20 50 44 50 2d 38 2f 65 20 68 61 72 64 77 61  g PDP-8/e hardwa
0200: 72 65 20 68 61 73 20 74 68 61 74 20 73 61 6d 65  re has that same
0210: 20 73 69 6d 70 6c 65 20 73 69 6e 67 6c 65 2d 63   simple single-c
0220: 61 72 64 20 44 45 43 74 61 70 65 20 63 6f 6e 74  ard DECtape cont
0230: 72 6f 6c 6c 65 72 2e 20 20 48 6f 77 65 76 65 72  roller.  However
0240: 2c 20 74 68 65 72 65 20 69 73 20 61 6e 6f 74 68  , there is anoth
0250: 65 72 20 44 45 43 74 61 70 65 20 63 6f 6e 74 72  er DECtape contr
0260: 6f 6c 6c 65 72 20 61 76 61 69 6c 61 62 6c 65 20  oller available 
0270: 66 6f 72 20 74 68 65 20 50 44 50 2d 38 2c 20 74  for the PDP-8, t
0280: 68 65 20 54 43 30 38 2c 20 77 68 69 63 68 20 6f  he TC08, which o
0290: 66 66 6c 6f 61 64 73 20 74 6f 20 68 61 72 64 77  ffloads to hardw
02a0: 61 72 65 20 6d 6f 72 65 20 6f 66 20 74 68 65 20  are more of the 
02b0: 74 61 70 65 20 6d 6f 74 69 6f 6e 20 61 6e 64 20  tape motion and 
02c0: 75 73 65 73 20 44 4d 41 20 74 6f 20 74 72 61 6e  uses DMA to tran
02d0: 73 66 65 72 20 64 61 74 61 2e 20 42 65 66 6f 72  sfer data. Befor
02e0: 65 20 74 68 65 20 61 64 76 65 6e 74 20 6f 66 20  e the advent of 
02f0: 74 68 65 20 50 44 50 2d 38 20 4f 4d 4e 49 42 55  the PDP-8 OMNIBU
0300: 53 2c 20 74 68 65 20 54 43 30 38 20 77 61 73 20  S, the TC08 was 
0310: 74 68 65 20 6f 6e 6c 79 20 63 6f 6e 74 72 6f 6c  the only control
0320: 6c 65 72 20 6f 70 74 69 6f 6e 20 61 76 61 69 6c  ler option avail
0330: 61 62 6c 65 2c 20 62 75 74 20 69 74 20 77 61 73  able, but it was
0340: 20 65 78 70 65 6e 73 69 76 65 2e 0d 0a 0d 0a 54   expensive.....T
0350: 68 65 20 70 72 6f 62 6c 65 6d 20 77 65 20 66 61  he problem we fa
0360: 63 65 20 69 73 20 74 68 61 74 20 62 6f 74 68 20  ce is that both 
0370: 74 79 70 65 73 20 6f 66 20 44 45 43 74 61 70 65  types of DECtape
0380: 20 54 43 30 38 20 61 6e 64 20 54 44 38 45 20 63   TC08 and TD8E c
0390: 6f 6e 74 72 6f 6c 6c 65 72 73 20 75 73 65 20 74  ontrollers use t
03a0: 68 65 20 73 61 6d 65 20 5b 49 4f 54 20 64 65 76  he same [IOT dev
03b0: 69 63 65 20 63 6f 64 65 73 5d 28 2f 77 69 6b 69  ice codes](/wiki
03c0: 3f 6e 61 6d 65 3d 49 4f 54 2b 44 65 76 69 63 65  ?name=IOT+Device
03d0: 2b 41 73 73 69 67 6e 6d 65 6e 74 73 29 20 62 75  +Assignments) bu
03e0: 74 20 68 61 76 65 20 69 6e 63 6f 6d 70 61 74 69  t have incompati
03f0: 62 6c 65 20 63 6f 6d 6d 61 6e 64 20 73 63 68 65  ble command sche
0400: 6d 65 73 2e 20 43 6f 6e 73 65 71 75 65 6e 74 6c  mes. Consequentl
0410: 79 2c 20 74 68 65 20 6f 6e 6c 79 20 73 65 6e 73  y, the only sens
0420: 69 62 6c 65 20 63 68 6f 69 63 65 20 77 68 65 6e  ible choice when
0430: 20 79 6f 75 20 60 42 55 49 4c 44 60 20 4f 53 2f   you `BUILD` OS/
0440: 38 20 69 73 20 74 6f 20 73 65 6c 65 63 74 20 61  8 is to select a
0450: 74 20 6d 6f 73 74 20 6f 6e 65 20 73 75 63 68 20  t most one such 
0460: 63 6f 6e 74 72 6f 6c 6c 65 72 20 74 79 70 65 2e  controller type.
0470: 0d 0a 0d 0a 0d 0a 23 20 54 72 61 64 65 6f 66 66  ......# Tradeoff
0480: 73 0d 0a 0d 0a 48 65 72 65 27 73 20 77 68 65 72  s....Here's wher
0490: 65 20 74 68 65 20 69 6e 74 65 72 65 73 74 69 6e  e the interestin
04a0: 67 20 74 72 61 64 65 6f 66 66 20 63 6f 6d 65 73  g tradeoff comes
04b0: 20 69 6e 3a 20 65 6d 75 6c 61 74 69 6e 67 20 61   in: emulating a
04c0: 20 44 4d 41 20 64 65 76 69 63 65 20 69 6e 20 53   DMA device in S
04d0: 49 4d 48 20 69 73 20 71 75 69 63 6b 20 61 6e 64  IMH is quick and
04e0: 20 65 61 73 79 2e 20 59 6f 75 72 20 64 72 69 76   easy. Your driv
04f0: 65 72 20 67 65 74 73 20 74 68 65 20 70 6f 69 6e  er gets the poin
0500: 74 65 72 20 74 6f 20 74 68 65 20 62 6c 6f 63 6b  ter to the block
0510: 73 20 61 6e 64 20 69 74 20 63 6f 70 69 65 73 20  s and it copies 
0520: 74 68 65 6d 2e 20 54 68 65 20 54 43 30 38 20 65  them. The TC08 e
0530: 6d 75 6c 61 74 6f 72 20 66 6f 72 20 53 49 4d 48  mulator for SIMH
0540: 20 69 73 20 73 69 6d 70 6c 65 20 61 6e 64 20 72   is simple and r
0550: 75 6e 73 20 61 73 20 66 61 73 74 20 61 73 20 74  uns as fast as t
0560: 68 65 20 68 6f 73 74 20 63 61 6e 20 63 6f 70 79  he host can copy
0570: 20 62 79 74 65 73 2e 0d 0a 0d 0a 45 6d 75 6c 61   bytes.....Emula
0580: 74 69 6e 67 20 74 68 65 20 54 44 38 45 20 69 73  ting the TD8E is
0590: 20 68 61 72 64 65 72 2e 20 53 49 4d 48 20 68 61   harder. SIMH ha
05a0: 73 20 74 6f 20 6c 69 73 74 65 6e 20 66 6f 72 20  s to listen for 
05b0: 74 68 65 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20  the commands to 
05c0: 73 74 61 72 74 20 74 68 65 20 74 61 70 65 20 6d  start the tape m
05d0: 6f 76 69 6e 67 2c 20 74 68 65 6e 20 66 6f 72 20  oving, then for 
05e0: 74 68 65 20 64 65 73 69 72 65 64 20 62 6c 6f 63  the desired bloc
05f0: 6b 20 6e 75 6d 62 65 72 2e 20 53 49 4d 48 20 6d  k number. SIMH m
0600: 75 73 74 20 74 68 65 6e 20 77 61 69 74 20 66 6f  ust then wait fo
0610: 72 20 65 61 63 68 20 31 32 20 62 69 74 20 77 6f  r each 12 bit wo
0620: 72 64 20 74 6f 20 67 6f 20 69 6e 74 6f 20 74 68  rd to go into th
0630: 61 74 20 62 6c 6f 63 6b 20 74 6f 20 63 6f 6d 65  at block to come
0640: 20 69 6e 20 74 68 72 6f 75 67 68 20 74 68 65 20   in through the 
0650: 65 6d 75 6c 61 74 69 6f 6e 20 6f 66 20 61 20 70  emulation of a p
0660: 72 6f 67 72 61 6d 6d 65 64 20 49 2f 4f 20 69 6e  rogrammed I/O in
0670: 73 74 72 75 63 74 69 6f 6e 20 74 68 61 74 20 70  struction that p
0680: 75 74 20 74 68 61 74 20 77 6f 72 64 20 69 6e 20  ut that word in 
0690: 74 68 65 20 50 44 50 2d 38 20 41 43 2e 20 41 6e  the PDP-8 AC. An
06a0: 64 20 69 74 20 68 61 73 20 74 6f 20 64 6f 20 61  d it has to do a
06b0: 6c 6c 20 6f 66 20 74 68 69 73 20 6f 6e 65 2e 2e  ll of this one..
06c0: 2e 77 6f 72 64 2e 2e 2e 61 74 2e 2e 2e 61 2e 2e  .word...at...a..
06d0: 2e 74 69 6d 65 2e 0d 0a 0d 0a 0d 0a 23 20 59 6f  .time.......# Yo
06e0: 75 72 20 43 68 6f 69 63 65 0d 0a 0d 0a 49 66 20  ur Choice....If 
06f0: 61 6c 6c 20 79 6f 75 20 65 76 65 72 20 77 61 6e  all you ever wan
0700: 74 20 74 6f 20 64 6f 20 69 73 20 70 6c 61 79 20  t to do is play 
0710: 77 69 74 68 20 76 69 72 74 75 61 6c 20 44 45 43  with virtual DEC
0720: 74 61 70 65 20 69 6d 61 67 65 73 20 75 6e 64 65  tape images unde
0730: 72 20 53 49 4d 48 2c 20 5b 63 6f 6e 66 69 67 75  r SIMH, [configu
0740: 72 65 20 74 68 65 20 50 69 44 50 2d 38 2f 49 20  re the PiDP-8/I 
0750: 73 6f 66 74 77 61 72 65 20 64 69 73 74 72 69 62  software distrib
0760: 75 74 69 6f 6e 5d 28 2f 64 6f 63 2f 74 72 75 6e  ution](/doc/trun
0770: 6b 2f 52 45 41 44 4d 45 2e 6d 64 29 20 69 6e 20  k/README.md) in 
0780: 74 68 65 20 64 65 66 61 75 6c 74 20 77 61 79 2c  the default way,
0790: 20 77 68 69 63 68 20 6e 6f 77 20 75 73 65 73 20   which now uses 
07a0: 74 68 65 20 54 43 30 38 20 64 65 76 69 63 65 20  the TC08 device 
07b0: 73 69 6e 63 65 20 76 65 72 73 69 6f 6e 20 32 30  since version 20
07c0: 31 39 2e 30 34 2e 32 35 2e 20 54 68 65 20 54 43  19.04.25. The TC
07d0: 30 38 20 73 69 6d 75 6c 61 74 69 6f 6e 20 69 73  08 simulation is
07e0: 20 61 20 4c 4f 54 20 66 61 73 74 65 72 20 61 6e   a LOT faster an
07f0: 64 20 68 61 73 20 6c 6f 77 65 72 20 43 50 55 20  d has lower CPU 
0800: 6f 76 65 72 68 65 61 64 2e 0d 0a 0d 0a 48 6f 77  overhead.....How
0810: 65 76 65 72 2c 20 69 66 20 79 6f 75 20 61 72 65  ever, if you are
0820: 20 75 73 69 6e 67 20 53 49 4d 48 20 61 6e 64 20   using SIMH and 
0830: 74 68 65 20 50 69 44 50 2d 38 2f 49 20 74 6f 20  the PiDP-8/I to 
0840: 63 72 65 61 74 65 20 62 6f 6f 74 61 62 6c 65 20  create bootable 
0850: 4f 53 2f 38 20 54 55 35 36 20 69 6d 61 67 65 73  OS/8 TU56 images
0860: 20 66 6f 72 20 75 73 65 20 6f 6e 20 72 65 61 6c   for use on real
0870: 20 68 61 72 64 77 61 72 65 2c 20 79 6f 75 20 6d   hardware, you m
0880: 61 79 20 77 61 6e 74 20 74 6f 20 63 6f 6e 66 69  ay want to confi
0890: 67 75 72 65 20 69 74 20 74 6f 20 75 73 65 20 74  gure it to use t
08a0: 68 65 20 54 44 38 45 2c 20 62 65 63 61 75 73 65  he TD8E, because
08b0: 20 69 74 27 73 20 74 68 65 20 6d 6f 72 65 20 63   it's the more c
08c0: 6f 6d 6d 6f 6e 6c 79 20 66 6f 75 6e 64 20 44 45  ommonly found DE
08d0: 43 74 61 70 65 20 63 6f 6e 74 72 6f 6c 6c 65 72  Ctape controller
08e0: 3a 0d 0a 0d 0a 20 20 20 20 20 24 20 2e 2f 63 6f  :....     $ ./co
08f0: 6e 66 69 67 75 72 65 20 2d 2d 62 6f 6f 74 2d 74  nfigure --boot-t
0900: 61 70 65 2d 63 6f 6e 66 69 67 3d 74 64 31 32 6b  ape-config=td12k
0910: 0d 0a 0d 0a 49 66 20 79 6f 75 20 63 6f 6e 66 69  ....If you confi
0920: 67 75 72 65 20 4f 53 2f 38 20 6f 6e 20 74 68 61  gure OS/8 on tha
0930: 74 20 74 61 70 65 20 69 6d 61 67 65 20 77 69 74  t tape image wit
0940: 68 20 74 68 65 20 77 72 6f 6e 67 20 64 72 69 76  h the wrong driv
0950: 65 72 2c 20 69 74 20 77 6f 6e 27 74 20 62 6f 6f  er, it won't boo
0960: 74 20 6f 6e 20 74 68 65 20 72 65 61 6c 20 68 61  t on the real ha
0970: 72 64 77 61 72 65 2e 0d 0a 0d 0a 0d 0a 23 20 54  rdware.......# T
0980: 44 38 45 20 76 73 2e 20 54 44 31 32 4b 0d 0a 0d  D8E vs. TD12K...
0990: 0a 59 6f 75 20 6d 69 67 68 74 20 62 65 20 77 6f  .You might be wo
09a0: 6e 64 65 72 69 6e 67 20 77 68 79 20 74 68 65 20  ndering why the 
09b0: 61 62 6f 76 65 20 63 6f 6d 6d 61 6e 64 20 75 73  above command us
09c0: 65 73 20 74 68 65 20 6e 61 6d 65 20 22 60 74 64  es the name "`td
09d0: 31 32 6b 60 22 20 69 6e 73 74 65 61 64 20 6f 66  12k`" instead of
09e0: 20 22 60 74 64 38 65 60 22 2e 20 49 74 27 73 20   "`td8e`". It's 
09f0: 62 65 63 61 75 73 65 20 74 68 65 72 65 20 61 72  because there ar
0a00: 65 20 61 63 74 75 61 6c 6c 79 20 5b 74 77 6f 20  e actually [two 
0a10: 64 69 66 66 65 72 65 6e 74 20 73 65 74 75 70 73  different setups
0a20: 20 66 6f 72 20 75 73 69 6e 67 20 54 44 38 45 20   for using TD8E 
0a30: 63 6f 6e 74 72 6f 6c 6c 65 72 20 61 73 20 61 20  controller as a 
0a40: 73 79 73 74 65 6d 20 64 65 76 69 63 65 5d 28 2f  system device](/
0a50: 66 6f 72 75 6d 70 6f 73 74 2f 66 30 38 65 36 61  forumpost/f08e6a
0a60: 35 36 39 61 29 2e 20 42 72 69 65 66 6c 79 2c 20  569a). Briefly, 
0a70: 6f 6e 65 20 73 65 74 75 70 20 72 65 71 75 69 72  one setup requir
0a80: 65 73 20 61 74 20 6c 65 61 73 74 20 31 32 20 6b  es at least 12 k
0a90: 57 6f 72 64 73 20 6f 66 20 63 6f 72 65 20 61 6e  Words of core an
0aa0: 64 20 74 68 65 20 74 68 65 20 6f 74 68 65 72 20  d the the other 
0ab0: 73 65 74 75 70 20 72 65 71 75 69 72 65 73 20 61  setup requires a
0ac0: 20 52 4f 4d 20 62 6f 61 72 64 20 63 6f 6e 74 61   ROM board conta
0ad0: 69 6e 69 6e 67 20 63 6f 64 65 20 74 68 61 74 20  ining code that 
0ae0: 77 6f 75 6c 64 20 72 75 6e 20 69 6e 20 74 68 65  would run in the
0af0: 20 74 6f 70 20 70 61 67 65 20 6f 66 20 46 69 65   top page of Fie
0b00: 6c 64 20 32 2e 20 20 57 69 74 68 20 74 68 65 20  ld 2.  With the 
0b10: 52 4f 4d 20 62 6f 61 72 64 2c 20 79 6f 75 20 63  ROM board, you c
0b20: 61 6e 20 68 61 76 65 20 61 20 77 6f 72 6b 69 6e  an have a workin
0b30: 67 20 73 79 73 74 65 6d 20 77 69 74 68 20 6f 6e  g system with on
0b40: 6c 79 20 38 20 6b 57 6f 72 64 73 20 6f 66 20 63  ly 8 kWords of c
0b50: 6f 72 65 2c 20 6f 72 20 79 6f 75 20 64 6f 6e 27  ore, or you don'
0b60: 74 20 68 61 76 65 20 74 6f 20 77 6f 72 72 79 20  t have to worry 
0b70: 61 62 6f 75 74 20 6e 6f 74 20 77 72 69 74 69 6e  about not writin
0b80: 67 20 69 6e 74 6f 20 74 68 65 20 74 6f 70 20 70  g into the top p
0b90: 61 67 65 20 6f 66 20 46 69 65 6c 64 20 32 2e 0d  age of Field 2..
0ba0: 0a 0d 0a 49 66 20 77 65 20 65 76 65 72 20 64 65  ...If we ever de
0bb0: 63 69 64 65 20 74 6f 20 73 75 70 70 6f 72 74 20  cide to support 
0bc0: 74 68 61 74 20 6f 74 68 65 72 20 74 61 70 65 20  that other tape 
0bd0: 63 6f 6e 74 72 6f 6c 6c 65 72 20 74 79 70 65 20  controller type 
0be0: 69 6e 20 5b 60 6f 73 38 2d 72 75 6e 60 5d 28 2f  in [`os8-run`](/
0bf0: 64 6f 63 2f 74 72 75 6e 6b 2f 64 6f 63 2f 6f 73  doc/trunk/doc/os
0c00: 38 2d 72 75 6e 2e 6d 64 29 2c 20 77 65 27 6c 6c  8-run.md), we'll
0c10: 20 70 72 6f 62 61 62 6c 79 20 75 73 65 20 74 68   probably use th
0c20: 65 20 6f 70 74 69 6f 6e 20 76 61 6c 75 65 20 22  e option value "
0c30: 60 74 64 72 6f 6d 60 22 2e 0a 5a 20 39 62 30 63  `tdrom`"..Z 9b0c
0c40: 31 30 62 63 31 37 65 39 65 63 62 61 61 63 38 39  10bc17e9ecbaac89
0c50: 32 37 63 39 65 39 38 61 64 65 32 33 0a           27c9e98ade23.