National Semiconductor COP400 Product Development System IMP-16/200 with PACE-compatible floppy Summary of info from manual 440305834 COPS Software Package and logic analyzer dumps Single-sided, single-density FM ~4uS between clock pulses 77 tracks/disk, 8 sectors/track, 512 bytes/sector 77 x 8 x 512 = 315,392 bytes/disk formatted capacity disk sync word = AA AA track format ------------ index pulse ~20 bytes 00 ~20 bytes FF ~88 bytes 00 2 bytes disk sync word AA AA 6 bytes track/sector header TT TT SS SS CC CC ~32 bytes 00 2 bytes disk sync word AA AA 512 bytes of sector data 2 bytes CRC-16 CCITT of sector data the following is repeated for the remaining 7 sectors: ~128 bytes 00 2 bytes disk sync word AA AA 6 bytes track/sector header TT TT SS SS CC CC ~32 bytes 00 2 bytes disk sync word AA AA 512 bytes of sector data 2 bytes CRC-16 CCITT of sector data TT TT is track number 00 00 to 00 4C SS SS is absolute sector number 00 00 to 02 67 CC CC is checksum TT TT + SS SS It looks like sectors are initialized with all E5s, giving a CRC of 0851. disk layout ----------- There are 4 sectors/extent. Sector 0 begins with the "Next Sector Table", a list of the 154 extents. Each 2-byte entry in the table is a link to the next file extent, terminated with FF FF. E.g. if a file starts at sector 8 and the NST begins as follows: FF FF FF FF 00 0C 00 10 FF FF the first file extent is sectors 8-B; then look up sector 8 (sector 8 / 4 sectors/extent = word 2) in NST and find 00 0C; this is the 2nd file extent, sectors C-F. Look up sector C (word 3) in NST and find 00 10- the 3rd file extent. Look up sector 10 (word 4) in NST and find FF FF so no more file extents. Note that the extents are not necessarily sequential. Sector 0 word 154 is first directory sector number. Sector 0 word 155 is start of the 8-character disk volume name. Sector 0 word 159 is start of the 40-character disk header string. directory --------- The directory contains information about bad and available sectors and data about each file. Word 1 is the start of the 8-character disk volume name (another one!) Words 6, 7 and 8 are the first bad sector, the last bad sector and the bad sector count. Words 16, 17 and 18 are the next available sector, the last available sector and the available sector count. Words 26, 27 and 28 are the directory starting sector, directory ending sector and the directory size in sectors. Word 30 is the start of the file entries. Each entry is 20 bytes. If additional directory sectors are needed, file entries in them start at word 0. file entries ------------ Word 0 is the start of the 8-character file name. Word 4 and Word 5 first byte are the 3-byte file modifier (file extension): MP for Main Program, DAT for Data. Word 5, 2nd byte is the internal type. Words 6 and 7 are the starting and ending sector numbers. Word 8, bit 15 is the delete flag. Word 8, bits 11-14 is the protect level. Word 8, bits 0-9 are the total number of sectors used. Word 9 is the file version number. internal types -------------- 0=Universal, 1=Load Module, 2=Main Program, 3=Overlay, 4=Block, 5=Symbolic, 6=System, 7=Data