====== DLOAD PROTOCOL ======
===== 1982 =====
Message-ID:
Newsgroups: net.micro
X-Path: utzoo!decvax!microsof!hanss
From: microsof!hanss
Date: Sun Dec 5 14:14:35 1982
Subject: CoCo DLOAD doc. 170 lines
Posted: Sun Dec 5 00:03:33 1982
Received: Sun Dec 5 14:14:35 1982
Having seen several requests for documentation on the Radio Shack
color computer's DLOAD command, I asked the right person (Mark C,
who does not read news, nor does he have access to uucp) and got
the document below in reply. Earlier I tried to get it to a previous
requestor by mail and asked for acknowledgement. Since I didnt get
any I assume the paths didnt work. Submitting to news is a third
and final resort.
I don't know anything about this stuff so please don't send letters
about it to me. I'm just forwarding the info since I knew where it
could be found.
-Hans Spiller
decvax!microsoft!hanss
Microsoft 6809 Extended Color BASIC
DLOAD/DLOADM Communications Protocol
Copyright (c) 1982 by Microsoft Corporation
Prepared by Mark L. Chamberlin
August 31, 1982
DLOAD/DLOADM Communications Protocol Page 2
DLOAD and DLOADM send and receive packets of
information to and from the host computer in order to
download BASIC and machine language files. The protocol
used for sending these packets was designed to facilitate
detection and correction of transmission errors.
The process of downloading a file from the host
involves opening a file, and then reading blocks of data
from the file. The details of this protocol follow.
OPEN FILE -
1. BASIC to host - P.FILR
2. Host to BASIC - P.FILR
3. BASIC to host -
1. 8 byte filename, left justified, blank filled
2. XOR of the bytes in the filename
4. Host to BASIC -
a) If no errors detected -
1. P.ACK
2. file type (0=BASIC program, 2=machine language,
FF=file not found)
3. ASCII flag (0=binary file, FF=ASCII)
4. XOR of file type and ASCII flag.
b) If errors detected, P.NAK.
5. BASIC - If errors then return to step 1.
READ BLOCK -
1. BASIC to host - P.BLKR
2. Host to BASIC - P.BLKR
3. BASIC to host -
1. Block number (most significant 7 bits)
DLOAD/DLOADM Communications Protocol Page 3
2. Block number (least significant 7 bits)
3. XOR of block number bytes
NOTE
The block number is a fourteen bit,
unsigned integer in the range 0 through
16383. It is split into two seven bit
values, each of which is transmitted in
the least significant 7 bits of a byte.
This insures that the most significant
bit is not set except for the protocol
control characters (e.g., P.BLKR). For
example, a block number of 511 is
transmitted as binary 00000011 and
01111111.
4. Host to BASIC -
a) If no errors detected -
1. P.ACK
2. Block length in bytes (0 through 128, 0
indicating end of file)
3. 128 bytes of data
NOTE
128 bytes of data must be sent,
regardless of the block length. If the
block length is less than 128 the extra
bytes are read by BASIC but not used,
so their values are of no concern.
4. XOR of block length and data bytes
b) If errors detected, P.NAK.
5. BASIC - If errors then return to step 1.
DLOAD/DLOADM Communications Protocol Page 4
The control character definitions are:
1. P.ACK - Acknowledge - C8 hex.
2. P.ABRT - Abort - BC hex.
3. P.BLKR - Block request - 97 hex.
4. P.FILR - File request - 8A hex.
5. P.NAK - Negative Acknowledge - DE hex.
Additional rules:
1. If errors occur during an OPEN or READ sequence,
BASIC will retry the operation. For each sequence,
a maximum of 5 tries is attempted. After 5
unsuccessful attempts, BASIC transmits a P.ABRT to
the host and aborts the download, causing a BASIC
IO error to occur.
2. If more than 10.4 seconds pass while BASIC is
waiting for a byte from the host, a timeout error
occurs. The operation is retried or aborted as
described above.
3. If the host receives any unsolicited data, it quit
transmitting and wait for BASIC to restart the
sequence.
4. The host should never time out. It should just
continue to wait.
-------
===== 1988 UPDATE =====
Microsoft 6809 Extended Color BASIC
DLOAD/DLOADM Communications Protocol
Copyright (c) 1982 by Microsoft Corporation
Prepared by Mark L. Chamberlin
August 31, 1982
DLOAD and DLOADM send and receive packets of
information to and from the host computer in order to
download BASIC and machine language files. The protocol
used for sending these packets was designed to facilitate
detection and correction of transmission errors.
The process of downloading a file from the host
involves opening a file, and then reading blocks of data
from the file. The details of this protocol follow.
*note*
The DLOAD protocol is only supported by Extended Color Basic 1.1
or older. It has been removed from 1.2 and newer as it was
determined that there was no demand for it.
Burt Mitchell 28 Jan 88
OPEN FILE -
1. BASIC to host - P.FILR
2. Host to BASIC - P.FILR
3. BASIC to host -
1. 8 byte filename, left justified, blank filled
2. XOR of the bytes in the filename
4. Host to BASIC -
a) If no errors detected -
1. P.ACK
2. file type (0=BASIC program, 2=machine language,
FF=file not found)
3. ASCII flag (0=binary file, FF=ASCII)
4. XOR of file type and ASCII flag.
b) If errors detected, P.NAK.
5. BASIC - If errors then return to step 1.
READ BLOCK -
1. BASIC to host - P.BLKR
2. Host to BASIC - P.BLKR
3. BASIC to host -
1. Block number (most significant 7 bits)
2. Block number (least significant 7 bits)
3. XOR of block number bytes
NOTE: The block number is a fourteen bit,
unsigned integer in the range 0 through
16383. It is split into two seven bit
values, each of which is transmitted in
the least significant 7 bits of a byte.
This insures that the most significant
bit is not set except for the protocol
control characters (e.g., P.BLKR). For
example, a block number of 511 is
transmitted as binary 00000011 and
01111111.
4. Host to BASIC -
a) If no errors detected -
1. P.ACK
2. Block length in bytes (0 through 128, 0
indicating end of file)
3. 128 bytes of data
NOTE: 128 bytes of data must be sent,
regardless of the block length. If the
block length is less than 128 the extra
bytes are read by BASIC but not used,
so their values are of no concern.
4. XOR of block length and data bytes
b) If errors detected, P.NAK.
5. BASIC - If errors then return to step 1.
The control character definitions are:
1. P.ACK - Acknowledge - C8 hex.
2. P.ABRT - Abort - BC hex.
3. P.BLKR - Block request - 97 hex.
4. P.FILR - File request - 8A hex.
5. P.NAK - Negative Acknowledge - DE hex.
Additional rules:
1. If errors occur during an OPEN or READ sequence,
BASIC will retry the operation. For each sequence,
a maximum of 5 tries is attempted. After 5
unsuccessful attempts, BASIC transmits a P.ABRT to
the host and aborts the download, causing a BASIC
IO error to occur.
2. If more than 10.4 seconds pass while BASIC is
waiting for a byte from the host, a timeout error
occurs. The operation is retried or aborted as
described above.
3. If the host receives any unsolicited data, it quits
transmitting and wait for BASIC to restart the
sequence.
4. The host should never time out. It should just
continue to wait.
===== RTS =====
Return to [[DLOAD]] :: [[:Tandy Color Computer:]]