mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-05-28 20:41:33 +00:00
git-svn-id: http://svn.code.sf.net/p/netboot65/code@18 93682198-c243-4bdb-bd91-e943c89aac3b
This commit is contained in:
parent
1d2ca9c45d
commit
36f9e60107
15
doc/BOOTSTRAPPING.txt
Normal file
15
doc/BOOTSTRAPPING.txt
Normal file
|
@ -0,0 +1,15 @@
|
|||
|
||||
WE NEED:
|
||||
|
||||
- about 4K of BSS space for ethernet buffers
|
||||
- about 6K of code
|
||||
|
||||
BOOT FROM DISK (UTHERBOOT.BIN)
|
||||
|
||||
- loads in at $0800
|
||||
- copies monitor rom to same spot in language card (F800-FFFF)
|
||||
- relocates to $D000-$C000 in the language card (bank 1 only)
|
||||
- makes language card active (bank 1)
|
||||
- downloads BOOTA2.BIN via tftp
|
||||
- turns off language card
|
||||
- jumps to start of of BOOTA2.BIN
|
46
doc/apple_dos_33_memory_layout.txt
Normal file
46
doc/apple_dos_33_memory_layout.txt
Normal file
|
@ -0,0 +1,46 @@
|
|||
DOS 3.3 MEMORY LAYOUT
|
||||
|
||||
$C000 --- TOP OF RAM
|
||||
|
||||
$B600 --- RWTS
|
||||
|
||||
$AAC9 --- FILE MANAGER
|
||||
|
||||
$9D00 --- MAIN DOS ROUTINES
|
||||
|
||||
$9600 -- DOS FILE BUFFERS (MAXFILES 3)
|
||||
|
||||
|
||||
BD00 - RWTS main entry
|
||||
- call with AY pointing at IOB
|
||||
|
||||
Input/Output Control Block
|
||||
|
||||
OFFSET DESCRIPTION
|
||||
$00 Table Type (must be 1)
|
||||
$01 Slot Number times 0x10
|
||||
$02 Drive Number ($01 or $02)
|
||||
$03 Volume Number ($00 matches any volume)
|
||||
$04 Track Number
|
||||
$05 Sector Number
|
||||
$06/$07 Address (lo/hi) of Device Characteristics Table
|
||||
$08/$09 Address (lo/hi) of 256 byte buffer for READ/WRITE
|
||||
$0A Not Used
|
||||
$0B byte count for partial sector
|
||||
$0c Command Code
|
||||
$00 = SEEK
|
||||
$01 = READ
|
||||
$02 = WRITE
|
||||
$04 = FORMAT
|
||||
$0d Return Code (if non zero, carry flag should be set)
|
||||
$00 = no error
|
||||
$08 = error during initialization
|
||||
$10 = write protect error
|
||||
$20 = volume mismatch error
|
||||
$40 = drive error
|
||||
$80 = read error (obsolete)
|
||||
$0e volume number of last access
|
||||
$0f slot number of last acces * 16
|
||||
$10 drive number of last access
|
||||
|
||||
|
133
doc/protocol.txt
Normal file
133
doc/protocol.txt
Normal file
|
@ -0,0 +1,133 @@
|
|||
TRIVIAL NETWORK DISK PROTOCOL
|
||||
|
||||
* "CAPABILITIES REQUEST" is the only message type that should be broadcast. Everything else should be unicast
|
||||
|
||||
All fields are in network byte order (lo/hi)
|
||||
|
||||
FOR ALL MESSAGES
|
||||
Offset meaning
|
||||
|
||||
|
||||
$00..$03 signature 'TNDP' (ASCII, high byte clear)
|
||||
$04 1 byte version ID - current version = 1
|
||||
$05..$06 2 byte xid (echoed back in response)
|
||||
|
||||
FOR ALL RQS
|
||||
|
||||
$07 1 byte opcode
|
||||
$00 = CAPABILITIES REQUEST
|
||||
$01 = VOLUME CATALOG REQUEST
|
||||
$02 = READ T/S REQUEST
|
||||
$03 = WRITE T/S REQUEST
|
||||
|
||||
FOR CAPABILITIES REQUEST
|
||||
No further data
|
||||
|
||||
FOR VOLUME CATALOG REQUEST
|
||||
$08.. requested client system architecture
|
||||
$00 = all architectures (regardless of architecture)
|
||||
$64 = C64
|
||||
$A2 = Apple 2
|
||||
|
||||
$09.. requested file system
|
||||
|
||||
$00 = Any
|
||||
$01 = RAW / other
|
||||
$02 = Apple DOS 3.3
|
||||
$03 = PRODOS 8
|
||||
$04 = Apple CPM
|
||||
$05 = CBM DOS
|
||||
|
||||
$0A..$0B Catalogue Offset
|
||||
|
||||
For READ/WRITE:
|
||||
|
||||
$08..$09 2 byte track #
|
||||
$0A..$0B 2 byte sector #
|
||||
$0C..$0D 2 byte sector length (in bytes)
|
||||
$0E..$4B volume name (null padded 61 bytes)
|
||||
$4C null byte (i.e. filename can be 61 bytes long, MUST be at least 1 null at the 62nd byte)
|
||||
FOR WRITE
|
||||
$4d.. sector data
|
||||
|
||||
FOR ALL RESPONSES
|
||||
|
||||
$07 1 byte opcode
|
||||
$80 = CAPABILITIES REQUEST RESPONSE
|
||||
$81 = VOLUME CATALOG REQUEST RESPONSE
|
||||
$82 = READ T/S REQUEST RESPONSE
|
||||
$83 = WRITE T/S REQUEST RESPONSE
|
||||
$FF = ERROR RESPONSE
|
||||
|
||||
FOR CAPABILITIES RESPONSE
|
||||
$07 Maximum supported protocol version
|
||||
$08..$1b 19 byte application name
|
||||
$1c Null byte (so application name is null padded)
|
||||
$1d number of entries in supported architectures/file systems list (must be >=1, since list should
|
||||
always contain at least a "any architecture, any file system" entry, even if the count is 0).
|
||||
|
||||
$1e.. list of supported architectures/file systems:
|
||||
supported architecture/file systems lists:
|
||||
$00 system architecture ID
|
||||
$01..$02 number of volumes available for this combination of architecture/file system
|
||||
|
||||
list should be sorted by architecture ID (in descending order) and file system id (in descending order).
|
||||
Each architecture list should end with a file system Id of $00 (any) which is the count of all volumes available for
|
||||
this architecture.
|
||||
|
||||
The list of supported architectures should end with an entry for architecture ID $00 (any) which should have a single
|
||||
file system ID $00 (any) which should have a count of all volumes available for all architectures on this server.
|
||||
|
||||
FOR VOLUME CATALOG
|
||||
$06..$07 Total Catalogue Entries
|
||||
$08..$09 Catalogue Offset (i.e. how many entries are there in the catalogue before the first entry in this response)
|
||||
$0a Number of Entries in this response (maximum of 10)
|
||||
|
||||
$0b.. the volume catalog entries.
|
||||
for each entry
|
||||
|
||||
$00..$3c volume name (up to 56 chars, null padded)
|
||||
$37 null byte
|
||||
$38 system architecture ID
|
||||
$39 file system ID
|
||||
$3A..$3B number of tracks
|
||||
$3C..$3D number of sectors
|
||||
$3E..$3F sector length (in bytes)
|
||||
|
||||
|
||||
|
||||
|
||||
For READ/WRITE:
|
||||
|
||||
$04..$05 2 byte track #
|
||||
$06..$07 2 byte sector #
|
||||
$06..$07 2 byte sector length (in bytes)
|
||||
$0A..$49 volume name (null padded 64 bytes)
|
||||
|
||||
FOR READ
|
||||
$4A.. sector data
|
||||
|
||||
FOR ERROR
|
||||
|
||||
$04..$05 Error Code
|
||||
$00 = OK
|
||||
$01 = BROADCAST NOT ALLOWED
|
||||
Capabilities Request (opcode=00) are the only message types that can be broadcast.
|
||||
$02 = UNKNOWN OPCODE
|
||||
The client sent a message with an opcode the server does not understand
|
||||
$03 = VERSION NOT SUPPORTED
|
||||
The client sent a message with an protocol version that the server does not support
|
||||
$04 = ARCHITECTURE NOT SUPPORTED
|
||||
$05 = FILE SYSTEM NOT SUPPORTED
|
||||
$06 = INVALID VOLUME NAME
|
||||
$07 = INVALID TRACK NUMBER
|
||||
$08 = INVALID SECTOR NUMBER
|
||||
$09 = INVALID SECTOR LENGTH
|
||||
|
||||
$FF = INTERNAL SERVER ERROR
|
||||
The server suffered an internal error while processing the request
|
||||
|
||||
$06..$0b bytes $04..$09 from original request
|
||||
$0c..$4c error message (null padded 63 bytes)
|
||||
$4d null byte
|
||||
|
Loading…
Reference in New Issue
Block a user