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.
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).
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
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
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
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.
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