P7001: Difference between revisions

6 bytes added ,  3 March 2023
no edit summary
No edit summary
No edit summary
Line 374: Line 374:
* Mechanical Design: [[Marlow Butler]], [[Carl Dalby]], [[Colin Doward]]
* Mechanical Design: [[Marlow Butler]], [[Carl Dalby]], [[Colin Doward]]
* Manufacturing Responsibility: [[Gale Byers]]
* Manufacturing Responsibility: [[Gale Byers]]


'''Development'''
'''Development'''
Line 461: Line 458:
Descriptions of the Readout Interface Status Register and data format can be seen in the images above. There is also an overview of the P7001 Address Map.
Descriptions of the Readout Interface Status Register and data format can be seen in the images above. There is also an overview of the P7001 Address Map.


<nowiki>
''Example A: 16 bit Memory or Register Access''
Example A: 16 bit Memory or Register Access
While the data bus of the P7001 is 16 bit wide, most of the stored data is only 10 bit wide. More importantly, bit 0 of the needed data word is not always aligned to bit 0 of the data bus. A very good example of this design is the data format of the Readout Interface. Bit 0 of the readout information starts at bit 5 on the data bus. To get or write the readout information we have to shift and crop or expand the data bits.
While the data bus of the P7001 is 16 bit wide, most of the stored data is only 10 bit wide. More importantly, bit 0 of the needed data word is not always aligned to bit 0 of the data bus. A very good example of this design is the data format of the Readout Interface. Bit 0 of the readout information starts at bit 5 on the data bus. To get or write the readout information we have to shift and crop or expand the data bits.


Line 471: Line 467:


The final program might look like:
The final program might look like:
 
<nowiki>
SEND ("ADR 3456", "OCT 004400") // 'H' -> ASCII 72 -> 0000100100000000 -> 004400
SEND ("ADR 3456", "OCT 004400") // 'H' -> ASCII 72 -> 0000100100000000 -> 004400
SEND ("ADR 3457", "OCT 004240") // 'E' -> ASCII 69 -> 0000100010100000 -> 004240
SEND ("ADR 3457", "OCT 004240") // 'E' -> ASCII 69 -> 0000100010100000 -> 004240
Line 480: Line 476:
</nowiki>
</nowiki>
<nowiki>
''Example B: 10 bit Memory Access''
Example B: 10 bit Memory Access
Most of the time we're dealing with 10 bit data information. To make life easier, Tektronix implemented the "WRD" instruction set on the controller. This instruction set handles the data conversion between the ASCII data and the 16 bit universe of the P7001. The command also implements an auto-increment for the address data.
Most of the time we're dealing with 10 bit data information. To make life easier, Tektronix implemented the "WRD" instruction set on the controller. This instruction set handles the data conversion between the ASCII data and the 16 bit universe of the P7001. The command also implements an auto-increment for the address data.


The new program looks like:
The new program looks like:
<nowiki>
SEND ("ADR 3456" , "WRD 72") //'H'
SEND ("ADR 3456" , "WRD 72") //'H'
SEND ("WRD 69") //E  -> the destination address is auto-incremented
SEND ("WRD 69") //E  -> the destination address is auto-incremented
Line 493: Line 489:
</nowiki>
</nowiki>


<nowiki>
''Example C: High Level Instruction Set''
Example C: High Level Instruction Set
Finally, there is a high-level command implemented which sends the readout data in one line:
Finally, there is a high-level command implemented which sends the readout data in one line:
 
<nowiki>
SEND ("ADR 3456", "SCL HELLO ") // The last space is needed as terminator character.
SEND ("ADR 3456", "SCL HELLO ") // The last space is needed as terminator character.
SEND ("ADR 7296", "OCT 040100") // Show Message field 2 / Location D on CRT
SEND ("ADR 7296", "OCT 040100") // Show Message field 2 / Location D on CRT
Line 507: Line 502:
Tek_P7001_Controller_XY_Mode.jpg
Tek_P7001_Controller_XY_Mode.jpg
</gallery>
</gallery>
<nowiki>
 
A description of the Display Generator Status Register and Data Format can be seen in the images above.  
A description of the Display Generator Status Register and Data Format can be seen in the images above.  


Line 518: Line 513:


The resulting program in pseudo-code:
The resulting program in pseudo-code:
 
<nowiki>
SEND ("ADR 7168", "OCT 020100") //enable X-Y Mode for Waveform "D"
SEND ("ADR 7168", "OCT 020100") //enable X-Y Mode for Waveform "D"