home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 128 41
/
q41.d81
/
t.lrr270
< prev
next >
Wrap
Text File
|
2022-08-28
|
26KB
|
484 lines
LITTLE RED READER Version 2.70 [February 16, 1998]
MS-DOS file reader/writer for the C128 and 1571/81/FD drives.
by Craig Bruce (csbruce@pobox.com)
Little Red Reader (LRR) is a program for the C128 that will read and
write files to and from MS-DOS floppy disks using a 1571, 1581, CMD FD-
2000, or CMD FD-4000 disk drive. With the FD drives, you can use High
Density (HD) MS-DOS disks. The program copies files from drive to drive (no
internal buffering), so you need a second disk drive (either real or
virtual) to copy files to. You can use RAMDOS for the second drive if you
have an REU and you execute a GRAPHIC CLR after starting it up. The menu-
driven full-screen user interface is written in BASIC so it is mildly
sluggish, but the actual file copying is written in machine language and
operates as fast as the disk drives will go.
1. INTRODUCTION
This document presents a program that reads and writes MS-DOS files and
the root directory of MS-DOS disks. The program copies only from drive to
drive without buffering file data internally. This is simpler and imposes
no limits on the size of the files transferred, although it requires the
use of two disk drives (or a logical drive). The user-interface code is
written in BASIC and presents a full-screen file selection menu. The grunt-
work code is written in assembly language and operates at maximum
velocity.
The program also allows MS-DOS files to be deleted and to allows the
copying of Commodore-DOS files between CBM-DOS disks (this makes it more
convenient to use the program with a temporary logical drive like RAMDOS).
Also, since I have a CMD FD-4000 floppy disk drive, I know that this
program works with MS-DOS disks with this drive (for both the 720K and
1.44M MS-DOS formats). The FD disk drives are logically referred to below
as being the 1581.
The Burst Command Instruction Set of the 1571/81 is used to read the
MS-DOS disk blocks and the standard kernel routines are used for outputting
the data. (I am an operating systems specialist, so I call it a kernEl!)
Thus, the MS-DOS files must be read from a 1571 or 1581 disk drive, but the
output device may be any disk drive type, the screen or a printer, or a
virtual drive type such as RAMLink, RAMDrive, or RAMDOS (for the REU). It
is interesting to note that the data can be read in from an MS-DOS disk
faster than it can be written out to a 1571, 1581, or even a RAMDOS file. A
RAMLink can swallow the data only slightly faster than it can be read.
Little Red Reader (LRR) supports double density 3.5" disks formatted
with 80 tracks, 9 sectors per track, and 2 sides with a 1581 and 5.25"
double density disks formatted with 40 tracks, 9 sectors per track, and 2
sides with a 1571, and more recently, high density 3.5" disks formatted
with 80 tracks, 18 sectors per track, 2 sides, and a "12-bit FAT". A limit
of 224 directory entries and 9 File Allocation Table (FAT) sectors is
imposed. There must be 2 copies of the FAT and the cluster size may be 1 or
2 sectors. The sector size must be 512 bytes.
The program runs on either the 40 or 80-column screens, but you will
get much better performance from the BASIC portion of the program by being
in 80-column mode and FAST mode. A modification that someone might want to
make would be to spread-out the display for the 80-column screen and add
color to the rather bland display.
Oh, about the name. It is a play on the name of another MS-DOS file
copier available for the C-128. "Little" means that it is smaller in scope
than the other program, and "Red" is a different primary color to avoid any
legal complications. It is also the non-white color of the flag of the
country of origin of this program (no, I am not Japanese). Also, this
program is Public Domain Software, as is all software I develop for 8-bit
Commodore Computers. Feel free to E-mail me if you have questions or
comments about this article.
2. USER GUIDE
LOAD and RUN the "lrr270" BASIC program file. When the program is first
run, it will display an "initializing" message and will load in the binary
machine language package from the "current" Commodore DOS drive (the
current drive is obtained from PEEK(186) - the last device accessed). The
binary package is loaded only on the first run and is not reloaded on
subsequent runs if the package ID field is in place.
The system is designed to have two file selection menus: one for the
MS-DOS disk drive, and one for the Commodore-DOS disk drive (which may be a
logical disk drive). The idea for copying is that you select the files in
one of these menus, and then program knows to copy them to the disk for the
other menu.
2.1. MS-DOS MENU
The main screen of the program is then displayed. The main screen of
the program will look something vaguely like this:
MS-DEV=9 MS-TYPE=1581 CBM-DEV=8
NUM S TRN TYP FILENAME EXT LENGTH
--- - --- --- -------- --- ------
1 * ASC SEQ HACK4 TXT 120732
2 BIN PRG RAMDOS SFX 34923
D=DIRECTORY M=MS-DEV F=CBM-DEV Q=QUIT
T=TOGGLE-COLUMN, C=COPY-FILES, +/- PAGE
except that immediately after starting up, "<directory not loaded>" will
be displayed rather than filenames. The "MS-DEV" and "MS-TYPE" fields give
the device number and type of the drive containing the MS-DOS disk to copy
from, and the "CBM-DEV" gives the device number of the drive/virtual
drive/character device to copy file data to. The number of bytes free on
the drive are also displayed (which is useful to know when writing files)
and there are some more commands.
Information about all MS-DOS files in the root directory of the MS-DOS
disk is displayed in columns below the drive information. "NUM" gives the
number of the MS-DOS file in the directory listing, and "S" indicates
whether the file is "selected" or not. If the file is selected, an asterisk
(*) is displayed; otherwise, a blank is displayed. When you later enter
Copy Mode, only the files that have been "selected" are copied.
The "TRN" field indicates the character translation scheme to be used
when the file is copied. A value of "BIN" (binary) means no translation and
a value of "ASC" (ascii) means the file characters are to be translated
from MS-DOS ASCII (or "ASCII-CrLf") to PETSCII. The "TYP" field indicates
the type of Commodore-DOS file to create for writing the MS-DOS file
contents into. The possible values are "SEQ" (sequential) and "PRG"
(program). The values of the TRN and TYP fileds are set independently, so
you can copy binary data to SEQ files and ascii data to PRG files if you
wish.
The "FILENAME" and "EXT" fields give the filename and extension type of
the MS-DOS files and "LENGTH" gives the exact length of the files in bytes.
Note that if you perform "ASC" translation on a file, its PETSCII version
will have a shorter length.
2.2. USER COMMANDS
The bottom of the screen gives the command summary. After starting the
program, you will want to setup the MS-DOS and CBM-DOS drives with the "M"
and "F" commands. Simply press the (letter) key corresponding to the
command name to activate the command. Pressing M will prompt you for the
MS-DOS Drive Number and the MS-DOS Drive Type. In both cases, type the
number and press RETURN. (Sorry for insulting all non-novices out there,
but I want to be complete). The MS-DOS drive number cannot be the same as
the CBM-DOS drive number (since the program copies from drive-to-drive
without internal buffering). For the drive type, enter an "8", "81", or
"1581" for a 1581 drive or FD-series drive, or a "7", "71", or "1571" for a
1571 drive.
Pressing F will prompt you for the CBM-DOS device number. You may enter
a number from 0 to 30, except that it must not be the MS-DOS drive number.
Enter a "1" for Cassette Drive (God forbid!), a "3" for the screen, a "4"
for the printer (with an automatic secondary address of 7 (lowercase)), any
number above 7 for a Commodore disk drive or special virtual drive, or a
value of "0" for the special "null" drive. A CBM-DEV value of 0 will case
the program to read MS-DOS files and do nothing with t