Classic Computer Magazine Archive ANTIC VOL. 2, NO. 8 / NOVEMBER 1983


Tangle Angles
by CARL EVANS


I bought an 800 computer when the 410 recorder was included as part of the package.  Since then Iíve had to send the 410 to be repaired several times.  This was very inconvenient, so I started doing my own repairs.
Some of my friends were having similar problems, so I summarized my experiences in a report that covers belt slippage, Record/Play head alignment, cassette door replacement, cable connections, and other minor servicings.  The report comes with five illustrations and a diagnostic chart.  It also tells where to get parts and how much they cost.  At this time, however, my report only covers the second version of the 410 (with the pause button).  Would you consider publishing this report?  I believe that your readers would benefit from it.

    Walter Lee
    Beltsville, MD
Yes, we would be very interested in publishing your repair manual in ANTIC.  Many of us would benefit greatly form the information you have gathered.  I will be contacting you directly regarding your article, but I am also answering you here in Tangle Angles so that our readers will know about you, and can look forward to seeing your article in a future issue of ANTIC.
 

I wrote you about the progressively serious problems I was having loading my 410 recorder;  I suggested that my recorderís problem might be due to motor instability and the differences between machines made in Japan and Hong Kong.  When I took my machine apart while preparing to follow the instructions you sent me, I noticed that almost all of the screws in the drive motor were loose.  I tightened them and put the recorder back together, and now it works better than ever!  I havenít had any further trouble loading or saving programs, and I canít help wondering how many $40 repair jobs have simply been the result of loose screws.

    Kenneth Bishop
    Santa Clara, CA
I never thought about checking the motor mounting screws. The fix you discovered was a valid one, since a loose motor would not drive the cassette properly and the already poor WOW of the recorder would become even worse.  Thanks for the tip.
 

I need help in retrieving data from cassette tape in a variable format.  Iíve written a program for personal use called "Vehicle Cost Analysis and Records."  When Iím through exercising data in the program, I need to save variable values for MM, GG, and DD (total miles, total gallons, and money spent to date on variable cost items).  I have no trouble saving data as follows:

1000 OPEN #1,8,0,"C:"
1010 FOR X = 0 to 128
1020 PUT #1;32
1030 NEXT X
1040 PRINT #1
1050 PRINT #1; MM
1060 PRINT #1; GG
1070 PRINT #1; DD
1080 CLOSE #1

My problem seems to be in reading this data. I have used the following with partial success; sometimes it works, sometimes it doesnít:

2000 OPEN #1,4,0,"C:"
2010 FOR X = 0 to 128
2020 INPUT #1, BLANK
2030 NEXT X
2040 INPUT #1; MM, GG, DD
2050 CLOSE #1
2060 PRINT MM, GG, DD

I have even resorted to saving data twice to avoid any tape leader problems and trapping routines, but I still donít have a reliable data saving and retrieval routine.  I have also had problems, due to my limited understanding of BASIC,  developing a routine to change, delete or add data to an existing data record previously recorded on tape.  Any help you can give will be most appreciated.

     Ken Addy
Your problem is due to bugs in both your
programs. Change your "WRITE DATA" routine to:

1000 TRAP 1080; OPEN #1,8,0,"C:"
1010 FOR X = O TO 127
1020 PUT #; 32
1030 NEXT X
1040 PRINT #1
1050 PRINT #1; MM
1060 PRINT #1; GG
1070 PRINT #1; DD
1080 CLOSE #1

The bug in this routine was the range used in the FOR-NEXT loop.  Using "FOR X= 0 TO 128" will cause 129 bytes to be written rather than the desired 128.  I added the TRAP statement as a general safety feature.  The "INPUT DATA" routine had the same loop counter error as well as a more serious one.  An "INPUT #1, BLANK "statement causes an entire 128 byte record to be read from the tape.  Change the input routine to:

2000 TRAP 2050; OPEN #1,4,0,"C:"
2010 FOR X = 0 TO 127
2020 GET #1, BLANK
2030 NEXT X
2040 INPUT #1; MM, GG, DD
2050 CLOSE #1
2060 PRINT MM, GG, DD

The two routines shown here will do what you asked for.  By the way, it is not possible to edit a single record in a tape file.  The only way to update a data file is to load the whole file into memory, modify or add to it, and then write the whole file back to tape.  Any other method courts disaster.