Hi.
On 2023-12-28 22:39, Robert Armstrong wrote:
Ok, this is a long shot, but does anybody know the
algorithm used by
the VMS (and presumably RSX) RX01/RX02 driver for interleaving sectors?
Sure. RSX contains the sources for the device drivers, and this is in there.
Just check [11,10]DXDRV.MAC on any RSX kit. (I might have protected it
on MIM, but let me know if you want to get it from there.)
Anyway, the comment says:
; FUNCTIONS RECOGNIZED:
; IO.RPB - READ PHYSICAL BLOCK (MAY READ ANY SECTOR ON DISK)
; IO.WPB - WRITE PHYSICAL BLOCK (MAY WRITE ANY SECTOR ON DISK)
; IO.WDD - WRITE DELETED DATA - WRITE ANY SECTOR ON DISK
; SETTING THE DELETED DATA MARK IN SECTOR HEADER
; THE FOLLOWING TWO FUNCTION CODES OPERATE ON 256 WORD BLOCKS
; OF DATA (4 SECTORS) THE DRIVER AUTOMATICALLY INTERLEAVES
; AND SKEWS SECTORS TO OPTIMIZE THE TRANSFER OF DATA
; SO THAT A LONG READ/WRITE MAY BE DONE WITHOUT LOOSING
; A REVOLUTION OF THE DISK. THE INTERLEAVE FACTOR IS 2
; AND THE SKEW FACTOR IS 6.
; IO.RLB - READ LOGICAL BLOCKS OF 256. WORDS
; IO.WLB - WRITE LOGICAL BLOCKS OF 256. WORDS.
Also, the actual code is in function TRKSEC, starting at around line 500.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt(a)softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol