168349Sobrien
268349Sobrien#------------------------------------------------------------------------------
3226048Sobrien# $File: spectrum,v 1.7 2010/09/20 18:55:20 rrt Exp $
468349Sobrien# spectrum:  file(1) magic for Spectrum emulator files.
568349Sobrien#
668349Sobrien# John Elliott <jce@seasip.demon.co.uk>
768349Sobrien
868349Sobrien#
968349Sobrien# Spectrum +3DOS header
1068349Sobrien#
1168349Sobrien0       string          PLUS3DOS\032    Spectrum +3 data
1268349Sobrien>15     byte            0               - BASIC program
1368349Sobrien>15     byte            1               - number array
1468349Sobrien>15     byte            2               - character array
1568349Sobrien>15     byte            3               - memory block
1668349Sobrien>>16    belong          0x001B0040      (screen)
1768349Sobrien>15     byte            4               - Tasword document
1868349Sobrien>15     string          TAPEFILE        - ZXT tapefile
1968349Sobrien#
2068349Sobrien# Tape file. This assumes the .TAP starts with a Spectrum-format header,
2168349Sobrien# which nearly all will.
2268349Sobrien#
23226048Sobrien# Update: Sanity-check string contents to be printable.
24226048Sobrien#  -Adam Buchbinder <adam.buchbinder@gmail.com>
25226048Sobrien#
26226048Sobrien0       string          \023\000\000
27226048Sobrien>4      string          >\0
28226048Sobrien>>4     string          <\177           Spectrum .TAP data "%-10.10s"
29226048Sobrien>>>3    byte            0               - BASIC program
30226048Sobrien>>>3    byte            1               - number array
31226048Sobrien>>>3    byte            2               - character array
32226048Sobrien>>>3    byte            3               - memory block
33226048Sobrien>>>>14  belong          0x001B0040      (screen)
34133359Sobrien
35133359Sobrien# The following three blocks are from pak21-spectrum@srcf.ucam.org
36133359Sobrien# TZX tape images
37133359Sobrien0      string          ZXTape!\x1a     Spectrum .TZX data
38133359Sobrien>8     byte            x               version %d
39186690Sobrien>9     byte            x               \b.%d
40133359Sobrien
41133359Sobrien# RZX input recording files
42133359Sobrien0      string          RZX!            Spectrum .RZX data
43133359Sobrien>4     byte            x               version %d
44186690Sobrien>5     byte            x               \b.%d
45133359Sobrien
46186690Sobrien# Floppy disk images
47133359Sobrien0      string          MV\ -\ CPCEMU\ Disk-Fil Amstrad/Spectrum .DSK data
48133359Sobrien0      string          MV\ -\ CPC\ format\ Dis Amstrad/Spectrum DU54 .DSK data
49133359Sobrien0      string          EXTENDED\ CPC\ DSK\ Fil Amstrad/Spectrum Extended .DSK data
50186690Sobrien0      string          SINCLAIR        Spectrum .SCL Betadisk image
51186690Sobrien
52186690Sobrien# Hard disk images
53186690Sobrien0      string          RS-IDE\x1a      Spectrum .HDF hard disk image
54186690Sobrien>7     byte            x               \b, version 0x%02x
55