HP 16554A, 16555A, 16555D User Manual

Programmer’s Guide
Publication number 16555-97011 First edition, January 1997
For Safety information, Warranties, and Regulatory information, see the pages behind the Index
Copyright Hewlett-Packard Company 1987, 1990, 1993, 1994, 1997 All Rights Reserved
HP 16554A, HP 16555A, and HP 16555D State/Timing Logic Analyzers
ii

In This Book

Programming the HP 16554A/
1
HP 16555A/HP 16555D
This guide, combined with the
HP 16500/16501A Programmer’s Guide, provides you with the information
needed to program the HP 16554A and HP 16555A/D logic analyzer modules. Each module has its own reference to supplement the mainframe manual since not all mainframes will be configured with the same modules.
This manual is organized in three parts. Part 1 consists of chapters 1 and 2 which contain general information and instructions to help you get started.
Chapter 1 also contains:
Mainframe system commands that are
frequently used with the logic analyzer module
HP 16554A/HP 16555A/HP 16555D
logic analyzer command tree Alphabetic command-to-subsystem
directory
Chapter 2 contains module-level commands.
Part 2 consists of chapters 3 through 16 which contain the subsystem commands for the logic analyzer and chapter 17 which contains information on the SYSTem:DATA and SYSTem:SETup commands for this module.
2
3
4
5
6
7
8
9
10
11
12
13
Module Level Commands
MACHine Subsystem
WLISt Subsystem
SFORmat Subsy stem
STRigger (STRace) Subsystem
SLISt Subsystem
SWAVeform Subsystem
SCHart Subsy stem
COMPare Subsystem
TFORmat Subsystem
TTRigger (TTRace) Subsystem
TWAVeform Subsystem
14
TLISt Subsyste m
iii
Part 3, chapter 18, contains program examples of actual tasks that show you how to get started in programming the HP 16554A and HP 16555A/D logic analyzers. These examples are written in HP BASIC 6.2; however, the program concepts can be used in any other popular programming language.
Error messages for the HP 16554A and HP 16555A/D are included in generic system error messages and are in the HP 16500/16501A Programmer’s Guide.
iv
15
SYMBol Subsystem
16
17
18
SPA Subsystem
DATA and SETup Commands
Programming Examples
Index
v
vi

Contents

Part 1 General Information
1 Programming the HP 16554A/ HP 16555A/HP 16555D
Selecting the Module 1–3 Programming the Logic Analyzer 1–3 Mainframe Commands 1–5 Command Set Organization 1–8 Module Status Reporting 1–12 MESE<N> 1–13 MESR<N> 1–15
2 Module Level Commands
ARMLine 2–5 DBLock 2–5 MACHine 2–6 SPA 2–7 WLISt 2–7
Part 2 Commands
3 MACHine Subsystem
MACHine 3–4 ARM 3–5 ASSign 3–6 LEVelarm 3–7 NAME 3–8 REName 3–8 RESource 3–9 TYPE 3–10
Contents–1
Contents
4 WLISt Subsystem
WLISt 4–4 DELay 4–5 INSert 4–6 LINE 4–7 MINus 4–8 OSTate 4–9 OTIMe 4–9 OVERlay 4–10 PLUS 4–11 RANGe 4–12 REMove 4–12 XOTime 4–13 XSTate 4–13 XTIMe 4–14
5 SFORmat Subsystem
SFORmat 5–6 CLOCk 5–6 LABel 5–7 MASTer 5–9 MODE 5–10 MOPQual 5–11 MQUal 5–12 REMove 5–13 SETHold 5–13 SLAVe 5–15 SOPQual 5–16 SQUal 5–17 THReshold 5–18
Contents–2
6 STRigger (STRace) Subsystem
Qualifier 6–6 STRigger (STRace) 6–8 ACQuisition 6–8 BRANch 6–9 CLEar 6–11 FIND 6–12 MLENgth 6–13 RANGe 6–14 SEQuence 6–15 STORe 6–16 TAG 6–17 TAKenbranch 6–18 TCONtrol 6–19 TERM 6–20 TIMER 6–21 TPOSition 6–22
Contents
7 SLISt Subsystem
SLISt 7–7 COLumn 7–7 CLRPattern 7–8 DATA 7–9 LINE 7–9 MMODe 7–10 OPATtern 7–11 OSEarch 7–12 OSTate 7–13 OTAG 7–14 OVERlay 7–15 REMove 7–15 RUNTil 7–16 TAVerage 7–17 TMAXimum 7–17 TMINimum 7–18 VRUNs 7–18
Contents–3
Contents
XOTag 7–19 XOTime 7–19 XPATtern 7–20 XSEarch 7–21 XSTate 7–22 XTAG 7–22
8 SWAVeform Subsystem
SWAVeform 8–4 ACCumulate 8–5 ACQuisition 8–5 CENTer 8–6 CLRPattern 8–6 CLRStat 8–7 DELay 8–7 INSert 8–8 MLENgth 8–8 RANGe 8–9 REMove 8–10 TAKenbranch 8–10 TPOSition 8–11
9 SCHart Subsystem
SCHart 9–4 ACCumulate 9–4 CENTer 9–5 HAXis 9–5 VAXis 9–6
10 COMPare Subsystem
COMPare 10–4 CLEar 10–5 CMASk 10–5 COPY 10–6 DATA 10–6
Contents–4
FIND 10–8 LINE 10–9 MENU 10–9 RANGe 10–10 RUNTil 10–11 SET 10–12
11 TFORmat Subsystem
TFORmat 11–4 ACQMode 11–5 LABel 11–6 REMove 11–7 THReshold 11–8
Contents
12 TTRigger (TTRace) Subsystem
Qualifier 12–6 TTRigger (TTRace) 12–8 ACQuisition 12–9 BRANch 12–9 CLEar 12–12 EDGE 12–13 FIND 12–14 MLENgth 12–16 RANGe 12–17 SEQuence 12–18 SPERiod 12–19 TCONtrol 12–20 TERM 12–21 TIMER 12–22 TPOSition 12–23
Contents–5
Contents
13 TWAVeform Subsystem
TWAVeform 13–7 ACCumulate 13–7 ACQuisition 13–8 CENTer 13–9 CLRPattern 13–9 CLRStat 13–9 DELay 13–10 INSert 13–11 MLENgth 13–12 MINus 13–13 MMODe 13–14 OCONdition 13–15 OPATtern 13–16 OSEarch 13–17 OTIMe 13–18 OVERlay 13–18 PLUS 13–19 RANGe 13–20 REMove 13–20 RUNTil 13–21 SPERiod 13–22 TAVerage 13–23 TMAXimum 13–23 TMINimum 13–24 TPOSition 13–24 VRUNs 13–25 XCONdition 13–26 XOTime 13–26 XPATtern 13–27 XSEarch 13–28 XTIMe 13–29
Contents–6
14 TLISt Subsystem
TLISt 14–7 COLumn 14–7 CLRPattern 14–8 DATA 14–9 LINE 14–9 MMODe 14–10 OCONdition 14–11 OPATtern 14–12 OSEarch 14–13 OSTate 14–14 OTAG 14–14 REMove 14–15 RUNTil 14–16 TAVerage 14–17 TMAXimum 14–17 TMINimum 14–18 VRUNs 14–18 XCONdition 14–19 XOTag 14–19 XOTime 14–20 XPATtern 14–20 XSEarch 14–21 XSTate 14–22 XTAG 14–23
Contents
15 SYMBol Subsystem
SYMBol 15–5 BASE 15–5 PATTern 15–6 RANGe 15–7 REMove 15–8 WIDTh 15–8
Contents–7
Contents
16 SPA Subsystem
MODE 16–7 OVERView:BUCKet 16–8 OVERView:HIGH 16–9 OVERView:LABel 16–10 OVERView:LOW 16–11 OVERView:MLENgth 16–12 OVERView:OMARker 16–13 OVERView:OVSTatistic 16–14 OVERView:XMARker 16–15 HISTogram:HSTatistic 16–16 HISTogram:LABel 16–17 HISTogram:OTHer 16–18 HISTogram:QUALifier 16–19 HISTogram:RANGe 16–20 HISTogram:TTYPe 16–21 TINTerval:AUTorange 16–22 TINTerval:QUALifier 16–23 TINTerval:TINTerval 16–24 TINTerval:TSTatistic 16–25
17 DATA and SETup Commands
Introduction 17–2
Data Format 17–3 SYSTem:DATA 17–4 Section Header Description 17–6 Section Data 17–6 Data Preamble Description 17–7 Acquisition Data Description 17–11 Time Tag Data Description 17–13 SYSTem:SETup 17–13
Contents–8
Part 3 Programming Examples
18 Programming Examples
Making a Timing Analyzer Measurement 18–3 Making a State Analyzer Measurement 18–5 Making a State Compare Analyzer Measurement 18–9 Transferring the Logic Analyzer Configuration 18–14 Checking for Measurement Completion 18–18 Sending Queries to the Logic Analyzer 18–19
Index
Contents
Contents–9
Contents–10
Part 1
1 Introduction to Programming 2 Module Level Commands

General Information

1

Programming the HP 16554A/ HP 16555A/HP 16555D

Introduction
This chapter introduces you to the basic command structure used to program the logic analyzer. Also included is an example program that sets up the timing analyzer for a basic timing measurement. Additional program examples are in chapter 18.
1–2
Programming the HP 16554A/ HP 16555A/HP 16555D

Selecting the Module

Selecting the Module
Before you can program the logic analyzer, you must first "select" it. This directs your commands to the logic analyzer.
To select the module, use the system command :SELect followed by the numeric reference for the slot location of the logic analyzer (1 through 10 refering to slots A through J respectively). For example, if the logic analyzer is in slot E, then the command:
:SELect 5
would select this module. For more information on the select command, refer to the HP 16500/16501A Programmer’s Guide. It is available through your HP Sales Office.

Programming the Logic Analyzer

A typical logic analyzer program will do the following:
select the appropriate module
name a specified analyzer
specify the analyzer type
assign pods
assign labels
sets pod thresholds
specify a trigger condition
set up the display
specify acquisition type
start acquiring data
1–3
Programming the HP 16554A/ HP 16555A/HP 16555D
Programming the Logic Analyzer
The following example program sets up the logic analyzer to make a simple timing analyzer measurement.
Example 10 OUTPUT XXX;":SELECT 3"
20 OUTPUT XXX;":MACH1:NAME ’TIMING’" 30 OUTPUT XXX;":MACH1:TYPE TIMING" 40 OUTPUT XXX;":MACH1:ASSIGN 1" 50 OUTPUT XXX;":MACH1:TFORMAT:LABEL ’COUNT’,POS,0,0,255" 60 OUTPUT XXX;":MACH1:TTRIGGER:TERM A, ’COUNT’, ’#HFF’"
70 OUTPUT XXX;":MACH1:TWAVEFORM:RANGE 1E−6" 80 OUTPUT XXX;":MENU 3,5" 90 OUTPUT XXX;":MACH1:TWAVEFORM:INSERT ’COUNT’" 100 OUTPUT XXX;":RMODE SINGLE" 110 OUTPUT XXX;":START" 120 END
The three Xs (XXX) after the "OUTPUT" statements in the previous example refer to the device address required for programming over either HP-IB or RS-232-C. Refer to your controller manual and programming language reference manual for information on initializing the interface.
Program Comments
Line 10 selects the logic analyzer in slot C. Line 20 names machine (analyzer) 1 "TIMING". Line 30 specifies machine 1 is a timing analyzer. Line 40 assigns pods 1 and 2 to machine 1. Line 50 sets up the Timing Format menu by assigning the label COUNT, and
assigning a polarity and channels to the label. Line 60 selects the trigger pattern for the timing analyzer. Line 70 sets the range to 100 ns (10 times s/div). Line 80 changes the onscreen display to the Timing Waveforms menu. Line 90 inserts the label "COUNT" in the Timing Waveform menu. Line 100 specifies the Single run mode. Line 110 starts data acquisition. For more information on the specific logic analyzer commands, refer to
chapters 2 through 17.
1–4
Programming the HP 16554A/ HP 16555A/HP 16555D

Mainframe Commands

Mainframe Commands
These commands are part of the HP 16500/16501A mainframe system and are mentioned here only for reference. For more information on these commands, refer to the HP 16500/16501A Programmer’s Guide.
CARDcage? Query
The CARDcage query returns a string of integers which identifies the modules that are installed in the mainframe. The returned string is in two parts. The first five two-digit numbers identify the card type. The identification number for the HP 16554A and HP 16555A/D logic analyzers is
34. A "1" in the first part of the string indicates no card is installed in the slot.
The five single-digit numbers in the second part of the string indicate which card has the controlling software for the module; that is, where the master card is located.
Example
12,11,−1,1,34,2,2,0,0,5
A returned string of 12,11,-1,-1,34,2,2,0,0,5 means that an oscilloscope time base card (ID number 11) is loaded in slot B and the oscilloscope acquisition card (ID number 12) is loaded in slot A. The next two slots (C and D) are empty (1). Slot E contains a logic analyzer module (ID number 34).
The next group of numbers (2,2,0,0,5) indicate that a two-card module is installed in slots A and B with the master card in slot B. The "0" indicates an empty slot, or the module software is not recognized or is not loaded. The last digit (5) in this group indicates a one-card module is loaded in slot E. Complete information for the CARDcage query is in the HP 16500/16501A Programmer’s Guide.
1–5
Programming the HP 16554A/ HP 16555A/HP 16555D
Mainframe Commands
MENU Command/query
The MENU command selects a new displayed menu. The first parameter (X) specifies the desired module. The optional, second parameter specifies the desired menu in the module. The second parameter defaults to 0 if it is not specified. The query returns the currently selected and displayed menu.
For the HP 16554A/HP 16555A/HP 16555D Logic Analyzers:
X,0 — State/Timing
Configuration X,1 — Format 1
X,2 — Format 2
X,3 — Trigger 1
X,4 — Trigger 2
X,5 — Waveform 1
X,6 — Waveform 2
X,7 — Listing 1
If a machine is turned off, its menus are not available. The Mixed Display is available only when one or both analyzers are state analyzers.
SELect Command/query
The SELect command selects which module or intermodule will have parser control. SELect 0 selects the intermodule, SELect 1 through 5 selects modules A through E respectively. Values 1 and 2 select software options 1 and 2. The SELect query returns the currently selected module.
STARt Command
The STARt command starts the specified module. If the specified module is configured for intermodule (group run), STARt will start all modules configured as part of the intermodule run.
X,8 — Listing 2
X,9 — Mixed Display
X,10 — Compare 1
X,11 — Compare 2
X,12 — Chart 1
X,13 — Chart 2
X,14 — SPA 1
X,15 — SPA 2
1–6
Programming the HP 16554A/ HP 16555A/HP 16555D
Mainframe Commands
STOP Command
The STOP command stops the specified module. If the specified module is configured as part of an intermodule run, STOP will stop all associated modules.
STARt and STOP are overlapped commands. Overlapped commands allow execution of subsequent commands while the logic analyzer operations initiated by the overlapped command are still in progress. For more information, see *OPC and *WAI commands in Chapter 5 of the HP 16500/16501A Programmer’s Guide.
RMODe Command/query
The RMODe command specifies the run mode (single or repetitive) for a module. If the selected module is configured for intermodule, the intermodule run mode will be set by this command. The RMODe query returns the current setting.
SYSTem:ERRor? Query
The SYSTem:ERRor query returns the oldest error in the error queue. In order to return all the errors in the error queue, a simple FOR/NEXT loop can be written to query the queue until all errors are returned. Once all errors are returned, the query will return zeros.
SYSTem:PRINt Command/query
The SYSTem:PRINt command initiates a print of the screen or listing buffer over the current printer communication interface. The SYSTem:PRINt query sends the screen or listing buffer data over the current controller communication interface.
MMEMory Subsystem
The MMEMory Subsystem provides access to both internal disc drives for loading and storing configurations.
INTermodule Subsystem
The INTermodule Subsystem commands are used to specify intermodule arming between multiple modules.
1–7
Programming the HP 16554A/ HP 16555A/HP 16555D

Command Set Organization

Command Set Organization
The command set for the HP 16554A/HP 16555A/HP 16555D is divided into module-level commands and subsystem commands. Module-level commands are listed in Chapter 2, "Module Level Commands" and each of the subsystem commands are covered in their individual chapters starting with Chapter 3, "MACHine Subsystem."
Each of these chapters contains a description of the subsystem, syntax diagrams, and the commands in alphabetical order. The commands are shown in long form and short form using upper and lowercase letters. For example, LABel indicates that the long form of the command is LABEL and the short form is LAB. Each of the commands contain a description of the command and its arguments, the command syntax, and a programming example.
Figure 1-1 on the following page shows the command tree for the HP 16554A/HP 16555A/HP 16555D logic analyzer module. The (x) following the SELect command at the top of the tree represents the slot number where the logic analyzer module is installed. The number may range from 1 through 10, representing slots A through J, respectively.
1–8
Figure 1-1
Programming the HP 16554A/ HP 16555A/HP 16555D
Command Set Organization
HP 16554A/HP 16555A/HP 16555D Command Tree
1–9
Programming the HP 16554A/ HP 16555A/HP 16555D
Command Set Organization
Table 1-1
Alphabet ical Command-to-Subsyst em Directory
Command Where Used
ACCumulate SCHart, SWAVeform, TWAVeform ACQMode TFORmat ACQuisition STRigger, SWAVeform, TTRigger,
TWAVeform ARM MACHine ARMLine Module Level Commands ASSign MACHine AUTorange SPA BASE SYMBol BRANch STRigger, TTRigger BUCKet SPA CENter SCHart, SWAVeform , TWAVefor m CLEar COMPare, STRigger, TTRigger CLOCk SFORmat CLRPattern SLISt, SWAVeform, TLISt, TWAVeform CLRStat SWAVeform, TWAVeform CMASk COMPare COLumn SLISt, TLISt COPY COMPare DATA COMPare, SLISt, TLISt DBLock Module Level Commands DELay SWAVeform, TWAVeform, WLISt EDGE TTRigger FIND COMPare, STRigger, TTRigger HAXis SCHart HIGH SPA HISTatistic SPA HISTogram SPA INSert SWAVeform, TWAVeform, WLISt LABel SFORmat, SPA, TFORmat LEVelarm MACHine LINE COMPare, SLISt, TLISt, WLISt LOW SPA MASTer SFORmat MENU COMPare MINus TWAVeform, WLISt MLENgth SPA, STRigger, SWAVeform , TTRigger,
TWAVeform MMODe SLISt, TLISt, TWAVeform MODE SPA
Command Where Used
MOPQual SFORmat MQUal SFORmat NAME MACHine OCONdition TLISt, TWAVeform OMARker SPA OPATtern SLISt, TLISt, TWAVeform OSEarch SLISt, TLISt, TWAVeform OSTate SLISt, TLISt, WLISt OTAG SLISt, TLISt OTHer SPA OTIMe TWAVeform, WLISt OVERlay SLISt, TWAVeform, WLISt OVERView SPA OVSTatistic SPA PATTern SYMBol PLUS TWAVeform, WLISt QUALifier SPA RANGe COMPare, SPA, STRigger, SWAVeform,
SYMBol, TFORmat, TWAVeform, WLISt
REMove SFORmat, SLISt, SWAVeform, SYMBol,
TFORmat, TLI St, TWAVeform, WLISt REName MACHine RESource MACHine RUNTil COMPare, SLISt, TLISt, TWAVeform SEQuence STRigger, TTRigger SET COMPare SETHold SFORmat SLAVe SFORmat SOPQual SFORmat SPERiod TFORmat, TWAVeform SETHold SFORmat SLAVe SFORmat SOPQual SFORmat SPERiod TFORmat, TWAVeform SQUal SFORmat STORe STRigger TAG STRigger TAKenbranch STRigger, SWAVeform
TAVerage SLISt, TLISt, TWAVeform
1–10
Table 1-1, continued
Alphabetical Command-to-Subsystem Directory, continued
Programming the HP 16554A/ HP 16555A/HP 16555D
Command Set Organization
Command Where Used
TCONtrol STRigger, TTRigger TERM STRigger, TTRigger THReshold SFORmat, TFORmat TIMER STRigger, TTRigger TINTerval SPA TMAXimum SLISt, TLISt, TWAVeform TMINimum SLISt, TLISt, TWAVeform TPOSition STRigger, SWAVeform, TTRigger,
TWAVeform TSTatistic SPA TTYPe SPA TYPE MACHine
Command Where Used
VAXis SCHart VRUNs SLISt, TLISt, TWAVeform WIDTh SYMBol XCONdition TLISt, TWAVeform XMARker SPA XOTag SLISt, TLISt XOTime SLISt, TLISt, TWAVeform, WLISt XPATtern SLISt, TLISt, TWAVeform XSEarch SLISt, TLISt, TWAVeform XSTate SLISt, TLISt, WLISt XTAG SLISt, TLISt XTIMe TWAVeform, WLISt
1–11
Figure 1-2
Programming the HP 16554A/ HP 16555A/HP 16555D

Module S tatus Reporting

Module Status Reporting
Each module reports its status to the Module Event Status Register (MESR<N>), which in turn reports to the Combined Event Status Register (CESR) in the HP 16500/16501A mainframe (see HP 16500/16501A Programmer’s Guide chapter 6). The Module Event Status Register is enabled by the Module Event Status Enable Register (MESE<N>).
The MESE<N> and MESR<N> instructions are not used in conjunction with the SELect command, so they are not listed in the HP 16554A/HP 16555A/ HP 16555D’s command tree.
The following descriptions of the MESE<N> and MESR<N> instructions provide the module specific information needed to enable and interpret the contents of the registers.
Module Status Reporting
1–12

MESE<N>

Command :MESE<N><enable_mask>
The MESE<N> command sets the Module Event Status Enable register bits. The MESE register contains a mask value for the bits enabled in the MESR register. A one in the MESE will enable the corresponding bit in the MESR, a zero will disable the bit.
The first parameter <N> specifies the module. The second parameter specifies the enable value.
Refer to table 1-2 for information about the Module Event Status register bits, bit weights, and what each bit masks for the module. Complete information for status reporting is in chapter 6 of the HP 16500/16501A Programmer’s Guide manual.
<N> {1|2|3|4|5|6|7|8|9|10} number of slot in which the module resides. 1
refers to slot A, and so on.
Programming the HP 16554A/ HP 16555A/HP 16555D
MESE<N>
<enable_mask> integer from 0 to 255
Example OUTPUT XXX;":MESE5 1"
Query :MESE<N>?
The MESE query returns the current setting.
Returned Format
Example 10 OUTPUT XXX;":MESE5?"
[:MESE<N>]<enable_mask><NL>
20 ENTER XXX; Mes 30 PRINT Mes 40 END
1–13
Programming the HP 16554A/ HP 16555A/HP 16555D
MESE<N>
Table 1-2 Module Event Status Enable Register (A "1" enables the MESR bit)
Bit Weight Enables
7 128 Not used 6 64 Not used 5 32 Not used 4 16 Not used 3 8 Pattern searches failed 2 4 Trigger found 1 2 RNT-Run until satisfied 0 1 MC-Measurement complete
The Module Event Status Enable Register contains a mask value for the bits to be enabled in the Module Event Status Register (MESR). A one in the MESE enables the corresponding bit in the MESR, and a zero disables the bit.
1–14

MESR<N>

Query :MESR<N>?
The MESR<N> query returns the contents of the Module Event Status register. When you read the MESR, the value returned is the total bit weights of all bits that are set at the time the register is read. Reading the register clears the Module Event Status Register.
Table 1-3 shows each bit in the Module Event Status Register and its bit weight for this module.
The parameter 1 through 10 refers to the module in slot A through J respectively.
Returned Format
<status> integer from 0 to 255
[MESR<N>]<status><NL>
<N> {1|2|3|4|5|6|7|8|9|10}number of slot in which the module resides
Programming the HP 16554A/ HP 16555A/HP 16555D
MESR<N>
Example 10 OUTPUT XXX;":MESR5?"
20 ENTER XXX; Mer 30 PRINT Mer 40 END
1–15
Programming the HP 16554A/ HP 16555A/HP 16555D
MESR<N>
Table 1-3 Module Event Status Register
Bit Weight Condition
7 128 Not used 6 64 Not used 5 32 Not used 4 16 Not used 3 8 1 = One or more pattern searches failed
2 4 1 = Trigger found
1 2 1 = Run until satisfied
0 1 1 = Measurement complete
0 = Pattern search es did not fail
0 = Trigger not found
0 = Run until not satisf ied
0 = Measurement not complete
1–16
2

Module Level Commands

Introduction
The logic analyzer module level commands access the global functions of the HP 16554A/HP 16555A/HP 16555D logic analyzer module. These commands are:
ARMLine
DBLock
MACHine
SPA
WLISt
2–2
Figure 2-1
Module Level Commands
Module Level Syntax Diagram
2–3
Module Level Commands
Table 2-1 Module Level Parameter Values
Parameter Type of Parameter or Command Reference
machine_num arm_parm arm parameters see chapter 3 assign_parm assignment parameters see chapter 3 level_parm level parameters see chapter 3 name_parm name parameters see chapter 3 rename_parm rename parameters see chapter 3 res_parm resource parameters see chapter 3 type_parm type parameters see chapter 3 sformat_cmds state format subsystem commands see chapter 5 strace_cmds state trace subsystem commands see chapter 6 slist_cmds s tate list subsystem commands see chapter 7 swaveform_cmds state waveform subsystem commands see chapter 8 schart_cmds state chart subsystem commands see chapter 9 compare_cmds compare subsystem commands see chapter 10 tformat_cmds timing format subsystem commands see chapter 11 ttrace_cmds timing trace subsyst e m commands see chapter 12 twaveform_cmds timing waveform subsyst em
tlist_cmds timing listing subsystem commands see chapter 14 symbol_cmds symbol subsystem commands see chapter 15 mode_parm SPA mode parameters see chapter 16 overv_cmds SPA overview commands see chapter 16 hist_cmds SPA histogram commands see chapter 16 tint_cmds SPA time interval commands see chapter 16 Wlist_cmds waveforms/listing commands see chapter 4
MACHine{1|2}
commands
see chapter 13
2–4

ARMLine

Command :ARMLine MACHin e<N>
The ARMLine command selects which machine generates the arm out signal on the IMB (intermodule bus). This command is only valid when two analyzers are on. However, the query is always valid.
<N> {1|2}
Example OUTPUT XXX;":ARMLIN E MACHINE1"
Query :ARMLine?
If the analyzer is set up for OR’d triggering, then the ARMLine query returns an empty string. This cannot be used for setting up OR’d triggering.
Returned Format [:ARMLine]{MACHine<N>|}<NL>
Module Level Commands
ARMLine
Example OUTPUT XXX;":ARMLin e?"

DBLock

Command :DBL ock {P ACKe d | UN Pack ed}
The DBLock command specifies the data block format that is contained in the response from a :SYSTem:DATA? query. See Chapter 17 for more information on the :SYSTem:DATA command and query.
The PACKed option (default) uploads data in a compressed format. This option is used to upload data for archiving, or for reloading back into the analyzer. When an analyzer configuration is saved to disk, the PACKed data format is always used (regardless of the current DBLock selection).
2–5
Module Level Commands

MACHine

The UNPacked option uploads data in a format that is easy to interpret and process. The UNPacked format cannot be downloaded back into the analyzer.
Example OUTPUT XXX;":DBLOCK PACKED"
Query :DBLock?
The DBLock query returns the current data block format selection.
Returned Format
Example OUTPUT XXX;":DBLock ?"
[:DBLock]{PACKed | UNPacked}<NL>
MACHine
Command :MACHine<N>
The MACHine command selects which of the two machines (analyzers) the subsequent commands or queries will refer to. MACHine is also a subsystem containing commands that control the logic analyzer system level functions. Examples include pod assignments, analyzer names, and analyzer type. See chapter 3 for details about the MACHine subsystem.
<N> {1|2}
Example OUTPUT XXX;":MACHIN E1:NAME ’DRA MTEST’"
2–6
SPA
Command :SPA<N>
The SPA command selects which of the two analyzers the subsequent commands or queries will refer to. SPA is also a subsystem containing commands that control the logic analyzer SPA functions. See chapter 16 for details about the SPA subsystem.
<N> {1|2}
Example OUTPUT XXX;":SPA1:M ODE OVERVIEW "

WLISt

Module Level Commands
SPA
Command :WLISt
The WLISt selector accesses the commands used to place markers and query marker positions in Timing/State Mixed mode. The WLISt subsystem also contains commands that allows you to insert waveforms from other time-correlated machines and modules. The details of the WLISt subsystem are in chapter 4.
Example
OUTPUT XXX;":WLIST: OTIME 40.0E6"
2–7
2–8
Part 2
3 MACHine Subsystem 4 WLISt Subsystem 5 SFORmat Subsystem 6 STRigger (STRace) Subsystem 7 SLISt Subsystem 8 SWAVeform Subsystem
9 SCHart Subsystem 10 COMPare 11 TFORmat Subsystem 12 TTRigger (TTRace) Subsystem 13 TWAVeform Subsystem 14 TLISt Subsystem 15 SYMBol Subsystem 16 SPA Subsystem 17 DATA and SETup Commands

Commands

3

MACHine Subsystem

Introduction
The MACHine subsystem contains the commands that control the machine level of operation of the logic analyzer. Some of the functions are normally found in the Trigger menu. These commands are:
ARM
LEVelarm
The functions of three of these commands reside in the State/Timing Configuration menu. These commands are:
ASSign
NAME
TYPE
Even though the functions of the following commands reside in the Format menu they are at the machine level of the command tree and are therefore located in the MACHine subsystem. These commands are:
REName
RESource
3–2
Figure 3-1
MACHine Subsystem
Machine Subsystem Syntax Diagram
3–3
MACHine Subsyst em

MACHine

Table 3-1 Machine Subsystem Parameter Values
Parameter Value
arm_source pod_list pod_num integer from 1 to 12 arm_level integer from 1 to 11 representing sequence level machine_name s tring of up to 10 alphanumeric characters res_id
new_text string of up to 8 alphanumeric characters state_terms res_terms
{RUN | INTermodule | MACH ine {1|2}} {NONE | <pod_num>[ , <pod_num>] ...}
{<state_terms>|H|J} for state analyzer
or
{<state_terms>|EDGE{1|2}} for timing analyzer
{A|B|C|D|E|F|G |I| RANGE{1| 2}|TIM ER{1|2}} {<res_id>[,<re s_id>]...}
MACHine
Selector :MAC Hine <N>
The MACHine <N> selector specifies which of the two analyzers (machines) available in the module the commands or queries following will refer to. Because the MACHine<N> command is a root level command, it will normally appear as the first element of a compound header.
<N> {1|2} (the machine number)
Example OUTPUT XXX; ":MACHINE1:NAME ’TIMING’"
3–4
ARM
Command :MAC Hine {1|2 }: ARM <a rm_s ou rce>
The ARM command specifies the arming source of the specified analyzer (machine). The RUN option disables the arm source. For example, if you do not want to use either the intermodule bus or the other machine to arm the current machine, you specify the RUN option.
If you are using an HP 16500C mainframe, you can set up OR’d Triggering by arming the module from INTermodule when intermodule is set to Group Run with OR TRIGGER. See the HP 16500C Programmer’s Guide for details.
<arm_source> {RUN|INTermodule|MACHine{1|2}}
Example OUTPUT XXX;":MACHINE1:ARM MACHINE2"
MACHine Subsystem
ARM
Query :MACHine{1|2}:ARM?
The ARM query returns the source that the current analyzer (machine) will be armed by.
Returned Format [:MACHin e{ 1| 2}:ARM ] <arm_sourc e>
Example OUTPUT XXX;":MACHIN E1:ARM?"
3–5
MACHine Subsyst em

ASSign

ASSign
Command :MACHine{1|2}:ASSign <pod_list>
The ASSign command assigns pods to a particular analyzer (machine). The ASSign command will assign two pods for each pod number you specify because pods must be assigned to analyzers in pairs. NONE clears all pods from the specified analyzer (machine) and places them in the "unassigned" category.
If you specify a pod number greater than currently available, the logic analysis system generates an "Argument out of range" error.
<pod_list> {NONE | <pod >#[, <pod >#]...}
<pod># an integer from 1 to 12
Example This example assigns pod pairs 1/2 and 5/6 to machine 1:
OUTPUT XXX;":MACHINE1:ASSIGN 5, 2, 1"
Query :MACHine{1|2}:ASSign?
The ASSign query returns which pods are assigned to the current analyzer (machine).
Returned Format [:MACHine{1|2}:ASSign] <pod_list><NL>
Example OUTPUT XXX;":MACHIN E1:ASSIGN? "
3–6

LEVelarm

Command :MACHine{1|2}:LEVelarm <arm_level>
The LEVelarm command allows you to specify the sequence level for a specified machine that will be armed by the Intermodule Bus or the other machine. This command is only valid if the specified machine is on and the arming source is not set to RUN with the ARM command.
<arm_level> integer from 1 to 11 representing sequence level
Example OUTPUT XXX;":MACHIN E1:LEVELAR M 2"
Query :MACHine{1|2}:LEVelarm?
MACHine Subsystem
LEVelarm
The LEVelarm query returns the current sequence level receiving the arming for a specified machine.
Returned Format [:MACHine{1|2}:LEVelarm] <arm_level><NL>
Example OUTPUT XXX;":MACHIN E1:LEVELAR M?"
3–7
MACHine Subsyst em

NAME

NAME
Command :MACHine{1|2}:NAME <machine_name>
The NAME command allows you to assign a name of up to 10 characters to a particular analyzer (machine) for easier identification. Spaces are valid characters.
<machine_name> string of up to 10 alphanumeric characters
Example OUTPUT XXX;":MACHIN E1:NAME ’DRA M TEST’"
Query :MACHine{1|2}:NAME?
The NAME query returns the current analyzer name as an ASCII string.
Returned Format
[:MACHine{1|2}:NAME] <machine name><NL>
Example OUTPUT XXX;":MACHIN E1:NAME?"

REName

Command :MACHine{1|2} :REName {{ <res _id>, <new _text>} |
DEFault}
The REName command allows you to assign a specific name of up to eight characters to terms A through J, Range 1 and 2, Timer 1 and 2, and Edge 1 and 2. The terms do not have to be assigned to the specified machine. The DEFault option sets all resource term names to the default names assigned when turning on the instrument.
3–8
MACHine Subsystem
<res_id> {<state_terms>|H|J} for state analyzer
{<state_terms>|EDGE{1|2}} for timing analyzer
<new_text> string of up to 8 alphanumeric characters
<state_terms> {A|B|C|D|E|F|G|I| RANGe1 | RANGe2 | TIMer1 | TIMer2}
Example OUTPUT XXX;":MACHIN E1:RENAME A, ’DATA’"
Query :MAC Hine {1|2 }: RENA ME? <r es _id>
The REName query returns the current names for specified terms assigned to the specified analyzer.
Returned Format [:MACHine{1|2}:RENAME] <res_id>,<new_text><NL>
Example OUTPUT XXX;":MACHINE1:RENAME? D"

RESource

RESource
Command :MACHine{1|2} :RESourc e {<re s_id>[,< res_id>] ...}
The RESource command allows you to assign resource terms A through G and I, Range 1 and 2, and Timer 1 and 2 to a particular analyzer.
In the timing analyzer only, two additional resource terms are available. These terms are Edge 1 and 2. These terms are always assigned to the machine that is configured as the timing analyzer.
In state analyzers that are not configured for high speed, terms H and J are also available. H and J are not available to timing or high-speed analyzers.
<res_id> <state_terms> for high-speed state analyzer or
{<state_terms|H|J} for 100-MHz state analyzer or {<state_terms>|EDGE{1|2}} for timing analyzer
<state_terms> {A|B|C|D|E|F|G|I|RANGe1| RANGe2 | TIMer1|TIMer2}
3–9
MACHine Subsyst em

TYPE

Example OUTPUT XXX;":MACHIN E1:RESOURC E A,C,RANGE1"
Query :MACHine{1|2}:RESOURCE?
The RESource query returns the current resource terms assigned to the specified analyzer. If no resource terms are assigned, no <res_id> is returned.
Returned Format [:MACHine{1|2 }:RESOURCE ] <res_id>[, <res_id>,...]< NL>
Example OUTPUT XXX;":MACHIN E1:RESOURC E?"
TYPE
Command :MACHine{1|2}:TYPE <analyzer type>
The TYPE command specifies what type a specified analyzer (machine) will be. The analyzer types are state or timing. State Compare (COMPare) and SPA are considered to be state analyzers because they use an external clock, but need to specified as COMPare or SPA.
The TYPE command also allows you to turn off a particular machine. Only one timing analyzer can be specified at a time.
<analyzer
type>
Example OUTPUT XXX;":MACHIN E1:TYPE STAT E"
{OFF|COMPare|SPA|STATe|TIMing}
3–10
Query :MACHine{1|2}:TYPE?
The TYPE query returns the current analyzer type for the specified analyzer.
Returned Format
[:MACHine{1|2}:TYPE] <analyzer type><NL>
Example OUTPUT XXX;":MACHIN E1:TYPE?"
MACHine Subsystem
TYPE
3–11
3–12
4

WLISt Subsystem

Introduction
The commands in the WLISt (Waveforms/LISting) subsystem control the X and O marker placement on the waveforms portion of the Timing/State mixed mode display. The XSTate and OSTate queries return what states the X and O markers are on. Because the markers can only be placed on the timing waveforms, the queries return what state (state acquisition memory location) the marked pattern is stored in.
In order to have mixed mode, one machine must be a state analyzer with time tagging on (use MACH ine< N>:S TRigger: TAG TIME).
DELay
INSert
LINE
MINus
OSTate
OTIMe
OVERlay
PLUS
RANGe
REMove
XOTime
XSTate
XTIMe
4–2
Figure 4-1
WLISt Subsystem
WLISt Subsyst em Syntax Diagram
4–3
WLISt Subsystem

WLISt

Table 4-1 WLISt Subs ystem Parameter Values
Parameter Value
delay_value real number between -2500 s and +2 500 s module_spec
bit_id integer from 0 to 31 label_name s tring of up to 6 alphanumeric characters line_num_mid_screen integer from -516096 to +516096 (HP 16554A) or -1040384 to
waveform acquisition_spec time_value real number time_range real number between 10 ns and 10 ks
{1|2|3|4|5|6|7|8|9|10} (slot where master card is installed)
+1040384 (HP 16555A) or -2080768 to +2080768 (HP 16555D) string containing <acquisition_spec>{1|2}
{A|B|C|D|E|F|G|H|I|J}
WLISt
Selector :WLISt
The WLISt (Waveforms/LISting) selector is used as a part of a compound header to access the settings normally found in the Mixed Mode menu. Because the WLISt command is a root-level command, it will always appear as the first element of a compound header.
The WLISt subsystem is only available when one or more state analyzers with time tagging on are specified.
Example
OUTPUT XXX;":WLIST: XTIME 40.0E6"
4–4

DELay

Command :WLISt:DELay <delay_value>
The DELay command specifies the amount of time between the timing trigger and the horizontal center of the the timing waveform display. The allowable values for delay are 2500 s to +2500 s.
WLISt Subsystem
DELay
<delay_value>
Example
Query :WLISt:DELay?
Returned Format [:WLISt:DELay ] <delay_val ue><NL>
Example OUTPUT XXX;":WLIST: DELAY?"
real number between 2500 s and +2500 s
OUTPUT XXX;":WLIST: DELAY 100E6"
The DELay query returns the current time offset (delay) value from the trigger.
4–5
WLISt Subsystem

INSert

INSert
Command :WLI St:I NSer t [< modu le_s pe c>,] <lab el _nam e>
[,{< bit_ id>| OV ERla y|AL L} ]
The INSert command inserts waveforms in the timing waveform display. The waveforms are added from top to bottom up to a maximum of 96 waveforms. Once 96 waveforms are present, each time you insert another waveform, it replaces the last waveform.
Time-correlated waveforms from the oscilloscope and another logic analyzer module can also be inserted in the logic analyzer’s timing waveforms display. Oscilloscope waveforms occupy the same display space as three logic analyzer waveforms. When inserting waveforms from the oscilloscope or another logic analyzer module, the optional first parameter must be used, which is the module specifier. 1 through 10 corresponds to modules A through J. If you do not specify the module, the selected module is assumed.
The second parameter specifies the label name that will be inserted. The optional third parameter specifies the label bit number, overlay, or all. If a number is specified, only the waveform for that bit number is added to the screen.
If you specify OVERlay, all the bits of the label are displayed as a composite overlaid waveform. If you specify ALL, all the bits are displayed sequentially.
If you do not specify the third parameter, ALL is assumed.
<module_spec> {1|2|3|4|5|6|7|8|9|10}
<label_name> string of up to 6 alphanumeric characters
<bit_id> integer from 0 to 31
Example OUTPUT XXX;":WLIST:INSERT 3, ’WAVE’,9"
4–6
Inserting Oscilloscope Waveforms
WLISt Subsystem

LINE

Command
<module_spec> {1|2|3|4|5|6|7|8|9|10} slot in which master card is installed
<label_name> string of one alpha and one numeric character, identical to that on the
Example OUTPUT XXX;":WLIST:INSERT 3, ’C1’"
:WLI St:I NSer t <m odul e_sp ec >,<l abel _n ame>
This inserts a waveform from an oscilloscope to the timing waveforms display.
oscilloscope waveform display.
LINE
Command :WLI St:L INE <l in e_nu m_mi d_ scre en>
The LINE command allows you to scroll the timing analyzer listing vertically. The command specifies the state line number relative to the trigger. The analyzer then highlights the specified line at the center of the screen.
<line_num_mid_
screen>
integer from -516096 to +516096 (HP 16554A) or -1040384 to +1040384 (HP 16555A) or -2080768 to +2080768 (HP 16555D).
Example OUTPUT XXX;":WLIST:LINE 0"
4–7
WLISt Subsystem

MINus

Query :WLISt:LINE?
The LINE query returns the line number for the state currently in the data listing roll box at center screen.
Returned Format [:WLISt: LI NE ] <line_ num_mid_sc reen><NL>
Example OUTPUT XXX;":WLIST: LINE?"
MINus
Command :WLISt:MINus <m odule_sp ec>, <wavefor m>,<wave form>
The MINus command inserts time-correlated AB (A minus B) oscilloscope waveforms on the screen. The first parameter is the module specifier where the oscilloscope module resides, where 1 through 10 refers to slots A through J. The next two parameters specify which waveforms will be subtracted from each other.
MINus only inserts oscilloscope waveforms. It cannot be used with analyzer waveforms.
<module_spec> {1|2|3|4|5|6|7|8|9|10}(slot where master card is located)
<waveform> string containing <acquisition_spec>{1|2}
<acquisition_
spec>
Example OUTPUT XXX; ":WLIST:MINUS 1,’A1’,’A2’"
{A|B|C|D|E|F|G|H|I|J} (slot where acquisition card is located)
4–8

OSTate

Query :WLISt:OSTate?
The OSTate query returns the state where the O Marker is positioned. If data is not valid, the query returns 2147483647.
Returned Format [:WLISt: OS Ta te] <sta te_num><NL >
<state_num> integer
Example OUTPUT XXX;":WLIST: OSTATE?"

OTIMe

Command :WLISt:OTIMe <time_value>
WLISt Subsystem
OSTate
The OTIMe command positions the O Marker on the timing waveforms in the mixed mode display. If the data is not valid, the command performs no action.
<time_value> real number
Example
OUTPUT XXX;":WLIST: OTIME 40.0E6"
4–9
WLISt Subsystem

OVERlay

Query :WLISt:OTIMe?
The OTIMe query returns the O Marker position in time. If data is not valid, the query returns 9.9E37.
Returned Format [:WLISt:OTIMe ] <time_valu e><NL>
Example OUTPUT XXX;":WLIST: OTIME?"
OVERlay
Command :WLISt:OVERla y <module_ numb er>,<lab el>
[,<label>]...
The OVERlay command overlays two or more oscilloscope waveforms and adds the resultant waveform to the current waveform display. The first parameter of the command syntax specifies which slot contains the oscilloscope time base card. The next parameters are the labels of the waveforms that are to be overlaid.
Overlay only inserts os cilloscope waveforms. It can not be used with analyzer waveforms.
<module_spec> {1|2|3|4|5|6|7|8|9|10}(slot where master card is located)
<waveform> string containing <acquisition_spec>{1|2}
<acquisition_
spec>
Example OUTPUT XXX;":WLIST:OVERLAY 3, ’C1’,’B1’"
{A|B|C|D|E|F|G|H|I|J} (slot where acquisition card is located)
4–10
WLISt Subsystem

PLUS

Command :WLI St:P LUS <m od ule_ spec >, <wav efor m> ,<wa vefo rm >
The PLUS command inserts time-correlated A+B oscilloscope waveforms on the screen. The first parameter specifies which slot is the oscilloscope module. 1 through 10 refers to slots A through J. The next two parameters specify which waveforms will be added to each other.
PLUS only inserts oscilloscope waveforms. It canno t be used with analyzer waveforms.
<module_spec> {1|2|3|4|5|6|7|8|9|10} (slot where master card is located)
<waveform> string containing <acquisition_spec>{1|2}
PLUS
<acquisition_
spec>
Example OUTPUT XXX; ":WLIST:PLUS 1,’A1’,’A2’"
{A|B|C|D|E|F|G|H|I|J} (slot where acquisition card is located)
4–11
WLISt Subsystem

RANGe

RANGe
Command :WLISt:RANGe <time_value>
The RANGe command specifies the full-screen time in the timing waveform menu. It is equivalent to ten times the seconds per division setting on the display. The allowable values for RANGe are from 10 ns to 10 ks.
<time_range> real number between 10 ns and 10 ks
Example
Query :WLISt:RANGe?
Returned Format
Example OUTPUT XXX;":WLIST: RANGE?"
OUTPUT XXX;":WLIST: RANGE 100E9"
The RANGe query returns the current full-screen time.
[:WLISt:RANGe] <tim e_value><N L>

REMove

Command :WLISt:REMove
The REMove command deletes all waveforms from the display.
Example OUTPUT XXX;":WLIST: REMOVE"
4–12

XOTime

Query :WLISt:XOTime?
The XOTime query returns the time from the X marker to the O marker. If data is not valid, the query returns 9.9E37.
Returned Format [:WLISt: XO Ti me] <tim e_value><N L>
<time_value> real number
Example OUTPUT XXX;":WLIST: XOTIME?"

XSTate

Query :WLISt:XSTate?
WLISt Subsystem
XOTime
The XSTate query returns the state where the X Marker is positioned. If data is not valid, the query returns 2147483647.
Returned Format [:WLISt: XS Ta te] <sta te_num><NL >
<state_num> integer
Example OUTPUT XXX;":WLIST: XSTATE?"
4–13
WLISt Subsystem

XTIMe

XTIMe
Command :WLISt:XTIMe <time_value>
The XTIMe command positions the X Marker on the timing waveforms in the mixed mode display. If the data is not valid, the command performs no action.
<time_value> real number
Example
Query :WLISt:XTIMe?
Returned Format [:WLISt:XTIMe ] <time_valu e><NL>
Example OUTPUT XXX;":WLIST: XTIME?"
OUTPUT XXX;":WLIST: XTIME 40.0E6"
The XTIMe query returns the X Marker position in time. If data is not valid, the query returns 9.9E37.
4–14
5

SFORmat Subsystem

Introduction
The SFORmat subsystem contains the commands available for the State Format menu in the HP 16554A/HP 16555A/HP 16555D logic analyzer modules. These commands are:
CLOCk
LABel
MASTer
MODE
MOPQual
MQUal
REMove
SETHold
SLAVe
SOPQual
SQUal
THReshold
5–2
Figure 5-1
SFORmat Subsy stem
SFORmat Subsystem Syntax Diagram
5–3
Figure 5-1 (continued)
SFORmat Subsystem
SFORmat Subsystem Syntax Diagram (continued)
5–4
Table 5-1 SFORmat Subsystem Parameter Values
Parameter Value
<N> an integer from 1 to 12 label_name string of up to 6 alphanumeric characters polarity clock_bits format (integer from 0 to 65535) for a clock (clocks are assigned
upper_bits format (integer from 0 to 65535) for a pod (pods are assigned in
lower_bits format (integer from 0 to 65535) for a pod (po ds are assigned in
clock_id clock_spec clock_pair_id qual_operation qual_num qual_level pod_num an integer fro m 1 to 12 set_hold_value value voltage (real number) -6.00 to +6.00
{POSitive | NEGati ve}
in decreasing order)
decreasing order)
decreasing order)
{J | K | L | M} {OFF | RISing | FALLing | BOTH} {1 | 2} {AND|OR} {1 | 2 | 3 | 4} {OFF | LOW | HIGH}
{0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}
SFORmat Subsystem
5–5
SFORmat Subsystem

SFORmat

SFORmat
Selector :MACHine{1|2}:SFORmat
The SFORmat (State Format) selector is used as a part of a compound header to access the settings in the State Format menu. It always follows the MACHine selector because it selects a branch directly below the MACHine level in the command tree.
Example OUTPUT XXX;":MACHINE2:SFORMAT:MASTER J, RISING"

CLOCk

Command :MACHine{1|2}:SFORmat:CLOCk<N> <clock_mode>
The CLOCk command selects the clocking mode for a given pod when the pod is assigned to the state analyzer. When the MASTer option is specified, the pod will sample all channels on the master clock. When the SLAVe option is specified, the pod will sample all channels on the slave clock. When the DEMultiplex option is specified, only one pod of a pod pair can acquire data. The bits of the selected pod will be clocked by the demultiplex master for labels with bits assigned under the Master pod. The same bits will be clocked by the demultiplex slave for labels with bits assigned under the Slave pod. The master clock always follows the slave clock when both are used.
<N> an integer from 1 to 12
<clock_mode> {MASTer | SLAVe | DEMultiplex}
Example OUTPUT XXX;":MACHIN E1:SFORMAT :CLOCK2 MASTER"
5–6
SFORmat Subsystem
Query :MACHine{1|2}:SFORmat:CLOCk<N>?
The CLOCk query returns the current clocking mode for a given pod.
Returned Format
Example OUTPUT XXX; ":MACHINE1:SFORMAT:CLOCK2?"
[:MACHine{1|2}:SFORmat:CLOCK<N>] <clock_mode><NL>

LABel

Command :MAC Hine {1|2 }: SFOR mat: LA Bel <n ame> [, <pol arit y> ,
<clo ck_b its> , <u pper _bit s> ,<lo wer_ bi ts> [,<u pper _bit s> ,<lo wer_ bi ts>] ...]
The LABel command allows you to specify polarity and assign channels to new or existing labels. If the specified label name does not match an existing label name, a new label will be created.
The order of the pod-specification parameters is significant. The first one listed will match the highest-numbered pod assigned to the machine you’re using. Each pod specification after that is assigned to the next highest­numbered pod. This way the specifications match the left-to-right descending order of the pods you see on the Format display. Not including enough pod specifications results in the lowest numbered pod(s) being assigned a value of zero (all channels excluded). If you include more pod specifications than there are pods for that machine, the extra ones will be ignored. However, an error is reported any time more than 22 pod specifications are listed.
The polarity can be specified at any point after the label name. Because pods contain 16 channels, the format value for a pod must be
between 0 and 65535 (2 each bit will correspond to a single channel. A "1" in a bit position means the associated channel in that pod is assigned to the label. A "0" in a bit position means the associated channel in that pod is excluded from the label. Leading zeroes may be omitted. For example, assigning #B1111001100 is equivalent
to entering "......****..**.." through the touchscreen.
A label can not have a total of more than 32 channels assigned to it.
16
1). When giving the pod assignment in binary,
LABel
5–7
SFORmat Subsystem
LABel
<name> string of up to 6 alphanumeric characters
<polarity> {POSitive | NEGative}
<clock_bits> format (integer from 0 to 65535) for a clock (clocks are assigned in
decreasing order)
<upper_bits> <lower_bits>
format (integer from 0 to 65535) for a pod (pods are assigned in decreasing order)
Example
510 OUTPUT XXX;":MACHINE2:SFORMAT:LABEL ’STAT’, POSITIVE, 0,127,40312" 520 OUTPUT XXX;":MACHINE2:SFORMAT:LABEL ’SIG 1’, #B11,#B0000000011111111,
#B0000000000000000 "
Query :MACHine{1|2}:SFORmat:LABel? <name>
The LABel query returns the current specification for the selected (by name) label. If the label does not exist, nothing is returned. The polarity is always returned as the first parameter. Numbers are always returned in decimal format. Label names are case-sensitive.
Returned Format
[:MACHine{1|2} :SFORmat:L ABel] <n ame>,<pola rity> [, <assignment>]... <NL>
Example OUTPUT XXX;":MACHIN E2:SFORMAT :LABEL? ’DATA’"
5–8
SFORmat Subsystem

MASTer

Command :MACHine{1|2}:SFORmat:MASTer <clock_id>,
<clock_spec>
The MASTer clock command allows you to specify a master clock for a given machine. The master clock is used in all clocking modes (Master, Slave, and Demultiplexed). Each command deals with only one clock (J,K,L,M); therefore, a complete clock specification requires four commands, one for each clock. Edge specifications (RISing, FALLing, or BOTH) are ORed.
At least one clock edge must be specified.
<clock_id> {J|K|L|M}
<clock_spec> {OFF|RISing|FALLing|BOTH}
Example OUTPUT XXX;":MACHINE2:SFORMAT:MASTER J, RISING"
MASTer
Query :MAC Hine {1|2 }: SFOR mat: MA STer ? <clo ck _id>
The MASTer query returns the clock specification for the specified clock.
Returned Format
Example OUTPUT XXX;":MACHINE2:SFORMAT:MASTER? <clock_id>"
[:MACHine{1|2}:SFORmat:MASTer] <clock_id>,<clock_spec><NL>
5–9
SFORmat Subsystem

MODE

MODE
Command :MACHine{1|2}:SFORmat:MODE {NORMal|FAST}
The MODE command places an HP 16555 state analyzer in either 100 MHz (normal) or 110 MHz (fast) mode. The HP 16554A has only one state analysis mode, 70 MHz. In 110-MHz mode, the h and j resource terms are not available.
Example OUTPUT XXX;":MACHIN E2:SFORMAT :MODE NORM"
Query :MACHine{1|2}:SFORmat:MODE?
The MODE query is valid for both the HP 16554 and HP 16555.
Returned Format
[:MACHine{1|2}:SFORmat:MODE] {NORMal|FAST}<NL>
Example OUTPUT XXX;":MACHIN E2:SFORMAT :MODE?"
5–10
SFORmat Subsystem

MOPQual

Command :MAC Hine {1|2 }: SFOR mat: MO PQua l <clo ck _pai r_id >,
<qua l_op erat io n>
The MOPQual (master operation qualifier) command allows you to specify either the AND or the OR operation between master clock qualifier pair 1/2, or between master clock qualifier pair 3/4. For example, you can specify a master clock operation qualifier 1 AND 2.
MOPQual
<clock_pair_
<qual_
operation>
Example OUTPUT XXX;":MACHINE1:SFORMAT:MOPQUAL 1,AND"
Query :MACHine{1|2}:SFORmat:MOPQual? <clock_pair_id>
Returned Format
Example OUTPUT XXX;":MACHin e1:SFORMAT :MOPQUAL? 1"
{1|2} where 2 indicates qualifier pair 3/4.
id>
{AND|OR}
The MOPQual query returns the operation qualifier specified for the master clock.
[:MACHine{1|2}:SFORmat:MOPQUal <clock_pair_id>] <qual_operation><NL>
5–11
SFORmat Subsystem

MQUal

MQUal
Command :MAC Hine {1|2 }: SFOR mat: MQ Ual <q ual_ nu m>,
<clo ck_i d>,< qu al_l evel >
The MQUal (master qualifier) command allows you to specify the level qualifier for the master clock.
<qual_num> {1|2|3|4}
<clock_id> {J|K|L|M}
<qual_level> {OFF|LOW|HIGH}
Example OUTPUT XXX;":MACHINE2:SFORMAT:MQUAL 1,J,LOW"
Query :MACHine{1|2}:SFORmat:MQUal? <qual_num>
The MQUal query returns the qualifier specified for the master clock.
Returned Format
Example OUTPUT XXX;":MACHIN E2:SFORMAT :MQUAL? 1"
[:MACHine{1|2} :SFORmat:M QUal] <q ual_level> <NL>
5–12
SFORmat Subsystem

REMove

Command :MACHine{1|2}:SFORmat:REMove {<name>|ALL}
The REMove command allows you to delete all labels or any one label for a given machine.
<name> string of up to 6 alphanumeric characters
Example OUTPUT XXX;":MACHIN E1:SFORMAT :REMOVE ’A’"
OUTPUT XXX;":MACHIN E2:SFORMAT :REMOVE ALL"

SETHold

Command :MACHine{1|2}:SFORmat:SETHold
<pod_num>,<set_hold_value>
REMove
The SETHold (setup/hold) command allows you to set the setup and hold specification for the state analyzer.
Even though the command requires integers to specify the setup and hold, the query returns the current settings in a string. For example, if you send the integer 0 for the setup and hold value, the query will return 3.5/0.0 ns as an ASCII string when you have one clock and one edge specified.
5–13
SFORmat Subsystem
SETHold
<pod_num> an integer from 1 to 12
<set_hold_
value>
Table 5-2
integer {0|1|2|3|4|5|6|7|8|9} representing the following setup and hold values:
Setup and hold values
For one clock and one edge For one cloc k and both edges Multiple Clocks
0 = 3.5/0.0 ns 0 = 4.0/0.0 0 = 4.5/0.0 1 = 3.0/0.5 ns 1 = 3.5/0.5 1 = 4.0/0.5 2 = 2.5/1.0 ns 2 = 3.0/1.0 2 = 3.5/1.0 3 = 2.0/1.5 ns 3 = 2.5/1.5 3 = 3.0/1.5 4 = 1.5/2.0 ns 4 = 2.0/2.0 4 = 2.5/2.0 5 = 1.0/2.5 ns 5 = 1.5/2.5 5 = 2.0/2.5 6 = 0.5/3.0 ns 6 = 1.0/3.0 6 = 1.5/3.0 7 = 0.0/3.5 ns 7 = 0.5/3.5 7 = 1.0/3.5 N/A 8 = 0.0/4.0 8 = 0.5/4.0 N/A N/A 9 = 0.0/4.5
Example OUTPUT XXX;":MACHINE2:SFORMAT:SETHOLD 1,2"
Query :MACHine{1|2}:SFORMAT:SETHOLD? <pod_num>
The SETHold query returns the current setup and hold settings.
Returned Format
[:MACHine{1|2}:SFORmat:SETHold <pod_num>] <setup_and_hold_string><NL>
Example OUTPUT XXX;":MACHIN E2:SFORMAT :SETHOLD? 3"
5–14

SLAVe

Command :MAC Hine {1|2 }: SFOR mat: SL AVe <c lock _i d>,
<clo ck_s pec>
The SLAVe clock command allows you to specify a slave clock for a given machine. The slave clock is only used in the Slave and Demultiplexed clocking modes. Each command deals with only one clock (J,K,L,M); therefore, a complete clock specification requires four commands, one for each clock. Edge specifications (RISing, FALLing, or BOTH) are ORed.
When slave clock is being used at least one edge must be specified.
<clock_id> {J|K|L|M}
<clock_spec> {OFF|RISing|FALLing|BOTH}
Example OUTPUT XXX;":MACHINE2:SFORMAT:SLAVE J, RISING"
SFORmat Subsystem
SLAVe
Query :MACHine{1|2}:SFORmat:SLAVe?<clock_id>
The SLAVe query returns the clock specification for the specified clock.
Returned Format
Example OUTPUT XXX;":MACHIN E2:SFORMAT :SLAVE? K"
[:MACHine{1|2} :SFORmat:S LAVe] <c lock_id>,< clock_spec ><NL>
5–15
SFORmat Subsystem

SOPQual

SOPQual
Command :MAC Hine {1|2 }: SFOR mat: SO PQua l <clo ck _pai r_id >,
<qua l_op erat io n>
The SOPQual (slave operation qualifier) command allows you to specify either the AND or the OR operation between slave clock qualifier pair 1/2, or between slave clock qualifier pair 3/4. For example you can specify a slave clock operation qualifier 1 AND 2.
<clock_pair_
<qual_
operation>
Example OUTPUT XXX;":MACHine2:SFORMAT:SOPQUAL 1,AND"
Query :MACHine{1|2}:SFORmat:SOPQual? <clock_pair_id>
Returned Format
Example OUTPUT XXX;":MACHiN E2:SFORMAT :SOPQUAL? 1"
{1|2}where 2 specifies qualifier pair 3/4
id>
{AND|OR}
The SOPQual query returns the operation qualifier specified for the slave clock.
[:MACHine{1|2}:SFORmat:SOPQual <clock_pair_id>] <qual_operation><NL>
5–16

SQUal

Command :MACHine{1|2}:SFORmat:SQUal
<qual_num>,<clock_id>,<qual_level>
The SQUal (slave qualifier) command allows you to specify the level qualifier for the slave clock.
<qual_num> {1|2|3|4}
<clock_id> {J|K|L|M}
<qual_level> {OFF|LOW|HIGH}
Example OUTPUT XXX;":MACHINE2:SFORMAT:SQUAL 1,J,LOW"
SFORmat Subsystem
SQUal
Query :MACHine{1|2}:SFORmat:SQUal?<qual_num>
The SQUal query returns the qualifier specified for the slave clock.
Returned Format
Example OUTPUT XXX;":MACHIN E2:SFORMAT :SQUAL? 1"
[:MACHine{1|2} :SFORmat:S QUal] <c lock_id>,< qual_level ><NL>
5–17
SFORmat Subsystem

THReshold

THReshold
Command :MACHine{1|2}:SFORmat:THReshold<N>
{TTL|ECL|<voltage>}
The THReshold command allows you to set the voltage threshold for a given pod to ECL, TTL, or a specific voltage from 6.00 V to +6.00 V in 0.05 volt increments.
<N> an integer from 1 to 12 indicating pod number
<voltage>
Example OUTPUT XXX;":MACHIN E1:SFORMAT :THRESHOLD1 4.0"
Query :MACHine{1|2}:SFORmat:THReshold<N>?
Returned Format
Example OUTPUT XXX;":MACHIN E1:SFORMAT :THRESHOLD4?"
real number between 6.00 to +6.00
TTL default value of +1.6 V
ECL
default value of 1.3 V
The THReshold query returns the current threshold for a given pod.
[:MACHine{1|2}:SFORmat:THReshold<N>] <value><NL>
5–18
6

STRigger (STRace) Subsystem

Introduction
The STRigger subsystem contains the commands available for the State Trigger menu in the HP 16554A/HP 16555A/HP 16555D logic analyzer modules. The State Trigger subsystem will also accept the STRace selector as used in previous HP 16500-Series logic analyzer modules to eliminate the need to rewrite programs containing STRace as the selector keyword. The STRigger subsystem commands are:
ACQuisition
BRANch
CLEar
FIND
MLENgth
RANGe
SEQuence
STORe
TAG
TAKenbranch
TCONtrol
TERM
TIMER
TPOSition
6–2
Figure 6-1
STRigger (STRace) Subsystem
STRigger Subsystem Syntax Diagram
6–3
Figure 6-1 (continued)
STRigger (STRace) Subsystem
STRigger Subsystem Syntax Diagram (continued)
6–4
Table 6-1 STRigger Subsystem Parameter Values
Parameter Value
branch_qualifier qualifier see "Qualifier" on page 6–6 to_lev_num integer from 1 to last level proceed_qualifier occurrence number from 1 to 1048575 label_name string of up to 6 alphanumeric characters start_pattern
stop_pattern
num_of_levels integer from 2 to 12 lev_of_trig integer from 1 to (number of existing sequence lev els - 1) store_qualifier state_tag_qualifier timer_num timer_value 400 ns to 500 seconds term_id
pattern
post_value integer from 0 to 100 representing percentage memory_length
<qualifier>
<qualifier>
"{#B{0|1}...| #Q{0|1|2|3|4|5|6|7}...| #H{0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F}...| {0|1|2|3|4|5|6 |7|8|9}... } "
<qualifier> <qualifier> {1|2}
{A|B|C|D|E|F|G|H|I|J} (H and J not available in
110 MHz mode)
"{#B{0|1|X}...| #Q{0|1|2|3|4|5|6|7|X}...| #H{0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|X}...| {0|1|2|3|4|5|6|7|8|9}...}"
{4096 | 8192 | 16384 | 32768 | 65536 | 131072 | 262144 | 516096 (HP 16554A only) 524288 | 1040384 (HP 16555A only) 524288 | 1048576 | 208076 8 (HP 16555D only)}
STRigger (STRace) Subsystem
6–5
STRigger (STRace) Subsystem

Qualifier

Qualifier
The qualifier for the state trigger subsystem can be terms A through J, Timer 1 and 2, and Range 1 and 2. In addition, qualifiers can be the NOT boolean function of terms, timers, and ranges. The qualifier can also be an expression or combination of expressions as shown below and figure 6-2, "Complex Qualifier," on page 6-10.
The following parameters show how qualifiers are specified in all commands of the STRigger subsystem that use <qualifier>.
<qualifier>
{ "ANYSTATE" | "NOSTATE" | "<expression>" }
<expression> {<ex pr es sion1a >|<express ion1b>|<ex pressi on1a> OR
<expression1b>|<expression1a> AND <expression1b>}
<expression1a> {<expression1a_term>|(<expression1a_term>[ OR
<expression1a_term>]* )|(<expression1a_term>[ AND <expression1a_ term>]* )}
<expression1a_
{ <expression2a> |<expressi on2b>| <expressio n2c>|<expr ession 2d>}
term>
<expression1b> {<expression1b_term>|( <expression1b_term>[ OR
<expression1b_term>]* )|(<expression1b_term>[ AND <expression1b_ term>]* )}
<expression1b_
{<expression2e >|<express ion2f> |<expressi on2g>|<exp ressio n2h>}
term>
<expression2a> {<term3a>|<term3b>|(<term3a> <boolean_op> <term3b>)} <expression2b> {<term3c>|<range3a>|(<term3c> <boolean_op> <range3a>)} <expression2c> {<term3d>} <expression2d> {<term3e>|<timer3a>|(<term3e> <boolean_op> <timer3a>)} <expression2e> {<term3f>|<term3g>|(<term3f> <boolean_op> <term3g>)} <expression2f> {<term3h>|<range3b>|(<term3h> <boolean_op> <range3b>)} <expression2g> {<term3i>} <expression2h> {<term3j>|<timer3b>|(<term3j> <boolean_op> <timer3b>)}
<boolean_op> {AND | NAND | OR | NOR | XOR | NXOR}
6–6
<term3a> { A | NOTA } <term3b> { B | NOTB } <term3c> { C | NOTC } <term3d> { D | NOTD } <term3e> { E | NOTE } <term3f> { F | NOTF } <term3g> { G | NOTG } <term3h> { H | NOTH } <term3i> { I | NOTI }
<term3j> { J | NOTJ } <range3a> { IN_RANGE1 | OUT_RANGE1 } <range3b> { IN_RANGE2 | OUT_RANGE2 }
STRigger (STRace) Subsystem
Qualifier
<timer3a> { TIME R1 < | TI MER1>} <timer3b> { TIME R2 < | TI MER2>}
H, NOTH, J, and NOTJ are not available in 110-MHz mode.
Qualifier Rules The following rules apply to qualifiers:
Qualifiers are quoted strings and, therefore, need quotes.
Expressions are evaluated from left to right.
Parentheses are used to change the order evaluation and are optional.
An expression must map into the combination logic presented in the
combination pop-up menu (see figure 6-2 on page 6-10).
Examples ’A’
’( A OR B )’ ’(( A OR B ) AND C )’ ’(( A OR B ) AND C AND IN_RANGE2 )’ ’(( A OR B ) AND ( C AND IN_RANGE1 ))’ ’IN_RANGE1 AND ( A OR B ) AND C’
6–7
STRigger (STRace) Subsystem

STRigger (STRace)

STRigger (STRace)
Selector :MACHine{1|2}:STRigger
The STRigger (STRace) (State Trigger) selector is used as a part of a compound header to access the settings found in the State Trace menu. It always follows the MACHine selector because it selects a branch directly below the MACHine level in the command tree.
Example OUTPUT XXX;":MACHIN E1:STRIGGE R:TAG TIME"

ACQuisition

Command :MACHine{1|2}:STRigger:ACQuisition
{AUTOmatic|MANual}
The ACQuisition command allows you to specify the acquisition mode for the State analyzer.
Example OUTPUT XXX;":MACHIN E1:STRIGGE R:ACQUISITION AUTOMATIC"
Query :MACHine{1|2}:STRigger:ACQuisition?
The ACQuisition query returns the current acquisition mode.
Returned Format
Example OUTPUT XXX;":MACHIN E1:STRIGGE R:ACQUISITION?"
[:MACHine{1|2}:STRigger:ACQuisition] {AUTOmatic|MANual}<NL>
6–8

BRANch

Command :MACHine{1|2}:STRigger:BRANch<N>
<branch_qualifier>,<to_level_number>
The BRANch command defines the branch qualifier for a given sequence level. When this branch qualifier is matched, it will cause the sequencer to jump to the specified sequence level. The branch qualifier functions like the "else on" branch of a sequence level.
The terms used by the branch qualifier (A through J, except in 110-MHz mode) are defined by the TERM command. The meaning of IN_RANGE and OUT_RANGE is determined by the RANGE command.
Within the limitations shown by the syntax definitions, complex expressions may be formed using the AND and OR operators. Expressions are limited to what you could manually enter through the State Trigger menu. Regarding parentheses, the syntax definitions on the next page show only the required ones. Additional parentheses are allowed as long as the meaning of the expression is not changed. Figure 6-2 shows a complex expression as seen in the State Trigger menu.
STRigger (STRace) Subsystem
BRANch
Example The following statements are all correct and have the same meaning. Notice
that the conventional rules for precedence are not followed. The expressions are evaluated from left to right.
OUTPUT XXX;":MACHINE1:STRIGGER:BRANCH1 ’C AND D OR F OR G’, 1" OUTPUT XXX;":MACHINE1:STRIGGER:BRANCH1 ’((C AND D) OR (F OR G))’, 1" OUTPUT XXX;":MACHINE1:STRIGGER:BRANCH1 ’F OR (C AND D) OR G’,1"
<N> integer from 1 to <number_of_levels>
<to_level_
number>
<number_of_
levels>
<branch_
qualifier>
integer from 1 to <number_of_levels>
integer from 2 to the number of existing sequence levels (maximum 12)
<qualifier> see "Qualifier" on page 6-6
6–9
STRigger (STRace) Subsystem
BRANch
Example OUTPUT XXX;":MACHIN E1:STRIGGE R:BRANCH1 ’ANYSTATE’, 3"
OUTPUT XXX;":MACHINE1:STRIGGER:BRANCH2 ’A’, 7" OUTPUT XXX; ":MA CHIN E1:S TRIGGER:BRANCH3 ’((A OR B) OR NOTG)’, 1"
Query :MACHine{1|2}:STRigger:BRANch<N>?
The BRANch query returns the current branch qualifier specification for a given sequence level.
Returned Format [:MACHine{1|2}:STRigger:BRANch<N>]
<branch_qualifier>,<to_level_num><NL>
Example OUTPUT XXX;":MACHIN E1:STRIGGE R:BRANCH3?"
Figure 6-2
Complex qualifier
Figure 6-2 is a front panel representation of the complex qualifier ( a Or b)
Or (f Or g)
.
6–10
STRigger (STRace) Subsystem

CLEar

Example The following example would be used to specify the complex qualifier shown
in figure 6-2.
OUTPUT XXX;":MACHINE1:STRIGGER:BRANCH1 ’((A OR B) AND (F OR G))’, 2"
Terms A through E, RANGE 1, and TIMER 1 must be grouped together and terms F through J, RANGE 2, and TIMER 2 must be grouped together. In the first level, terms from one group may not be mixed with terms from the other. For example, the expression
((A OR IN_RANGE2) AND (C OR G)) is
not allowed because the term C cannot be specified in the F, G, and I group. In the first level, the operators you can use are
XOR, NXOR
. Either AND or OR may be used at the second level to join the two
AND, NAND, OR, NOR,
groups together. It is acceptable for a group to consist of a single term. Thus, an expression like
(B AND G) is legal, since the two operands are both
simple terms from separate groups.
CLEar
Command :MACHine{1|2}:STRigger:CLEar
{All|SEQuence|RESource}
The CLEar command allows you to clear all settings in the State Trigger menu, clear only the Sequence levels, or clear only the resource term patterns. Cleared settings are replaced with the defaults.
Example OUTPUT XXX;":MACHIN E1:STRIGGE R:CLEAR RESOURCE"
6–11
STRigger (STRace) Subsystem

FIND

FIND
Command :MACHine{1|2}:STRigger:FIND<N>
<proceed_qualifier>,<occurrence>
The FIND command defines the proceed qualifier for a given sequence level. The qualifier tells the state analyzer when to proceed to the next sequence level. When this proceed qualifier is matched the specified number of times, the sequencer will proceed to the next sequence level. In the sequence level where the trigger is specified, the FIND command specifies the trigger qualifier (see SEQuence command).
The terms A through J are defined by the TERM command. The meaning of IN_RANGE and OUT_RANGE is determined by the RANGe command. Expressions are limited to what you could manually enter through the State Trigger menu. Regarding parentheses, the syntax definitions below show only the required ones. Additional parentheses are allowed as long as the meaning of the expression is not changed. See page 6-9 for a detailed example.
<N>
integer from 1 to (number of existing sequence levels 1)
<occurrence> integer from 1 to 1048575
<proceed_
qualifier>
Example OUTPUT XXX;":MACHIN E1:STRIGGE R:FIND1 ’ANYSTATE’, 1"
<qualifier> see "Qualifier" on page 6-6
OUTPUT XXX;":MACHIN E1:STRIGGE R:FIND3 ’((NOTA AND NOTB) OR G)’, 1"
6–12
Loading...