2014-12-21 18:37:29 +00:00
|
|
|
|
<html>
|
|
|
|
|
|
|
|
|
|
<head>
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
|
|
|
|
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
|
|
|
|
|
<meta name="ProgId" content="FrontPage.Editor.Document">
|
|
|
|
|
<title>FTN.e08000</title>
|
2015-01-09 21:31:32 +00:00
|
|
|
|
<meta content="t, default" name="Microsoft Border">
|
2014-12-21 18:37:29 +00:00
|
|
|
|
</head>
|
|
|
|
|
|
2015-01-09 22:40:25 +00:00
|
|
|
|
<body bgcolor="#FFFFFF" text="#000000">
|
2014-12-21 18:37:29 +00:00
|
|
|
|
|
|
|
|
|
<h2>Apple II FTN - Binary II File</h2>
|
|
|
|
|
<p><a href="index.htm">Back to nulib.com library</a></p>
|
|
|
|
|
<hr><pre>
|
|
|
|
|
Apple II
|
|
|
|
|
File Type Notes
|
|
|
|
|
_____________________________________________________________________________
|
|
|
|
|
Developer Technical Support
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
File Type: $E0 (224)
|
|
|
|
|
Auxiliary Type: $8000
|
|
|
|
|
|
|
|
|
|
Full Name: Binary II File
|
|
|
|
|
Short Name: Binary II File
|
|
|
|
|
|
|
|
|
|
Written by: Matt Deatherage July 1989
|
|
|
|
|
|
|
|
|
|
Files of this type and auxiliary type contain other files with their
|
|
|
|
|
attributes encoded in Binary II format.
|
|
|
|
|
_____________________________________________________________________________
|
|
|
|
|
|
|
|
|
|
Binary II is a widely used and accepted standard for keeping file attributes
|
|
|
|
|
with files as they are transferred, usually by modem or other form of
|
|
|
|
|
telecommunication. Files that are known Binary II files should be written to
|
|
|
|
|
disk with file type $E0 and auxiliary type $8000 as a clear indication to
|
|
|
|
|
other programs that the file contains files with Binary II specifications.
|
|
|
|
|
|
|
|
|
|
Binary II was developed by Gary B. Little, author of the Point-To-Point
|
|
|
|
|
communication's product and author of several Apple II reference books. He is
|
|
|
|
|
also Apple's Product Manager for third-party Development Tools and Languages.
|
|
|
|
|
Gary welcomes your comments and suggestions on the Binary II standard at the
|
|
|
|
|
following address:
|
|
|
|
|
|
|
|
|
|
Gary B. Little
|
|
|
|
|
3304 Plateau Drive
|
|
|
|
|
Belmont, CA 94002
|
|
|
|
|
|
|
|
|
|
AppleLink: LITTLE
|
|
|
|
|
AppleLink--Personal Edition: GaryLittle
|
|
|
|
|
CompuServe: 70135,1007
|
|
|
|
|
GEnie: GARY.LITTLE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Why Binary II?
|
|
|
|
|
|
|
|
|
|
Transferring Apple II files in binary form to commercial information services
|
|
|
|
|
and bulletin boards (referred to in this Note as "hosts") can be, to put it
|
|
|
|
|
mildly, a frustrating exercise. Although most hosts are able to receive a
|
|
|
|
|
file's data in binary form (using protocols such as XMODEM), they don't
|
|
|
|
|
receive the file's all-important attribute bytes. All the common Apple II
|
|
|
|
|
file system, notably the ProDOS file system, store the attributes inside the
|
|
|
|
|
disk directory, not inside the file itself.
|
|
|
|
|
|
|
|
|
|
The ProDOS attributes are the access code, file type code, auxiliary type
|
|
|
|
|
code, storage type code, date of creation and last modification, time of
|
|
|
|
|
creation and last modification, the file size, and the name of the file
|
|
|
|
|
itself. Under GS/OS, the same parameters exist for other file systems as well
|
|
|
|
|
as file system-specific information and two-forked file information. It is
|
|
|
|
|
usually not possible to use a ProDOS file's data without knowing the file's
|
|
|
|
|
attributes (particularly the file type, auxiliary type, and size). Therefore,
|
|
|
|
|
ProDOS files uploaded in binary format to a host are useless to those who
|
|
|
|
|
download them. The same is true for DOS 3.3 and Pascal files.
|
|
|
|
|
|
|
|
|
|
Many Apple II communication programs use special protocols for transferring
|
|
|
|
|
file attributes during a binary file transfer, but none of these protocols
|
|
|
|
|
have been implemented by hosts. These programs are only useful for exchanging
|
|
|
|
|
files with another Apple II running the same program.
|
|
|
|
|
|
|
|
|
|
Without a standard like Binary II, the only acceptable way to transfer an
|
|
|
|
|
Apple II file to a host is to convert it into ASCII text before sending it.
|
|
|
|
|
Such a text file would contain a listing of an AppleSoft program, or a series
|
|
|
|
|
of Apple II monitor commands (e.g., 300:A4 32). Someone downloading a file
|
|
|
|
|
can convert it to binary form using the AppleSoft EXEC command.
|
|
|
|
|
|
|
|
|
|
The main disadvantage of this technique is that the text version of the file
|
|
|
|
|
is over three times the size of the original binary file, making it expensive
|
|
|
|
|
(in terms of time and money) to upload and download. It is also awkward, and
|
|
|
|
|
sometimes impossible, to perform the binary-to-text or text-to-binary
|
|
|
|
|
conversion.
|
|
|
|
|
|
|
|
|
|
The solution to the problem is to upload an encoded binary file which contains
|
|
|
|
|
not just the file's data, but the file's attributes as well. Someone
|
|
|
|
|
downloading such a file can then use a conversion program to strip the
|
|
|
|
|
attributes from the file and create a file with the required attributes.
|
|
|
|
|
|
|
|
|
|
This Note describes such a format: Binary II. The description of the format
|
|
|
|
|
is detailed for the purpose of allowing software developers to implement it in
|
|
|
|
|
Apple II communication programs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
What Binary II is Not
|
|
|
|
|
|
|
|
|
|
Binary II is not an archival or compression standard. It is designed to be a
|
|
|
|
|
simple method to keep the attributes normally in a disk file's directory entry
|
|
|
|
|
with the file as it is transferred. Although multiple files may be placed
|
|
|
|
|
together with Binary II, this is a matter of convenience for telecommunication
|
|
|
|
|
programs.
|
|
|
|
|
|
|
|
|
|
A true archival standard must be designed as such, with the capability to
|
|
|
|
|
manipulate files within the archive as well as linking them together
|
|
|
|
|
(compressed or uncompressed) for transfer. NuFX (documented in Apple II File
|
|
|
|
|
Type Note for File Type $E0, Auxiliary Type $8002) is a good example of a
|
|
|
|
|
robust, full-featured Apple II archival standard.
|
|
|
|
|
|
|
|
|
|
Binary II is primarily designed to be added to and subtracted from files "on-
|
|
|
|
|
the-fly" by telecommunication programs. Binary II files should only be found
|
|
|
|
|
on disks when they are transferred by a telecommunication program that does
|
|
|
|
|
not have Binary II capabilities, in which case a separate utility (such as
|
|
|
|
|
Binary Library Utility by Floyd Zink, Jr.) must be used to extract the files.
|
|
|
|
|
Telecommunication programs should be able to transfer files without Binary II
|
|
|
|
|
processing, however, they should support Binary II processing as a default.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The Binary II File Format
|
|
|
|
|
|
|
|
|
|
The Binary II form of a standard file consists of a 128-byte file information
|
|
|
|
|
header followed by the file's data. The data portion of the file is padded
|
|
|
|
|
with nulls ($00 bytes), if necessary, to ensure the data length is an even
|
|
|
|
|
multiple of 128 bytes.
|
|
|
|
|
|
|
|
|
|
The file information header contains four ID bytes, the attributes of the file
|
|
|
|
|
(in ProDOS 8 form), and some control information.
|
|
|
|
|
|
|
|
|
|
The structure of the header is as follows:
|
|
|
|
|
|
|
|
|
|
+000 ID Bytes 3 Bytes These three bytes are always $0A $47 $4C
|
|
|
|
|
for identification purposes, so programs
|
|
|
|
|
may recognize Binary II files as they are
|
|
|
|
|
received.
|
|
|
|
|
+003 Access Code Byte ProDOS 8 access byte.
|
|
|
|
|
+004 File Type Byte ProDOS 8 file type.
|
|
|
|
|
+005 Aux Type Word ProDOS 8 auxiliary type.
|
|
|
|
|
+007 Storage Type Byte ProDOS 8 storage type value.
|
|
|
|
|
+008 File Size Word The size of the file in 512-byte blocks.
|
|
|
|
|
+010 Mod. Date 2 Bytes Date of modification, in ProDOS 8
|
|
|
|
|
compressed format.
|
|
|
|
|
+012 Mod. Time 2 Bytes Time of modification, in ProDOS 8
|
|
|
|
|
compressed format.
|
|
|
|
|
+014 Create Date 2 Bytes Date of creation, in ProDOS 8
|
|
|
|
|
compressed format.
|
|
|
|
|
+016 Create Time 2 Bytes Time of creation, in ProDOS 8
|
|
|
|
|
compressed format.
|
|
|
|
|
+018 ID Byte Byte A fourth ID byte. This must always be
|
|
|
|
|
$02.
|
|
|
|
|
+019 Reserved Byte Reserved, must be set to zero.
|
|
|
|
|
+020 EOF 3 Bytes The end-of-file value for the file (low
|
|
|
|
|
byte first).
|
|
|
|
|
+023 File Name String Pascal string containing the ASCII
|
|
|
|
|
filename or partial pathname of this file
|
|
|
|
|
in ProDOS 8 format. The string cannot be
|
|
|
|
|
longer than 64 characters.
|
|
|
|
|
|
|
|
|
|
If the File Name String is a filename and not a partial pathname, then the
|
|
|
|
|
following optional parameter may be supplied:
|
|
|
|
|
|
|
|
|
|
+039 Native Name String Pascal string containing the
|
|
|
|
|
ASCII value of the native filename. This
|
|
|
|
|
string may not be longer than 48
|
|
|
|
|
characters, and will not be present if the
|
|
|
|
|
length byte of File Name (+023) is larger
|
|
|
|
|
than 15 ($0F). If this field is
|
|
|
|
|
specified, the File Name field must
|
|
|
|
|
contain a filename, not a partial
|
|
|
|
|
pathname.
|
|
|
|
|
|
|
|
|
|
+088 Reserved 21 Bytes Reserved. These bytes must be set to zero
|
|
|
|
|
for future compatibility.
|
|
|
|
|
|
|
|
|
|
+109 GAux Type Word The high word of the file's GS/OS
|
|
|
|
|
auxiliary type.
|
|
|
|
|
+111 GAccess Byte The high byte of the file's GS/OS access
|
|
|
|
|
word.
|
|
|
|
|
+112 GFile Type Byte The high byte of the file's GS/OS
|
|
|
|
|
file type.
|
|
|
|
|
+113 GStorage Byte The high byte of the file's GS/OS storage
|
|
|
|
|
type.
|
|
|
|
|
+114 GFile Size Word The high word of the GS/OS file's
|
|
|
|
|
size in 512-byte blocks.
|
|
|
|
|
+116 GEOF Byte The high byte of the file's GS/OS EOF
|
|
|
|
|
value.
|
|
|
|
|
+117 Disk Space Long The number of 512-byte disk blocks
|
|
|
|
|
the files inside the Binary<72>II file will
|
|
|
|
|
occupy after they've been removed from the
|
|
|
|
|
Binary<72>II file. (The format of a Binary
|
|
|
|
|
II file containing multiple files is
|
|
|
|
|
described later in this Note.) If the
|
|
|
|
|
number is zero, the creator of the Binary
|
|
|
|
|
II file didn't bother to calculate the
|
|
|
|
|
space needed. This value must be placed
|
|
|
|
|
in the file information header for the
|
|
|
|
|
first file inside the Binary II file; it
|
|
|
|
|
can be set to zero in subsequent headers.
|
|
|
|
|
A downloading program can inspect Disk
|
|
|
|
|
Space and abort the transfer immediately
|
|
|
|
|
if there isn't enough free space on the
|
|
|
|
|
disk.
|
|
|
|
|
+121 OS Type Byte This value indicates the native operating
|
|
|
|
|
system of the file:
|
|
|
|
|
$00 ProDOS or SOS
|
|
|
|
|
$01 DOS 3.3
|
|
|
|
|
$02 Reserved
|
|
|
|
|
$03 DOS 3.2 or DOS 3.1
|
|
|
|
|
$04 Apple II Pascal
|
|
|
|
|
$05 Macintosh MFS
|
|
|
|
|
$06 Macintosh HFS
|
|
|
|
|
$07 Lisa Filing System
|
|
|
|
|
$08 Apple CP/M
|
|
|
|
|
$09 Reserved (returned by the GS/OS
|
|
|
|
|
Character FST)
|
|
|
|
|
$0A MS-DOS
|
|
|
|
|
$0B High Sierra (CD-ROM)
|
|
|
|
|
$0C ISO 9660 (CD-ROM)
|
|
|
|
|
$0D AppleShare
|
|
|
|
|
Note this list is slightly different (in
|
|
|
|
|
the first three entries) from the standard
|
|
|
|
|
GS/OS file system ID list. A GS/OS
|
|
|
|
|
communication program should not place a
|
|
|
|
|
zero in this field unless the file's
|
|
|
|
|
native file system truly is ProDOS. The
|
|
|
|
|
file's native file system is returned in
|
|
|
|
|
the file_sys_id parameter from the
|
|
|
|
|
GetDirEntry call.
|
|
|
|
|
+122 Native File Type
|
|
|
|
|
Word This has meaning only if OS Type is non-
|
|
|
|
|
zero. If so, it is set to the actual file
|
|
|
|
|
type code assigned to the file by it's
|
|
|
|
|
native operating system. (Some operating
|
|
|
|
|
systems, such as MS-DOS and CP/M, do not
|
|
|
|
|
use file type codes, however.) Contrast
|
|
|
|
|
this with the File Type at +004, which is
|
|
|
|
|
the closest equivalent ProDOS file type.
|
|
|
|
|
The Native File Type is needed to
|
|
|
|
|
distinguish files which have the same
|
|
|
|
|
ProDOS file type, but which may have
|
|
|
|
|
different file types in their native
|
|
|
|
|
operating system. Note that if the file
|
|
|
|
|
type code is only one byte long (the usual
|
|
|
|
|
case), the high-order byte of Native File
|
|
|
|
|
Type is set to zero.
|
|
|
|
|
+124 Phantom File Flag
|
|
|
|
|
Byte This byte indicates whether a receiver of
|
|
|
|
|
the Binary II file should save the file
|
|
|
|
|
which follows (flag is zero) or ignore it
|
|
|
|
|
(flag is non-zero). It is anticipated
|
|
|
|
|
that some communication programs will use
|
|
|
|
|
phantom files to pass non-essential
|
|
|
|
|
explanatory notes or encoded information
|
|
|
|
|
which would be understood only by a
|
|
|
|
|
receiver using the same communication
|
|
|
|
|
program. Such programs must not rely on
|
|
|
|
|
receiving a phantom file, however, since
|
|
|
|
|
this would mean they couldn't handle
|
|
|
|
|
Binary II files created by other
|
|
|
|
|
communication programs. Phantom Files may
|
|
|
|
|
also be used to pass extended file
|
|
|
|
|
attributes when available.
|
|
|
|
|
|
|
|
|
|
The first two bytes in a phantom file must
|
|
|
|
|
contain an ID code unique to the
|
|
|
|
|
communication program, or a universal
|
|
|
|
|
identifier concerning the contents of the
|
|
|
|
|
phantom file. Developers must obtain ID
|
|
|
|
|
codes from Gary Little to ensure
|
|
|
|
|
uniqueness (see the beginning of this Note
|
|
|
|
|
for his address). Here is a current list
|
|
|
|
|
of approved ID codes for phantom files
|
|
|
|
|
used by Apple II communication programs:
|
|
|
|
|
$00 $00 ASCII text terminated with a
|
|
|
|
|
zero byte.
|
|
|
|
|
$00 $01 Point-to-Point
|
|
|
|
|
$00 $02 Tele-Master Communications
|
|
|
|
|
System
|
|
|
|
|
$00 $03 ProTERM
|
|
|
|
|
$00 $04 Modem MGR
|
|
|
|
|
$00 $05 CommWorks
|
|
|
|
|
$00 $06 MouseTalk
|
|
|
|
|
$01 $00 Option_list data (see later in
|
|
|
|
|
this Note).
|
|
|
|
|
The ID bytes are the first two bytes of
|
|
|
|
|
the phantom file.
|
|
|
|
|
+125 Data Flags Bit 7: 1 = file is compressed
|
|
|
|
|
Flag Byte Bit 6: 1 = file is encrypted
|
|
|
|
|
Bits 5-1: Reserved
|
|
|
|
|
Bit 0: 1 = file is sparse
|
|
|
|
|
A Binary II downloading program can
|
|
|
|
|
examine this byte and warn the user that
|
|
|
|
|
the file must be expanded, decrypted or
|
|
|
|
|
unpacked. The person uploading a Binary
|
|
|
|
|
II file may use any convenient method for
|
|
|
|
|
compressing, encrypting, or packing the
|
|
|
|
|
file but is responsible for providing
|
|
|
|
|
instructions on how to restore the file to
|
|
|
|
|
its original state.
|
|
|
|
|
+126 Version Byte This release of Binary II has a version
|
|
|
|
|
number of $01.
|
|
|
|
|
+127 Number of Files to Follow
|
|
|
|
|
Byte An appealing feature of Binary II is that
|
|
|
|
|
a single Binary II file can hold multiple
|
|
|
|
|
disk files, making it easy to keep a group
|
|
|
|
|
of related files "glued" together when
|
|
|
|
|
they're sent to a host. This byte
|
|
|
|
|
contains the number of files in this
|
|
|
|
|
Binary II file that are behind it. If
|
|
|
|
|
this is the first file in a Binary II file
|
|
|
|
|
containing three disk files, this byte
|
|
|
|
|
would be $02. The second disk file in the
|
|
|
|
|
same Binary II file would have a value of
|
|
|
|
|
$01 in this parameter, and the last would
|
|
|
|
|
have value $00. This count tells the
|
|
|
|
|
Binary II downloading program how many
|
|
|
|
|
files are remaining. If any phantom files
|
|
|
|
|
are included, they must be included in
|
|
|
|
|
this count.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Filenames and Partial Pathnames
|
|
|
|
|
|
|
|
|
|
You can put a standard ProDOS filename or a partial pathname in the file
|
|
|
|
|
information header (but never a complete pathname). Don't use a partial
|
|
|
|
|
pathname unless you've included, earlier in the Binary II file, file
|
|
|
|
|
information headers for each of the directories referred to in the partial
|
|
|
|
|
pathname. Such a header must have its "end of file position" bytes set to
|
|
|
|
|
zero, and no data blocks for the subdirectory file must follow it.
|
|
|
|
|
|
|
|
|
|
For example, if you want to send a file whose partial pathname is
|
|
|
|
|
HELP/GS/READ.ME, first send a file information header defining the HELP/
|
|
|
|
|
subdirectory, then one defining the HELP/GS/ subdirectory. If you don't,
|
|
|
|
|
someone downloading the Binary II file won't be able to convert it because the
|
|
|
|
|
necessary subdirectories will not exist.
|
|
|
|
|
|
|
|
|
|
Note: GS/OS communication programs must use the slash (/) as the
|
|
|
|
|
pathname's separator in any partial pathname it puts in the
|
|
|
|
|
header. Since GS/OS's standard separator is the colon (:), a
|
|
|
|
|
conversion may be necessary.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Filename Convention
|
|
|
|
|
|
|
|
|
|
Whenever a file is sent to a host, the host asks the sender to provide a name
|
|
|
|
|
for it. If it's a file in Binary II form, the name provided should end in
|
|
|
|
|
.BNY so its special form will be apparent to anyone viewing a list of
|
|
|
|
|
filenames. If the file is compacted (using the public-domain Squeeze
|
|
|
|
|
algorithm) before being converted to Binary II form, use a .BQY suffix
|
|
|
|
|
instead. If the file is a NuFX archive, use the suffix .BXY.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Identifying Binary II Files
|
|
|
|
|
|
|
|
|
|
You can determine, while transferring, if a file is in Binary II form by
|
|
|
|
|
examining the ID bytes at offsets +000, +001, +002 and +018 from the beginning
|
|
|
|
|
of the file. They must be $0A, $47, $4C and $02, respectively.
|
|
|
|
|
|
|
|
|
|
Once Binary II files are identified, you can use the data in the file
|
|
|
|
|
information header to create and open a ProDOS file with the correct name and
|
|
|
|
|
attributes, transfer the file data in the Binary II file to the ProDOS file,
|
|
|
|
|
set the ProDOS file size, then close the ProDOS file. You would repeat this
|
|
|
|
|
for each file contained inside the Binary II file.
|
|
|
|
|
|
|
|
|
|
Note: The number of 128-byte blocks following the file information
|
|
|
|
|
header must be derived from the EOF attribute for the file.
|
|
|
|
|
Calculate the number by dividing the EOF by 128 and adding one to
|
|
|
|
|
the result if EOF is not 0 or an exact multiple of 128. However,
|
|
|
|
|
if the file information header defines a subdirectory (the file
|
|
|
|
|
type is $0F), simple create the subdirectory file. Do not open it
|
|
|
|
|
and do not try to set its size.
|
|
|
|
|
|
|
|
|
|
Ideally, all this conversion work will be done automatically by a
|
|
|
|
|
communication program during file transfer. If not, a separate conversion
|
|
|
|
|
program (such as the previously mentioned Binary Library Utility, or BLU) must
|
|
|
|
|
be used to do this for you.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Option_List Phantom Files
|
|
|
|
|
|
|
|
|
|
GS/OS will return, when asked, an option_list for files on many file calls.
|
|
|
|
|
The option_list consists of a Word buffer length (which must be at least $2E),
|
|
|
|
|
followed by a Word number of bytes GS/OS put in the buffer, a Word GS/OS file
|
|
|
|
|
system identification, and the given number of bytes of FST-specific
|
|
|
|
|
information (minus two; the count GS/OS returns includes the file system
|
|
|
|
|
identifier).
|
|
|
|
|
|
|
|
|
|
Option_list values are FST specific and contain values important to the native
|
|
|
|
|
file system but not important to GS/OS. For AppleShare, the option_list
|
|
|
|
|
contains Finder Information, parent directory identification, and access
|
|
|
|
|
privileges. This information should be transferred with files.
|
|
|
|
|
|
|
|
|
|
Binary II uses a phantom file with identifier $01 $00 to indicate an
|
|
|
|
|
option_list. When this phantom file is seen, the contents should be used as
|
|
|
|
|
the option_list for the file that immediately follows this file in the
|
|
|
|
|
Binary II file. The other attributes of the phantom file must be set to the
|
|
|
|
|
same values as those for the file immediately following (the file for which
|
|
|
|
|
the phantom file contains the option_list). The EOF for the phantom file must
|
|
|
|
|
be the size of the option_list + 2, and the file size must be adjusted
|
|
|
|
|
accordingly to account for the phantom file ID bytes.
|
|
|
|
|
|
|
|
|
|
When receiving a Binary II file, the contents of this phantom file should be
|
|
|
|
|
used as option_list input on a GS/OS SetFileInfo call.
|
|
|
|
|
|
|
|
|
|
If the GS/OS option_list returns a total of two bytes (just the file_sys_ID),
|
|
|
|
|
there is no FST-specific information, and the option_list phantom file may
|
|
|
|
|
safely be omitted.
|
|
|
|
|
|
|
|
|
|
The format of the option_list phantom file is as follows:
|
|
|
|
|
|
|
|
|
|
+000 Phantom ID 2 Bytes The identifying bytes $01 $00.
|
|
|
|
|
+002 List Size Word The length of the bytes in the
|
|
|
|
|
option_list, starting with the file system
|
|
|
|
|
ID (the next word).
|
|
|
|
|
+004 FileSysID Word A GS/OS (not Binary II) file_sys_ID for
|
|
|
|
|
the volume on which the file was stored.
|
|
|
|
|
+006 List Bytes Bytes The bytes of the option list.
|
|
|
|
|
There should be (List Size) of them,
|
|
|
|
|
counting the previous word (FileSysID).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Extended File Considerations
|
|
|
|
|
|
|
|
|
|
Extended files contain two logical segments: a data fork and a resource fork.
|
|
|
|
|
These files can be created and manipulated by GS/OS, but not by ProDOS 8 or
|
|
|
|
|
any other Apple II operating system.
|
|
|
|
|
|
|
|
|
|
When a GS/OS-based communication program sends an extended file, it must send
|
|
|
|
|
it in the AppleSingle file format, preceded by a Binary II file information
|
|
|
|
|
header. (Such a program could easily convert an extended file to AppleSingle
|
|
|
|
|
format on the fly.) The Binary II header must contain the attributes of the
|
|
|
|
|
AppleSingle file (including a file type of $E0 and an auxiliary type of $0001)
|
|
|
|
|
and the "storage type code" field must be $01. (The EOF positions for the
|
|
|
|
|
data fork and resource fork of the extended file appear in an entry in the
|
|
|
|
|
AppleSingle file header, not in the Binary II header.)
|
|
|
|
|
|
|
|
|
|
The AppleSingle format is described in Apple II File Type Note for File Type
|
|
|
|
|
$E0, Auxiliary Type $0001.
|
|
|
|
|
|
|
|
|
|
A GS/OS-based communication program that receives an AppleSingle file can
|
|
|
|
|
easily convert it on the fly to the extended file it defines. ProDOS 8-based
|
|
|
|
|
communication programs can only save the AppleSingle file to disk because it's
|
|
|
|
|
not possible (nor is it encouraged to attempt) to create extended files with
|
|
|
|
|
ProDOS 8 (without using block-level calls); a GS/OS based utility program is
|
|
|
|
|
needed to convert the AppleSingle file to its extended form.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DOS 3.3 Considerations
|
|
|
|
|
|
|
|
|
|
With a little extra effort, you can also convert DOS 3.3 files to Binary II
|
|
|
|
|
form. This involves translating the DOS 3.3 file attributes to the
|
|
|
|
|
corresponding ProDOS attributes so that you can build a proper file
|
|
|
|
|
information header.
|
|
|
|
|
|
|
|
|
|
o Set the name to one that adheres to the stricter ProDOS naming
|
|
|
|
|
rules and put its length at +023 and the name itself at +024 to
|
|
|
|
|
+038. Note that the name must be a simple filename and not a
|
|
|
|
|
pathname. The actual DOS 3.3 filename must be placed at +039
|
|
|
|
|
(length) and +040 to +087 (name). (DOS 3.3 actually restricts
|
|
|
|
|
filenames to 30 characters.)
|
|
|
|
|
|
|
|
|
|
o Set the ProDOS file type, auxiliary type and access to values
|
|
|
|
|
which correspond to the DOS 3.3 file type:
|
|
|
|
|
|
|
|
|
|
DOS 3.3 ProDOS ProDOS ProDOS
|
|
|
|
|
File Type File Type Auxiliary Type Access
|
|
|
|
|
__________________________________________________
|
|
|
|
|
$00 (T) $04 $0000 $E3
|
|
|
|
|
$80 (*T) $04 $0000 $21
|
|
|
|
|
$01 (I) $FA $0C00 $E3
|
|
|
|
|
$81 (*I) $FA $0C00 $21
|
|
|
|
|
$02 (A) $FC * $E3
|
|
|
|
|
$82 (*A) $FC * $21
|
|
|
|
|
$04 (B) $06 ** $E3
|
|
|
|
|
$84 (*B) $06 ** $21
|
|
|
|
|
$08 (S) $06 $0000 $E3
|
|
|
|
|
$88 (*S) $06 $0000 $21
|
|
|
|
|
$10 (R) $FE $0000 $E3
|
|
|
|
|
$90 (*R) $FE $0000 $21
|
|
|
|
|
$20 (A) $06 $0000 $E3
|
|
|
|
|
$A0 (*A) $06 $0000 $E3
|
|
|
|
|
$40 (B) $06 $0000 $E3
|
|
|
|
|
$C0 (*B) $06 $0000 $21
|
|
|
|
|
__________________________________________________
|
|
|
|
|
|
|
|
|
|
* Set the auxiliary type for an A file to the
|
|
|
|
|
memory address from which the program was saved.
|
|
|
|
|
This is usually $0801.
|
|
|
|
|
** Set the auxiliary type for a B file to the
|
|
|
|
|
value stored in the first two bytes of the the
|
|
|
|
|
file (this is the default load address).
|
|
|
|
|
|
|
|
|
|
o Set the storage type code to $01.
|
|
|
|
|
o Set the size of file in blocks, date of creation, date of
|
|
|
|
|
modification, time of creation and time of modification all to
|
|
|
|
|
$0000.
|
|
|
|
|
o Set the end-of-file position to the length of the DOS 3.3 file, in
|
|
|
|
|
bytes. For a B file (code $04 or $84), this number is stored in
|
|
|
|
|
the third and fourth bytes of the file. For an I file (code $01
|
|
|
|
|
or $81) or an A file (code $02 or $82), this number is stored in
|
|
|
|
|
the first and second bytes of the file.
|
|
|
|
|
o Set the operating system type to $01.
|
|
|
|
|
o Set the native file type code to the value of the DOS 3.3 file
|
|
|
|
|
type code.
|
|
|
|
|
|
|
|
|
|
Attribute bytes inside a DOS 3.3 file (if any) must not be included in the
|
|
|
|
|
data portion of the Binary II file. This includes the first four bytes of a B
|
|
|
|
|
(Binary) file, and the first two bytes of an A (AppleSoft) or I (Integer
|
|
|
|
|
BASIC) file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Further Reference
|
|
|
|
|
_____________________________________________________________________________
|
|
|
|
|
o GS/OS Reference
|
|
|
|
|
o ProDOS 8 Technical Reference Manual
|
|
|
|
|
o Apple II File Type Note, File Type $E0, Auxiliary Type $0001
|
|
|
|
|
o Apple II File Type Note, File Type $E0, Auxiliary Type $8002
|
|
|
|
|
o Apple II Miscellaneous Technical Note #14, Guidelines for
|
|
|
|
|
Telecommunication Programs
|
|
|
|
|
</pre><hr>
|
|
|
|
|
|
|
|
|
|
<address>This document is Copyright by Apple Computer, Inc.</address>
|
|
|
|
|
|
2015-01-09 22:30:15 +00:00
|
|
|
|
<!--msnavigation--></td></tr><!--msnavigation--></table><!--msnavigation--></td></tr><!--msnavigation--></table><!--msnavigation--></td></tr><!--msnavigation--></table><!--msnavigation--></td></tr><!--msnavigation--></table></body>
|
2014-12-21 18:37:29 +00:00
|
|
|
|
|
|
|
|
|
</html>
|