The xxx_LINK modules transmit and receive all of these packets and know nothing of their contents except for the first two bytes which provide routing information.
;=========================================================================== ; ; ; Packet commands: NOTE: these are not up-to-date ; Changes may have been made! ; ; 00 = LOGON/OFF ; 01 = ; 02 = ABSOLUTE SECTOR R/W ; 03 = DISK INFO ; 04 = OPEN FILE ; 05 = CLOSE FILE ; 06 = FIND FIRST ; 07 = FIND NEXT ; 08 = MKDIR ; 09 = RMDIR ; 10 = ; 11 = CREATE FILE ; 12 = DEL FILE ; 13 = READ FILE ; 14 = WRITE FILE ; 15 = ALTER NAME/ATTR ; 16 = LOCK/UNLOCK RECORD ; 17 = ; 18 = CHARACTER I/O ; ; ;--------------------------- LOGON/OFF -------------------------------------- 0 ; ; transfer description: LOGON/OFF ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 0 +4 ; ; 0 +5 SPECIFIC ; 0 +6 ; mode 1=ON, 0=OFF +7 ; if logon: ; time to hangup +8/9 (in minutes) ; password +10.. (24 char max) ; ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 80h = good ; C0h = bad ; ; 0 +5 SPECIFIC ; err code +6/7 ; 0=ok ; 1=target has no potection ; 2=bad password ;--------------------------- ABSOLUTE SECTOR R/W ---------------------------- 2 ; transfer description: SECTOR R/W ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 2 +4 ; ; drive +5 SPECIFIC ; mode 0=W, 1=R +6 ; sector # +7..10 ; sector size +11/12 ; reserved +13 ; if writing: ; 1 sector's data +14... ; ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 82h = good ; C2h = bad ; ; drive +5 SPECIFIC ; err code +6/7 ; reserved +8..10 ; sector size +11/12 ; reserved +13 ; if reading: ; 1 sector's data +14.. ; ; ; ; NOTE: buffer must be big enough ; to transfer 1 buffer ; ; media <= 32 meg = 512 bytes ; media <= 64 meg = 1024 bytes ; media <= 128 meg = 2048 bytes ; media <= 256 meg = 4096 bytes ;--------------------------- DISK INFO ---------------------------------- 3 ; ; transfer description: DISK INFO ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 3 +4 ; ; drive +5 SPECIFIC ; mode +6 ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 83h = good ; C3h = bad ; ; drive +5 SPECIFIC ; err code +6/7 ; bytes per sec +8/9 ; secs per cluster +10/11 ; clusters on disk +12/13 ; free clusters +14/15 ; media descriptor +16 ;--------------------------- OPEN ------------------------------------------ 4 ; ; transfer description: OPEN ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 4 +4 ; ; drive +5 SPECIFIC ; reserved 0 +6/7 ; sharing mode +8 ; path +9... ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 84h = good ; C4h = bad ; ; drive +5 SPECIFIC ; err code +6/7 ; handle or doserr +8/9 ; file time +10/11 ; file date +12/13 ; file sz +14..17 ;-------------------------- CLOSE ------------------------------------------ 5 ; ; transfer description: CLOSE ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 5 +4 ; drive +5 SPECIFIC ; handle +6/7 ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 85h = good ; C5h = bad ; ; drive +5 SPECIFIC ; err code +6/7 ;--------------------------- FIND FIRST ------------------------------------- 6 ; ; transfer description: FIND FIRST ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 6 +4 ; ; drive +5 SPECIFIC ; reserved 0 +6 ; attr +7/8 ; path +9... ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 86h = good ; C6h = bad ; ; drive +5 SPECIFIC ; err code +6/7 ; IF OK: ; nul (handle) +8/9 ; reserved/dos +10.30 ; attr +31 ; file time +32/33 ; file date +34/35 ; file sz +36..39 ; asciiz name +40..52 ;--------------------------- FIND NEXT -------------------------------------- 7 ; ; transfer description: FIND NEXT ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 7 +4 ; ; drive +5 SPECIFIC ; reserved 0 +6..8 ; "next" DTA data +9..30 ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 87h = good ; C7h = bad ; ; drive +5 SPECIFIC ; err code +6/7 ; IF OK: ; nul (handle) +8/9 ; reserved/dos +10.30 ; attr +31 ; file time +32/33 ; file date +34/35 ; file sz +36..39 ; asciiz name +40..52 ;--------------------------- MKDIR ------------------------------------------ 8 ; ; transfer description: MKDIR ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 8 +4 ; ; drive +5 SPECIFIC ; reserved 0 +6..8 ; path +9... ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 88h = good ; C8h = bad ; ; drive +5 SPECIFIC ; status 0=ok +6/7 ;--------------------------- RMDIR ------------------------------------------ 9 ; ; transfer description: RMDIR ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 9 +4 ; ; drive +5 SPECIFIC ; reserved 0 +6..8 ; path +9... ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 89h = good ; C9h = bad ; ; drive +5 SPECIFIC ; status 0=ok +6/7 ;--------------------------- CREATE FILE ----------------------------------- 11 ; ; transfer description: CREATE FILE ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 11 +4 ; ; drive +5 SPECIFIC ; reserved 0 +6 ; attr +7/8 ; path +9... ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 8Bh = good ; CBh = bad ; ; drive +5 SPECIFIC ; status 0=ok +6/7 ; handle/error +8/9 ; IF OK: ; file time +10/11 ; file date +12/13 ;--------------------------- DEL FILE -------------------------------------- 12 ; ; transfer description: DEL FILE ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 12 +4 ; ; drive +5 SPECIFIC ; mode +6 ; 0 = FCB type del ; 1 = asciiz type del ; ; ASCIIZ: ; reserved 0 +7/8 ; path +9... ; ; FCB ; fcb drive +7 ; fcb name +8..18 ; current path +19 ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 8Ch = good ; CCh = bad ; ; drive +5 SPECIFIC ; status 0=ok +6/7 ;--------------------------- READ FILE ------------------------------------ 13 ; ; transfer description: READ ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 13 +4 ; ; drive +5 SPECIFIC ; handle +6/7 ; start byte +8..11 ; count +12/13 ; ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 8Dh = good ; CDh = bad ; ; drive +5 SPECIFIC ; err code +6/7 ; new pos +8..11 ; count read +12/13 ; data +14... ;--------------------------- WRITE FILE ------------------------------------ 14 ; ; transfer description: WRITE ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 14 +4 ; ; drive +5 SPECIFIC ; handle +6/7 ; ; data start byte +8..11 ; count +12/13 ; data +14... ; ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 8Eh = good ; CEh = bad ; ; drive +5 SPECIFIC ; err code +6/7 ; new pos. +8..11 ; count written +12/13 ;--------------------------- General ALTER ------------------------------- 15 ; ; transfer description: ALTER attr ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 15 +4 ; ; drive +5 SPECIFIC ; mode 0/1 +6 ; attr +7/8 ; path +9... ; ; ; ANSWER: if setting ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 8Fh = good ; CFh = bad ; ; drive +5 SPECIFIC ; status 0=ok +6/7 ; attr +8/9 ;--------------------------- General ALTER ------------------------------- 15 ; ; transfer description: CHANGE NAME/FCB ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 15 +4 ; ; drive +5 SPECIFIC - non extended ; mode 2 +6 ; drive +7 ; current name +8..18 ; reserved +19..24 ; new name +25..35 ; current path +36.. ; ; drive +5 SPECIFIC - extended ; mode 2 +6 ; 0FFh +7 ; reserved +8..12 8,9,10,11,12 ; attribute +13 ; drive +14 ; current name +15..25 ; reserved +26..31 ; new name +32..42 ; current path +43.. ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 8Fh = good ; CFh = bad ; ; drive +5 SPECIFIC ; status 0=ok +6/7 ;--------------------------- General ALTER ------------------------------- 15 ; ; transfer description: CHANGE NAME/ASCIIZ ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 15 +4 ; ; drive +5 SPECIFIC ; mode 3 +6 ; reserved +7/8 ; current pathname +9.. ; new pathname +??.. ; ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 8Fh = good ; CFh = bad ; ; drive +5 SPECIFIC ; status 0=ok +6/7 ;--------------------------- General ALTER ------------------------------- 15 ; ; transfer description: ALTER/TIME ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 15 +4 ; ; drive +5 SPECIFIC ; mode 4/5 +6 ; handle +7/8 ; time +9/10 ; date +11/12 ; ; ; ANSWER: if setting ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 8Fh = good ; CFh = bad ; ; drive +5 SPECIFIC ; status 0=ok +6/7 ; time +8/9 ; date +10/11 ;--------------------------- LOCK/UNLOCK ---------------------------------- 16 ; ; transfer description: LOCK/UNLOCK FILE ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 16 +4 ; ; drive +5 SPECIFIC ; mode 0=lock 1=unlk +6 ; handle +7/8 ; start offset +9..12 ; length +13..16 ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 90h = good ; E0h = bad ; ; drive +5 SPECIFIC ; status 0=ok +6/7 ;--------------------------- DEVICE R/W ---------------------------------- 18 ; ; transfer description: R/W DEVICE ; ; REQUEST: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command = 18 +4 ; ; mode: 00 = normal +5 SPECIFIC ; 01 = ioctl ; source device# +6 ; targ device name +7..14 ; write count +15/16 ; read count +17/18 ; write data +19... ; ; ; ANSWER: ; ; target node +0 HEADER ; sending node +1 ; module id +2 ; transaction# +3 ; command/code +4 ; 92h = good ; D2h = bad ; ; mode +5 SPECIFIC ; source device# +6 ; write status 0=ok +7/8 ; count written +9/10 ; read status +11/12 ; count read +13/14 ; read data +15..
Top of Programmer Stuff -or- Main Table of Contents -or- Top of Form