Artifact
26887a0cd51f23ad36d1c785db4c67b3eb971cf6:
Wiki page
[AX08 Emulation] by
tangent
2017-08-02 05:15:00.
0000: 44 20 32 30 31 37 2d 30 38 2d 30 32 54 30 35 3a D 2017-08-02T05:
0010: 31 35 3a 30 30 2e 32 34 30 0a 4c 20 41 58 30 38 15:00.240.L AX08
0020: 5c 73 45 6d 75 6c 61 74 69 6f 6e 0a 4e 20 74 65 \sEmulation.N te
0030: 78 74 2f 78 2d 6d 61 72 6b 64 6f 77 6e 0a 50 20 xt/x-markdown.P
0040: 35 65 36 66 31 34 36 38 37 62 37 39 61 31 38 61 5e6f14687b79a18a
0050: 31 38 34 32 61 34 33 39 64 66 65 38 36 36 31 63 1842a439dfe8661c
0060: 31 36 34 61 63 38 64 36 0a 55 20 74 61 6e 67 65 164ac8d6.U tange
0070: 6e 74 0a 57 20 34 32 33 38 0a 2a 50 72 6f 70 6f nt.W 4238.*Propo
0080: 73 61 6c 2a 3a 20 45 6d 75 6c 61 74 65 20 74 68 sal*: Emulate th
0090: 65 20 5b 41 58 30 38 20 50 44 50 2d 38 20 73 65 e [AX08 PDP-8 se
00a0: 72 69 65 73 20 6c 61 62 6f 72 61 74 6f 72 79 20 ries laboratory
00b0: 70 65 72 69 70 68 65 72 61 6c 5d 28 68 74 74 70 peripheral](http
00c0: 3a 2f 2f 77 77 77 2e 70 64 70 38 2e 6e 65 74 2f ://www.pdp8.net/
00d0: 61 78 30 38 2f 61 78 30 38 2e 73 68 74 6d 6c 29 ax08/ax08.shtml)
00e0: 20 76 69 61 20 61 20 55 53 42 2d 63 6f 6e 6e 65 via a USB-conne
00f0: 63 74 65 64 20 41 72 64 75 69 6e 6f 0d 0a 0d 0a cted Arduino....
0100: 54 68 65 20 62 61 73 65 20 6d 6f 64 65 6c 20 41 The base model A
0110: 58 30 38 20 68 61 73 3a 0d 0a 0d 0a 2a 20 20 66 X08 has:....* f
0120: 6f 75 72 20 39 2d 62 69 74 20 41 44 43 20 69 6e our 9-bit ADC in
0130: 70 75 74 73 20 77 69 74 68 20 61 20 63 6f 6e 76 puts with a conv
0140: 65 72 73 69 6f 6e 20 74 69 6d 65 20 6f 66 20 31 ersion time of 1
0150: 37 20 c2 b5 73 20 6f 76 65 72 20 61 20 26 70 6c 7 µs over a &pl
0160: 75 73 6d 6e 3b 31 2e 30 32 34 56 20 72 61 6e 67 usmn;1.024V rang
0170: 65 20 77 69 74 68 20 35 30 20 6b ce a9 20 69 6e e with 50 kΩ in
0180: 70 75 74 20 69 6d 70 65 64 61 6e 63 65 0d 0a 2a put impedance..*
0190: 20 20 74 68 72 65 65 20 53 63 68 6d 69 74 74 2d three Schmitt-
01a0: 74 72 69 67 67 65 72 65 64 20 64 69 67 69 74 61 triggered digita
01b0: 6c 20 69 6e 70 75 74 73 20 77 69 74 68 20 30 2e l inputs with 0.
01c0: 37 56 20 6f 66 20 68 79 73 74 65 72 65 73 69 73 7V of hysteresis
01d0: 0d 0a 2a 20 20 61 6e 20 58 2d 59 20 76 65 63 74 ..* an X-Y vect
01e0: 6f 72 20 64 69 73 70 6c 61 79 20 6f 75 74 70 75 or display outpu
01f0: 74 0d 0a 0d 0a 54 68 69 73 20 63 61 6e 20 62 65 t....This can be
0200: 20 65 78 70 61 6e 64 65 64 3a 0d 0a 0d 0a 2a 20 expanded:....*
0210: 20 2b 34 20 61 6e 61 6c 6f 67 20 69 6e 70 75 74 +4 analog input
0220: 73 20 76 69 61 20 4f 70 74 69 6f 6e 20 58 4d 0d s via Option XM.
0230: 0a 2a 20 20 2b 31 36 20 61 6e 61 6c 6f 67 20 69 .* +16 analog i
0240: 6e 70 75 74 73 20 76 69 61 20 75 70 20 74 6f 20 nputs via up to
0250: 66 6f 75 72 20 4f 70 74 69 6f 6e 20 58 43 20 6d four Option XC m
0260: 6f 64 75 6c 65 73 2c 20 65 61 63 68 20 6f 66 20 odules, each of
0270: 77 68 69 63 68 20 61 64 64 73 20 34 20 41 44 43 which adds 4 ADC
0280: 20 69 6e 70 75 74 73 3b 20 72 65 71 75 69 72 65 inputs; require
0290: 73 20 4f 70 74 69 6f 6e 20 58 4d 0d 0a 2a 20 20 s Option XM..*
02a0: 61 20 66 6f 75 72 74 68 20 53 63 68 6d 69 74 74 a fourth Schmitt
02b0: 2d 74 72 69 67 67 65 72 65 64 20 69 6e 70 75 74 -triggered input
02c0: 2c 20 38 20 73 74 72 61 69 67 68 74 20 64 69 67 , 8 straight dig
02d0: 69 74 61 6c 20 69 6e 70 75 74 73 2c 20 33 20 64 ital inputs, 3 d
02e0: 69 67 69 74 61 6c 20 6f 75 74 70 75 74 73 2c 20 igital outputs,
02f0: 61 6e 64 20 61 6e 20 38 2d 6c 65 76 65 6c 20 5a and an 8-level Z
0300: 20 6f 75 74 70 75 74 20 66 6f 72 20 74 68 65 20 output for the
0310: 76 65 63 74 6f 72 20 73 63 6f 70 65 20 74 6f 20 vector scope to
0320: 63 6f 6e 74 72 6f 6c 20 69 6e 74 65 6e 73 69 74 control intensit
0330: 79 2c 20 61 6c 6c 20 76 69 61 20 4f 70 74 69 6f y, all via Optio
0340: 6e 20 58 52 0d 0a 0d 0a 41 6e 20 41 72 64 75 69 n XR....An Ardui
0350: 6e 6f 20 55 6e 6f 20 68 61 73 3a 0d 0a 0d 0a 2a no Uno has:....*
0360: 20 20 73 69 78 20 31 30 2d 62 69 74 20 41 44 43 six 10-bit ADC
0370: 20 69 6e 70 75 74 73 20 77 69 74 68 20 61 20 73 inputs with a s
0380: 74 6f 63 6b 20 63 6f 6e 76 65 72 73 69 6f 6e 20 tock conversion
0390: 74 69 6d 65 20 6f 66 20 36 35 20 c2 b5 73 20 6f time of 65 µs o
03a0: 76 65 72 20 61 20 30 2d 35 56 20 72 61 6e 67 65 ver a 0-5V range
03b0: 20 77 69 74 68 20 31 30 30 20 6b ce a9 20 69 6e with 100 kΩ in
03c0: 70 75 74 20 69 6d 70 65 64 61 6e 63 65 0d 0a 2a put impedance..*
03d0: 20 20 31 34 20 64 69 67 69 74 61 6c 20 69 6e 70 14 digital inp
03e0: 75 74 73 2c 20 61 6c 6c 20 53 63 68 6d 69 74 74 uts, all Schmitt
03f0: 2d 74 72 69 67 67 65 72 65 64 2c 20 62 75 74 20 -triggered, but
0400: 6f 6e 6c 79 20 77 69 74 68 20 30 2e 30 35 56 20 only with 0.05V
0410: 6f 66 20 68 79 73 74 65 72 65 73 69 73 0d 0a 2a of hysteresis..*
0420: 20 20 36 20 50 57 4d 20 6f 75 74 70 75 74 73 0d 6 PWM outputs.
0430: 0a 0d 0a 54 68 65 73 65 20 64 69 66 66 65 72 65 ...These differe
0440: 6e 63 65 73 20 6d 61 79 20 61 6c 6c 20 62 65 20 nces may all be
0450: 6f 76 65 72 63 6f 6d 65 2e 0d 0a 0d 0a 54 68 65 overcome.....The
0460: 20 41 72 64 75 69 6e 6f 27 73 20 63 6f 6e 76 65 Arduino's conve
0470: 72 73 69 6f 6e 20 74 69 6d 65 20 5b 6d 61 79 20 rsion time [may
0480: 62 65 20 72 65 64 75 63 65 64 5d 28 68 74 74 70 be reduced](http
0490: 3a 2f 2f 77 77 77 2e 6d 69 63 72 6f 73 6d 61 72 ://www.microsmar
04a0: 74 2e 63 6f 2e 7a 61 2f 74 65 63 68 6e 69 63 61 t.co.za/technica
04b0: 6c 2f 32 30 31 34 2f 30 33 2f 30 31 2f 61 64 76 l/2014/03/01/adv
04c0: 61 6e 63 65 64 2d 61 72 64 75 69 6e 6f 2d 61 64 anced-arduino-ad
04d0: 63 2f 29 20 74 6f 20 61 70 70 72 6f 78 69 6d 61 c/) to approxima
04e0: 74 65 6c 79 20 32 30 20 c2 b5 73 20 77 69 74 68 tely 20 µs with
04f0: 6f 75 74 20 68 65 72 6f 69 63 20 6d 65 61 73 75 out heroic measu
0500: 72 65 73 2e 20 54 68 69 73 20 69 6d 70 61 63 74 res. This impact
0510: 73 20 61 63 63 75 72 61 63 79 2c 20 62 75 74 20 s accuracy, but
0520: 77 65 20 77 65 72 65 20 67 6f 69 6e 67 20 74 6f we were going to
0530: 20 74 68 72 6f 77 20 61 77 61 79 20 74 68 65 20 throw away the
0540: 4c 53 42 20 61 6e 79 77 61 79 2e 0d 0a 0d 0a 42 LSB anyway.....B
0550: 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 41 y default, the A
0560: 72 64 75 69 6e 6f 27 73 20 41 44 43 20 67 69 76 rduino's ADC giv
0570: 65 73 20 61 20 73 69 6e 67 6c 65 2d 65 6e 64 65 es a single-ende
0580: 64 20 72 65 73 75 6c 74 2c 20 62 75 74 20 69 74 d result, but it
0590: 20 77 65 20 63 61 6e 20 6d 61 74 68 65 6d 61 74 we can mathemat
05a0: 69 63 61 6c 6c 79 20 61 64 6a 75 73 74 20 74 68 ically adjust th
05b0: 65 20 72 65 73 75 6c 74 20 73 6f 20 74 68 61 74 e result so that
05c0: 20 74 68 65 20 35 31 32 20 63 6f 6e 76 65 72 73 the 512 convers
05d0: 69 6f 6e 20 6f 75 74 70 75 74 20 63 6f 64 65 20 ion output code
05e0: 28 46 53 2f 32 29 20 6d 61 70 73 20 74 6f 20 30 (FS/2) maps to 0
05f0: 30 30 30 20 6f 63 74 61 6c 20 6f 75 74 2e 0d 0a 000 octal out...
0600: 0d 0a 54 68 65 20 41 58 30 38 27 73 20 69 6e 70 ..The AX08's inp
0610: 75 74 20 76 6f 6c 74 61 67 65 20 72 61 6e 67 65 ut voltage range
0620: 20 6f 66 20 26 70 6c 75 73 6d 6e 3b 31 2e 30 32 of ±1.02
0630: 34 56 20 63 61 6e 20 62 65 20 6d 61 70 70 65 64 4V can be mapped
0640: 20 69 6e 74 6f 20 74 68 65 20 41 72 64 75 69 6e into the Arduin
0650: 6f 27 73 20 69 6e 70 75 74 20 72 61 6e 67 65 20 o's input range
0660: 69 6e 20 6f 6e 65 20 6f 66 20 74 77 6f 20 77 61 in one of two wa
0670: 79 73 2e 20 45 69 74 68 65 72 20 77 65 20 63 61 ys. Either we ca
0680: 6e 20 73 65 74 20 74 68 65 20 61 6e 61 6c 6f 67 n set the analog
0690: 20 69 6e 70 75 74 20 76 69 72 74 75 61 6c 20 67 input virtual g
06a0: 72 6f 75 6e 64 20 74 6f 20 2b 31 2e 30 32 34 56 round to +1.024V
06b0: 20 72 65 6c 61 74 69 76 65 20 74 6f 20 74 68 65 relative to the
06c0: 20 41 72 64 75 69 6e 6f 20 73 79 73 74 65 6d 20 Arduino system
06d0: 67 72 6f 75 6e 64 20 61 6e 64 20 75 73 65 20 61 ground and use a
06e0: 6e 20 6f 70 2d 61 6d 70 20 74 6f 20 67 61 69 6e n op-amp to gain
06f0: 20 74 68 65 20 69 6e 70 75 74 20 73 69 67 6e 61 the input signa
0700: 6c 20 75 70 20 62 79 20 61 70 70 72 6f 78 69 6d l up by approxim
0710: 61 74 65 6c 79 20 32 2e 35 26 74 69 6d 65 73 3b ately 2.5×
0720: 20 74 6f 20 70 75 74 20 6d 61 70 20 74 68 61 74 to put map that
0730: 20 72 61 6e 67 65 20 74 6f 20 30 2d 35 56 2c 20 range to 0-5V,
0740: 6f 72 20 77 65 20 63 61 6e 20 5b 73 65 74 20 74 or we can [set t
0750: 68 65 20 41 72 64 75 69 6e 6f 20 61 6e 61 6c 6f he Arduino analo
0760: 67 20 72 65 66 65 72 65 6e 63 65 5d 28 68 74 74 g reference](htt
0770: 70 73 3a 2f 2f 77 77 77 2e 61 72 64 75 69 6e 6f ps://www.arduino
0780: 2e 63 63 2f 65 6e 2f 52 65 66 65 72 65 6e 63 65 .cc/en/Reference
0790: 2f 41 6e 61 6c 6f 67 52 65 66 65 72 65 6e 63 65 /AnalogReference
07a0: 29 20 74 6f 20 32 2e 30 34 38 56 2e 20 54 68 65 ) to 2.048V. The
07b0: 20 6c 61 74 74 65 72 20 70 75 73 68 65 73 20 74 latter pushes t
07c0: 68 65 20 69 6e 70 75 74 20 73 69 67 6e 61 6c 20 he input signal
07d0: 64 6f 77 6e 20 69 6e 74 6f 20 74 68 65 20 6e 6f down into the no
07e0: 69 73 65 20 66 6c 6f 6f 72 20 61 20 62 69 74 2c ise floor a bit,
07f0: 20 62 75 74 20 69 73 20 65 61 73 69 65 72 20 74 but is easier t
0800: 6f 20 69 6d 70 6c 65 6d 65 6e 74 2e 20 41 20 70 o implement. A p
0810: 72 6f 67 72 61 6d 6d 61 62 6c 65 20 72 65 66 65 rogrammable refe
0820: 72 65 6e 63 65 20 76 6f 6c 74 61 67 65 20 69 73 rence voltage is
0830: 20 6f 6e 65 20 49 43 20 61 6e 64 20 61 20 66 65 one IC and a fe
0840: 77 20 72 65 73 69 73 74 6f 72 73 2c 20 77 68 65 w resistors, whe
0850: 72 65 61 73 20 74 68 65 20 6f 70 2d 61 6d 70 20 reas the op-amp
0860: 63 69 72 63 75 69 74 20 70 72 6f 62 61 62 6c 79 circuit probably
0870: 20 72 65 71 75 69 72 65 73 20 74 77 6f 20 6f 70 requires two op
0880: 2d 61 6d 70 73 2c 20 6f 6e 65 20 6f 66 20 77 68 -amps, one of wh
0890: 69 63 68 20 69 6e 63 6c 75 64 65 73 20 74 68 65 ich includes the
08a0: 20 6e 65 67 61 74 69 76 65 20 73 75 70 70 6c 79 negative supply
08b0: 20 70 69 6e 20 69 6e 20 69 74 73 20 69 6e 70 75 pin in its inpu
08c0: 74 20 72 61 6e 67 65 2e 0d 0a 0d 0a 57 65 20 6d t range.....We m
08d0: 61 79 20 77 61 6e 74 20 74 6f 20 67 6f 20 77 69 ay want to go wi
08e0: 74 68 20 74 68 65 20 6f 70 2d 61 6d 70 20 73 6f th the op-amp so
08f0: 6c 75 74 69 6f 6e 20 61 6e 79 77 61 79 20 73 69 lution anyway si
0900: 6e 63 65 20 74 68 65 20 72 65 66 65 72 65 6e 63 nce the referenc
0910: 65 20 76 6f 6c 74 61 67 65 20 6f 70 74 69 6f 6e e voltage option
0920: 20 6d 65 61 6e 73 20 77 65 20 67 65 74 20 74 68 means we get th
0930: 65 20 41 72 64 75 69 6e 6f 27 73 20 69 6e 70 75 e Arduino's inpu
0940: 74 20 69 6d 70 65 64 61 6e 63 65 2c 20 77 68 69 t impedance, whi
0950: 63 68 20 61 70 70 65 61 72 73 20 74 6f 20 62 65 ch appears to be
0960: 20 31 30 30 20 6b ce a9 2c 20 77 68 65 72 65 61 100 kΩ, wherea
0970: 73 20 74 68 65 20 41 58 30 38 20 68 61 64 20 61 s the AX08 had a
0980: 20 35 30 20 6b ce a9 20 69 6e 70 75 74 20 69 6d 50 kΩ input im
0990: 70 65 64 61 6e 63 65 2e 20 49 66 20 74 68 61 74 pedance. If that
09a0: 20 6d 61 74 74 65 72 73 2c 20 77 65 27 6c 6c 20 matters, we'll
09b0: 6e 65 65 64 20 61 20 62 75 66 66 65 72 69 6e 67 need a buffering
09c0: 20 6c 61 79 65 72 20 74 6f 20 73 65 70 61 72 61 layer to separa
09d0: 74 65 20 74 68 65 20 74 77 6f 20 69 6d 70 65 64 te the two imped
09e0: 61 6e 63 65 73 2e 0d 0a 0d 0a 54 68 65 20 41 72 ances.....The Ar
09f0: 64 75 69 6e 6f 20 64 69 67 69 74 61 6c 20 69 6e duino digital in
0a00: 70 75 74 73 20 61 72 65 20 69 6e 68 65 72 65 6e puts are inheren
0a10: 74 6c 79 20 53 63 68 6d 69 74 74 2d 74 72 69 67 tly Schmitt-trig
0a20: 67 65 72 65 64 2c 20 62 75 74 20 74 68 65 20 69 gered, but the i
0a30: 6e 70 75 74 20 61 6e 64 20 68 79 73 74 65 72 65 nput and hystere
0a40: 73 69 73 20 6c 65 76 65 6c 73 20 61 72 65 20 61 sis levels are a
0a50: 6c 6c 20 64 69 66 66 65 72 65 6e 74 2e 20 41 20 ll different. A
0a60: 63 75 73 74 6f 6d 20 41 72 64 75 69 6e 6f 20 73 custom Arduino s
0a70: 68 69 65 6c 64 20 63 6f 75 6c 64 20 61 64 64 20 hield could add
0a80: 65 78 74 65 72 6e 61 6c 20 30 2e 37 56 20 53 63 external 0.7V Sc
0a90: 68 6d 69 74 74 20 74 72 69 67 67 65 72 20 49 43 hmitt trigger IC
0aa0: 73 20 77 69 74 68 20 73 75 69 74 61 62 6c 65 20 s with suitable
0ab0: 69 6e 70 75 74 20 72 61 6e 67 65 73 2e 20 4f 72 input ranges. Or
0ac0: 2c 20 74 68 65 20 75 73 65 72 20 63 6f 75 6c 64 , the user could
0ad0: 20 73 69 6d 70 6c 79 20 64 65 63 69 64 65 20 74 simply decide t
0ae0: 68 61 74 20 61 6c 6c 20 74 68 65 79 20 63 61 72 hat all they car
0af0: 65 20 61 62 6f 75 74 20 69 73 20 74 68 65 20 30 e about is the 0
0b00: 2f 31 20 72 65 73 75 6c 74 20 76 61 6c 75 65 2c /1 result value,
0b10: 20 61 6e 64 20 77 69 6c 6c 20 75 73 65 20 74 68 and will use th
0b20: 65 20 41 72 64 75 69 6e 6f 27 73 20 67 69 76 65 e Arduino's give
0b30: 6e 20 69 6e 70 75 74 20 63 68 61 72 61 63 74 65 n input characte
0b40: 72 69 73 74 69 63 73 2e 20 45 69 74 68 65 72 20 ristics. Either
0b50: 77 61 79 2c 20 77 65 20 68 61 76 65 20 65 6e 6f way, we have eno
0b60: 75 67 68 20 49 2f 4f 20 65 76 65 6e 20 6f 6e 20 ugh I/O even on
0b70: 61 6e 20 55 6e 6f 20 74 6f 20 65 6d 75 6c 61 74 an Uno to emulat
0b80: 65 20 74 68 65 20 62 61 73 65 20 75 6e 69 74 27 e the base unit'
0b90: 73 20 64 69 67 69 74 61 6c 20 49 2f 4f 2c 20 70 s digital I/O, p
0ba0: 6c 75 73 20 6d 6f 73 74 20 6f 66 20 4f 70 74 69 lus most of Opti
0bb0: 6f 6e 20 58 52 2e 20 0d 0a 0d 0a 4d 6f 76 69 6e on XR. ....Movin
0bc0: 67 20 75 70 20 74 6f 20 61 6e 20 41 72 64 75 69 g up to an Ardui
0bd0: 6e 6f 20 4d 65 67 61 20 6c 65 74 73 20 75 73 20 no Mega lets us
0be0: 63 6f 76 65 72 20 74 68 65 20 65 6e 74 69 72 65 cover the entire
0bf0: 74 79 20 6f 66 20 4f 70 74 69 6f 6e 20 58 52 20 ty of Option XR
0c00: 70 6c 75 73 20 4f 70 74 69 6f 6e 20 58 4d 20 61 plus Option XM a
0c10: 6e 64 20 74 77 6f 20 4f 70 74 69 6f 6e 20 58 43 nd two Option XC
0c20: 20 6d 6f 64 75 6c 65 73 2e 0d 0a 0d 0a 54 68 65 modules.....The
0c30: 20 76 65 63 74 6f 72 20 73 63 6f 70 65 20 64 72 vector scope dr
0c40: 69 76 65 72 20 63 61 6e 20 62 65 20 69 6d 70 6c iver can be impl
0c50: 65 6d 65 6e 74 65 64 20 62 79 20 75 73 69 6e 67 emented by using
0c60: 20 74 68 65 20 41 72 64 75 69 6e 6f 27 73 20 50 the Arduino's P
0c70: 57 4d 20 6f 75 74 70 75 74 73 20 61 73 20 6c 6f WM outputs as lo
0c80: 77 2d 66 72 65 71 75 65 6e 63 79 20 44 41 43 73 w-frequency DACs
0c90: 2c 20 77 69 74 68 20 73 6f 6d 65 20 73 69 67 6e , with some sign
0ca0: 61 6c 20 63 6f 6e 64 69 74 69 6f 6e 69 6e 67 2e al conditioning.
0cb0: 20 4f 72 2c 20 69 66 20 62 65 74 74 65 72 20 73 Or, if better s
0cc0: 70 65 65 64 20 69 73 20 72 65 71 75 69 72 65 64 peed is required
0cd0: 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 67 65 74 in order to get
0ce0: 20 73 75 69 74 61 62 6c 65 20 64 69 73 70 6c 61 suitable displa
0cf0: 79 20 75 70 64 61 74 65 20 72 61 74 65 73 2c 20 y update rates,
0d00: 77 65 20 63 6f 75 6c 64 20 61 64 64 20 61 20 72 we could add a r
0d10: 65 61 6c 20 44 41 43 20 63 68 69 70 20 76 69 61 eal DAC chip via
0d20: 20 61 20 63 75 73 74 6f 6d 20 73 68 69 65 6c 64 a custom shield
0d30: 2e 20 54 68 69 73 20 77 69 6c 6c 20 74 61 6b 65 . This will take
0d40: 20 73 65 76 65 72 61 6c 20 6f 66 20 74 68 65 20 several of the
0d50: 64 69 67 69 74 61 6c 20 6f 75 74 70 75 74 20 70 digital output p
0d60: 69 6e 73 20 66 6f 72 20 49 c2 b2 43 20 6f 72 20 ins for I²C or
0d70: 53 50 49 2e 0d 0a 0d 0a 41 73 20 66 6f 72 20 22 SPI.....As for "
0d80: 77 68 79 20 55 53 42 22 2c 20 62 65 63 61 75 73 why USB", becaus
0d90: 65 20 69 74 27 73 20 65 61 73 79 2c 20 61 6e 64 e it's easy, and
0da0: 20 74 68 65 20 50 44 50 20 74 6f 20 41 58 30 38 the PDP to AX08
0db0: 20 69 6e 74 65 72 66 61 63 65 20 64 6f 65 73 6e interface doesn
0dc0: 27 74 20 73 65 65 6d 20 69 6d 70 6f 72 74 61 6e 't seem importan
0dd0: 74 20 74 6f 20 65 6d 75 6c 61 74 65 2e 20 4f 73 t to emulate. Os
0de0: 63 61 72 20 56 65 72 6d 75 65 6c 65 6e 20 70 72 car Vermuelen pr
0df0: 6f 70 6f 73 65 64 20 74 68 61 74 20 77 65 20 75 oposed that we u
0e00: 73 65 20 74 68 65 20 50 69 44 50 2d 38 2f 49 27 se the PiDP-8/I'
0e10: 73 20 65 78 70 61 6e 73 69 6f 6e 20 63 6f 6e 6e s expansion conn
0e20: 65 63 74 6f 72 2c 20 62 75 74 20 74 68 61 74 20 ector, but that
0e30: 6a 75 73 74 20 63 6f 6d 70 6c 69 63 61 74 65 73 just complicates
0e40: 20 74 68 69 6e 67 73 2c 20 72 65 71 75 69 72 69 things, requiri
0e50: 6e 67 20 6d 61 6e 79 20 49 2f 4f 20 69 6e 70 75 ng many I/O inpu
0e60: 74 20 69 6e 74 6f 20 74 68 65 20 41 72 64 75 69 t into the Ardui
0e70: 6e 6f 20 70 6c 75 73 20 6d 61 70 70 69 6e 67 20 no plus mapping
0e80: 69 6e 70 75 74 20 6c 69 6e 65 20 63 68 61 6e 67 input line chang
0e90: 65 73 20 74 6f 20 41 58 30 38 20 63 6f 6d 6d 61 es to AX08 comma
0ea0: 6e 64 73 2e 20 54 68 65 20 73 61 6d 65 20 63 6f nds. The same co
0eb0: 6d 6d 61 6e 64 73 20 63 6f 75 6c 64 20 62 65 20 mmands could be
0ec0: 73 65 6e 74 20 6f 76 65 72 20 74 68 65 20 55 53 sent over the US
0ed0: 42 2d 74 6f 2d 73 65 72 69 61 6c 20 69 6e 74 65 B-to-serial inte
0ee0: 72 66 61 63 65 20 6f 66 20 74 68 65 20 41 72 64 rface of the Ard
0ef0: 75 69 6e 6f 20 6a 75 73 74 20 61 73 20 65 61 73 uino just as eas
0f00: 69 6c 79 2e 0d 0a 0d 0a 54 68 65 20 53 69 6d 48 ily.....The SimH
0f10: 20 74 6f 20 41 72 64 75 69 6e 6f 20 6c 69 6e 6b to Arduino link
0f20: 20 63 61 6e 20 62 65 20 61 73 20 73 69 6d 70 6c can be as simpl
0f30: 65 20 61 73 20 61 20 73 79 6d 6c 69 6e 6b 20 66 e as a symlink f
0f40: 72 6f 6d 20 60 2f 64 65 76 2f 61 78 30 38 60 20 rom `/dev/ax08`
0f50: 74 6f 20 60 2f 64 65 76 2f 74 74 79 41 43 4d 30 to `/dev/ttyACM0
0f60: 60 20 6f 72 20 73 69 6d 69 6c 61 72 2e 20 54 68 ` or similar. Th
0f70: 65 20 41 58 30 38 20 63 6f 6d 6d 75 6e 69 63 61 e AX08 communica
0f80: 74 65 73 20 77 69 74 68 20 74 68 65 20 50 44 50 tes with the PDP
0f90: 20 76 69 61 20 73 74 61 6e 64 61 72 64 20 49 4f via standard IO
0fa0: 54 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 2c 20 T instructions,
0fb0: 73 6f 20 74 68 65 20 73 69 6d 75 6c 61 74 6f 72 so the simulator
0fc0: 20 6a 75 73 74 20 6e 65 65 64 73 20 74 6f 20 6b just needs to k
0fd0: 6e 6f 77 20 74 68 61 74 20 77 68 65 6e 20 69 74 now that when it
0fe0: 20 73 65 65 73 20 74 68 65 20 72 65 6c 65 76 61 sees the releva
0ff0: 6e 74 20 73 75 62 2d 69 6e 73 74 72 75 63 74 69 nt sub-instructi
1000: 6f 6e 73 20 74 68 61 74 20 69 74 20 73 68 6f 75 ons that it shou
1010: 6c 64 20 73 65 6e 64 20 73 75 69 74 61 62 6c 65 ld send suitable
1020: 20 63 6f 6d 6d 61 6e 64 73 20 64 6f 77 6e 20 74 commands down t
1030: 68 65 20 60 2f 64 65 76 2f 61 78 30 38 60 20 63 he `/dev/ax08` c
1040: 68 61 6e 6e 65 6c 2e 0d 0a 0d 0a 0d 0a 0d 0a 0d hannel..........
1050: 0a 23 23 20 4c 69 63 65 6e 73 65 0d 0a 0d 0a 43 .## License....C
1060: 6f 70 79 72 69 67 68 74 20 c2 a9 20 32 30 31 37 opyright © 2017
1070: 20 62 79 20 57 61 72 72 65 6e 20 59 6f 75 6e 67 by Warren Young
1080: 2e 20 54 68 69 73 20 64 6f 63 75 6d 65 6e 74 20 . This document
1090: 69 73 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 65 is licensed unde
10a0: 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 5b r the terms of [
10b0: 74 68 65 20 53 49 4d 48 20 6c 69 63 65 6e 73 65 the SIMH license
10c0: 5d 5b 73 6c 5d 2e 0d 0a 0d 0a 5b 73 6c 5d 3a 20 ][sl].....[sl]:
10d0: 68 74 74 70 73 3a 2f 2f 74 61 6e 67 65 6e 74 73 https://tangents
10e0: 6f 66 74 2e 63 6f 6d 2f 70 69 64 70 38 69 2f 64 oft.com/pidp8i/d
10f0: 6f 63 2f 74 72 75 6e 6b 2f 53 49 4d 48 2d 4c 49 oc/trunk/SIMH-LI
1100: 43 45 4e 53 45 2e 6d 64 0a 5a 20 33 38 65 31 36 CENSE.md.Z 38e16
1110: 66 65 63 32 36 33 33 62 61 30 63 63 35 37 30 65 fec2633ba0cc570e
1120: 61 32 35 37 31 31 62 34 34 35 35 0a a25711b4455.