The Enterprise communicates with each of the 64 CY512 intelligent stepper controllers through three I/O ports. Ports for each motor controller are mapped to different addresses on the extended Z-80 bus. Port A is the ``data'' port and is used to send and receive data from the CY512. Port B is the ``status'' port and is used to read the controller status lines and limit switches. Port C is the ``control'' port and is used to send control signals to the CY512. The bit values read from ports A and B indicate to the operator the status of the probe control system. This information is displayed as two hex digits with the ``;'' and ``?'' commands in EPROG3. You may give these commands anytime the Enterprise is ready for a command. To view the status of all the probes say ``A;'' or ``A?''.
<01:1> B=DD A=00 <02:1> B=DD A=00 <03:1> B=DD A=00 <04:1> B=DD A=00 <05:1> B=DD A=00 <06:1> B=DD A=00 ................
<01:1> B=DD A=00 1=1F6B 2=188E <02:1> B=DD A=00 1=2109 2=1BF1 <03:1> B=DD A=00 1=276C 2=1947 <04:1> B=DD A=00 1=24AF 2=17A8 <05:1> B=DD A=00 1=23E5 2=19A3 <06:1> B=DD A=00 1=26D4 2=17B0 ................
or if some probes are still moving
<01:1> B=DD A=02 1=0345 2=195E <02:1> B=DD A=02 1=0327 2=1912 <03:1> B=D5 A=02 1=Move 2=1930 <04:1> B=DD A=02 1=0363 2=1858 <05:1> B=DD A=02 1=0315 2=18B5 <06:1> B=D1 A=02 1=Exec 2=183E ................
<01:1> 1=1F6B 1=1F6B AOK 2=188E 2=188E AOK <02:1> 1=2109 1=2109 AOK 2=1BF1 2=1BF1 AOK <03:1> 1=276C 1=276C AOK 2=1947 2=1947 AOK <04:1> 1=24AF 1=24AF AOK 2=17A8 2=17A8 AOK <05:1> 1=23E5 1=23E5 AOK 2=19A3 2=19A3 AOK <06:1> 1=26D4 1=26D4 AOK 2=17B0 2=17B0 AOK ................or
<01:1> 1=1F6B 1=0345 Wrong!! 2=188E 2=195E Wrong!! <02:1> 1=2109 1=0327 Wrong!! 2=1BF1 2=1912 Wrong!! <03:1> 1=276C 1=0325 Wrong!! 2=1947 2=1930 Wrong!! <04:1> 1=24AF 1=0363 Wrong!! 2=17A8 2=1858 Wrong!! <05:1> 1=23E5 1=0315 Wrong!! 2=19A3 2=18B5 Wrong!! <06:1> 1=26D4 1=035F Wrong!! 2=17B0 2=183E Wrong!! ................
The following combinations are seen in Port A:
The following combinations are seen in Port B:
The first digit or high nibble in Ports B and C refers to motor 2 (azimuth). The second digit refers to motor 1 (radial). The individual nibble codes are as follows:
These are the individual bit functions in Port B:
The code that executes in the Enterprise is downloaded from a Z80 Hex file (ASCII representation of binary code) into Enterprise Memory. The same text file format can be used to download center offsets or other parameters you wish to place in Enterprise memory. The Hex file format has line of text of the form:
where NN is the Hex number of bytes to be loaded (two ASCII characters per byte, AAAA is the Hex address to start loading the memory, HHIIJJKK........... are the bytes to be loaded and 00 are two extra bytes at the beginning/end.
The following example shows the contents of a target buffer in the Enterprise. Each line is displayed with a Hex address, followed by 16 bytes displayed in Hex format (Two ASCII characters per byte), followed by the same 16 bytes displayed as ASCII characters (where possible).
The first line of the buffer shows a 16 byte string containing the title of the target file. The next 32 lines contain coordinates for each probe. The address for the beginning of each line is the buffer address plus 16 times the probe number. Within the 16 bytes allocated for each probe we find the information listed below. The multi-byte integers are stored low byte first as Z-80s are wont to do. All of these numbers are downloaded from the target file except for the motor steps which are calculated locally in the Enterprise with the ``#'' command.
Byte 0 Probe Number (1-20) Byte 1 Fiber Number (1,3,5) Bytes 2,3 Object Number (I*2) Bytes 4,5 RSTEPS (I*2) radial motor steps Bytes 6,7 TSTEPS (I*2) azimuthal motor steps Bytes 8 - B X (I*4) focal plane position (microns) Bytes C - F Y (I*4) focal plane position (microns)
<01:1>DC000 C000 6D 39 32 6F 62 73 31 2E 74 72 67 20 20 20 20 20 m92obs1.trg C010 01 01 1D 00 6B 1F 8E 18 89 FB FF FF FD CF 00 00 ....k........... C020 02 01 1E 00 09 21 F1 1B 24 F3 FF FF 95 BF 00 00 .....!..$....... C030 03 05 83 00 6C 27 47 19 E3 CD FF FF 7D 7C 00 00 ....l'G.....}|.. C040 04 01 8A 00 AF 24 A8 17 69 A8 FF FF 72 7C 00 00 .....$..i...r|.. C050 05 01 8C 00 E5 23 A3 19 7C 97 FF FF C4 75 00 00 .....#..|....u.. C060 06 01 72 00 D4 26 B0 17 90 93 FF FF B4 44 00 00 ..r..&.......D.. C070 07 01 70 00 C9 26 8C 18 FE 8C FF FF BC 34 00 00 ..p..&.......4.. C080 08 01 69 00 B4 29 3D 1A 55 A2 FF FF D2 1D 00 00 ..i..)=.U....... C090 09 01 AD 00 5C 24 0F 19 1E 65 FF FF DE 01 00 00 ....\$...e...... C0A0 0A 00 00 00 76 19 F3 17 0D F3 FE FF 81 CA FF FF ....v........... C0B0 0B 01 63 00 50 28 2E 1B 30 8F FF FF F2 EC FF FF ..c.P(..0....... ........ C1F0 1F 01 2E 00 D4 28 DF 11 F8 ED FF FF 7D 74 00 00 .....(......}t.. C200 20 00 00 00 D0 0A FD 18 5C 54 00 00 1C A8 01 00 .......
=6.5in flight_a1795s7.eps
=6.5in flight_neutr.eps