SYM High Speed Tape
Gene Zumchak
The SYM has two different tape formats, the low speed or KIM format, and its own high speed format that can handle 185 bytes per second, which is not bad at all… if it works. The high speed format has given problems from the beginning. The new SYM monitor, version 1.1 was changed significantly in the tape routines to overcome the early problems. Also, newer SYMs use a different bias network on the tape input comparator and a fatter (.22 mfd) input coupling capacitor (C16). (Synertek advises that a few users have improved their tape reads by reducing C16, a typical value being .05 mfd.)
If you have an early SYM and still use the original version 1.0 monitor you won't be able to benefit from this discussion. I recommend very strongly that you obtain the new monitor. It's available from SYM Users Group, P.O. Box 315, Chico, CA 95927, for $16, and includes the resistor mod kit.
Nevertheless, even if you have the hardware mods and the new monitor, there is no guarantee that you will get reliable tape reading. The differences in success appear to be most affected by the tape recorder. Oftentime a cheap discount store recorder will give good results when a more expensive name brand unit will not. Frequency response of the recorder does not seem to be a criterion for predicting success. The SYM high speed format, and most high speed techniques depend upon measuring the time interval between transitions on the tape. Misinterpret one transition time and it's all over. The transitions are put on the tape very accurately. However, when the tape is played back, the high frequency components may experience significant phase shifting, affecting the zero crossing positions. Thus the high frequency shifting, and not so much the frequency response, appears to be the culprit. Fortunately, the new SYM monitor has some variables built into the tape routines that allow you to “tweak” the tape read/write programs to accomodate your recorder. These variables are shown in the accompanying figure, reproduced by permission of Synertek.
In the SYM format, the bit period is constant. A “one” is two transitions per bit period, and a “zero” is one transition per bit period. In the original monitor, the two intervals for the one were symmetical. In the new monitor, however, the first interval, (the only one measured) is narrower than the second, making it easier to distinguish between a short period (one) and a long period (zero). The intervals are specified by variables TAPET1 and TAPET2 which are initilized by reset to $33 and $5A respectively. These numbers represent a number of 5-microsecond intervals. Thus each bit time is $8D (141 dec.) intervals or 705 microseconds. The transition time interval is measured by starting the 6532 timer at $FF, counting down with the divide by eight clock. When a transition is detected, the value originally in location $A632 = HSBDRY (High Speed BounDRY) is added to the value from the timer. If the interval was short, the counter will not have counted down very far from $FF and adding HSBDRY will result in a carry which is interpreted as a “one-bit” transition. Thus the ability to distinguish between a one and a zero depends upon how carefully we choose the high speed boundary value. The default value of $46 (70 decimal) gives a boundary time of 70 × 8, or 560 microseconds. Synertek arrived at this value experimentally by trying several popular recorders. There is no guarantee that this value is ideal for your recorder. To split the difference between the short and long transitions would give an “ideal” boundary of 255 + 225, or 480 microseconds, or 60 ($3C) 8-microsecond intervals. If your recorder is closer to the ideal response, the default value of 560 microseconds will cause slightly narrow zero intervals to be interpreted as ones giving a bad reading. Before I took a look at the numbers, I experimentally determined the value of HSBDRY for my Panasonic recorder to be about $3C. Actually there was quite a range from $40 down to $39, but HSBDRY definitely needed to be smaller. Interestingly, I still can load tapes only over a very narrow range of volume settings.
If indeed it is the phase shifting of high frequency components that affects zero crossings, then perhaps low-pass filtering the tape output before it goes onto the tape would improve performance. Then again, I do need the tone control as high as it will go to give best results. It would seem that with the diode clipping at the input of the comparator, the tape read would be relatively insensitive to amplitude, with a high volume being ideal. However, with my SYM that is not the case. Clearly, a great deal of experimenting can be done pre-filtering tape dump output before it is recorded, and conditioning the playback output before it is decoded.
So far we have discussed only changing the value of HSBDRY to improve our read capability. However, the tape dump parameters TAPET1 and TAPET2 can also be modified. To generate SYM compatible tape, their values should not be changed radically, and their sum should equal $8D. On the other hand, if the sum is changed, the bit time and the corresponding number of bytes per second will change. We can make the tape speed faster or slower, and still read it back with the regular SYM programs by changing HSBDRY correspondingly. Just for kicks, I made TAPET1 $22 and TAPET2 $46, and was able to get fairly reliable loads with HSBDRY $30. This is a byte rate of approximately 250 bytes per second. It may be possible to double the SYM's high speed rate and still get good loads. The important thing, however, is to get reliable loads at the regular high speed.
Name | Location | Default Value |
HSBDRY | $A632 | $46 (70 decimal) 350μs |
TAPET1 | $A635 | $33 (51 decimal) 255μs |
TAPET2 | $A63C | $5A (90 decimal) 450μs |
Unfortunately, there are still a number of problem sources that have nothing to do with SYM hardware and software. You may be using a bad tape. Your recorder may be excessively noisy, or generate motor noise. You might suspect the latter if the Sync display indication occasionally flickers even when set at the optimum volume setting. Sometimes a capacitor (.05 to .1mfd) from the input of the comparator (pin 3) to ground will solve this problem. To help find other problem sources, a list of guidelines, provided by Synertek, are reproduced at the article's end.
In summary, SYMMERs still having problems with tape loading and using the new monitor may only need to adjust the value of HSBDRY ($A632), thanks to Synertek's foresight in making the tape parameters variables. Remember, however, that this value, and all system RAM is initialized by RESET and will have to be fixed after each Reset.
There is certainly a lot of experimentation that can be done on the SYM high speed tape reading and writing. I hope that the information in this brief article will inspire other SYMMERs to do some investigation. I'm sure that others besides myself will want to hear about any discoveries you make.