written by John Edwards / SUC/UK
Source: SUC-magazine November 1993, Volume 13 Number 3, pp. 12 - 13
|Sharp Users Club - General Section - Tape Problems|
The theory underlying my suggestions is not as difficult as you might think. The tape routines in all early Sharp MZ-computers work on the same principles, and these were revealed in formidable detail by an exceptionally clever member of the Sharp Users Club, Jean-Jacques Labarthe, on pp. 5 - 9 of Vol. 3 No. 3, in an article that was actually a reprint of the Manual for his BADTAPE program.
Jean-Jacques explained how, in the Sharp system, tape signals are coded into '1's and 0's ( with an extra 1 at the start of each 8-bit byte ); a '1' is stored as a long on/off pulse, total length 0.4 + 0.4 = 0.8mS; and a 0 is stored as a short on/off pulse, total length 0.2 + 0.2 = 0.4mS. When reading a tape, the routine looks for the start of each pulse, waits for 0.3mS, and then samples the level. If it is 'high the pulse is read as 1, and if it is low the pulse is read as a 0:-
After sampling the signal, the routine goes away' to do some homework, before returning to look for the next pulse. As you can see, if the signal was a 1 there is about 0.5mS available before the start of the next pulse; but if the signal was a 0 there is only about 0.1mS available before the start of the next pulse. In these circumstances, it is possible that, after a 0' pulse, the tape routine may not return in time to catch the start of the next pulse, in which case the pulse is missed, the checksum is upset, and an error results when the final checksum comparison is made.
Fortunately, the system is very flexible. There is no need to wait for 0.3mS before sampling - any time longer than 0.2mS will produce the same result. That is why I suggested that, when trying to read a problem tape, Maurice should DECREASE the length of the delay. In the case of MZ-700 RAM the original delay is 0.293mS - so by reducing the counter from 68 to 60, the delay is reduced to 0.259mS. This does not sound much , but it means that 0.141mS is available for the homework routines, instead of 0.107mS. This is an increase of about 32%. And it worked !
When SAVING tapes, the converse applies; to give the subsequent READ routine more time to do its work, I suggested INCREASING the delay which was being used to lay down the signals, so that when they were read back in, there would be more time between pulses. Again, the suggestion worked, and it ensured that tapes produced on the MZ-80B by SUPERTAPE 2BMKA7 could be read on the MZ-80A.
The above examples deal with cases in which the tape routines are in RAM and may be changed at will. On a normal MZ-80K this is not possible; but if your MZ-80K has ROM / RAM switching, you can switch the Monitor to $C000 and then copy it into RAM at $0000, and change it there. This may also be done on a normal MZ-80A.
However, in my experience, this sort of problem does not arise often; except perhaps on the MZ-700, which sometimes works with a ROM Monitor, and sometimes with a RAM Monitor. The tape routine delays are coded exactly the same in each Monitors, but they run at different speeds on account of wait states. Thus, the delay of 0.293mS in the RAM Monitor becomes 0.320mS in the ROM Monitor, and this is sufficient to give occasional problems. They do not happen often, but I think that Sharp must have been aware of the danger, as their later disk Basics for the MZ-700 ( 2Z-009E for 5.25 disks, and 5Z-008 for Quickdisks ) have no tape routines in their RAM Monitors - they bank-switch in the ROM Monitor, and use the routines there; so if you use only Sharp disk Basics on your MZ-700, ALL tapes are read and written with the same delays. But if you use S-BASIC, or K & P DBASIC, or ZIP 700, all of which have tape routines in their RAM Monitors, problems can arise.
On the MZ-800, ALL the Basics - even the tape Basic 1Z-016 - use only the ROM Monitor tape routines. So you are less likely to meet tape problems on the MZ-800, than you are on the MZ-700.
But there is another reason for tape problems - poor quality tapes.
And the problems are just as likely to be mechanical, as electrical.
A poorly-made tape causes excessive wow and flutter, and this may critically
reduce the time available to find the next pulse. So buy good quality
ferric tapes, not ones that sound like pepper-mills; and keep your tape
heads clean ! I rest my case...
I dont think I told you that I can sometimes get round a tape problem by reading a naughty tape on another machine. I am lucky enough to have 'one of each Sharp machine, and I have used this trick more than once. Recently, an ORIGINAL Sharp MZ-80A tape ( DAY BOOK from their Business Software series ) refused to load on my MZ-80A. At first I thought I had real trouble, as it was the only copy I possessed, and it has a m/c LOADER, followed by a disguised program. But on my MZ-80K it loaded O.K., and I was able to modify it and re-save it on tape, as V2 ( see MZ-80A Section, this issue ).
So if you have problems, you could, as a last resort, try ringing
a friend and asking if you can use his / her machine !
khmweb barrierefreies webdesign Berchtesgaden