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