Home of the original IBM PC emulator for browsers.
[PCjs Machine "ibm5160"]
Waiting for machine "ibm5160" to load....
NELIST is a Pascal source lister, capable of automatically enhancing
your printouts, and configurable to your own needs. WA-TOR is a
fascinating predator-prey simulation, try changing it's parameters and
watch what happens! SUPERDIR is a diskette file manager that allows
you to give each file a descriptive comment line.
How to Start: To run a COM program simply type its name and press
<ENTER>. For instructions on running BASIC programs, please refer to
the GETTING STARTED section in this catalog. For information on PAS
programs, consult your Pascal manual.
Suggested Registration: NET/ALIGN $20.00.
File Descriptions:
SUPERDIR BAS "Super directory" program (Compute Magazine April, l984)
RESWORDS TXT Key word list used by NELIST
DUMPSCRN MRG Model BASIC program for using DUMPSCRN.BAS
DUMPSCRN BAS BLOADable high resolution screen dump (Softalk July 1983)
SUPERDIR DOC Documentation for SUPERDIR.BAS
NELIST PAS Source code for NELIST
NEINST COM Installation program to create NEPRN.DAT
NEPRN DAT Printer control data for NELIST
NELIST COM Turbo Pascal source lister - underlines key words etc.
NELIST DOC Documentation for NELIST
ALIGN DOC Documentation for disk alignment program
ALIGN EXE Disk alignment program
DUMPSCRN DOC Documentation for DUMPSCRN
NEINST PAS Source code for NEINST
WA-TOR 000 Overlays used by WA-TOR.COM
WA-TOR COM Predator-prey simulation (Scientific American, Dec., 1984)
WA-TOR DOC Documentation for WA-TOR
WA-TOR PAS Turbo Pascal source code for WA-TOR
LETTER Notes on WA-TOR.COM
ALIGN
Version 1.6 for the IBM PC
5/23/84
(c) Copyright John L. Dickinson 1983, 1984
COPYING PROVISIONS
This program and documentation may be freely copied and shared
provided it is not modified in any manner and this notice is not
bypassed or removed. Please keep the ALIGN.DOC documentation file
on the same diskette with ALIGN.EXE.
If you find the ALIGN program useful, a contribution will be
appreciated. ($20 suggested.) Comments or suggestions concerning
ALIGN are welcome at any time.
John L. Dickinson
2470 N. Tierra Verde Pl.
Tucson, Arizona 85749
PROGRAM OVERVIEW
The ALIGN program allows you to move a diskette drive head to
absolute track locations and operate the drive while checks and
adjustments are made. 40 track single or double-sided drives are
supported.
ALIGN is one of several tools needed to adjust and service
diskette drives. The ALIGN program does not attempt to teach you
how to do an alignment, but it isn't difficult if you have what
you need. In addition to this program, you should have:
The drive manufacturer's alignment and service procedures.
An oscilloscope (dual trace with triggered sweep).
A DYSAN double-sided analog alignment diskette for 40 track
drives, 224/2A #800180.
Extension or external diskette drive signal and power cables are
very helpful.
See the notes at the end of this document for possible sources for
these items.
An analog alignment diskette contains NO data, just special
waveforms and can't be copied. (It's really copy protected!) You
can try the program using any diskette. The ALIGN program does
not write on diskettes.
(It should also be possible to use this program to adjust 80 track
drives provided you have the proper alignment diskette. However,
some of the program commands may not be useful since they have
track addresses hard coded for the 40 track alignment diskette.)
ALIGN Version 1.6 Page 2
SYSTEM AND DISKETTE DRIVE REQUIREMENTS
ALIGN runs under IBM PC-DOS on a PC or PC/XT with at least 64K and
an 80 column display, either monochrome or color.
Since ALIGN uses standard BIOS interfaces for all I/O, it should
also work on most IBM compatibles. It does not work properly on
the PCjr.
The diskette drives to be adjusted are connected to the PC in the
usual manner. The ALIGN program works with standard IBM (Tandon)
diskette drives and should work with others that use the same
electrical interface.
USING THE ALIGN PROGRAM
Enter ALIGN after the DOS prompt and press any key to get past the
initial screen to the main command menu. Chances are, you'll be
able to use the program without reading any more of this
documentation.
Commands are entered one at a time on the command line. All
commands may be abbreviated and the first letter is sufficient for
all but one command. (INFO requires the 3 letters, INF.)
Some commands require one operand as listed on the menu. Numeric
operands, such as track number or seconds, are decimal. The first
track is track 0, not track 1.
If the diskette drive under test is running, pressing any key will
cause it to stop in about 2 seconds. This key may be the first
letter of the next command or any key such as the RETURN key. The
drive will stop by itself after 60 seconds.
If the drive is stopped and and you want to continue the previous
motion command, simply press the RETURN key. This enters a
null command which is interpreted just like a GO command.
Commonly used commands may also be entered using the program
function keys as shown on the command menu.
ALIGN Version 1.6 Page 3
ALIGN PROGRAM COMMANDS
DRIVE A..D
The DRIVE command specifies the letter of the drive under test:
A, B, C or D. The default is drive B. The DRIVE command does
not cause the drive to start. Examples:
DRIVE A (Set drive A)
D C (Set drive C)
HEAD 0..1
The HEAD command selects the lower or upper head (diskette
side). HEAD 0 is the lower head and the only head on a single-
sided drive. HEAD 1 specifies the upper head on a double-sided
drive. The HEAD command does not cause the drive to start.
Examples:
HEAD 0 (Set head 0, the lower head)
HEAD 1 (Set head 1, the upper head)
H 1 (Set head 1, the upper head)
TRACK 0..39
The TRACK command moves the head to a specified track and starts
drive motion. The drive will continue to run until a key is
pressed or for 60 seconds. (The 60 second run time may be
changed using the SECONDS command.) The track number that may be
specified is usually in the range 0 through 39, although the
upper track limit may be extended using the MAX command.
Examples:
TRACK 0 (Move to track 0 and run drive)
T 34 (Move to track 34 and run drive)
T 16 (Move to track 16 and run drive)
IN
OUT
The IN command moves the head to track 32 and then immediately
moves it "in" towards track 0 stopping on track 16. IN is
equivalent to the TRACK 32 command followed by TRACK 16.
The OUT command is similar, but moves the head first to track 0
and then "out", away from track 0 stopping on track 16. OUT is
equivalent to a TRACK 0 command followed by TRACK 16.
Both commands end up on track 16 with the drive running. Track
16 is the radial head alignment track on the Dysan 40 track
alignment diskette.
ALIGN Version 1.6 Page 4
After making a head adjustment it's a good idea to re-seek to
track 16 and check the cat's eye pattern again. Both the IN and
OUT commands cause a re-seek to track 16. The two commands
also allow checking the accuracy of seeks (and the resulting
head alignment) in both directions. If there is a difference in
the cat's eye patterns in the two directions, you may want to
re-adjust the alignment to split the difference. A difference
indicates play in the mechanism or an imprecise head stepper
motor.
GO
If the drive is stopped, the GO command simply starts the drive
at whatever track it happens to be on. A null entry does the
same thing, so you can just press the RETURN key with nothing on
the command line to start the drive.
SECONDS 3..180
Normally, each time you start the drive using ALIGN, the drive
runs for 60 seconds if not stopped by pressing any key.
This is usually enough time to make a check or adjustment and
prevents the drive from running "forever". The SECONDS command
allows you to change this 60 second limit anywhere from 3 to 180
seconds. The SECONDS command does not cause the drive to start.
Examples:
SECONDS 120 (2 minutes)
S 10
S 30
CYCLE
The CYCLE command starts the drive and cycles the head through
tracks 0 through 3 in the following order 3,2,1,0,3,2,1,0,3,2...
and so on for the purpose of checking the track 0 switch. The
drive changes tracks every few seconds so you have time to see
if the track 0 switch has switched. In between each track
(0,1,2 or 3) the CYCLE command moves the head to track 16 so
there is a seek similar to that when a drive is first used after
power-on.
Believe it or not, on Tandon TM-100 series drives, the track 0
switch should switch between tracks 1 and 2. (It's NOT supposed
to switch at track 0!) This is a position in the middle of the
first four tracks. The actual track 0 signal on the drive
interface is a combination of the track "0" switch and other
indications in the drive electronics.
Switch here
|
V
0 1 2 3
ALIGN Version 1.6 Page 5
While the CYCLE command is active, the PC's speaker sounds rapid
beeps equal to the current track number, 1 to 3, each time it
changes tracks. Track 0 is a single longer beep. These beeps
allow you to know what track the drive is on without trying to
watch a meter or test light and the PC's display at the same
time. A higher pitch sounds in addition to the track beeps when
the switch should switch. After a little practice, the sound
eliminates the need to watch the screen. As you watch your
meter or light, don't be confused by the very brief switch
changes when the head moves out to track 16 and then back in.
While it's always nice to set things "right on," the track 0
switch adjustment isn't critical and the drive operates fine
even when it switches a whole track off from the ideal point
between tracks 1 and 2.
MAX 39..90
The MAX command sets the maximum track allowed with the TRACK
command.
Normally, the TRACK command accepts track numbers from 0 through
39. The MAX command allows you to change the TRACK command's
high track limit all the way up to 90. The MAX command does not
cause the drive to start.
There really isn't much occasion to use the MAX command. It's
most obvious use is to allow the ALIGN program to be used with
80 track drives. In this case you would specify MAX 79. (Note
that the IN and OUT commands assume a 40 track alignment disk
and won't be useful with an 80 track alignment disk. You can
still use the TRACK command to do the equivalent manually.)
Or, maybe you're looking for the track 39 signal on the DYSAN
alignment disk. If it doesn't appear on what the system thinks
is track 39, maybe it will show up at what the system thinks is
track 40, or 41 or....
Actually, there is a limit to how far the head will go past
track 39. You may want to use the MAX command to allow you to
investigate just how much further the head will go. (A copy
protection scheme might use one track past the "end" of the
disk.)
However, before you go charging off into the stratosphere of
track addressing, realize that when the head hits the upper
limit, it does so with the full force of the stepper motor.
This alone could knock a drive out of alignment or possibly
cause permanent damage. Use the MAX command at your own risk.
ALIGN Version 1.6 Page 6
RESET
The RESET command causes a reset of the diskette system (via
BIOS INT 13 with AH=0). RESET does not cause the drive to
start.
The next time any drive is accessed, it will then be
"recalibrated." This means that the diskette controller makes no
assumptions about which track the head is on, moves the head
until track 0 is located as indicated by the drive, and then
proceeds with the requested operation. Once this recalibration
process is complete, the diskette controller keeps it's own head
position register and simply pulses the head forward or back,
one step at a time to get to a desired track. If one pulse
is missed or the head is moved manually with power-on, then the
controller's track register won't agree with the physical
position of the head.
"Recalibration" is not an adjustment, but rather a normal
operation done by the diskette controller so it can get in sync
with the physical head position. Every drive is "calibrated" by
the controller the first time you use it after power-on or boot.
The RESET command allows you to recalibrate during the drive
adjustment procedure. For instance, assume the the drive is on
track 16 (or what you think is track 16). If you issue a RESET
command and then simply start the drive motion (null entry), you
will hear the drive move to track 0 and then back out to track
16 as the drive is recalibrated.
The RESET command is useful when servicing drives and you think
the drive is not seeking to the correct track. This could
happen while adjusting the track 0 switch. Also, the drive
won't seek to the correct track anytime the head has been moved
against the stepper's electrical hold. This could occur when
the head assembly hits it's travel limit at either end. This
isn't normal operation, but when the adjustments are wrong it
can (and does) happen.
If you don't find an alignment disk signal where you think it
should be, try the RESET command. It is also a good idea to use
the RESET command just before the final checks on radial head
alignment to be sure you're not exactly 1 or 2 tracks off.
ALIGN does an automatic RESET between every CYCLE command seek
to make track 0 switch adjustment easier.
Without the RESET command, it would otherwise be necessary to
re-boot or turn the machine off-and-on to force a recalibrate
operation.
ALIGN Version 1.6 Page 7
INFO
The INFO command causes another screen to be displayed with a
brief description of each track on the Dysan 40 track alignment
disk. It's simply for reference. Pressing any key returns you
to the ALIGN command menu screen.
QUIT
The QUIT command terminates the ALIGN program and returns to
DOS.
DRIVE SPEED TESTING
ALIGN does not have the capability to check a drive's spindle
speed. The IBM "Advanced Diagnostics" diskette that comes with
the IBM Hardware and Maintenance and Service book provides a good
software check of drive speed. Lacking that, use the ALIGN
program to run the drive while you observe the strobe disk on the
bottom of the drive.
INSTANTANEOUS SPEED VARIATION TESTING
To test Instantaneous Speed Variation, the Tandon manual says to
first "write a 2F (all ones) pattern on any track." The ALIGN
program won't write this or anything else on your diskettes. A
totally satisfactory substitute is to simply use the DOS FORMAT
command to format a work diskette in the drive under test. This
puts a pattern on every track. Admittedly, it's not "all ones"
but you'll hardly know the difference as you observe the pulse
jitter on the oscilloscope. Also, while Tandon says to use "any"
track, the jitter is much worse on the inside (high) tracks. Use
a middle track, such as 16, to check the specification. Get to
know what normal jitter looks like on tracks 0 and 39 too.
ALIGN Version 1.6 Page 8
TANDON TM-100 SERIES REPAIR TIPS
LOOSE SCREWS AND NUTS - HEAD MISALIGNMENT
In my experience, the most frequent cause of head misalignment and
drive failure on Tandon TM-100 series drives is a loose Allen head
screw on the stepper motor shaft. This allows the motor shaft to
slip where it connects to the split band positioner pulley.
Tighten this Allen head screw before doing an alignment. It's not
unusual to tighten it one-half turn holding the short end of an
Allen wrench with just your fingers. Don't over-do it, however,
as you could strip the threads.
The stepper motor shaft is smooth and has no flats or keys. As
long as you are doing an alignment and the Allen screw is tight,
the exact pulley position on the shaft usually doesn't matter.
But sometimes it can be out of the head alignment cam screw
adjuster range. If this happens, loosen the Allen screw, rotate
the pulley a bit, tighten it, and try again.
While you're at it, check the two nuts that hold the track stepper
motor to the casting. Also, remove the clear plastic cover on the
bottom of the head assembly and carefully tighten the little
Phillips screw that holds the split band on the pulley.
If you're not going to do an alignment, don't tighten these screws
since just tightening them might change the alignment some.
TRACK 00 SWITCH PROBLEMS - BOOT FAILURE
The track 0 microswitch frequently becomes intermittent or fails.
You can easily check this by powering-off the system and removing
plug 11 on the back of the drive. Push a few pieces of bare wire
into the connector and check the switch contacts with an analog
ohm meter. The switch is single pole, double throw (SPDT).
| | |
| | | <- wires to switch
------------
| | COM - common center contact
| Plug | NC - normally closed
| | NO - normally open
| |
Pin # -> |4 3 2 1|
------------
COM NC NO <- Switch contacts
Operate the switch manually. It is a little hard to get to and
you may want to remove the logic board first. Check to see that
contact closure is positive, occurs when the switch clicks,
and without any wavering around.
If the switch is not operating properly, the problem is usually
just a very small amount of corrosion or oxidation on the switch
contacts. Rather than replacing the switch, the easy and
ALIGN Version 1.6 Page 9
effective repair is to pass some reasonable current through the
switch and operate the switch a few times. Be sure that plug 11
is disconnected from the logic board and that you make connections
to just the plug. Use an external CURRENT LIMITED low voltage
supply to burn off the little bit of oxidation. I don't know how
much current to recommend. I use just enough to cause a little
spark when the power supply leads are touched, probably 0.5 or
1.0 amp. Be sure to use a current limited supply or put an
appropriate current limiting resistor in series. If you don't
know how to do this, then find someone who does rather than risk
any harm or damage.
POSSIBLE SOURCES FOR SUPPLIES
For the type of drives usually used in the PC, the alignment and
service procedures are in the Tandon "OEM Operating and Service
Manual TM-100-1 and -2 Disk Drives, 48 Tracks per Inch."
Priority One Electronics sells this as part number 07TND179022001,
for $36.00.
Priority One Electronics
9161 Deering Ave.
Chatsworth, CA 91311
Telephone (800) 423-5922
(818) 709-5111
It is also Tandon part number 179022-001, listed at $25.00 on a
December 1982 Tandon price list. I don't know if they will sell
it directly to end users.
Tandon Corporation
20320 Prairie Street
Chatsworth, CA 91311
Telephone (213) 993-6644
Analog Alignment Diskettes (AAD's) are available directly from
Dysan Corporation.
5.25" Double-sided, 48 TPI, 224/2A #800180 $50.00
5.25" Single-sided, 48 TPI, (numbers not known), $25.00
(96 TPI alignment diskettes are also available.)
Dysan Corporation
5201 Patrick Henry Drive
Santa Clara, CA 95050
Telephone (800) 551-9000, Dept 50
(408) 988-3472
Extension or external diskette drive signal and power cables may
be difficult to locate or you may have to make your own. Priority
One carries everything you need for the signal cable but not the
power cable. (If you know of a source for the male and female
power connectors in small quantities, please let me know.)
PC-SIG Disk No. #217, version v2
The following is a list of the file checksums which should be produced by
the CRCK4 program on this disk. If the CRC numbers do not match the following
list you may have a bad file. To use type: CRCK4 <filespec>
CRCK4 output for this disk:
CRCK ver 4.2B (MS DOS VERSION )
CTL-S pauses, CTL-C aborts
--> FILE: RESWORDS.TXT CRC = 71 DE
--> FILE: SUPERDIR.BAS CRC = 24 25
--> FILE: SUPERDIR.DOC CRC = 6C 4C
--> FILE: DUMPSCRN.BAS CRC = D0 7F
--> FILE: DUMPSCRN.MRG CRC = 18 69
--> FILE: DUMPSCRN.DOC CRC = AB 4B
--> FILE: ALIGN .EXE CRC = 02 83
--> FILE: ALIGN .DOC CRC = A1 C7
--> FILE: NELIST .DOC CRC = 38 DB
--> FILE: NELIST .COM CRC = 96 D2
--> FILE: NEPRN .DAT CRC = 00 00
--> FILE: NEINST .COM CRC = 92 38
--> FILE: NELIST .PAS CRC = 28 D3
--> FILE: NEINST .PAS CRC = F7 50
--> FILE: LETTER . CRC = 37 AA
--> FILE: WA-TOR .COM CRC = A3 46
--> FILE: WA-TOR .000 CRC = 4E 0D
--> FILE: WA-TOR .PAS CRC = 3C D7
--> FILE: WA-TOR .DOC CRC = 31 1C
---------------------> SUM OF CRCS = 53 C4
DONE
These and other Public Domain and user-supported programs from:
PC Software Interest Group (PC-SIG)
1125 Stewart Ct Suite G
Sunnyvale, CA 94086
(408) 730-9291
absolute
and
array
begin
case
const
div
do
downto
else
end
external
file
for
forward
function
goto
if
in
inline
label
mod
nil
not
of
or
overlay
packed
procedure
program
record
repeat
set
shl
shr
string
then
to
type
until
var
while
with
xor
100 ' Super Directory for the IBM Personal Computer
102 '
104 ' From Compute magazine, April, 1984 (per Dick Haan)
110 ' for monochrome or color adaptor, 80 columns
120 SCREEN 0,0,0: WIDTH 80: COLOR 7,0: CLS: DEFINT A-Z: KEY OFF: FOR I=1 TO 10: KEY I,"": NEXT
130 CR$=CHR$(17)+CHR$(196)+CHR$(217)
140 PRINT "Welcome to ";:COLOR 15: PRINT"Super Directory":COLOR 7
150 ' ---Remove the REM from next line for automatic use with drive A:
160 REM DRIVE$="A:": FSPEC$="A:*.*": GOTO 200
170 PRINT:PRINT "Select Drive: (";: COLOR 16,15: PRINT"A B";: COLOR 7,0: PRINT CHR$(29);CHR$(29)"/";CHR$(28);")"
180 DRIVE$=INKEY$+":":A=ASC(DRIVE$):IF(A OR 32)<97 OR (A OR 32)>98 THEN 180
190 DRIVE$=CHR$(A AND 223)+":": FSPEC$=DRIVE$+"*.*"
200 GOSUB 5000: CLS: COLOR 23: PRINT "Reading description file"
210 DIM D$(ENTRIES): FOR I=0 TO ENTRIES: D$(I)=CHR$(9)+"--": NEXT
220 ON ERROR GOTO 310
230 OPEN DRIVE$+"descr.dir" FOR INPUT AS #1
240 LINE INPUT #1, DISKNAME$: LINE INPUT #1, A$: NUMREC=VAL(A$)
250 FOR ITEMS=0 TO NUMREC
260 LINE INPUT #1, F$: LINE INPUT #1, D$
264 IF ASC(D$)=9 THEN 290
270 FOR I=0 TO ENTRIES
280 IF F$=F$(I) THEN D$(I)=D$
284 NEXT I
290 NEXT ITEMS
300 GOTO 320
310 RESUME 320
320 CLOSE #1: ON ERROR GOTO 0
330 PAGES = INT(ENTRIES/10)
340 CURR = 0
350 START=CURR*10: FINISH=START+9: IF FINISH>ENTRIES THEN FINISH=ENTRIES
360 CLS: COLOR 0,15: LOCATE 2,1: PRINT STRING$(80,32): LOCATE 2,2: PRINT"Super Directory"; TAB(70); "Drive " DRIVE$: LOCATE 2,40-LEN(DISKNAME$)/2: PRINT DISKNAME$: PRINT
370 FOR I = START TO FINISH
380 COLOR 0,15: PRINT "F"; LEFT$(MID$(STR$(1+I-START),2)+" ",2);: COLOR 15,0: PRINT " "; F$(I); TAB(18);: COLOR 7: PRINT D$(I): PRINT STRING$(80,196);
390 NEXT
400 LOCATE 25,1:COLOR 15,0:PRINT "Press ";:COLOR 0,15:PRINT"F1";:COLOR 15,0: PRINT" to ";:COLOR 0,15:PRINT"F";MID$(STR$(1+FINISH-START),2);:COLOR 15,0:PRINT" to select program. Page with PgUp or PgDn. ESC quits."
410 LOCATE 23,32: PRINT" Page #";CURR+1;"of";PAGES +1
420 A$=INKEY$: IF A$="" THEN 420
430 IF A$<>CHR$(27) THEN 540
440 LOCATE 25,1: PRINT SPACE$(79);:LOCATE 25,1:PRINT" 1. Exit to BASIC "+ "2. Exit to DOS 3. Re-RUN 4. Save descriptions 5. Menu";
450 A$=INKEY$: IF A$<"1" OR A$>"5" THEN 450
460 ON VAL(A$) GOTO 470,480,490,500: GOTO 350
470 COLOR 7: CLS: GOTO 5300
480 SYSTEM
490 RUN
500 ON ERROR GOTO 510: GOSUB 1000: GOTO 350
510 BEEP: LOCATE 25,1: PRINT SPACE$(79);: LOCATE 25,1: COLOR 31: PRINT "Can't save descriptions. ":COLOR 7:PRINT"Press "CR$;" to continue.";
520 IF INKEY$<>CHR$(13) THEN 520
530 RESUME 350
540 IF A$=CHR$(0)+CHR$(81) THEN CURR=-(CURR+1)*(CURR<PAGES): GOTO 350
550 IF A$=CHR$(0)+CHR$(73) THEN CURR=CURR-1: CURR=CURR-(PAGES+1)*(CURR<0): GOTO 350
560 A=ASC(MID$(A$+"0",2))-59:IF A<0 OR A>FINISH-START THEN BEEP: GOTO 420
570 LOCATE 25,1: PRINT SPACE$(79);: LOCATE 25,1: PRINT "Press ";CR$; " to run program, ESC to return to menu, SPACE to do description.";
580 LOCATE 3+A*2,5: COLOR 31: PRINT F$(START+A);: COLOR 15
590 A$=INKEY$: IF A$<>CHR$(13) AND A$<>CHR$(27) AND A$<>CHR$(32) THEN 590
600 IF A$=CHR$(27) THEN LOCATE 3+A*2,5: PRINT F$(START+A);: GOTO 350
610 IF A$<>CHR$(32) THEN 670
620 IF DISKNAME$="" THEN LOCATE 25,1: PRINT SPACE$(79);: LOCATE 25,1: LINE INPUT;"Enter name of disk: "; DISKNAME$: GOTO 620
630 LOCATE 25,1: PRINT SPACE$(79);: LOCATE 25,1: Z=START+A: PRINT "Description: ";D$(Z);: LOCATE 25,15: LINE INPUT ;D$(Z): D$(Z)=LEFT$(" "+D$(Z),62): GOTO 350
640 LOCATE 25,1: PRINT SPACE$(79);: BEEP: COLOR 31: LOCATE 25,1: PRINT "Cannot save descriptions to disk. ": COLOR 7: PRINT "Run program anyway? (Y/N):";
650 A$=INKEY$: IF A$<>"Y" AND A$<>"y" AND A$<>"N" AND A$<>"n" THEN 650
660 IF A$="Y" OR A$="y" THEN RESUME 680 ELSE RESUME 350
670 ON ERROR GOTO 640: GOSUB 1000
680 ON ERROR GOTO 690: COLOR 7: CLS: RUN DRIVE$+F$(START+A)
690 LOCATE 25,1: PRINT SPACE$(79): COLOR 23: BEEP: PRINT "Cannot run "; F$(A);". ";: COLOR 7: PRINT "Press ";CR$;" to continue...";
700 IF INKEY$<>CHR$(13) THEN 700
710 RESUME 350
720 GOTO 5300
1000 ' Save descriptions to disk
1010 OPEN DRIVE$+"DESCR.DIR" FOR OUTPUT AS #1
1020 PRINT #1, DISKNAME$;CHR$(13);ENTRIES ' ;CHR$(13)
1030 FOR I=0 TO ENTRIES: PRINT #1, F$(I);CHR$(13);D$(I);CHR$(13);: NEXT
1040 CLOSE #1: ON ERROR GOTO 0: RETURN
1050 '
5000 ' This subroutine reads disk directory into a string array
5010 ' Enter with FSPEC$, the file spec for the FILES command
5020 ' Exits with array F$, and NUMFILES, the number of files
5030 ' Uses a temporary array, TT$, which is ERASED after use
5040 '
5050 DEF SEG = 0: WIDTH 80
5060 HEAD=1050: TAIL=1052: BUFFER=1054
5070 CLS: COLOR 23,0,0: PRINT "Reading disk directory"
5080 COLOR 0: ON ERROR GOTO 5100
5090 FILES FSPEC$: ON ERROR GOTO 0: GOTO 5110
5100 BEEP: COLOR 31: CLS: PRINT"Cannot read directory": COLOR 7: ON ERROR GOTO 0: GOTO 5300
5110 DIM TT$(24): LOCATE 2,1: COLOR 7: ROWS = 0
5120 ' Put code for End, Enter into keyboard standard buffer
5130 POKE HEAD,30: POKE TAIL,34: POKE BUFFER,0: POKE BUFFER+1,79: POKE BUFFER+2,13: POKE BUFFER+3,28
5140 LINE INPUT TT$(ROWS)
5150 IF TT$(ROWS)<>"" THEN ROWS=ROWS+1:GOTO 5130
5160 IF NOT DIMMED THEN DIM F$(ROWS*6-1): DIMMED = 1
5170 ROWS=ROWS-1
5180 FOR I = 0 TO ROWS
5190 FOR J = 0 TO 5
5200 T$=MID$(TT$(I),J*13+1,12)
5210 IF T$<>"" THEN F$(ENTRIES) = T$: ENTRIES = ENTRIES+1
5220 NEXT J
5230 NEXT I
5240 ERASE TT$: ENTRIES = ENTRIES-1
5250 DEF SEG: RETURN
5300 ' ---Set the keys
5310 KEY 1, "LIST ": KEY 2, "RUN"+CHR$(13)
5320 KEY 3, "LOAD"+CHR$(34): KEY 4, "SAVE"+CHR$(34)
5330 KEY 5, "EDIT ": KEY 6, "CHR$(12);" + CHR$(13): KEY 7, "CHR$("
5340 KEY 8, "CHR$(27);": KEY 9, ".BAS"+CHR$(34)+",A": KEY 10, "LPRINT "
5350 KEY ON
5360 KEY LIST: CLOSE: END
Volume in drive A has no label
Directory of A:\
RESWORDS TXT 285 7-17-84 10:50p
SUPERDIR BAS 5376 1-01-80 12:17a
SUPERDIR DOC 3712 6-23-84 1:22p
DUMPSCRN BAS 256 4-27-84 10:17p
DUMPSCRN MRG 512 6-23-84 1:12p
DUMPSCRN DOC 1408 6-23-84 1:09p
ALIGN EXE 33108 6-09-84 10:44a
ALIGN DOC 21094 7-07-84 5:59p
NELIST DOC 10624 12-23-84 4:16p
NELIST COM 19488 12-20-84 5:21p
NEPRN DAT 36 8-15-84 12:43p
NEINST COM 15620 8-15-84 12:43p
NELIST PAS 21248 12-20-84 5:23p
NEINST PAS 10519 8-15-84 12:41p
LETTER 3648 1-21-85 10:39a
WA-TOR COM 23921 12-23-84 1:39p
WA-TOR 000 16896 12-23-84 1:39p
WA-TOR PAS 34497 12-23-84 1:38p
WA-TOR DOC 9600 12-23-84 1:23a
CRC TXT 1475 1-21-85 12:46p
CRCK4 COM 1536 10-21-82 5:50p
21 file(s) 234859 bytes
74752 bytes free