Service Manuals, User Guides, Schematic Diagrams or docs for : Keithley Misc 24820A(IE488)

<< Back | Home

Most service manuals and schematics are PDF files, so You will need Adobre Acrobat Reader to view : Acrobat Download Some of the files are DjVu format. Readers and resources available here : DjVu Resources
For the compressed files, most common are zip and rar. Please, extract files with Your favorite compression software ( WinZip, WinRAR ... ) before viewing. If a document has multiple parts, You should download all, before extracting.
Good luck. Repair on Your own risk. Make sure You know what You are doing.




Image preview - the first page of the document
24820A(IE488)


>> Download 24820A(IE488) documenatation <<

Text preview - extract from the document
I E-488




          Keithley MetraByte Corporation
*****
         IE-488 Manual

      Part Number: 24820



           Revision A

      Last Edit: June, 1984



       Copyright @ 1984




KEITHLEY METAASYTEIASYSTIDAC

  440 Myles Standish Boulevard
  Taunton. Massachusetts 02780
     Telephone 508/880-3000
        FAX 508/880-0179
                               WARRANTY INFORMATION

All products manufactured by Keithley MetraByte are warranted against defective materials
and worksmanship for a period of one year from the date of delivery to the original
purchaser. Any product that is found to be defective wlthin the warranty period will. at the
option of Keithley MetraByte, be repaired or replaced. This warranty does not apply to
products damaged by improper use.
                                            WARNING
       Keithley   MetraByte     assumes no liability    for damages consequent        to the
       u8e of this product.      This product   is not designed with components          of a
      level of reliability  suitable   for use in life support  or crltical applications.




Information furnished by Keithley MetraEiyte is believed to be accurate and reliable.
However, the Keithley MetraByte Corporation assumes no responsibility for the use of such
information nor for any infringements of patents or other rights of third parties that may
result from its use. No license is granted by implication or otherwise under any patent
rights of Keithley MetraByte Corporation.




  Keithley     MetraByte/Asyst/DAC      is also referred to here-in as Keith&      MetmByte.

  BasicTM is a trademark of Dartmouth       College.
  IBM@ is a registered trademark of International Business Machines Corporation.
  PC, XT. AT, PS/2.  and Micro Channel Architecture@             (MCA) are trademarks of
  International Business Machines Corporation.

  Microsoft@     is a registered trademark of Microsoft Corporation.

  Turbo C@ is a registered trademark of Borland International.
                                TABLE   OF CONTENTS

CHAPTER     1


      1.0       IEEE-488   GENERAL DESCRIPTION        3
      1.1       IEEE-488   SYSTEM BUS OPERATIONS      4

CHAPTER     2


      2.0       HARDWAREINSTALLATION

CHAPTER     3


      3.0       MODES OF OPERATION                    9
      3.1       IMAGE SPECIFIERS                      11
      3.2       IMAGE TERMINATORS                     12
      3.3       FLAG RETURN CODES                     13

CHAPTER     4

      4.0       USER COMMANDS                         14

                ABORT                                 15
                CLEAR                                 16
                CONFIG                                17
                ENTER                                 18
                EOI                                   19
                LOCAL                                 20
                LOCKOUT                               21
                OUTPUT                                22
                PARPOL                                23
                PASCTL                                24
                PPCONF                                25
                PPUNCF                                26
                REMOTE                                27
                REQUEST                               28
                RXCTL                                 29
                STATUS                                30
                SYSCON                                31
                TRIGGER                               32




                                    Page 1
                             TABLE   OF CONTENTS

CHAPTER     5


      5.0       8086/8088 ASSEMBLY LANGUAGE CALL FORMAT         33
      5.1       ROM/RAM MEMORYMAP                               35
      5.2       STACK SEGMENT MAP                               35
      5.3       RETURN FLAG CODES                               35

APPENDIX        A   DMA (Direct Memory Access) DATA TRANSFERS   36
APPENDIX        B   RUNNING COMPILED PROGRAMS                   38
APPENDIX        C   MAIN IEEE488 (GPIB) BUS CONNECTIONS         40
APPENDIX        D   C88-01 CONNECTORCABLE                       41
APPENDIX        E   INSTALLING IE-488 BOARD # 2                 42
APPENDIX        F   EXAMPLE OF PROGRAMMING                      43
                    REFERENCES                                  46




                                 Page 2
GPIB IEEE488 MANUAL


1.0    GPIB IEEE488         INTERFACE CARD GENERAL DESCRIPTION
MetraByte's        IE-488 General           Interface         (GPIB) I/O expansion             board
for the IBM-PC computer is designed to plug directly                                into one I/O
slot     inside      the IBM-PC.The           IE-488      has a built           in 12 KbyteROM
interpreter         which handles         all     the required         initialization             and
protocol      functions        required    to use the IEEE488 Interface.                   No disk
files     with driver        routines     are needed and the interpreter                     allows
all    commands to be programmed in conventional                         high level         IEEE488
command syntax e.g. REMOTE, ENTER etc. The IE-488 complies                                       with
the IEEE November 1978 standard.                    The Interpreter          is a relocatable
16 Kbyte block             of code which may be entered                    via a BASIC CALL
statement       or via DOS interrupt              commands using assembly                language
programming.          All commands are string               coded for ease of use. The
GPIB will        handle       up to 14 other          talker/listener              devices.       The
controller        maybe the IBM or any other of the 14 devices,                            any one
of which control             may also be transferred                to or from. The IE488
interpreter        includes       a group of subroutines              which may be used to
to condition          the data before          data transfer          when using assembly
 language        programs.          The IE488          interpreter             is capable           of
implementing           all   twelve     of the interface            messages which are as
follows:-

1. The Data Message ----------------                       The actual    data information
                                                           sent from the talker      device
                                                           to one or more listening
                                                           devices    on the GPIB.
2.    The Trigger        Message      -------------           This    messaoe causes the
                                                            listener      device(s)       to
                                                            perform a device      dependent
                                                            action   when addressed.
3. TheClear         Message      ---------------            This    message   causes      the
                                                            addressed device or all the
                                                            devices    on the      GBIB to
                                                            return   to their   predefined
                                                            state.
4. The Remote Message --------------                        Causes the addressed device
                                                            or devices    to switch from
                                                            front panel to remote prog-
                                                            ram control.
5. The Local        Message ---------------                 Causes   the  Remote Message
                                                            to be cleared        from the
                                                            addressed device(s).
6. The Local        Lockout      Message -------            Prevents    an operator     from
                                                            manually  returning   to local
                                                            via front   panel controls.



                                             Page 3
GPIB IEEE488 MANUAL                                                                     GENERAL


7. Clear       Lockout          (Local   Message)      ---    Clears  all  devices on the
                                                              GPIB and sets in local mode.
8. Service         Request        Message - - - - - - - - -   Any device may send this at
                                                              any time     to request     service
                                                              from the controller.            This
                                                              is    cleared      by sending the
                                                              device's      Status    Byte Msg.
                                                              if    the    device    no longer
                                                              requires     service.
9. Status         Byte    Message -------------               A data byte that represents
                                                              the    status      of one device
                                                              on the bus.      Bit 6 is set if
                                                              the device sent        a Service
                                                              Request      Message,     and the
                                                              remaining      bits    are unique,
                                                              to the selected       device.
10. The Status            Bit     Message ---------           A byte which represents          the
                                                              operational      conditions     of a
                                                              group     of devices        on the
                                                              bus.     Each bit represents        a
                                                              device on the bus.          This is
                                                              typical     response to a Para-
                                                              llel    Poll operation.
11. The Pass Control                 Message -------          This allows transfer     of the
                                                              bus management     duties     to
                                                              another device on the bus.
12. The Abort            Message --------------               The System    controller       takes
                                                              unconditional       control         of
                                                              the bus from        the active
                                                              controller.       The       message
                                                              terminates      communications
                                                              with     the  bus and sends a
                                                              Clear All message.

*********         IEEE488 GPIB FUNCTION CLASSIFICATION                    TABLE ************
            T6     -- Basic Talker,   Serial     Poll,     Unaddressed if MLA
            TEO    -- No extended talker      function
            II4    -- Basic Listener,    Unaddressed if MTA
            LEO    -- No extended listener       function
            SHl    -- Complete Source Handshake capability
            AH1    -- Complete Acceptor      Handshake capability
            SRl    -- Complete Service Request capability
            PPl    -- Parallel   Poll Remote configuration          capability
            RLl    -- Complete Remote / Local capability
            DC1    -- Complete Device    Clear capability
            DTl -- Complete Device Trigger             capability
            Cl,C2,C3,C4,CS     - CONTROLLER states

                                               Page 4
GPIB    IEEE488        MANUAL



1.1         IEEE488     SYSTEM   BUS    OPERATIONS

The sequence of actions                for   all   data   transfer    commands on the bus
is as follows:


        OUTPUT                                                   INPUT
1. IBM-PC Talk Address                                    1. Device Talk Address
2. UNLISTEN                                               2. UNLISTEN
3. Device Listen Address                                  3. IBM-PC Listen Address
After  the transfer    of data                is   complete     the   bus remains   in   the
last programmed condition.

                                      SECONDARY      COHMANDS

When communicating          to/from       devices      which   use secondary
addressing,       the devices       extended      address    is specified       by
separating     the primary     address     with a ".11 (period).    The use of
extended addressing     or secondary commands (maximum level            of five)
complies    with the 1978 IEEE488 standard.             The bus sequence      for
secondary   or extended addressing         is as follows:
                  1.   IBM-PC Talk Address
                  2.   Unlisten
                  3.   Device Primary Address
                  4.   Secondary Commands/Address
                  5.   Data


NOT    IN    CONTROL     ADDRESSING

When the IBM-PC is not the active               controller        on the bus, no other
devices may be addressed by the IBM-PC (all controller                        commands).
The IBM-PC may still          transfer      data as a talker/listener             if setup
by the controller          in charge.      During an ENTER command the IBM-PC
waits     until   the active      talker     transmits        the data if the IBM-PC
was addressed        by the talker/listener.              If the address       codes are
not satisfied,        ah9000 will      be returned      in the FLG% variable.          This
allows      the user to perform             a program        wait   loop for       maximum
efficiency      in error     handling.       The OUTPUT statement           waits    until
the controller        addresses the IBM-PC to talk and the ENTER command
waits     until   the controller         addresses      the IBM-PC to listen.           The
IBM-PC may assume control             if the controller           in charge sends the
Take Control        Message after        it programs        the IBM-PC as a Talker.
During a DMA transfer           the IBM will       wait until        addressed      before
data is transferred.          A time out code is returned               if the data is
not accepted by the talker/listener.                 The programmer may use this
return     code for a time out loop also.


                                             Page 5
GPIB   IEEE488     MANUAL                                                         GENERAL




2.0    HARDWARE     INSTALLATION

       TheIE488     board      requires       one slot         in the IBM-PC and 16
consecutive       address       locations        in I/O space.          The board        also
requires    a free 16 K-byte block               of memory for the on board 12K-
byte ROM interpreter            and 4K-byte         Static      Ram. Some I/O address
locations     will     be occupied          by internal             I/O and your other
peripheral    cards,    so to provide          flexibility         in avoiding     conflict
with thesedevices         the IE488 I/O address                 can be set by the Base
Address D.I.P. switch           to be on any 16 bit boundary                 in the IBM -
PC decoded      I/O space.         This also        makes possible          the use of a
second IE488 interface             board in the same computer.                 The I/O map
for IBM's standard          Internal/External              peripherals       is listed      on
page 2-23 of the "IBM Technical                Reference       Manual".
       Usually,      a good choice     is to put the IE488 at base address
&H300 or &H310 (Decimal          768,784).   (Note if you are using the IBM
prototype     interface    board, it uses the hex 300 -3lF address space
and would be in conflict).
There are three groups of switches     on the IE488 interface      card.
The Base Address  switch  is located    on the top left    corner    and
marked BASE ADDRESS. The switch settings    are listed  as follows:
                                  DEVICE I/O     ADDRESS BITS
                         (msb)                                (lsb)
                            A9      AS    A7      A6    A5     A4      Example shows
address bits                 11            0       0     0      0      ADDRESS = &H300
switch pos.                 dn       dn    up      up    up     up
A switch in the up (on) position     corresponds    to a ZERO (0) in the
address bit.     Similarly, a ONE (1) is set in the address bit when
the switch     is in the down (off)    position.    The example   switch
setting   above shows the address       switch   selecting   &H300 (768
decimal)   for the Base I/O Address.


NO CRECK     IS MADE ON THE BASE               ADDRESS  WHEN INITIALIZED,          BE SURE
THAT THE BASE ADDRESS     SELECTED               DOES NOT CONFLICT      WITH    ANY OTHER
PERIPHERALS.

The next switch is the MEMORY ADDRESS switch.        This switch selects
the 16 Kbyte block       of memory on an even 16 Kbyte boundary.       The
addressing      of the switches    corresponds  to the absolute20bit
address    location    in 16 Kbyte increments.     The MEMORY ADDRESS
switch is located     above the gold edge connector.

                              MEMORYADDRESS BIT s
                        (msb)                   (lsb)
                         A19 A18 Al7  Al6 Al5     Al4                   Example for
address     bits         1    1    0    0   0     0                   MEMORY ADDRESS

                                          Page 6
GPIB     IEEE488         MANUAL                                                                          INSTALLATION


switch     settings                dn        dn        up            up       up           up        = &HCOOOO
Refer to Section      2 of the IBM Technical          Reference     Manual for a
complete   system     memory     map layout.      The address     chosen in the
above diagram      is COO00 hex which is in the 192 Kbyte expansion
area after   the display       buffers.     This is usually     a clear    area on
most   IBM P.C.'s.   Make    a note     of the  MEMORY   ADDRESS    and  the   BASE
ADDRESS      of    the     boards           for    initialization.

             *****************et                      WARNING             *******t*t****ttt*tt

NO CHECK  IS MADE ON THE MEMORY   ADDRESS,   MAKE                                                SURE    THERE    IS    NO
OTHER MEMORY ASSIGNED TO THE SELECTED   ADDRESS.

The next switch        setting      is for the interrupt                                           vectors      and DMA
channel     selection.       The IBM-PC has eight        (8)                                     interrupt       vector
levels    and two levels        (0 & 1) are not accessible                                             since they are
used by the operating             system.    The remaining                                            6 vectors       are
available      to the user. The IBM-PC interrupt                                                 vector      map is as
shown below with the standard              assignments     of                                     function      made by
IBM.
                             VECTOR LEVEL
                                 0        ---------------[TIMER - SYSTEM ONLY)
                                                           FUNCTION
                                          ---------------[KEYBOARD - SYSTEM ONLY)
                                 1
                                          -----------____ OR LPT2:
                                          ---------------COMM2: ADAPTER
                                                          USER
                                        3"---------------
                                        4                 COMMl: ADAPTER
                                        5    ---------------                    FIXED DISK OR LPT3:
                                        6    ---------------                    FLOPPY DISKETTE DRIVES
                                        7    ---------------                    PRINTER #l (LPTl:)
The INTERRUPT LEVEL & DMA selector        switch   is located in the
bottom center    of the board. The switch   is marked INT (1 2 4) and
is set as follows:-
              INTERRUPT LEVEL                               SW(2)-1             SW(3)-2          SW(4)-4
                    0                                                             UP               up    RESERVED
                    1                                           2                                  UP    RESERVED
                    2                                                                ::            UP
                    3                                           2                    dn            UP
                    4                                                                up            dn
                    5                                           ::                                  dn
                    6                                                                a":            dn
                    7                                           d":                  dn             dn

The standard        switch   setting    is vector    level    5 and is shown in
bold print.       It is the users responsibility         to select      an interrupt
level     that does not conflict        with the operating      system      hardware.
If the system        is using a spooler       for the printer      then Interrupt
Level     7 will    be in use. Note that the interrupts              are only used
during      DMAtransfers,     therefore     if DMA is notusedthe          setting    is
irrelevant.


                                                      Page 7
GPIB IEEE488 MANUAL                                                         INSTALLATION

The last switch   setting    is the selected         DMA channel.    The switch
is part of the bank of four switches           used for the interrupts.       The
switch is marked DMA (1 - 3), up is Channel 3, down is channel                  1.
In IBM-PC's equipped with floppy        disk(s)    only,  DMA level     3 should
be used. Hard disk equipped       machines       (XT models)   force   the user
to utilize  DMA level     1. This is somewhat restrictive,            since due
to the hardware design of the IBM-PC, DMA level               1 page register
is the same as DMA level       0 (memory    refresh).    For more information
see Appendix A.
The board    is   shipped    with   the   following   switch    settings.
                            MEMORYADDRESS =       COO00 hex
                            BASE ADDRESS =        300 hex
                            INTERRUPT #   =       5
                            DMA CHANNEL   =       3


Having made the switch              settings,  you can now install       the IE-488
board.    First       remove    the board from its protective        eIectrostatic
packaging.      It is a good precaution         to discharge     any electrostatic
charge you may have accumulated                by touching     the metal     frame of
your computer           (you should have it grounded for safety).           Next,     if
you have not already             done so, TURNOPPTHEPOWERonyour             computer
and take        off      the case      (see IBM "Guide      to Operations"          for
reference).         Remove a vacant back plate          by undoing    the screw at
the top and press the card guide supplied                  with the IE-488 board
on the opposite             side of the case (some models may not require
this).    Slip      the IE-488 board in and secure the backplate.                  That
completes      the hardware installation.
       One more precaution         concerning     storage   and handling of the
IE-488 interface        board.    MetraByte    recommends that you retain   the
special    electrostatically            shielded      package   and use it  for
protective     storage       of the board if for any reason it is removed
from your computer.




                                      Page 8
GPIB     IEEE488           MANUAL                                                      COMMAND        FORMAT



3.0      MODES        OF    OPERATION

           In the interests    of conciseness       for the more experienced
programmer and user, this section          has been written       as a reference
and initially        may be difficult      to understand.       If this    is the
case, refer       to Appendix  F where a step by step real programming
example       read together    with   this    section    provides     an easier
introduction.
         All    modes of operation     are determined                                  by an          ASCII
STRING     in a command (COMMANDS or CMD$) referenced                                    within        a CALL
statement.     The CALL statement  format is:
       XXX    CALL      IE488       ( COMMAND$,      varf$I(%),       FLAG%,         BASADR%      1

where:
COWHANDS             - is the COMMAND including                       device      addresses         or
                       secondary        commands and         [ image terminators            1. This
                       is always a STRINGandisdecodedbythe                           CommandLine
                       Interpreter          in the IE-488            firmware        (ROM).      The
                       COMMAND is separated           from the operands            (devices    etc.)
                       by one or more SPACES, any other                       delimiters       will
                       cause a SYNTAX error            in command line.           The separator
                       for devices         is always       the comma "," andsecondary
                       address       is always     a period       ".". The IMAGE string             is
                       identified         by brackets         "[I".       The Command          Line
                       Interpreter        is relatively         tolerant       of syntax error
                       identification         and will      send back the appropriate
                       error     code to isolate        the error.       The format is:-

                       CMD$ =       "COMMAND      devl,       dev2,   . . . ..devn     [image]"

                       The [image]        specifier     allows    the user to specify     the
                       variable     field     operations       for the beginning      and end
                       of the data transfer           variable.     The variable     may be a
                       variable     name, array identifier,            numeric data value
                       or a string.         The user must match the image to the
                       data type or an error           will     be generated    in the   data
                       transfer.      No check is made in the match of the image
                       to the variable          type,   this is the responsibility          of
                       the user.        The [image]         codings    are explained        in
                       section    3.1 (IMAGE SPECIFIERS).
varC$l(%)             - isthe   data variable       OUTPUT/INPUT to be transferred
                       from/to.     Datais    transferred        as specified      by the
                        image terminator/specifier.           If the image specifier
                        is not used the data is treated             as an integer.    The
                       data may be of String        or Integer    type.
FLAG%        ---       is    the transfer    status  of the CALL statement.      If an
                       error    occurs     FLAG%    will     contain   a HEX number
                       representing     the error condition.      A set of error    and

                                                  Page 9
GPIB IEEE488 MANUAL                                    COMMANDFORMAT

             transfer     message   codes   are   generated    at   the
             completion   of each CALL.
BASADR% --   is the address  of the interface       board being used.
             BASADR% may be 0 or 1, or actual     base address e.g. 768.




                               Page 10
GPIB IEEE488 MANUAL                                                          COMMANDFORMAT


3.1       IMAGE SPECIFIER
[S(p)     (xl .m.zl     - Input/Output          the number of Bytes to/from              the
                          variable       string         starting      at position     m and
                          ending    at position             z, with     parity   p (E=even,
                          O=odd, none).           If m, z and p are omitted              the
                          entire    string       will      be output      as in the string
                          variable$      as specified            by the image terminator
                           (x) without       parity.          If no terminator      is used
                          then the string           will      end with EOI.
[B(H/L)     (x),m,zl-      Input/Output        the specified        H/L number of Bytes
                           to or from the the specified                  integer       variable
                           array starting         at (m) array       location       and ending
                           at the (z) position.          The data transferred                 will
                           not change the the other                 half      of the 16 bit
                           integer,      only the byte specified               is changed on
                           an ENTER command. There is no change to the data
                           with     the OUTPUT command.                  [BL#,2,101           will
                           transfer        the     low byte       of position             2 thru
                           position      10 of the integer         variable       array.      Note,
                           the     number       of bytes       transferred            is nine,
                           position       two and ten are included.                     Transfer
                           termination            is   specified             by the         image
                           terminator.        It is the user's         responsibility              to
                           insure that the array size and the type of array
                           are correct.       No check is made on data types.                    The
                           values      of m and z may be reversed                  which will
                           transfer      data in the reverse             order.     If m and z
                           arethe     same then only one word is transferred.
                           If mand z are omittedthenthe                   integer      variable
                           is not considered          an array and the variable                    is
                           transferred       with or without         an EOI depending              on
                           the image terminator           (x).
[M(x).m,sl              - Input     / Output       the specified       number of 16 bit
                          words to / from the specified                 integer     variable
                           (array)     starting       with position         (m) and ending
                           with      position          (2).     The number        of words
                           transferred           is defined          as [z - m + 13.
                           Termination            is     specified         by the        image
                           terminator.        It is the user's         responsibility          to
                           insure that the array size and type of array are
                           correct.       No check is made on data types.                     The
                           values      of m and z may be reversed               which will
                           transfer      data in the reverse           order.     If m and z
                           are the same then only one word istransferred.
                           Ifm and s are omitted             then the integer         variable
                           is not considered            an array and the variable              is
                           transferredwith           or without     an EOI depending           on
                           the image terminator             (x).




                                            Page 11
GPIB    IEEE488    MANUAL                                            COMMAND   FORMAT



3.2      IMAGE    TERMINATORS


%(t-1                  The % image terminator       cancels both the line
                       feed and EOI terminators   during an OUTPUT command
                       execution.  During an INPUT command the entry will
                       terminate  when the array size or the input count
                       is reached   (m + count = z) or EOI. The line  feed
                       is entered as part of the array.
t(t)                    The # image terminator        cancels    the line     feed
                       only.   The data is terminated     by an EOI during the
                       INPUT or OUTPUT command.              The ENTER       also
                       terminates       if the last   item    in data   list     is
                       entered     which sets the FLAG% variable         with an
                       error    code of &H0020.

+(t1                  The + image terminator         cancels    the line    feedand
                       EOI during      an OUTPUT command only.           The INPUT
                       command is in the default          mode (INPUT terminates
                       with     EOI or last     entry).      If carriage     return
                       and line      feed   are part         of the data      being
                       transferred    they will    be sent as normal data.
(t)                    The transfer      terminator     t determines    the type
                       of transfer    the GPIB is to perform.     The following
                       transfer    codes are available.     If this   specifier
                       is not used the data transfer         is under program
                       control.
                       D    = Direct    Memory Access (DMA) to the specified
                              array.    The m and z specifiers          must be used
                              with    this    type     of transfer.        Structure
                              programming      must be used when this          mode is
                              active.    All variables     must be assigned before
                              theCALLis      executed    and no new variables        are
                              allowed     to be introduced     after   the execution
                              of the CALL statement.See              APPENDIX A for
                              details    on DMA transfers.




                                        Page 12
GPIB   IEEE488     MANUAL                                      COMMAND   FORMAT



3.3    FLAG      RETURN     CODES

        The following     codes are returned    in the FLAG% variable
upon completion    of the CALL statement.    The flag return codes are
grouped into 3 categories.



                             &HO000   =    TRANSFERRED OK
                             &HO020   =    NO INPUT EOI or LINE FEED
                             &HO030   =    DEVICE TIME OUT
                             &HO040   =    RESERVED
                             &HO050   =    DMA CHANNEL BUSY
                             &HO060   =    GPIB BUSY




                             &HO100   =    HARDWAREFAILURE
                             &HO200   =    TIME OUT ON DATA TRANSFER
                             &HO300   =    DEVICE NOT ACTIVE CONTROLLER
                             &HO400   =    IBM-PC ACTIVE CONTROLLER
                             &HO500   =    SYSTEM NOT INITIALIZED
                             &HO600   =    CONFIGURATION ERROR




                             &HlOOO        UNDEFINED COMMAND
                             &HllOO        SYNTAX ERROR IN COMMANDLINE
                             &H2000        UNDEFINED IMAGE
                             &H3000        DEVICE RANGE ERROR
                             &H3100        TOO MANY DEVICES
                             &H3200        TALKER/LISTENER CONFLICT
                             &H4000        COMMAND/DATA OUT OF RANGE
                             &HSOOO        COMMANDREQUIRES DEVICE
                             &H6000        UNDEFINED DEVICE CODE
                             &H7000        INPUT ARRAY NOT INITIALIZED
                             &H9000        IBM MUST BE TALKER or LISTENER




                                          Page 13
GPIB    IEEE488      MANUAL                                                USER    COMMANDS



4.0     USER      COMMANDS


         The following    user commands are available.        The string
variable    COHHAND$   is the same string    format as described    in the
IBM-PC BASIC manual.        A typical     command string    would    be as
follows.   Please note that all commands must be assigned        in string
form before    using the CALL statement.

       COMMAND$=      "OUTPUT 03.13.20,05[WD#,2,201"

This command string      would output   integer   words (16 bit)        two thru
and including    word 20 to device primary      address 03 with secondary
addresses     13 and 20 and also to device       primary      address     05. The
data transfer      uses the DMA (SEE APPENDIX A) mode for                    fast
access.    The device   codes must be in decimal       within     the range of
00 to 30. This allows      the user a maximum of 31 device            addresses
to choose from. However the maximum number of devices                 which may
physically    be connected    to the bus is 15.
The transfer      of String   data is limited     to single     element   arrays
and must be initialized.         The Maximum string     size is 255 bytes as
defined     in the IBM-PC Basic         manual.  The user may transfer           a
string   inside    of an array such as VAR$(2,3),       which would transfer
the string     data contents     of array element    (2,3). An error code of
&H7000 will     be returned    in the FLAG% variable       if the stringarray
element is not initialized.
EXAMPLES OF LEGAL STRING DATA TRANSFER:
xxx10    COMMANDS= "OUTPUT ll.Ol[$E+,9,22]"
xxx20    VAR$(2,8) ="THIS IS ARRAY ELEMENT 2,8"
xxx30    CALL IE488 (COMMANDS, VAR$(~,~),   FLG%, BRD%)
This command will             output    the bytes      "ARRAY ELEMENT" then        return     to
the user program.
xx100 VAR$(l) = "This is a single    array element"
xx110 CALL IE488 (COMMANDS, VAR$(l),     FLG%, BRD%)
This command will              output    the   bytes     ' single   ar"   then    return      to
the user program.
xx200 COMMANDS= "OUTPUT ll.Ol[$E,22,9]"
xx210 VAR$ = "THIS IS ALSO A SINGLE ARRAY TEST"
xx220 CALL IE488 (COMMANDS, VAR$, FLG%, BRD%)
This    example   will         output  the bytes         "NIS   A OSLA" i.e      backwards,
then    return  to the         user program.




                                           Page 14
GPIB    IEEE488    MANUAL                                             USER   COMMANDS




ABORT         - Terminate   the current   command issued by the          IBM. The
                    command executes      an IFC and resets       the IBM board
                    addressed.    DMA and Interrupts        are disabled.      The
                     IBM-PC is assumed to be the main system controller
                    and unconditionally       takes control     of the bus and
                    remains    the controller        in charge     until    PASCTL
                     command is executedNo        device   is necessary.
                       COMMANDSFORMAT:
                            "ABORT"

EXAMPLE:
xxx10    CMD$ ="ABORT"                                         'command format
xxx20    DEF SEG = &HCOOO                                      'driver    subroutine
xxx30    CALL 1~488 (CMD$, VAR%, FLG%, BRD%)                   'execute    command
xxx40    IF NOT FLG% THEN 100                                  'test   for errors    ?
xxx50    PRINT "ERROR *';HEx$(FLG%);" IN LINE            70"
xxx60    END
xx100    . . . . . . user    program   continues   .........
Note: The VAR% is used as a dummy variable     and no change occurs
to the contents   of VAR%. This variable     may be first   declared
inside the CALL statement at execution   for convenience.




                                         Page 15
GPIB IEEE488 MANUAL                                                USER COMMANDS


CLEAR      - Clear or Reset the selected       devices  or all devices.    If
             no device     is given    the GPIB is cleared.    The IBM PC
             must be the active     controller    or an error message will
             be generated.
             COMMANDSFORMAT:
                       "CLEAR devl,dev2     , . . . . . . devN"

EXAMPLE:
xx200   CMDS = "CLEAR 10,12,14"                  'command format
xx210   BRD% = 0                                 'board #
xx220   CALL IE488 (CMDS, VAR%, FLG%, BRD%)      'execute    command
xx230   IF NOT FLG% THEN 300                     'test   for errors  ?
xx240   PRINT "ERROR ";HEX$(FLG%);" IN LINE 220"
xx250   END
xx300       . . . . . . users   program   continues      .......




                                      Page 16
GPIB     IEEE488     MANUAL                                                        USER   COMMANDS



CONFIG         - Configure      the GPIB to the devices             specified    in the
                 command string.         The GPIB will          remain in this     state
                 until     reconfigured         by issuing       an ENTER or OUTPUT
                 command. The VAR% variable                is not changed       in this
                 command. If the TALK = devl is omitted                   the IBM-PC is
                 assumed to be the controller              only.   The user may enter
                 MTA to make the IBM-PC the talker                or enter the actual
                 device number using the TALK variable                name. The IBM-PC
                 may be addressed         as a listener       by using the name MLA
                 as the last       device     in the COMMAND string.          The FLAG%
                 variable     will    contain     the error code if any conflicts
                 occur.
                   COMMANDSFORMAT:
                   "CONPIG     (TALK=devl      /MTA,)LISTEN=devZ,dev3,...,(MLA)"



EXAMPLE:
Xx10     BRD% = 0
xx20     CMD$ = "CONFIG MTA,LISTEN = 10,12.34,5,7"
xx30     CALL IE488 (CMDS, VAR%, FLAG%, BRDB)
xx40     IF NOT FLAG% THEN 100
xx50     PRINT "ERROR ";HEX$(FLAG%);" IN LINE 30"
xx60     END
Xl00     . . . . . . . . program   continues      here    if   no errors           ..........
The above program    sets    the IBM-PC as a talker                                  and devices
10, 12.34, 5 and 7 as listeners.    The MTA variable                               is internally
interpreted  as the MAD set in the initialization                                     of the GPIB
using the SYSCON command.
xx20 CMD$ = "CONFIG TALK=6,LISTEN=12,14,5,MLA"
This CONFIG command sets device address 6 as a talker    and devices
12, 14, 5 and IBM-PC as listeners.     The string MTA is internally
interpreted  as MAD set in the initialization     of the GPIB using
the SYSCON command.




                                            Page 17
GPIB    IEEE488     MANUAL                                                USER    COHHANDS




ENTER        - Input    GPIB data from selected                talker     to specified
               string      array.      The string        array       must    have     been
               previously      dimensioned.      The FLAG% will           contain    error
               codes if an error            occurs.     The IBM - PC must have
               been previously        programmed as a listener.If              the IBM -
               PC is not the controller             then the ENTER command will
               return    error    code 9000H to inform the caller                that the
               IBM is not in the listen                mode. The command may be
               re-entered      until      the controller          in charge programs
               the IBM to listen.           Only one device           is allowed      with
               this command.
                  COMMANDSFORMAT:
                           "ENTER    dev.secad      [image]"




EXAMPLE:
xxx10    DVM$ = SPACES(25)                       'Dimension  array
xxx20    CMD$ = "ENTER 12[$,0,181"               'Command String
xxx30    CALL IE488 (CMD$, DVM$, FLG%, BRD%)
xxx40    IF NOT FLG% THEN 140                    'test  for errors                        ?
xxx50    PRINT "ERROR ";HEX$(FLG%);" IN LINE 30"
xxx60    END
xx140      . . . . . . . . user   program    continues         ........
The above program will      fill   DVM$ array elements     0 to 18, If all
is successful     the FLG% variable        will  contain    0. If an error
should occur the FLG% would be coded according           to the error.  The
data in DVM$ will    be incomplete    with error codes > = 100 hex.
DMA is ONLY allowed for WORD integer arrays less than                            32767,   (64
k bytes). See APPENDIX A for DMA DATA TRANSFERS.




                                            Page 18
GPIB    IEEE488    MANUAL                                                    USER   COMMANDS



EOI          - Sends      a data byte on the selected                     device      with EOI
               asserted.       The bus must have been programmed                        to talk
               before the          command is executed.           The variable         contains
               the    data       to be transferred.                  It    is the         users
               responsibility          to insure the data and type match. If a
               string       variable         is used         the     entire       string       is
               transferred          ending    with     an EOI. If Integer               mode is
               used      only one transfer            (byte)     or two (word) will            be
               executed.       The limit      parameters         are ignored.         Only one
               device     is allowed.       No device is generally               required       if
               the Talker         (IBM-PC) has been previously                programmed to
               talk bythecontroller                incharge.        If the IBM-PCis           not
               the controller            in charge        and not programmed                as a
               talker      then an error          code &h9000 will              be returned
               until    the controller         in charge programs the IBM-PC as
               a talker       before data is transferred.
                  COMMANDSFORMAT:
                          "EOI    dev   [image]    n




EXAMPLE:
xx100 VAR$ = "THIS IS A STRING"     'define last byte                           to transfer
xx110 CMD$ = "EOI 12[$1"            'define command
xx120 CALL IE488 (CMDS, VAR$, FLG%, BRD%)
xx130 IF NOT FLG% THEN 200
xx140 PRINT "ERROR ";HEx$(FLG%);" IN LINE 120"
xx150 END
xx200     . . . . . . . . . continue    users     program   ...........

This routine will  transfer  the STRING in the VAR$ variable  and
issue an EOI command with the last byte of the STRING to signal
the receiver on the bus that the data transfer will end.
The image specifiers                for the removal    of the line  feeds                     and
carriage returns     are          ignored  during   the command, no parity                     is
used.




                                          Page 19
GPIB,IEEE488     MANUAL                                        USER COMMANDS


LOCAL      - Set selected     device(s)   to the local   state.     If no device
             is     specified   then all    devices   on the bus are set to
             local.     The IBM-PC must be the active       controller     or an
             error message will       be generated.
               COMMANDSFORMAT:
                        "LOCAL devl,dev2    ,......devN"

EXAMPLE:
xx100 CMD$ = "LOCAL 10,11,12,14"           'define    command
xx120 CALL IE488 (CMD$, VAR%, FLG%, BRD%) 'execute     command
xx130 IF NOT FLG% THEN 200                 'test   for errors
xx140 PRINT "ERROR ";HEX$(FLG%);" IN LINE 120"
xx150 END
xx200   . . . . . . . continue   users   program    ........
The above program sets devices        10,11,12,14    to the local    state and
returns     to the user's    program.      The LOCKOUT command is very
similar   in structure   to the LOCAL command except the LOCKOUT does
not allow     the user to manually    select    the device to local.




                                     Page 20
GPIB   IEEE488    MANUAL                                         USER      COMMANDS



LOCKOUT - Local     Lockout     the specified      device.    If no device       is
          given      all   devices     on the bus will       be set to local
           lockout.      The IBM-PC must be the active           controller      or
          an error message will           be generated.    The devices      cannot
          be set to local          except    by the GPIB controller.           The
          FLG% variable        contain    the error code.
                 COMMANDSFORMAT:
                      "LOCKOUT   devl,dev2    ,.....devN"

This command is the same as the LOCAL command except                 the    user   is
NOT allowed to manually select the device to local.




                                    Page 21
GPIB     IEEE488     MANUAL                                                         USER    COMMANDS



OUTPUT         - Output      selected     string         to selected      listener(s)      on
                 GPIB.      The variable            will    contain     the data        to be
                 transferred.       The image specifier           will  contain      the data
                 type and terminators.             The FLAG% will      contain     the error
                 codes if an error             occurs.      Up to 14 devices           may be
                 accessed        in the      list.       If the IBM-PC          is not the
                 controller       in charge,       the IBM-PC must be programmed by
                 the controller        in charge before data is transferred.
                   COMMANDSFORMAT:
                              "OUTPUT    devl.secad,dev2...[image]"

EXAMPLE:
xx100     VAR$ = "THIS IS A TEST"            'define bytes to transfer
xx110     CMD$ = "OUTPUT 12,11[$El"          'define command
xx120     CALL IE488 (CMD$, VAR$, FLG%, BRD%)
xx130     IF NOT FLG% THEN 200
Xx140     PRINT "ERROR '. ,HEX$(FLG%);" IN LINE 120" : END
'This command line will    output the entire       string   "THIS IS A TEST"
'using   even parity and ending with a EOI code to show the end of
'the string.  The FLG% variable     will     have any error   transfer codes
'if an error was detected     during     transfer.
xx200       . . . . . . . . . continue   users      program           ...........
xx400 DIM MYDATA%(2,400)                                         'my integer  data          array
xx410 CMD$ = "OUTPUT 12,11[BL,0,1001"                            'setup image
 ' output data in 2,0 from element 0 to 100 low byte                                 only
xx420 CALL IE488 (CMD$, MYDATA%(2,0), FLG%, BRD%)
xx430IFNOT    FLG% THEN 500
xx440   PRINT~~ERROR ";HEx$(FLG%);" IN 420" : END
                . . . . . . continue users program.......
xx500     'setup for DMA transfer
xx510     CMD$ = "OUTPUT 12,10,15[WD,0,81921"                            'DECIMAL ONLY
xx520     DIM DMAPTR%(2)
xx530     DMAPTR%(O) = DATASEGMENT%              'setup                data   segment
xx540     MDAPTR%(l) = DATAOFFSET%               'setup                data   offset
 ' transfer       data in DMA mode
xx550 CALL IE488 (CMD$, DMAPTR%(O), FLG%, BRD% )
xx560 IF NOT FLG% THEN 600
xx570 PRINT "ERROR ";HEX$(FLG%) ;" IN LINE 550 ' : END
'If   error      code in DMA is not &H50 or 0 then issue                                    an ABORT
command to clear            interface  device.
600         . . . . . . . . user program continues ......




                                            Page 22
GPIB     IEEE488      MANUAL                                                  USER   COMMANDS


PARPOL          -    Reads the 8 Status Bit messages for the devices             on the
                    GPIB which       have    been set    for      parallel          poll
                    configuration.     The VAR$ (string)     will    contain       the 8
                    bit message. The IBM-PC must be the active             controller
                    or an error will     occur.
                    COMMANDSFORMAT:
                                              "PARPOL"




PROGRAMMINGEXAMPLE:
100    VAR$ = CHR$(&HO)     'Parallel Poll return                      byte    initialized
110    CMD$ = "PARPOL"
120    CALL IE488 (CMD$, VAR$, FLG%, BRD%)
130    IF NOT FLG% THEN 200
'if    error,       the   flag   is printed       out.
140 PRINT "ERROR ";HEX$(FLG%);"                    IN LINE 120"       : END
200 'process          parallel  poll     return          byte   code in VAR$
                         ..........
                         ..........

This command responds as programmed in the parallel                              configuration
command. The VAR$ will      contain    the eight bit poll                       response.      See
the Parallel     Poll Configure     command (PPCONF) for                      the details       of
the bit pattern.




                                              Page 23
GPIB     IEEE488     MANUAL                                                          USER   COHHANDS



PASCTL        - The Active      control      of the GPIB is transferred         to the
                 specified     device      address    and the IBM-PC becomes the
                 standard   listener/talker         but not controller.      The IBM -
                PC must be the active              controller      or an error    will
                occur.     The IBM-PC          is not allowed         to Talk    until
                programmed by the controller               in charge.
                    COMMANDSFORMAT:
                             "PASCTL      dev"


EXAMPLE:
100    CMD$ = "PASCTL 6"
110    CALL IEE488 (CMD$, X%, FLG%, BRD%)
120    IF NOT FLG% THEN 200
130    PRINT "ERROR ";HEX$(FLG%);" IN LINE 110"                              : END
xx200       . . . . . . . . . . . . . . . continue      users      program    ..................
                      The IBM-PC    is inactive     at this    point  and no
                      controller  commands are allowed.   To receive  control
                      back the command RXCTL must be used as follows.
xx300 CMD$ = "RXCTL"                                                          'define command
xx310VAR%= 0                                                                 'set VAR$ to false
xx320 WHILE NOT VAR%                          'control     test loop
xx330 CALL IE488 (CMD$, VAR%, FLG%, BRD%)     'test    for control
xx340 IF NOT FLG% THEN 360
~~350 PRINT "ERROR ";HEx$(FLG%);" IN LINE 330" : END
xx360       .....     user    continues          program        ......
                                ......
                                ......
xx500 WEND                                      'Last test
xx510  . . . . . WHEN IBM IS IN CONTROL PROGRAMCONTINUES HERE . . . .
xxxx                            ......
Note:   It is the responsibility                          of the controller          in charge         to
program     the IBM-PC to the                        talk    mode before         the transfer          of
control   is executed.




                                                 Page 24
GPIB     IEEE488     MANUAL                                                  USER   COMMANDS


PPCONF        - Sets up the desired     parallel  poll  bus    configuration
                for the user.     The VAR$ (string)    contains      the poll
                sequence (00-FF). IBM-PC must be the active       controller
                or an error will    occur.
                COMMANDSFORMAT:
                            "PPCONP    dev"

                   The PARALLEL POLL function              provides      a means of sending
                   one bit of status           information        if the controller            is
                   requesting       the response.       Unlike      SERIAL POLL, which is
                   initiated         by the device,            the parallel         poll       is
                   initiated       by the controller           in charge.    There are two
                   methods      to configure         a device        for parallel        poll,
                   remote        and     local      configurations.              In remote
                   configuration        (PPI), he controller            uses the following
                   bit codes to configure            the device addressed.




                   Were Pn = the device         bit code 0 to 7 for PPRl to PPR8
                   and S is the Send of the Parallel             Poll   Response,  S =
                   response.    Adevice     may be configured       so that it never
                   responds      to a parallel          poll.   PPD (&H70)     is the
                   parallel    poll   disable    command, which places the device
                   in the parallel       poll    idle    state (PPIS). The value of
                   the individual        status     (IST) can be set by bit B4 in
                   the VAR$ byte.
                                   B4 = 0        IST = Parallel       Poll   Flag
                                   B4 = 1        IST = SRQS
EXAMPLE:
110    BRD% = 0
120    A$ = CHR$(&HA)       'parallel configure bit code for                          dev 14
130    CMD$ = "PPCONF 14"
140    CALL IE488 (CMD$, A$, FLG%, BRD%)
150    IF NOT FLG% THEN 170
160    PRINT "ERROR ";HEX$ (FLG~);~' IN LINE 140" : END
170 . . . . . . continue        program       ..........
                   In the local        configuration       (PP2),      the specifications
                   are made from the device.            Writing      0 11 U S P3 P2 Pl to
                   the VAR$ configures         the controller        for a Parallel       Poll
                   Response-When          U = 0, this command is the LPE (local
                   poll    enable)     local     message. When U = 1, the TLC does
                   not respond      to the poll.       The TLC is configured           in the
                   S bit.   The PPRn will        be sent true onlyifthe            Parallel
                   Poll     Flag    (IST individual           status      local     message)
                   matches this bit.         During normal operation,             The value
                   of VAR$ on entrywill            set or clear       PPF (IST if B4 = 0)
                   according     to the device's        need for service.


                                              Page 25
GPIB     IEEE488    MANUAL                                      USER   COMMANDS



PPUNCF        - Resets the parallel      poll   type configuration      of the
                selected    device.    The IBM-PC     must be the active
                controller    or an error     will   occur.     The specified
                device will   not respond to a parallel      poll command.
                   COMMANDSFORMAT:
                        "PPUNCF   dev"




PROGRAMMINGEXAMPLE:
100    BRD% = 0
110    A$ = CHR$(LHA)
120    CMD$ = "PPUNCF 14"
130    CALL IE488 ( CMD$, A$, FLG%, BRD% )
140    IF NOT FLG% THEN 300
' error is processed  here
150 PRINT "ERROR ";HEX$(FLG%);"              IN LINE 130"
160 END
300 'program continues   here if            ok
310     .....................
          ...................

This routine   will   only disable          device 14 to respond to a Parallel
Poll    command.    If no device            code is used the entire     bus is
disabled.




                                         Page 26
GPIB     IEEE488     MANUAL                                                     USER   COMMANDS



REMOTE       -      Sets the selected     devices      or device on the GPIB to go
                   into    the remote position.          The IBM must be theactive
                   controller     or an error     will     occur. If an erroroccurs
                   the FLAG% will     contain    the error code.
                   COMMANDSFORMAT:
                              "REMOTE    devl,dev2,.......devN"


EXAMPLE:
xx100     VAR% = 0                          'dummy variable not used
xx120     BRD% = 0                          'define board number
xx130     CMD$ = "REMOTE 10,12,14"          'define command
xx140     CALL IE488 (CMD$, VARS, FLG%, BRD%)
xx150     IF NOT FLG% THEN 200
xx160     PRINT "ERROR ";HEX$(FLG%) i" IN LINE 140"
xx170     END

xx200       . . . . . . . . . continue   users       program      ...........

This command is the counterpart      to the       LOCAL command. Devices
10,12,14  are  set  in the remote     state     and ready for a command
sequence. The error   flag FLG% will      contain   any error codes if an
error was detected.




                                             Page 27
GPIB   IEEE488       UANUAL                                                  USER    COMMANDS



REQUEST          - The GPIB            may    request       service      from    the active
                  controller          on the bus by executing               the "REQUEST n"
                  command. This command has two modes. the first                           when
                  'In" is omitted            which      may be executed         any time      to
                  monitor       the status         of the IBM interface            board.   The
                  VAR% (INTEGER) contains                 the status     bits   for the GPIB
                  board      addressed,          [Hi Byte         I = on board       hardware
                  registers,        [Lo Byte] contains           the IBM GPIB serial       poll
                  register        status     byte.     The second mode when n is any
                  number (O-31).            This allows        the user to set a serial
                  poll     status word to the controller                in charge.      The Low
                  byte of the variable               will    contain   the STATUS byte to
                  be transferred           to the controller.
 msb         GPIB ON BOARD                              SERIAL POLL REGISTER       lsb
 __-_______------_



◦ Jabse Service Manual Search 2024 ◦ Jabse PravopisonTap.bg ◦ Other service manual resources online : FixyaeServiceinfo