RS232 Communication description for multichannel recorders

Communication with Studer A820 and A827 multichannel recorders

Contents

  1. General communication description
  2. Additional notes on communication
  3. Command set tables
  4. Tape transport control commands
  5. Audio control commands
  6. Machine commands
  7. Other commands
  8. List of known software updates

1. General communication description

Once you managed to get a RS-232 connection between computer and tape recorder working, you can start the communication from within your terminal program. The communication between the computer (controller) and the tape recorder is a master-slave protocol. The controller is the master and takes initiative in the communication. The controller sends commands to the recorder, the recorder will respond to these commands. Responses come in the form of information in your terminal screen (e.g. after command SD?, show software date) or in the form of an action (e.g. after command PLY the recorder will start playing).

The communication between the tape recorder and the computer is implemented through ASCII coded strings of variable length. A command is always composed of the following ASCII characters: The capital characters A thru Z, the question mark, a space, digits 0 thru 9. You can simply enter these characters in your terminal screen using your keyboard. Additionally, there are 5 special control characters:


    CR    - Character code 0D hex, a Carriage Return sign.
    LF    - Character code 0A hex, a Line Feed sign.
    CX    - Character code 18 hex, a reset sign (use Ctrl-x in a terminal).
    XOFF  - Character code 13 hex, meaning transmission off.
    XON   - Character code 11 hex, meaning transmission on.

When working with a terminal program you can send a CR sign by pressing the Enter key. In some terminal programs pressing Ctrl-m will work too. The recorder will mostly respond with signs CR and LF. In your terminal screen you will see the cursor move to the beginning of the next line, indicating it received a carriage return and a line feed.
Sign CX will reset the communication with the recorder to initial state. Depending on your terminal program, press Ctrl-x to send this sign (or an alternative from your terminal program).
Signs XON and XOFF are meant for software flow control to prevent communication going too fast causing overflows. Using a terminal program you will hardly ever need these signs. Modern computers are fast enough to handle incoming data from the recorder, and the recorder is fast enough to handle your typing speed. Should you feel inclined to prove otherwise, most terminal programs allow you to send XOFF by pressing Ctrl-s and XON by pressing Ctrl-q.

All commands have a length of max. 3 characters and are usually terminated by a ‘CR'. Commands with parameters will vary in length. The additional characters (parameters) are inserted between the command and ‘CR'. The parameters are separated by blanks or colons. There are a few exceptions: commands that do not have a terminating character. Please refer to the individual command description for the syntax of each command. The recorder uses the sequence 'CR LF' as an acknowledge message or to terminate an answer string.

An example of a command: WNF 0400 CR
In this example WNF is the command (for controlled wind forward) and 0400 is a parameter, indicating 4 times nominal speed. In your terminal screen you type WNF 0400 and press the Enter key to send the terminating CR sign.
The recorder answers with a CR LF sequence that moves the cursor in your terminal screen to the beginning of the next line, and it will start to wind forward at the chosen speed.

Not all commands listed below work with all recorders. If the recorder receives a command that it cannot handle it will respond with a question mark.
When using a terminal program, the recorders’ serial interface can operate in 'echo mode’. In this mode, a copy of each incoming character is echoed back to the controller/computer, and a prompt sign '>' is sent after the answer string. Echo mode on/off can be set via the recorder menu.

2. Additional notes on communication

3. Command set tables

The command set available for a particular tape deck depends on model, version and the software version of the tape deck. Whereas model and version will be known, the actual software version will be shown as a 4-digit number in the display of the tape recorder immediately after switching on. Number 4690 means it has the software version released in week 46 of year 1990. The software may have been updated in the course of the recorders lifetime.
Depending on your particular machine, commands listed may or may not be available to your machine. In the latter case you will receive an error message '?'. Additionally, your model may support commands not listed here. Some experimenting may prove useful.

Machine types are given as 3 letter codes: 820 for A820MCH and 827 for A827MCH

Commands may have required and optional parts, as shown in the input and output columns. Required arguments are shown between square brackets, e.g. '[ ,CR]'. Optional arguments are shown between parenthesis like this: '( 0 <= xxxx <= 5FFFh )'.

Availability of a command is shown as a dash (not implemented) or an 'x' (implemented in at least one version of this machine family).

4. Tape transport control commands

Command    820 827   Input                  Output             Meaning

STP         x   x    STP [ ,CR]             CR LF              Stop

EDI         x   x    EDI [ ,CR]             CR LF              Edit

PLY         x   x    PLY [ ,CR]             CR LF              Play

RPL         x   x    RPL [ ,CR]             CR LF              Reversed play

REC         x   x    REC [ ,CR]             CR LF              Record

FWD         x   x    FWD [ ,CR]             CR LF              Fast forward

RWD         x   x    RWD [ ,CR]             CR LF              Fast rewind

WNR speed   x   -    WNR [ ] nnnn           CR LF              Controlled rewind
            -   x    WNR [ ] nnnn [ ,CR]    CR LF              0000h ≤ nnnn ≤ 5FFFh

WNF speed   x   -    WNF [ ] nnnn           CR LF              Controlled fast forward
            -   x    WNF [ ] nnnn [ ,CR]    CR LF              0000h ≤ nnnn ≤ 5FFFh

SSA         x   x    SSA [ ,CR]             CR LF              Set play speed A (3.75 ips)

SSB         x   x    SSB [ ,CR]             CR LF              Set play speed B (7.50 ips)

SSC         x   x    SSC [ ,CR]             CR LF              Set play speed C (15 ips)

SSD         x   x    SSD [ ,CR]             CR LF              Set play speed D (30 ips)

SVP         x   x    SVP [ ] nnnnnn [ ,CR]  CR LF              Set varispeed parameter, refers to
                                                               nominal play speed. Valid values
                                                               00A5FE ≤ nnnnnn ≤ 018ACE
                                                               Nominal fixed speed is 010000

NS?         x   x    NS? [ ,CR]             nn CR LF           Current nominal speed is?
                                                               nn = 3.75, 7.5, 15 or 30

VS?         x   x    VS? [ ,CR]             nnnnnn CR LF       Current varispeed is?
                                                               Values 00A5FE ≤ nnnnnn ≤ 018ACE
                                                               Nominal fixed speed is 010000

SVS         x   x    SVS [ ,CR]             CR LF              Set varispeed on

CVS         x   x    CVS [ ,CR]             CR LF              Set varispeed off

VEN         x   x    VEN [ ,CR]             CR LF              External varispeed on

VEF         x   x    VEF [ ,CR]             CR LF              External varispeed off

FEN         x   x    FEN [ ,CR]             CR LF              Enable fader

FEF         x   x    FEF [ ,CR]             CR LF              Disable fader

EDT         x   x    EDT [ ,CR]             CR LF              Lifter mode on, tape on heads

LFT         x   x    LFT [ ,CR]             CR LF              Lifter mode off

LOC addr    x   -    LOC (-)hh:mm:ss:nn     CR LF              Locate to address hh:mm:ss
            -   x    LOC (-)hh:mm:ss:n CR   CR LF              n = decimals

LMV addr    x   -    LMV xxxxxxxx           CR LF              Locate move roll (4 bytes hex)
            -   x    LMV xxxxxxxx CR        CR LF

ZLO         x   x    ZLO [ ,CR]             CR LF              Locate to zero

MV?         1   1    MV? [ ,CR]             xx xx xx xx CR LF  Move roll counter is?

STM addr    x   -    STM (-)hh:mm:ss:d      CR LF              Set timer to address
            -   x    STM (-)hh:mm:ss:d CR   CR LF

RTI         x   x    RTI [ ,CR]             CR LF              Reset timer

TM?         x   x    TM? [ ,CR]             hh:mm:ss:d CR LF   Timer is?

DST         x   x    DST [ ,CR]             CR LF              Enter status display mode
                                            nn                 hh:mm:ss:x..nn  (exit this mode with CX)
                                                               status..achieved  nn=status of ST?

ST?         x   x    ST? [ ,CR]             nn CR LF           Tape deck status is?
            -   -                           00=tape out
            x   x                           01=tape out
            x   x                           81=tape out achieved
            -   -                           02=tape dump
            x   x                           02=stop
            -   -                           82=tape dump achieved
            x   x                           82=stop achieved
            x   x                           03=rewind
            x   x                           83=rewind achieved
            -   -                           04=stop
            x   x                           04=forward
            -   -                           84=stop achieved
            x   x                           84=forward achieved
            x   x                           05=play
            x   x                           85=play achieved
            -   -                           06=rewind achieved
            x   x                           86=play vari achieved
            x   -                           07=play int ref
            x   -                           87=play int ref achieved
            -   -                           08=forward
            x   x                           08=play ext ref
            -   -                           88=forward achieved
            x   x                           88=play ext ref achieved
            x   x                           09=rec or rehearse rec
            x   x                           89=rec/rehearse rec achieved
            -   -                           0A=play
            -   -                           8A=play achieved
            x   x                           0B=edit
            x   x                           8B=edit achieved
            -   -                           0C=record
            -   -                           0C=play fader
            -   -                           8C=record achieved
            -   -                           8C=play fader achieved
            -   -                           10=locate wind
            -   -                           12=locate play
            x   x                           25=reverse play
            x   x                           A5=reverse play achieved
            x   x                           26=reverse play vari
            x   x                           A6=reverse play vari achieved
            x   x                           40=shuttle backward
            x   x                           C0=shuttle backward achieved
            x   x                           41=shuttle forward
            x   x                           C1=shuttle forward achieved
            x   x                           42=locate rewind
            x   x                           C2=locate rewind achieved
            x   x                           43=locate forward
            x   x                           C3=locate forward achieved
            -   -                           45=locate play forward
            -   -                           C5=locate play forward achieved
            x   x                           46=cueing reverse
            x   x                           C6=cueing reverse achieved
            x   x                           47=cueing forward
            x   x                           C7=cueing forward achieved
            -   -                           48=position play reversed
            -   -                           C8=position play rev achieved
            x   x                           4A=rewind controlled
            x   x                           CA=rewind controlled achieved
            x   x                           4B=wind forward controlled
            x   x                           CB=wind forward controlled achieved
            -   x                           4C=rewind sht dev
            -   x                           CC=rewind sht dev achieved
            -   x                           4D=wind forward sht dev
            -   x                           CD=wind forward sht dev achieved
            x   x                           59=tape dump
            x   x                           D9=tape dump achieved
            x   x                           5A=cut
            x   x                           DA=cut achieved
            x   x                           DD=burn in achieved

TP?         x   x    TP? [ ,CR]             aabbccddeeff       Tape tension parameter is?
                                            gghhiijjkkll 
                                            mmnnooppqqrr CR LF

                                            tape width 1":
                                            aa: tension play l
                                            bb: tension play r
                                            cc: tension wind
                                            dd: tension edit
                                            ee: tension rev play l
                                            ff: tension rev play r

                                            tape width 2":
                                            gg: tension play l
                                            hh: tension play r
                                            ii: tension wind
                                            jj: tension edit
                                            kk: tension rev play l
                                            ll: tension rev play r

                                            tape width adopted:
                                            mm: tension play l
                                            nn: tension play r
                                            oo: tension wind
                                            pp: tension edit
                                            qq: tension rev play l
                                            rr: tension rev play r


DCD         x   x    DCD [ ,CR]             CR LF              Display capstan deviation
                                            nnnn               Deviation
                                            CAP nnnn           8800h = nom. 9.525 cm/s
                                                               9000h = nom. 19.05 cm/s
                                                               A000h = nom. 38.1  cm/s
                                                               C000h = nom. 76.2  cm/s
                                                               0800h = nom. 3.75  ips
                                                               1000h = nom. 7.5   ips
                                                               2000h = nom. 15    ips
                                                               4000h = nom. 30    ips
                                                               Exit this mode with CX

5. Audio control commands

Command    820 827   Input                  Output             Meaning

SMN         x   x    SMN [ ,CR]             CR LF              Set mono (only with m/s switch)

SST         x   x    SST [ ,CR]             CR LF              Set stereo (only with m/s switch)

SNB         x   x    SNB [ ,CR]             CR LF              Set NAB equalization

SCR         x   x    SCR [ ,CR]             CR LF              Set CCIR equalization

EQ?         x   x    EQ? [ ,CR]             xx CR LF           Equalization norm is?
                                            xx=00 for CCIR
                                            xx=01 for NAB

STA         x   x    STA [ ,CR]             CR LF              Set tape sort A

STB         x   x    STB [ ,CR]             CR LF              Set tape sort B

TS?         x   x    TS? [ ,CR]             xx CR LF           Tape sort is?
                                            xx=00 for tape A
                                            xx=01 for tape B

MSN         x   x    MSN [ ,CR]             CR LF              Master safe on

MSF         x   x    MSF [ ,CR]             CR LF              Master safe off

SRH         x   x    SRH [ ,CR]             CR LF              Rehearsal mode on, only
                                                               with dropin/out delay on

CRH         x   x    CRH [ ,CR]             CR LF              Rehears mode off

DDN         x   x    DDN [ ,CR]             CR LF              Drop in/out delay on

DDF         x   x    DDF [ ,CR]             CR LF              Drop in/out delay off

AA?         x   x    AA? [ ,CR]             aabbccdd CR LF     Channel 1..8 status is?
            x   x                           aa: 0 = safe
            x   x                               1 = ready/rec
            x   x                           bb: 0 = tape       MSB(xx) : channel 8
            x   x                               1 = input      LSB(xx) : channel 1
            x   x                           cc: 0 = rep
            x   x                               1 = sync
            x   x                           dd: 0 = demute     xx = aa .. dd
            x   x                               1 = mute

AB?         x   x    AB? [ ,CR]             aabbccdd CR LF     Channel 9..16 status is?
            x   x                           aa: 0 = safe
            x   x                               1 = ready/rec
            x   x                           bb: 0 = tape       MSB(xx) : channel 16
            x   x                               1 = input      LSB(xx) : channel 9
            x   x                           cc: 0 = rep
            x   x                               1 = sync
            x   x                           dd: 0 = demute     xx = aa .. dd
            x   x                               1 = mute

AC?         x   x    AC? [ ,CR]             aabbccdd CR LF     Channel 17..24 status is?
            x   x                           aa: 0 = safe
            x   x                               1 = ready/rec
            x   x                           bb: 0 = tape       MSB(xx) : channel 24
            x   x                               1 = input      LSB(xx) : channel 17
            x   x                           cc: 0 = rep
            x   x                               1 = sync
            x   x                           dd: 0 = demute     xx = aa .. dd
            x   x                               1 = mute

REA i       x   x    REA i [ ,CR]           CR LF              Set channel i to ready
                     i = 01 - 18h
                     0FFh for all channels

SAF i       x   x    SAF i [ ,CR]           CR LF              Set channel i to safe
                     i = 01 - 18h
                     0FFh for all channels

INP i       x   x    INP i [ ,CR]           CR LF              Set channel i to input
                     i = 01 - 18h
                     0FFh for all channels

SYN i       x   x    SYN i [ ,CR]           CR LF              Set channel i to synchronize
                     i = 01 - 18h
                     0FFh for all channels

REP i       x   x    REP i [ ,CR]           CR LF              Set channel i to reproduce
                     i = 01 - 18h
                     0FFh for all channels

MTN i       x   x    MTN i [ ,CR]           CR LF              Mute channel i
                     i = 01 - 18h
                     0FFh for all channels

MTF i       x   x    MTF i [ ,CR]           CR LF              Channel i mute off
                     i = 01 - 18h
                     0FFh for all channels

CHN i       x   x    CHN i [ ,CR]           CR LF              Channel i on
                     i = 01 - 18h
                     0FFh for all channels

CHF i       x   x    CHF i [ ,CR]           CR LF              Channel i off
                     i = 01 - 18h
                     0FFh for all channels

MU?         x   x    MU? [ ,CR]           CR LF                Mute status is?
                                                               b0/b1: 1 = mute on

CC?         x   -    CC? [ ,CR]           aa CR LF             Channel configuration is?
                                                               aa=no. of channels in hex

6. Machine mode commands

Command    820 827   Input                  Output             Meaning

LCD         x   x    LCD [ ,CR]             CR LF              Local keyboard disabled

LCE         x   x    LCE [ ,CR]             CR LF              Local keyboard enabled

RMD         x   x    RMD [ ,CR]             CR LF              Remote keyboard disabled

RME         x   x    RME [ ,CR]             CR LF              Remote keyboard enabled

SBA addr    x   x    SBA xxxx[ ,CR]         CR LF              Set bus address (8280-FFFF)

BA?         x   x    BA? [ ,CR]             xxxx CR LF         Bus address is? (8280-FFFF)

SD?         x   x    SD? [ ,CR]             DD.MM.YY           Software date is?
                                                               00.WW.YY           DD.MM.YY = sw not released
                                                               00.WW.YY = week/year sw released

MK?         x   x    MK? [ ,CR]             aa CR LF           Mark no. of software is?
                                                               aa: 00,01,? = mark I
                                                               aa: 02 = mark II

MT?         x   x    MT? [ ,CR]             aa CR LF           Machine type is?
                                                               aa: 01=A820, 02=A812, 
                                                               03=A820MCH, 04=A827MCH,
                                                               05=A807, 06=A816, 07=A810

7. Other commands

The microprocessor and peripherals that control your tape recorder are from Motorola's A6800 family of microprocessor chips. Some of the commands and formats known from this Motorola CPU-family made their way to the tape recorders. Especially the A810 supports a number of these commands, but other models and/or software versions seem to support some of these as well.
These commands allow you to access the recorders RAM and therefore can be used for backing up, restoring and documenting audio settings.


Command       Input                Output                 Meaning

D (display)   D start end CR       Formatted hex dump     Display RAM content from start adress (in hex)
                                                          to end address (in hex). See example below.

P (punch)     P start end CR       Exorcisor format dump  Write RAM content starting at (address in hex)
                                                          to end address (in hex) in Motorola Exorcisor 
                                                          format to the terminal. See example below.

L (load)      L data CR            CR LF                  Load RAM-data in Exorcisor format to recorder.

S (save)      S CR                 data CR LF             Save RAM-data in Exorcisor format to computer.

UAP           UAP addr value CR    CR LF                  Update audio parameter at hex address with
                                                          hex value.

Commands D and P can be used to access the content of RAM. The parameter range, where all settings are stored, starts at decimal address 264 (=108 in hex). So for both D and P the starting address should be 108. The length parameter must be given in hexadecimal. In order to access the full parameter range it should be at least 26F. With an A810 connected sending command D 108 26F CR produces this output:


      0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  
0100 01 00 02 60 FF FE BF FF 82 70 90 AB 26 90 30 BB  ...`..?....+&.0;
0110 00 00 00 00 66 39 80 87 30 A0 3E 75 62 50 96 87  .....9..0 >..P..
0120 66 39 80 6D 30 9A 2A B1 62 A0 96 61 66 30 6A 44  .9..0.*1. ...0.D
0130 30 54 46 BA 62 50 88 44 66 30 6A 61 30 39 46 E0  0TF:.P.D.0..09F`
0140 62 A0 88 61 66 38 48 26 30 1B 50 DE 62 50 60 26  . ...8H&0.P^.P`&
0150 82 70 90 AB 26 90 30 BB 00 00 00 00 66 39 80 87  ...+&.0;.....9..
0160 30 A0 3E 75 62 50 96 87 66 39 80 6D 30 9A 2A B1  0 >..P...9..0.*1
0170 62 A0 96 61 66 30 6A 44 30 54 46 BA 62 50 88 44  . ...0.D0TF:.P.D
0180 66 30 6A 61 30 39 46 E0 62 A0 88 61 66 38 48 26  .0..09F`. ...8H&
0190 30 1B 50 DE 62 50 60 26 82 70 90 AB 26 90 30 BB  0.P^.P`&...+&.0;
01A0 00 00 00 00 66 39 80 87 30 A0 3E 75 62 50 96 87  .....9..0 >..P..
01B0 66 39 80 6D 30 9A 2A B1 62 A0 96 61 66 30 6A 44  .9..0.*1. ...0.D
01C0 30 54 46 BA 62 50 88 44 66 30 6A 61 30 39 46 E0  0TF:.P.D.0..09F`
01D0 62 A0 88 61 66 38 48 26 30 1B 50 DE 62 50 60 26  . ...8H&0.P^.P`&
01E0 82 70 90 AB 26 90 30 BB 00 00 00 00 66 39 80 87  ...+&.0;.....9..
01F0 30 A0 3E 75 62 50 96 87 66 39 80 6D 30 9A 2A B1  0 >..P...9..0.*1

      0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  
0200 62 A0 96 61 66 30 6A 44 30 54 46 BA 62 50 88 44  . ...0.D0TF:.P.D
0210 66 30 6A 61 30 39 46 E0 62 A0 88 61 66 38 48 26  .0..09F`. ...8H&
0220 30 1B 50 DE 62 50 60 26 49 00 00 00 00 00 00 00  0.P^.P`&I.......
0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0260 00 00 00 00 00 00 00 00 00 00 00 00 00 94 7E 00  ................

This is a hexadecimal dump of the RAM-area that contains all audio settings. Each setting (parameter) occupies one byte, hence has a value between 00h and FFh (between 0 and 255 in decimal). Addresses of audio parameters can be calculated using this formula:


RADR  = ARAM-12 + IDAC + ISYNC*8 + CCAB*12 + SPEED*24 + CHNL*72 + TAPE*144

RADR  = Relative address in decimal, an offset from absolute address 108 hex.
ARAM  = Absolute addres in RAM (in hex 108, in decimal 264).
IDAC  = 0 for level repro,  1 for treble repro,  2 for bass repro,  3 for equalization repro,
        4 for level record, 5 for treble record, 6 for bias record, 7 for equalization record,
        8 for erase current level, 9 for skimming bias level (8 and 9 for A820 only)
ISYNC = 0 for repro mode, 1 for sync mode.
CCAB  = Equalization, 0 for CCIR, 1 for NAB (at 3.75 ips always NAB, at 30 ips always CCIR).
SPEED = 0 for 3.75 ips, 1 for 7.5 ips, 2 for 15 ips, 3 for 30 ips.
CHNL  = 0 for channel 1, 1 for channel 2.
TAPE  = 0 for tape sort A, 1 for tape sort B (A810: 1 for A, 0 for B).

With an A810 connected sending command P 108 26F CR produces this output:


S0* A810 *
S11B0108827090AB269030BB000000006639808730A03E756250968715
S11B01206639806D309A2AB162A0966166306A44305446BA6250884453
S11B013866306A61303946E062A0886166384826301B50DE6250602613
S11B0150827090AB269030BB000000006639808730A03E7562509687CD
S11B01686639806D309A2AB162A0966166306A44305446BA625088440B
S11B018066306A61303946E062A0886166384826301B50DE62506026CB
S11B0198827090AB269030BB000000006639808730A03E756250968785
S11B01B06639806D309A2AB162A0966166306A44305446BA62508844C3
S11B01C866306A61303946E062A0886166384826301B50DE6250602683
S11B01E0827090AB269030BB000000006639808730A03E75625096873D
S11B01F86639806D309A2AB162A0966166306A44305446BA625088447B
S11B021066306A61303946E062A0886166384826301B50DE625060263A
S11B022849000000000000000000000000000000000000000000000071
S11B0240000000000000000000000000000000000000000000000000A2
S11B0258000000000000000000000000000000000000000000947E0078
S9030000FC

This is a dump of all the parameter values in the requested RAM-area in Exorcisor format. This format is useful for load and save operations of the RAM-area that contains the audio setting parameters, because Exorcisor format contains checksums per record.

See Wikipedia for a description of Exorcisor format.

8. List of known machine software updates


21.06.1989:  Status RPL (reverse play) redefined from OAh/8Ah to 25h/OA5h; 
             Status RPV (rev play varispeed), RPI (rev play vspd int ref) and 
             RPE (rev play vspd ext ref) new for A812 and A820
09.08.1989:  Command RPL implemented for A820mch and A827mch
27.11.1989:  Command SSA (set speed 3.75ips) new implemented
06.12.1989:  SVS, CVS, VS? and SVP new implemented
16.02.1990:  General remarks to control x, xon, xoff protocol
16.08.1990:  Status record redefined for command DST, but not for command ST?:
             from 09h resp. 89h to 2 others, 09h resp. 89h for record indication A
             and 0Ah resp. 8Ah for record indication B
18.10.1990:  'Locate with record preset' has the same philosophy in status
             display as 'Locate with play preset'
12.11.1990:  Audio channel setting: Number range changed from dec to hex format
             Previously 01..09,10..19,20..24, now 01h..18h 
27.08.1992:  STM description corrected (dms: from xxx to x)
28.02.1997:  TS? (tape sort A or B) and EQ? (ccir or nab) implemented