<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://fileformats.archiveteam.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://fileformats.archiveteam.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ccawley2011</id>
		<title>Just Solve the File Format Problem - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://fileformats.archiveteam.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ccawley2011"/>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Special:Contributions/Ccawley2011"/>
		<updated>2026-04-20T05:36:07Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.2</generator>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Template:ArcadeBBSLink</id>
		<title>Template:ArcadeBBSLink</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Template:ArcadeBBSLink"/>
				<updated>2025-06-08T08:53:40Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;[https://archive.org/download/ftpsites_arcade.demon.co.uk_2013.06.17/arcade.demon.co.uk.zip/arcade.demon.co.uk/Data/{{padleft:{{#expr: floor({{{1}}} div 2500) * 2500 }}|6}}/{{padleft:{{#expr: floor({{{1}}} div 50) * 50 }}|6}}/{{{1}}} {{{2|{{{1|}}}}}}]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/CRC-16</id>
		<title>CRC-16</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/CRC-16"/>
				<updated>2023-03-26T16:01:28Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Error detection and correction&lt;br /&gt;
}}&lt;br /&gt;
'''CRC-16''' is a broad family of [[CRC]] (cyclic redundancy check) algorithms that produce a 16-bit result.&lt;br /&gt;
&lt;br /&gt;
Refer to the [[CRC]] article for more information.&lt;br /&gt;
&lt;br /&gt;
== Specific algorithms ==&lt;br /&gt;
&lt;br /&gt;
Selected CRC-16 algorithms are listed here. The names are from the CRC RevEng Catalogue.&lt;br /&gt;
&lt;br /&gt;
=== CRC-16/ARC ===&lt;br /&gt;
Also referred to as CRC-16-IBM.&lt;br /&gt;
&lt;br /&gt;
The CRC of ASCII &amp;quot;&amp;lt;code&amp;gt;123456789&amp;lt;/code&amp;gt;&amp;quot; is &amp;lt;code&amp;gt;0xbb3d&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Used by [[ARC (compression format)|ARC]], [[LHA]], [[StuffIt]], [[Zoo]], [[ArcFS]], [[Spark]].&lt;br /&gt;
&lt;br /&gt;
=== CRC-16/XMODEM ===&lt;br /&gt;
This is a form of CRC-16-CCITT, though it may be inaccurate to refer to it by that name.&lt;br /&gt;
&lt;br /&gt;
The CRC of ASCII &amp;quot;&amp;lt;code&amp;gt;123456789&amp;lt;/code&amp;gt;&amp;quot; is &amp;lt;code&amp;gt;0x31c3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Used by [[MacBinary]], [[BinHex]], [[LBR]].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://reveng.sourceforge.io/crc-catalogue/16.htm CRC RevEng: Catalogue of parametrised CRC algorithms with 16 bits]&lt;br /&gt;
* [https://users.ece.cmu.edu/~koopman/crc/crc16.html CRC Polynomial Zoo - 16 bits]&lt;br /&gt;
* [http://www.textfiles.com/programming/FORMATS/crc.pro 1985 Document describing CRC modifications to the Ward Christensen protocol]&lt;br /&gt;
* [https://www.embeddedrelated.com/showarticle/669.php The CRC Wild Goose Chase]&lt;br /&gt;
&lt;br /&gt;
See also [[CRC#Links]].&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/PackDir</id>
		<title>PackDir</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/PackDir"/>
				<updated>2023-03-26T15:29:07Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
}}&lt;br /&gt;
'''PackDir''' is an archiving tool for RISC OS, and its associated file format. It can compress file using an [[LZW]] algorithm, or store uncompressed files.&lt;br /&gt;
&lt;br /&gt;
The LZW algorithm is the variant used in the [[Zoo]] archiver, except that the &amp;quot;max bits&amp;quot; parameter is configurable.&lt;br /&gt;
&lt;br /&gt;
Its [[RISC OS filetype]] is 68E.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
''This section contains reverse-engineered information about the format.''&lt;br /&gt;
&lt;br /&gt;
32bit ints are in LSB format.  Strings are NULL-terminated ASCII.&lt;br /&gt;
&lt;br /&gt;
File/directory dates and times are stored in a RISC OS format: The low 8 bits of the &amp;quot;load&amp;quot; address, combined with the &amp;quot;exec&amp;quot; address, form a 40-bit integer representing the number of 0.01-second intervals since the beginning of the year 1900.&lt;br /&gt;
&lt;br /&gt;
File format:&lt;br /&gt;
    Header&lt;br /&gt;
    object_entry_1&lt;br /&gt;
    object_entry_2&lt;br /&gt;
    ...&lt;br /&gt;
    object_entry_N&lt;br /&gt;
&lt;br /&gt;
Header:&lt;br /&gt;
    String: &amp;quot;PACK\0&amp;quot;&lt;br /&gt;
    32bit_int: LZW maxbits - 12&lt;br /&gt;
&lt;br /&gt;
object_entry:&lt;br /&gt;
    string: object_name (including trailing NULL)&lt;br /&gt;
    32bit_int: load (RISC OS load address)&lt;br /&gt;
    32bit_int: exec (RISC OS exec address)&lt;br /&gt;
    32bit_int: original_file_length if this object is a file, number_of_child_entries otherwise&lt;br /&gt;
    32bit_int: attributes (RISC OS read/write permissions)&lt;br /&gt;
    32bit_int: entry_type: 1 == directory, 0 == file.  NB: This field is missing for the first entry in the file -&lt;br /&gt;
               the first entry is always a directory&lt;br /&gt;
&lt;br /&gt;
If the entry is a file, then these fields follow:&lt;br /&gt;
    32bit_int: Compressed_file_length or special code - If this field is -1 the file is not compressed,&lt;br /&gt;
               otherwise compressed with LZW.&lt;br /&gt;
    N bytes: archived file data.  N == compressed_file_length if file is compressed, otherwise original_file_length&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
Files begin with &amp;quot;{{magic|PACK}}&amp;quot;, followed by {{magic|0x00}}. Note that this is not enough to distinguish them from [[Git]] pack format.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [http://www.zeridajh.org/software/packdir/index.htm PackDir download page] (RISC OS software)&lt;br /&gt;
* [https://www.riscosopen.org/wiki/documentation/show/Software%20information:%20SparkFS%20(self-extracting) SparkFS]&lt;br /&gt;
* [https://github.com/mjwoodcock/riscosarc riscosarc]&lt;br /&gt;
* {{Deark}}&lt;br /&gt;
&lt;br /&gt;
== Example files ==&lt;br /&gt;
* [http://www.zeridajh.org/software/earthmap/downloads/earthmap_120.bin earthmap_120.bin]&lt;br /&gt;
* {{ArcadeBBSLink|079556|MyXCard95A}}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Spark</id>
		<title>Spark</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Spark"/>
				<updated>2023-03-26T15:27:45Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
|extensions={{ext|spk}}, {{ext|arc}}&lt;br /&gt;
}}&lt;br /&gt;
'''Spark''' (Acorn Spark compressed archive) is a type of compressed file archive traditionally found on RISC OS systems, with [[RISC OS filetype|file type]] DDC (Archive). Created by SparkFS, these archives were often used to transfer data in a form that could be unpacked by the freely redistributable SparkPlug tool.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
The format is an incompatible variant of [[ARC (compression format)|ARC]]. The most obvious differences from ARC are that the high bit of the ''compression method'' byte is set, and the member file header has an additional 12 bytes, for RISC OS file attributes. Subdirectories are possible, in a way, by storing them as nested Spark archives.&lt;br /&gt;
&lt;br /&gt;
=== Compression methods ===&lt;br /&gt;
Spark uses a subset of [[ARC (compression format)|ARC]]'s compression methods, with the same numbering scheme (taking the compression method to be the low 7 bits of the compression byte). It adds one method of its own (&amp;quot;compressed&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
It's not completely clear which compression methods are supposed to be allowed in Spark format. Here are the methods supported by ''nspark'', which claims to support all methods supported by ''!Spark for UNIX'' 1 and 2, as well as method 9.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID (8-bit) !! ID (7-bit) !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x80&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt; || 0 || End-of-archive marker ||rowspan=&amp;quot;6&amp;quot;| Refer to [[ARC (compression format)#Compression methods|ARC]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x81&amp;lt;/code&amp;gt; || 1 || Uncompressed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x82&amp;lt;/code&amp;gt; || 2 || Uncompressed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x83&amp;lt;/code&amp;gt; || 3 || Packed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x88&amp;lt;/code&amp;gt; || 8 || Crunched&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x89&amp;lt;/code&amp;gt; || 9 || Squashed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0xff&amp;lt;/code&amp;gt; || 127 || Compressed || [[LZW]]. Like method #8, but does not use RLE, and has a configurable maximum code size up to 16 bits.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [https://www.riscosopen.org/wiki/documentation/show/Software%20information:%20SparkFS%20(self-extracting) SparkFS]&lt;br /&gt;
* [https://armclub.org.uk/products/arcfs/ ArcFS]&lt;br /&gt;
* [https://github.com/mjwoodcock/nspark nspark] - a tool to catalogue and unpack Spark archives (in source code form)&lt;br /&gt;
* [http://www.svgalib.org/rus/nomarch.html nomarch] v1.3+ can unpack Spark archives.&lt;br /&gt;
* [https://github.com/mjwoodcock/riscosarc/ RISC OS de-archiver]&lt;br /&gt;
* [https://www.davidpilling.com/riscos.html], [https://www.davidpilling.com/free.html] → Spark, SparkPlug&lt;br /&gt;
* {{Deark}}&lt;br /&gt;
* [http://xmp.sourceforge.net/ xmp]&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* Many of the files at [http://www.arcade-bbs.net/filepages/findex.htm The Arcade BBS Filebase] ([ftp://www.arcade-bbs.net/ ftp])&lt;br /&gt;
** E.g. [http://www.arcade-bbs.net/filepages/file77.htm Sprite Picture files] → {{ArcadeBBSLink|028864|level1}}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/ArcFS</id>
		<title>ArcFS</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/ArcFS"/>
				<updated>2023-03-26T15:26:20Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
|extensions={{noext}}, {{ext|arc}}&lt;br /&gt;
}}&lt;br /&gt;
'''ArcFS''' is an archiver for RISC OS, claimed to have similar functions to [[Spark]] and to have a free read-only (de-archiver) version, so that you don't have to buy anything to open archives created in the ArcFS format.&lt;br /&gt;
&lt;br /&gt;
== Identifiers ==&lt;br /&gt;
The (rather over-used) '''.arc''' file extension is sometimes used, even though the format is not compatible with the various other formats for various other platforms that have also used this extension. On RISC OS systems, files in this format typically have a [[RISC OS filetype|filetype]] of 3FB (&amp;quot;ArcFSArc&amp;quot;). Prior to the official filetype allocation sometime around 1993, filetype DDC (&amp;quot;Archive&amp;quot;) was used (although DDC was also used for other file formats such as [[ZIP]]).&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
ArcFS files normally begin with {{magic|41 72 63 68 69 76 65 00}} (&amp;quot;{{magic|Archive\0}}&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Another possible signature suggested by the [[file command]] is {{magic|1A 61 72 63 68 69 76 65}}.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
* [https://github.com/mjwoodcock/nspark nspark] → man/arcfs.5&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [https://armclub.org.uk/products/arcfs/ ArcFS]&lt;br /&gt;
* [https://www.riscosopen.org/wiki/documentation/show/Software%20information:%20SparkFS%20(self-extracting) SparkFS]&lt;br /&gt;
* [https://github.com/mjwoodcock/nspark nspark]&lt;br /&gt;
* [https://github.com/mjwoodcock/riscosarc riscosarc]&lt;br /&gt;
* {{Deark}}&lt;br /&gt;
* [http://xmp.sourceforge.net/ xmp]&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* [https://archive.org/details/cdrom-riscos-apdl-pd2a APDL Public Domain CD 2] contains many files in ArcFS format&lt;br /&gt;
* http://www.arcade-bbs.net/filepages/file77.htm → {{ArcadeBBSLink|085877|MacScrn}}&lt;br /&gt;
* https://telparia.com/fileFormatSamples/archive/arcFS/&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.riscos.info/index.php/ArcFS Page in riscos.info site]&lt;br /&gt;
* [http://www.armclub.org.uk/products/arcfs/ Page in ARM Club site]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-22T16:27:54Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
The drawing definition is an array of opcodes. The return values are pushed in order to a stack, and the parameters are popped in reverse order. Some opcodes have extra data that is read in from the drawing definition and is used as the return value.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description !! Parameters !! Return value !! Extra data&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || + || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 6 || - || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary - || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || * || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 25 || / || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2 || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte || None || Byte || Byte&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines || Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line || Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines || Byte, Integer, Integer, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle || Double, Double, Byte, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle || Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle || Byte, Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance || Double, Double, Double, Integer, Byte || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles || Double, Byte, Integer, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance || Double, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle || Double, Byte, Integer, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles || Integer, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle || Double, Double, Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line || Double, Double, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line || Double, Double, Double, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1) || Integer, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point || Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc || Double, Double, Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc || Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension || Integer, Integer || Double, Double, Double, Double, Double, Double, Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 82 || % || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10 || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle || Double, Double, Double, Double, Integer || Double&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines || Integer, Integer, Byte || Double&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2) || Integer, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points || Double, Double, Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info || Byte, Integer || Double&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point || Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function || ||&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string || None || None || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string || None || String || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle || Double, Double, Double, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text || Double, Double, Double, Double, Double, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point || Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points || Double, Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol || None || None&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-21T16:12:20Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description !! Parameters !! Return value !! Extra data&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || + || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 6 || - || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary - || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || * || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 25 || / || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2 || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte || None || Byte || Byte&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines || Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line || Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines || Byte, Integer, Integer, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle || Double, Double, Byte, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle || Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle || Byte, Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance || Double, Double, Double, Integer, Byte || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles || Double, Byte, Integer, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance || Double, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle || Double, Byte, Integer, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles || Integer, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle || Double, Double, Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line || Double, Double, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line || Double, Double, Double, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1) || Integer, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point || Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc || Double, Double, Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc || Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension || Integer, Integer || Double, Double, Double, Double, Double, Double, Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 82 || % || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10 || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle || Double, Double, Double, Double, Integer || Double&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines || Integer, Integer, Byte || Double&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2) || Integer, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points || Double, Double, Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info || Byte, Integer || Double&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point || Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function || ||&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string || None || None || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string || None || String || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle || Double, Double, Double, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text || Double, Double, Double, Double, Double, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point || Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points || Double, Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol || None || None&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-21T16:03:14Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description !! Parameters !! Return value !! Extra data&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || + || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 6 || - || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary - || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || * || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 25 || / || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2 || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte || None || Byte || Byte&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines || Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line || Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines || Byte, Integer, Integer, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle || Double, Double, Byte, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle || Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle || Byte, Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance || Double, Double, Double, Integer, Byte || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles || Double, Byte, Integer, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance || Double, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle || Double, Byte, Integer, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles || Integer, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle || Double, Double, Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line || Double, Double, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line || Double, Double, Double, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1) || Integer, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point || Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc || Double, Double, Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc || Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension || Integer, Integer || Double, Double, Double, Double, Double, Double, Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 82 || % || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10 || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info || ||&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function || ||&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string || None || None || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string || None || String || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle || Double, Double, Double, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text || Double, Double, Double, Double, Double, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point || Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points || Double, Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol || None || None&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-16T14:20:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description !! Parameters !! Return value !! Extra data&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || + || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 6 || - || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary - || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || * || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 25 || / || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2 || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte || None || Byte || Byte&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines || Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line || Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines || Byte, Integer, Integer, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle || Double, Double, Byte, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle || Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle || Byte, Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance || Double, Double, Double, Integer, Byte || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles || Double, Byte, Integer, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance || Double, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle || Double, Byte, Integer, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles || Integer, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle || Double, Double, Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line || Double, Double, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line || Double, Double, Double, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1) || Integer, Integer, Byte || None&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point || Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc || Double, Double, Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc || Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension || Integer, Integer || Double, Double, Double, Double, Double, Double, Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 82 || % || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10 || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info || ||&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function || ||&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string || None || None || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string || None || String || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number || ||&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text || ||&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points || Double, Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol || None || None&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-15T13:16:14Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description !! Parameters !! Return value !! Extra data&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || + || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 6 || - || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary - || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || * || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 25 || / || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2 || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte || None || Byte || Byte&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines || Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line || Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines || Byte, Integer, Integer, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle || Double, Double, Byte, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance || ||&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance || ||&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector || ||&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension || ||&lt;br /&gt;
|-&lt;br /&gt;
| 82 || % || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10 || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info || ||&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function || ||&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string || None || None || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string || None || String || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number || ||&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text || ||&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc || None || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points || Double, Double, Double, Double, Double || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol || None || None&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-14T15:16:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description !! Parameters !! Return value !! Extra data&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || + || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 6 || - || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary - || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || * || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 25 || / || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2 || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte || None || Byte || Byte&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines || Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points || Double, Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line || Double, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles || Byte, Integer, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line || Integer, Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles || Byte, Integer, Integer || Double, Double&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines || Byte, Integer, Integer, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle || Double, Double, Byte, Byte, Integer || None&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points || Double, Double, Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance || ||&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance || ||&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector || ||&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension || ||&lt;br /&gt;
|-&lt;br /&gt;
| 82 || % || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10 || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info || ||&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function || ||&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string || None || None || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string || None || String || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number || ||&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text || ||&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol || None || None&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-09T16:25:18Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description !! Parameters !! Return value !! Extra data&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || + || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 6 || - || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary - || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius || Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || * || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 25 || / || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2 || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to || Double, Double || None&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte || None || Byte || Byte&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius || ||&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance || ||&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance || ||&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector || ||&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension || ||&lt;br /&gt;
|-&lt;br /&gt;
| 82 || % || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10 || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info || ||&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function || ||&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string || None || None || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string || None || String || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number || ||&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text || ||&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return || None || None&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol || None || None&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-09T13:53:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description !! Parameters !! Return value !! Extra data&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || + || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 6 || - || Double, Double|| Double&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary - || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start || ||&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To || ||&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of || ||&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise || ||&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise || ||&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius || ||&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || * || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 25 || / || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2 || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID || ||&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from || ||&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to || ||&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte || None || Byte || Byte&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius || ||&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance || ||&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance || ||&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector || ||&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension || ||&lt;br /&gt;
|-&lt;br /&gt;
| 82 || % || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/ || Double, Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10 || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info || ||&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function || ||&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string || None || None || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string || None || String || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number || ||&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text || ||&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-09T13:09:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description !! Parameters !! Return value !! Extra data&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || + || ||&lt;br /&gt;
|-&lt;br /&gt;
| 6 || - || ||&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary - || ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start || ||&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To || ||&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of || ||&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise || ||&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise || ||&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius || ||&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || * || ||&lt;br /&gt;
|-&lt;br /&gt;
| 25 || / || ||&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^ || ||&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt || ||&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin || ||&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos || ||&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan || ||&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin || ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos || ||&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan || ||&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2 || ||&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs || ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees || ||&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians || ||&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer || None || Integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID || ||&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from || ||&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to || ||&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte || None || Byte || Byte&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius || ||&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate || None || Double || Double&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance || ||&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance || ||&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles || ||&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector || ||&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line || ||&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension || ||&lt;br /&gt;
|-&lt;br /&gt;
| 82 || % || ||&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/ || ||&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round || ||&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log || ||&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10 || ||&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp || ||&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines || ||&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2) || ||&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info || ||&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function || ||&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter || ||&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string || None || None || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string || None || String || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number || ||&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle || ||&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text || ||&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point || ||&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc || ||&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points || ||&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return || ||&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol || ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-08T16:24:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description !! Extra data&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || +&lt;br /&gt;
|-&lt;br /&gt;
| 6 || -&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary -&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || *&lt;br /&gt;
|-&lt;br /&gt;
| 25 || /&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer || Integer&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real || Double&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte || Byte&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate || Double&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate || Double&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1)&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension&lt;br /&gt;
|-&lt;br /&gt;
| 82 || %&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2)&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string || Null-terminated string&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-08T10:35:02Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text height for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name*&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || +&lt;br /&gt;
|-&lt;br /&gt;
| 6 || -&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary -&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || *&lt;br /&gt;
|-&lt;br /&gt;
| 25 || /&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer*&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real*&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte*&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate*&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate*&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1)&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension&lt;br /&gt;
|-&lt;br /&gt;
| 82 || %&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2)&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string*&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string*&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-11-07T11:14:03Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Drawing definition ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Code !! Description&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Push name*&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
|-&lt;br /&gt;
| 5 || +&lt;br /&gt;
|-&lt;br /&gt;
| 6 || -&lt;br /&gt;
|-&lt;br /&gt;
| 7 || unary -&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Start&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
|-&lt;br /&gt;
| 16 || To&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Centre of&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Clockwise&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Anti-clockwise&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Radius&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
|-&lt;br /&gt;
| 24 || *&lt;br /&gt;
|-&lt;br /&gt;
| 25 || /&lt;br /&gt;
|-&lt;br /&gt;
| 26 || ^&lt;br /&gt;
|-&lt;br /&gt;
| 27 || sqrt&lt;br /&gt;
|-&lt;br /&gt;
| 28 || sin&lt;br /&gt;
|-&lt;br /&gt;
| 29 || cos&lt;br /&gt;
|-&lt;br /&gt;
| 30 || tan&lt;br /&gt;
|-&lt;br /&gt;
| 31 || asin&lt;br /&gt;
|-&lt;br /&gt;
| 32 || acos&lt;br /&gt;
|-&lt;br /&gt;
| 33 || atan&lt;br /&gt;
|-&lt;br /&gt;
| 34 || atan2&lt;br /&gt;
|-&lt;br /&gt;
| 35 || abs&lt;br /&gt;
|-&lt;br /&gt;
| 36 || degrees&lt;br /&gt;
|-&lt;br /&gt;
| 37 || radians&lt;br /&gt;
|-&lt;br /&gt;
| 38 || Push integer*&lt;br /&gt;
|-&lt;br /&gt;
| 39 || Push real*&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Eval ID&lt;br /&gt;
|-&lt;br /&gt;
| 41 || Arc from&lt;br /&gt;
|-&lt;br /&gt;
| 42 || Arc to&lt;br /&gt;
|-&lt;br /&gt;
| 43 || Push byte*&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Line tangent to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 45 || Intersection of 2 lines&lt;br /&gt;
|-&lt;br /&gt;
| 46 || Intersection of line and circle&lt;br /&gt;
|-&lt;br /&gt;
| 47 || Construction line from 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 48 || Angled construction line&lt;br /&gt;
|-&lt;br /&gt;
| 49 || Construction line tangent to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 50 || Parallel construction line&lt;br /&gt;
|-&lt;br /&gt;
| 51 || Perpendicular construction line&lt;br /&gt;
|-&lt;br /&gt;
| 52 || Centre of construction circle&lt;br /&gt;
|-&lt;br /&gt;
| 53 || Construction circle radius&lt;br /&gt;
|-&lt;br /&gt;
| 54 || Construction circle diameter&lt;br /&gt;
|-&lt;br /&gt;
| 55 || Intersection of 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 56 || Circle tangent to 2 lines&lt;br /&gt;
|-&lt;br /&gt;
| 57 || Line tangent from point to circle&lt;br /&gt;
|-&lt;br /&gt;
| 58&lt;br /&gt;
|-&lt;br /&gt;
| 59 || Distance between 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 61 || Push X coordinate*&lt;br /&gt;
|-&lt;br /&gt;
| 62 || Push Y coordinate*&lt;br /&gt;
|-&lt;br /&gt;
| 63 || Point at centre of construction circle&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Line normal from point to circle&lt;br /&gt;
|-&lt;br /&gt;
| 65 || Point on line at distance&lt;br /&gt;
|-&lt;br /&gt;
| 66 || Circle tangent to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 67 || Parallel construction line at distance&lt;br /&gt;
|-&lt;br /&gt;
| 68 || Circle tangent to line and circle&lt;br /&gt;
|-&lt;br /&gt;
| 69 || Line normal to 2 circles&lt;br /&gt;
|-&lt;br /&gt;
| 70 || 3 point circle&lt;br /&gt;
|-&lt;br /&gt;
| 71 || Circle tangent to line&lt;br /&gt;
|-&lt;br /&gt;
| 72 || Line relative to line&lt;br /&gt;
|-&lt;br /&gt;
| 73 || Polar line&lt;br /&gt;
|-&lt;br /&gt;
| 74 || Point at end of line&lt;br /&gt;
|-&lt;br /&gt;
| 75 || Line bisects 2 lines (mk1)&lt;br /&gt;
|-&lt;br /&gt;
| 76 || Mid point&lt;br /&gt;
|-&lt;br /&gt;
| 77 || Perpendicular bisector&lt;br /&gt;
|-&lt;br /&gt;
| 78 || Point at start of line&lt;br /&gt;
|-&lt;br /&gt;
| 79 || 3 point arc&lt;br /&gt;
|-&lt;br /&gt;
| 80 || Point at centre of arc&lt;br /&gt;
|-&lt;br /&gt;
| 81 || Angle dimension&lt;br /&gt;
|-&lt;br /&gt;
| 82 || %&lt;br /&gt;
|-&lt;br /&gt;
| 83 || Int/&lt;br /&gt;
|-&lt;br /&gt;
| 84 || trunc&lt;br /&gt;
|-&lt;br /&gt;
| 85 || round&lt;br /&gt;
|-&lt;br /&gt;
| 86 || log&lt;br /&gt;
|-&lt;br /&gt;
| 87 || log10&lt;br /&gt;
|-&lt;br /&gt;
| 88 || exp&lt;br /&gt;
|-&lt;br /&gt;
| 89 || Point at distance around circle&lt;br /&gt;
|-&lt;br /&gt;
| 90 || Angle between 2 lines&lt;br /&gt;
|-&lt;br /&gt;
| 91 || Line bisects 2 lines (mk2)&lt;br /&gt;
|-&lt;br /&gt;
| 92 || angle from 3 points&lt;br /&gt;
|-&lt;br /&gt;
| 93 || Circle info&lt;br /&gt;
|-&lt;br /&gt;
| 94 || Relative point&lt;br /&gt;
|-&lt;br /&gt;
| 95 || Call function&lt;br /&gt;
|-&lt;br /&gt;
| 96 || Function return&lt;br /&gt;
|-&lt;br /&gt;
| 97 || Push function parameter&lt;br /&gt;
|-&lt;br /&gt;
| 98 || Ignore string*&lt;br /&gt;
|-&lt;br /&gt;
| 99 || Push string*&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Random number&lt;br /&gt;
|-&lt;br /&gt;
| 101 || Point distance on circle&lt;br /&gt;
|-&lt;br /&gt;
| 102 || Point at end of text&lt;br /&gt;
|-&lt;br /&gt;
| 103 || Polar point&lt;br /&gt;
|-&lt;br /&gt;
| 104 || Point at start of arc&lt;br /&gt;
|-&lt;br /&gt;
| 105 || Point at end of arc&lt;br /&gt;
|-&lt;br /&gt;
| 106 || Angle from 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 107 || Point between 2 points&lt;br /&gt;
|-&lt;br /&gt;
| 254 || Return&lt;br /&gt;
|-&lt;br /&gt;
| 255 || End of symbol&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-19T15:39:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || The text width for dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || The arrow head size.&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Clearance gap&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || The current dimension style, which can be one of the following values:&lt;br /&gt;
* 0 for internal dimensions.&lt;br /&gt;
* 1 for external left dimensions.&lt;br /&gt;
* 2 for external right dimensions.&lt;br /&gt;
* 3 for external dimensions.&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Use arrow heads for dimensions instead of slashes.&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer || Are dimension tolerances enabled?&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer || The dimension precision.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || A value associated with the last error. The exact purpose depends on the identifier.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The identifier of the last error to occur.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-18T14:58:16Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || Definition of user-defined line style 1.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Definition of user-defined line style 2.&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Definition of user-defined line style 3.&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer || Definition of user-defined line style 4.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-18T12:04:08Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry (v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string || The name of the function.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The number of parameters.&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || The address of the function in the definition block.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-17T16:26:49Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer || The symbol number of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string || The name of the scalar.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
| || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-17T09:39:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Left X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Bottom Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Right X coordinate&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Top Y coordinate&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || X spacing&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Y spacing&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || X angle&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double || Y angle&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer || Grid snap&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer || Parametric grid snap&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
| || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-12T10:41:04Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Data type&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Pen colour&lt;br /&gt;
* In v1.2 or later, the symbol is deleted if the pen colour has bit 5 set, and the lower four bits are ANDed with %1111.&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte || Layer number&lt;br /&gt;
* In v1.0 and v1.1, the symbol is deleted if the layer number is 16.&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte || Line type&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer || Address in drawing definition&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer || Length in drawing definition (ignored in later versions)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double || Text width&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double || Text height&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double || Butterfly limit&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer || Text precision&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes containing the status of each layer.&lt;br /&gt;
* If bit 0 is set then the layer is on.&lt;br /&gt;
* If bit 1 is set then the layer is locked.&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes containing the default pen colour for each layer.&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte || The active current layer.&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte || The active points layer.&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte || The active construction layer.&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes mapping each pen colour to a 16 colour palette entry.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
| || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-12T08:42:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale (only in v1.1 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;) (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries (only in v1.2 or later)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.0 and v1.1)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 16 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Array || 16 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 33 || Array || 10 bytes&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information (v1.2)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
| || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-11T11:18:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Layer information&lt;br /&gt;
|-&lt;br /&gt;
| || Double || Dimension scale&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of functions (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; function table entries&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Layer information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Array || 64 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 64 || Array || 64 bytes&lt;br /&gt;
|-&lt;br /&gt;
| 128 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 129 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 130 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 131 || Array || 10 bytes&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Function table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Null-terminated string||&lt;br /&gt;
|-&lt;br /&gt;
| || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-11T09:07:44Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Number of scalars (&amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; scalar table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Error information&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Scalar table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Error information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Null-terminated string ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-10T11:18:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| || Integer || Size of drawing definition (&amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| || Array || &amp;lt;code&amp;gt;v&amp;lt;/code&amp;gt; bytes&lt;br /&gt;
|-&lt;br /&gt;
| || Byte || Paper size&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Window definition&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Grid information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Text information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| || Struct || Line style information&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Window definition&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Grid information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Text information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Dimension information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Double ||&lt;br /&gt;
|-&lt;br /&gt;
| 32 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 36 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 40 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 44 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Line style information&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Acorn_Replay</id>
		<title>Acorn Replay</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Acorn_Replay"/>
				<updated>2022-10-04T21:11:35Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Video&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Acorn Replay is an audio/video container ([[RISC OS filetype|file type]] AE7, ARMovie) that was the native multimedia format on RISC OS systems.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [[FFmpeg]] (limited support)&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* [https://archive.org/details/cdrom-riscos-datafile-pdcd4 The Datafile PD CD 4] → REPLAY/FALCONS&lt;br /&gt;
* http://riscos.com/ftp_space/370/files/diversions.zip → Applause, Blues, Drum+Cym, G2, Minor, Piano, Sax3, Space, Trumpet&lt;br /&gt;
* http://riscos.com/ftp_space/370/files/sound.zip → 1812, Enigma&lt;br /&gt;
* http://samples.ffmpeg.org/game-formats/rpl/&lt;br /&gt;
* http://samples.ffmpeg.org/archive/container/rpl/&lt;br /&gt;
* https://telparia.com/fileFormatSamples/video/acornReplayVideo/&lt;br /&gt;
* https://timil.com/riscos/replay/&lt;br /&gt;
* https://downloads.orpheusweb.co.uk/pub/RISCOS/StuttgartFTP/riscos/graphics/replay/&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~theom/riscos/docs/apps/ReplayFormat.txt Playing 16 bit music, samples etc] - an early description of the container format&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~theom/riscos/docs/apps/AcornReplayMovingBlocks.txt Re: Replay codec sources] - A description of the Moving Blocks video codec used in many Replay files&lt;br /&gt;
* [http://multimedia.cx/formats.html Multimedia Formats] - contains an updated version of the above document with a more comprehensive list of codecs&lt;br /&gt;
* [https://gitlab.com/dboddie/acorn-replay Python module and examples] - really simple proof of concept code for extracting key frames and audio from certain types of Replay movies&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Acorn_Replay</id>
		<title>Acorn Replay</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Acorn_Replay"/>
				<updated>2022-10-04T16:19:59Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Video&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Acorn Replay is an audio/video container ([[RISC OS filetype|file type]] AE7, ARMovie) that was the native multimedia format on RISC OS systems.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [[FFmpeg]] (limited support)&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* [https://archive.org/details/cdrom-riscos-datafile-pdcd4 The Datafile PD CD 4] → REPLAY/FALCONS&lt;br /&gt;
* http://riscos.com/ftp_space/370/files/diversions.zip → Applause, Blues, Drum+Cym, G2, Minor, Piano, Sax3, Space, Trumpet&lt;br /&gt;
* http://riscos.com/ftp_space/370/files/sound.zip → 1812, Enigma&lt;br /&gt;
* http://samples.ffmpeg.org/game-formats/rpl/&lt;br /&gt;
* http://samples.ffmpeg.org/archive/container/rpl/&lt;br /&gt;
* https://telparia.com/fileFormatSamples/video/acornReplayVideo/&lt;br /&gt;
* https://timil.com/riscos/replay/&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~theom/riscos/docs/apps/ReplayFormat.txt Playing 16 bit music, samples etc] - an early description of the container format&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~theom/riscos/docs/apps/AcornReplayMovingBlocks.txt Re: Replay codec sources] - A description of the Moving Blocks video codec used in many Replay files&lt;br /&gt;
* [http://multimedia.cx/formats.html Multimedia Formats] - contains an updated version of the above document with a more comprehensive list of codecs&lt;br /&gt;
* [https://gitlab.com/dboddie/acorn-replay Python module and examples] - really simple proof of concept code for extracting key frames and audio from certain types of Replay movies&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Acorn_Replay</id>
		<title>Acorn Replay</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Acorn_Replay"/>
				<updated>2022-10-04T16:08:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Video&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
Acorn Replay is an audio/video container ([[RISC OS filetype|file type]] AE7, ARMovie) that was the native multimedia format on RISC OS systems.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [[FFmpeg]] (limited support)&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* [https://archive.org/details/cdrom-riscos-datafile-pdcd4 The Datafile PD CD 4] → REPLAY/FALCONS&lt;br /&gt;
* http://samples.ffmpeg.org/game-formats/rpl/&lt;br /&gt;
* http://samples.ffmpeg.org/archive/container/rpl/&lt;br /&gt;
* https://telparia.com/fileFormatSamples/video/acornReplayVideo/&lt;br /&gt;
* https://timil.com/riscos/replay/&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~theom/riscos/docs/apps/ReplayFormat.txt Playing 16 bit music, samples etc] - an early description of the container format&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~theom/riscos/docs/apps/AcornReplayMovingBlocks.txt Re: Replay codec sources] - A description of the Moving Blocks video codec used in many Replay files&lt;br /&gt;
* [http://multimedia.cx/formats.html Multimedia Formats] - contains an updated version of the above document with a more comprehensive list of codecs&lt;br /&gt;
* [https://gitlab.com/dboddie/acorn-replay Python module and examples] - really simple proof of concept code for extracting key frames and audio from certain types of Replay movies&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/OakPDT_Drawing</id>
		<title>OakPDT Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/OakPDT_Drawing"/>
				<updated>2022-10-04T15:23:19Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: Created page with &amp;quot;{{FormatInfo |formattype=electronic |subcat=3D and CAD/CAM Models }}  == Overview ==  '''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''OakPDT''' is a 2D parametric CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CAD (&amp;quot;PDT Dwg&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte || Major version number of the file format (always 1)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte || Minor version number of the format&lt;br /&gt;
* 2 corresponds to OakPDT v2.50 (17 November 1990)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Null-terminated string || &amp;lt;code&amp;gt;The_Design_System&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;Oak_P_D_T_Drawing&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Integer || Number of symbols (&amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Array || &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; symbol table entries&lt;br /&gt;
|-&lt;br /&gt;
| (s * 12) + 0 ||&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; | Symbol table entry&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Byte ||&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Integer ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/WorraCAD_Drawing</id>
		<title>WorraCAD Drawing</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/WorraCAD_Drawing"/>
				<updated>2022-10-04T13:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: Created page with &amp;quot;{{FormatInfo |formattype=electronic |subcat=3D and CAD/CAM Models }}  == Overview ==  '''WorraCAD''' is a 2D precision CAD system for RISC OS. On RISC OS systems, files in thi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=3D and CAD/CAM Models&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''WorraCAD''' is a 2D precision CAD system for RISC OS. On RISC OS systems, files in this format typically have a filetype of CED (&amp;quot;WCADFile&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
&lt;br /&gt;
* {{ArcadeBBSLink|018999|a1-a4wc}}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://web.archive.org/web/19970501020507/http://www.oakltd.demon.co.uk/prod/wcad.htm Page on Oak Solutions site] (archived)&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Squash_(RISC_OS)</id>
		<title>Squash (RISC OS)</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Squash_(RISC_OS)"/>
				<updated>2022-10-04T12:26:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Compression&lt;br /&gt;
}}&lt;br /&gt;
'''Squash''' files ([[RISC OS filetype|file type]] FCA, Squash) contain compressed data for single files on RISC OS systems.&lt;br /&gt;
&lt;br /&gt;
The [[file command]] calls this format &amp;quot;squished&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
&lt;br /&gt;
According to the help text for the Squash application, &amp;quot;The Squash module currently compresses using a 12-bit LZW algorithm but no guarantee is made that this will be so in the future.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The compressed data is preceded by a header, with offsets measured in bytes and all values stored in little-endian byte order:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
! Offset || Description&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| &amp;quot;SQSH&amp;quot; (4 byte ID)&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| Length of the original, uncompressed file in bytes&lt;br /&gt;
|-&lt;br /&gt;
! 8&lt;br /&gt;
| Load address of the original file&lt;br /&gt;
|-&lt;br /&gt;
! 12&lt;br /&gt;
| Execution address of the original file&lt;br /&gt;
|-&lt;br /&gt;
! 16&lt;br /&gt;
| Reserved (should be 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As with a number of data formats related to filing systems on RISC OS, the load and execution addresses are actually used to hold the [[RISC OS filetype|file type]] and date stamp of the original file.&lt;br /&gt;
&lt;br /&gt;
The remaining data in the file (from offset 20 to the end) is in [[compress]] format, and can be decompressed using gunzip. One way to do this is to run the following in a bash shell:&lt;br /&gt;
&lt;br /&gt;
  dd if=input_file skip=20 bs=1 | gunzip -c - &amp;gt; output_file&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [https://github.com/mjwoodcock/riscosarc/ RISC OS de-archiver]&lt;br /&gt;
* {{Deark}}&lt;br /&gt;
* Or see the [[#Format details]] section above, for a way to convert to [[compress]] format.&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* http://www.arcade-bbs.net/filepages/file77.htm → {{ArcadeBBSLink|078954|Time1}}, {{ArcadeBBSLink|073941|WATERFALL}}&lt;br /&gt;
* https://telparia.com/fileFormatSamples/archive/squash/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://acorn.riscos.com/riscos3/35/35DiscImage/Apps/!Squash/!Help Help file] for the Squash application&lt;br /&gt;
* [http://acorn.riscos.com/riscos3/37/37DiscImage/Manuals/Manual/BOOK2AB/E_18.HTM Manual page] in the RISC OS 3.7 user guide&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Spark</id>
		<title>Spark</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Spark"/>
				<updated>2022-10-04T12:24:03Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
|extensions={{ext|spk}}, {{ext|arc}}&lt;br /&gt;
}}&lt;br /&gt;
'''Spark''' (Acorn Spark compressed archive) is a type of compressed file archive traditionally found on RISC OS systems, with [[RISC OS filetype|file type]] DDC (Archive). Created by SparkFS, these archives were often used to transfer data in a form that could be unpacked by the freely redistributable SparkPlug tool.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
The format is an incompatible variant of [[ARC (compression format)|ARC]]. The most obvious differences from ARC are that the high bit of the ''compression method'' byte is set, and the member file header has an additional 12 bytes, for RISC OS file attributes. Subdirectories are possible, in a way, by storing them as nested Spark archives.&lt;br /&gt;
&lt;br /&gt;
=== Compression methods ===&lt;br /&gt;
Spark uses a subset of [[ARC (compression format)|ARC]]'s compression methods, with the same numbering scheme (taking the compression method to be the low 7 bits of the compression byte). It adds one method of its own (&amp;quot;compressed&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
It's not completely clear which compression methods are supposed to be allowed in Spark format. Here are the methods supported by ''nspark'', which claims to support all methods supported by ''!Spark for UNIX'' 1 and 2, as well as method 9.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID (8-bit) !! ID (7-bit) !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x80&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt; || 0 || End-of-archive marker ||rowspan=&amp;quot;6&amp;quot;| Refer to [[ARC (compression format)#Compression methods|ARC]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x81&amp;lt;/code&amp;gt; || 1 || Uncompressed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x82&amp;lt;/code&amp;gt; || 2 || Uncompressed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x83&amp;lt;/code&amp;gt; || 3 || Packed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x88&amp;lt;/code&amp;gt; || 8 || Crunched&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x89&amp;lt;/code&amp;gt; || 9 || Squashed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0xff&amp;lt;/code&amp;gt; || 127 || Compressed || [[LZW]]. Like method #8, but does not use RLE, and has a configurable maximum code size up to 16 bits.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [https://github.com/mjwoodcock/nspark nspark] - a tool to catalogue and unpack Spark archives (in source code form)&lt;br /&gt;
* [http://www.svgalib.org/rus/nomarch.html nomarch] v1.3+ can unpack Spark archives.&lt;br /&gt;
* [https://github.com/mjwoodcock/riscosarc/ RISC OS de-archiver]&lt;br /&gt;
* [https://www.davidpilling.com/riscos.html], [https://www.davidpilling.com/free.html] → Spark, SparkPlug&lt;br /&gt;
* {{Deark}}&lt;br /&gt;
* [http://xmp.sourceforge.net/ xmp]&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* Many of the files at [http://www.arcade-bbs.net/filepages/findex.htm The Arcade BBS Filebase] ([ftp://www.arcade-bbs.net/ ftp])&lt;br /&gt;
** E.g. [http://www.arcade-bbs.net/filepages/file77.htm Sprite Picture files] → {{ArcadeBBSLink|028864|level1}}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/PackDir</id>
		<title>PackDir</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/PackDir"/>
				<updated>2022-10-04T12:22:50Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
}}&lt;br /&gt;
'''PackDir''' is an archiving tool for RISC OS, and its associated file format. It can compress file using an [[LZW]] algorithm, or store uncompressed files.&lt;br /&gt;
&lt;br /&gt;
The LZW algorithm is the variant used in the [[Zoo]] archiver, except that the &amp;quot;max bits&amp;quot; parameter is configurable.&lt;br /&gt;
&lt;br /&gt;
Its [[RISC OS filetype]] is 68E.&lt;br /&gt;
&lt;br /&gt;
== File format ==&lt;br /&gt;
''This section contains reverse-engineered information about the format.''&lt;br /&gt;
&lt;br /&gt;
32bit ints are in LSB format.  Strings are NULL-terminated ASCII.&lt;br /&gt;
&lt;br /&gt;
File/directory dates and times are stored in a RISC OS format: The low 8 bits of the &amp;quot;load&amp;quot; address, combined with the &amp;quot;exec&amp;quot; address, form a 40-bit integer representing the number of 0.01-second intervals since the beginning of the year 1900.&lt;br /&gt;
&lt;br /&gt;
File format:&lt;br /&gt;
    Header&lt;br /&gt;
    object_entry_1&lt;br /&gt;
    object_entry_2&lt;br /&gt;
    ...&lt;br /&gt;
    object_entry_N&lt;br /&gt;
&lt;br /&gt;
Header:&lt;br /&gt;
    String: &amp;quot;PACK\0&amp;quot;&lt;br /&gt;
    32bit_int: LZW maxbits - 12&lt;br /&gt;
&lt;br /&gt;
object_entry:&lt;br /&gt;
    string: object_name (including trailing NULL)&lt;br /&gt;
    32bit_int: load (RISC OS load address)&lt;br /&gt;
    32bit_int: exec (RISC OS exec address)&lt;br /&gt;
    32bit_int: original_file_length if this object is a file, number_of_child_entries otherwise&lt;br /&gt;
    32bit_int: attributes (RISC OS read/write permissions)&lt;br /&gt;
    32bit_int: entry_type: 1 == directory, 0 == file.  NB: This field is missing for the first entry in the file -&lt;br /&gt;
               the first entry is always a directory&lt;br /&gt;
&lt;br /&gt;
If the entry is a file, then these fields follow:&lt;br /&gt;
    32bit_int: Compressed_file_length or special code - If this field is -1 the file is not compressed,&lt;br /&gt;
               otherwise compressed with LZW.&lt;br /&gt;
    N bytes: archived file data.  N == compressed_file_length if file is compressed, otherwise original_file_length&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
Files begin with &amp;quot;{{magic|PACK}}&amp;quot;, followed by {{magic|0x00}}. Note that this is not enough to distinguish them from [[Git]] pack format.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [http://www.zeridajh.org/software/packdir/index.htm PackDir download page] (RISC OS software)&lt;br /&gt;
* [https://github.com/mjwoodcock/riscosarc riscosarc]&lt;br /&gt;
* {{Deark}}&lt;br /&gt;
&lt;br /&gt;
== Example files ==&lt;br /&gt;
* [http://www.zeridajh.org/software/earthmap/downloads/earthmap_120.bin earthmap_120.bin]&lt;br /&gt;
* {{ArcadeBBSLink|079556|MyXCard95A}}&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Maestro</id>
		<title>Maestro</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Maestro"/>
				<updated>2022-10-04T12:22:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Audio and Music&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
'''!Maestro''' is a simple notation program supplied on Acorn RISC OS machines.&lt;br /&gt;
&lt;br /&gt;
Documentation for this file format can be found [https://www.riscosopen.org/wiki/documentation/show/File%20formats:%20MusicFile here].&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
Note: You will need to install [[ArcFS|nspark]] to unarchive some of the sample files.&lt;br /&gt;
&lt;br /&gt;
* [https://gitlab.riscosopen.org/RiscOS/Sources/Apps/Maestro/-/tree/master/Examples Examples]&lt;br /&gt;
* {{ArcadeBBSLink|000232|entertain}}&lt;br /&gt;
* [http://www.arcade-bbs.net/filepages/file50.htm a few example files here]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/ArcFS</id>
		<title>ArcFS</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/ArcFS"/>
				<updated>2022-10-04T12:17:51Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
|extensions={{noext}}, {{ext|arc}}&lt;br /&gt;
}}&lt;br /&gt;
'''ArcFS''' is an archiver for RISC OS, claimed to have similar functions to [[Spark]] and to have a free read-only (de-archiver) version, so that you don't have to buy anything to open archives created in the ArcFS format.&lt;br /&gt;
&lt;br /&gt;
== Identifiers ==&lt;br /&gt;
The (rather over-used) '''.arc''' file extension is sometimes used, even though the format is not compatible with the various other formats for various other platforms that have also used this extension. On RISC OS systems, files in this format typically have a [[RISC OS filetype|filetype]] of 3FB (&amp;quot;ArcFSArc&amp;quot;). Prior to the official filetype allocation sometime around 1993, filetype DDC (&amp;quot;Archive&amp;quot;) was used (although DDC was also used for other file formats such as [[ZIP]]).&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
ArcFS files normally begin with {{magic|41 72 63 68 69 76 65 00}} (&amp;quot;{{magic|Archive\0}}&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Another possible signature suggested by the [[file command]] is {{magic|1A 61 72 63 68 69 76 65}}.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
* [https://github.com/mjwoodcock/nspark nspark] → man/arcfs.5&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [https://github.com/mjwoodcock/nspark nspark]&lt;br /&gt;
* [https://github.com/mjwoodcock/riscosarc riscosarc]&lt;br /&gt;
* {{Deark}}&lt;br /&gt;
* [http://xmp.sourceforge.net/ xmp]&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* [https://archive.org/details/cdrom-riscos-apdl-pd2a APDL Public Domain CD 2] contains many files in ArcFS format&lt;br /&gt;
* http://www.arcade-bbs.net/filepages/file77.htm → {{ArcadeBBSLink|085877|MacScrn}}&lt;br /&gt;
* https://telparia.com/fileFormatSamples/archive/arcFS/&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.riscos.info/index.php/ArcFS Page in riscos.info site]&lt;br /&gt;
* [http://www.armclub.org.uk/products/arcfs/ Page in ARM Club site]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Template:ArcadeBBSLink</id>
		<title>Template:ArcadeBBSLink</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Template:ArcadeBBSLink"/>
				<updated>2022-10-04T12:14:42Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: Created page with &amp;quot;&amp;lt;includeonly&amp;gt;[https://archive.org/download/ftpsites_arcade.demon.co.uk_2013.06.17/arcade.demon.co.uk.zip/arcade.demon.co.uk%2FData%2F{{#sub:000000{{#expr: floor({{{1}}} div 25...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;[https://archive.org/download/ftpsites_arcade.demon.co.uk_2013.06.17/arcade.demon.co.uk.zip/arcade.demon.co.uk%2FData%2F{{#sub:000000{{#expr: floor({{{1}}} div 2500) * 2500 }}|-6}}%2F{{#sub:000000{{#expr: floor({{{1}}} div 50) * 50 }}|-6}}%2F{{{1}}} {{{2|{{{1|}}}}}}]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Spark</id>
		<title>Spark</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Spark"/>
				<updated>2022-01-19T18:01:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
|extensions={{ext|spk}}, {{ext|arc}}&lt;br /&gt;
}}&lt;br /&gt;
'''Spark''' (Acorn Spark compressed archive) is a type of compressed file archive traditionally found on RISC OS systems, with [[RISC OS filetype|file type]] DDC (Archive). Created by SparkFS, these archives were often used to transfer data in a form that could be unpacked by the freely redistributable SparkPlug tool.&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
The format is an incompatible variant of [[ARC (compression format)|ARC]]. The most obvious differences from ARC are that the high bit of the ''compression method'' byte is set, and the member file header has an additional 12 bytes, for RISC OS file attributes. Subdirectories are possible, in a way, by storing them as nested Spark archives.&lt;br /&gt;
&lt;br /&gt;
=== Compression methods ===&lt;br /&gt;
Spark uses a subset of [[ARC (compression format)|ARC]]'s compression methods, with the same numbering scheme (taking the compression method to be the low 7 bits of the compression byte). It adds one method of its own (&amp;quot;compressed&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
It's not completely clear which compression methods are supposed to be allowed in Spark format. Here are the methods supported by ''nspark'', which claims to support all methods supported by ''!Spark for UNIX'' 1 and 2, as well as method 9.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ID (8-bit) !! ID (7-bit) !! Name !! Description and remarks&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x80&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;0x00&amp;lt;/code&amp;gt; || 0 || End-of-archive marker ||rowspan=&amp;quot;6&amp;quot;| Refer to [[ARC (compression format)#Compression methods|ARC]] for more information.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x81&amp;lt;/code&amp;gt; || 1 || Uncompressed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x82&amp;lt;/code&amp;gt; || 2 || Uncompressed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x83&amp;lt;/code&amp;gt; || 3 || Packed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x88&amp;lt;/code&amp;gt; || 8 || Crunched&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0x89&amp;lt;/code&amp;gt; || 9 || Squashed&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;0xff&amp;lt;/code&amp;gt; || 127 || Compressed || [[LZW]]. Like method #8, but does not use RLE, and has a configurable maximum code size up to 16 bits.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [https://github.com/mjwoodcock/nspark nspark] - a tool to catalogue and unpack Spark archives (in source code form)&lt;br /&gt;
* [http://www.svgalib.org/rus/nomarch.html nomarch] v1.3+ can unpack Spark archives.&lt;br /&gt;
* [https://github.com/mjwoodcock/riscosarc/ RISC OS de-archiver]&lt;br /&gt;
* [https://www.davidpilling.com/riscos.html], [https://www.davidpilling.com/free.html] → Spark, SparkPlug&lt;br /&gt;
* {{Deark}}&lt;br /&gt;
* [http://xmp.sourceforge.net/ xmp]&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* Many of the files at [http://www.arcade-bbs.net/filepages/findex.htm The Arcade BBS Filebase] ([ftp://www.arcade-bbs.net/ ftp])&lt;br /&gt;
** E.g. [http://www.arcade-bbs.net/filepages/file77.htm Sprite Picture files] → [ftp://www.arcade-bbs.net/data/027500/028850/028864 level1]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/ArcFS</id>
		<title>ArcFS</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/ArcFS"/>
				<updated>2022-01-19T18:00:08Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
|extensions={{noext}}, {{ext|arc}}&lt;br /&gt;
}}&lt;br /&gt;
'''ArcFS''' is an archiver for RISC OS, claimed to have similar functions to [[Spark]] and to have a free read-only (de-archiver) version, so that you don't have to buy anything to open archives created in the ArcFS format.&lt;br /&gt;
&lt;br /&gt;
== Identifiers ==&lt;br /&gt;
The (rather over-used) '''.arc''' file extension is sometimes used, even though the format is not compatible with the various other formats for various other platforms that have also used this extension. On RISC OS systems, files in this format typically have a [[RISC OS filetype|filetype]] of 3FB (&amp;quot;ArcFSArc&amp;quot;). Prior to the official filetype allocation sometime around 1993, filetype DDC (&amp;quot;Archive&amp;quot;) was used (although DDC was also used for other file formats such as [[ZIP]]).&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
ArcFS files normally begin with {{magic|41 72 63 68 69 76 65 00}} (&amp;quot;{{magic|Archive\0}}&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Another possible signature suggested by the [[file command]] is {{magic|1A 61 72 63 68 69 76 65}}.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
* [https://github.com/mjwoodcock/nspark nspark] → man/arcfs.5&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [https://github.com/mjwoodcock/nspark nspark]&lt;br /&gt;
* [https://github.com/mjwoodcock/riscosarc riscosarc]&lt;br /&gt;
* {{Deark}}&lt;br /&gt;
* [http://xmp.sourceforge.net/ xmp]&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* [https://archive.org/details/cdrom-riscos-apdl-pd2a APDL Public Domain CD 2] contains many files in ArcFS format&lt;br /&gt;
* http://www.arcade-bbs.net/filepages/file77.htm → [ftp://www.arcade-bbs.net/data/085000/085850/085877 MacScrn]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.riscos.info/index.php/ArcFS Page in riscos.info site]&lt;br /&gt;
* [http://www.armclub.org.uk/products/arcfs/ Page in ARM Club site]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Digital_Symphony_module</id>
		<title>Digital Symphony module</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Digital_Symphony_module"/>
				<updated>2022-01-19T17:58:34Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Audio and Music&lt;br /&gt;
|extensions={{ext|dsym}}&lt;br /&gt;
|released=~1992&lt;br /&gt;
}}&lt;br /&gt;
'''Digital Symphony module''' (or '''Digital Symphony song''') is one of the audio formats associated with Digital Symphony, a soundtrack editor for RISC OS.&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
Files begin with bytes {{magic|02 01 13 13 14 12 01 0b}}.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [https://zxtune.bitbucket.io/ zxtune]&lt;br /&gt;
* [http://xmp.sourceforge.net/ xmp]&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* [http://www.apdl.org.uk/apdlpd/library/symphony.htm APDL PD Library: Digital Symphony]&lt;br /&gt;
* [https://archive.org/details/cdrom-riscos-datafile-pdcd4 The Datafile PD CD 4] → MUSIC/SY*&lt;br /&gt;
* https://telparia.com/fileFormatSamples/music/digitalSymphony/&lt;br /&gt;
* https://ftp.modland.com/pub/modules/Digital%20Symphony/&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://web.archive.org/web/20001003003645/http://www.oregan.com:80/products/dsym.html Archive of Digital Symphony website], from archive.org&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Maestro</id>
		<title>Maestro</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Maestro"/>
				<updated>2021-07-31T15:03:47Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Audio and Music&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
'''!Maestro''' is a simple notation program supplied on Acorn RISC OS machines.&lt;br /&gt;
&lt;br /&gt;
Documentation for this file format can be found [https://www.riscosopen.org/wiki/documentation/show/File%20formats:%20MusicFile here].&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
Note: You will need to install [[ArcFS|nspark]] to unarchive some of the sample files.&lt;br /&gt;
&lt;br /&gt;
* [https://gitlab.riscosopen.org/RiscOS/Sources/Apps/Maestro/-/tree/master/Examples Examples]&lt;br /&gt;
* [ftp://www.arcade-bbs.net/data/000000/000200/000232 entertain]&lt;br /&gt;
* [http://www.arcade-bbs.net/filepages/file50.htm a few example files here]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/SoundFX_module</id>
		<title>SoundFX module</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/SoundFX_module"/>
				<updated>2021-07-30T20:34:37Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Audio and Music&lt;br /&gt;
|extensions={{ext|sfx}}, {{ext|sfx2}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
SoundFX is a tracker for the Commodore Amiga (not to be confused with the other Amiga SoundFX, a sample editing software) which produces modules with the extensions '''.sfx''' and '''.sfx2'''.&lt;br /&gt;
&lt;br /&gt;
There appear to be at least four different versions of the format - v1.0, v1.8, v1.9 and v2.0. The first three versions seem to have the extension '''.sfx''', with v2.0 using the extension '''.sfx2'''.&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/libxmp/libxmp/blob/master/docs/formats/sfx-format.txt xmp/doc/format/sfx_format]&lt;br /&gt;
* [https://github.com/photonstorm/Flod/blob/master/Flod%204.1/neoart/flod/soundfx/FXPlayer.as Flod 4.1 - FXPlayer.as] appears to show the differences necessary for correct playback of the various versions of the format. Ported to JavaScript [https://github.com/photonstorm/FlodJS/blob/master/Flod%20JS%202.1/includes/FXPlayer.js here].&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
* [ftp://ftp.modland.com/pub/software/trackers/Amiga/SoundFX/ SoundFX]&lt;br /&gt;
* [http://xmp.sourceforge.net/ xmp]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [ftp://ftp.modland.com/pub/modules/SoundFX/ Example .sfx files]&lt;br /&gt;
* [ftp://ftp.modland.com/pub/modules/SoundFX%202/ Example .sfx2 files]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Coconizer_module</id>
		<title>Coconizer module</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Coconizer_module"/>
				<updated>2021-07-30T20:27:49Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Audio and Music&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Coconizer was a music player / creator for [[RISC OS]].&lt;br /&gt;
&lt;br /&gt;
== Information ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/libxmp/libxmp/blob/master/docs/formats/Coconizer_FileFormat.txt The old format of a Coconizer Song/Trackfile]&lt;br /&gt;
* [https://github.com/libxmp/libxmp/blob/master/docs/formats/Coconizer_FileFormax.txt New Format of a Coconizer Song/Trackfile]&lt;br /&gt;
* [https://github.com/libxmp/libxmp/blob/master/docs/formats/coconizer-notes.txt Useful excerpts from the user manual]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.pouet.net/prod.php?which=50177 Coconizer v1.3]&lt;br /&gt;
* [http://xmp.sourceforge.net/ xmp]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.apdl.org.uk/apdlpd/library/sounds.htm Some example Coconizer modules]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Archiving</id>
		<title>Archiving</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Archiving"/>
				<updated>2021-04-19T18:26:59Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|thiscat=Archiving&lt;br /&gt;
|image=Magazine-files.jpg&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
(Lossless, for generic data + file archives)&lt;br /&gt;
&lt;br /&gt;
See also: [[Compression]], [[Error detection and correction]]&lt;br /&gt;
&lt;br /&gt;
== Archiving only ==&lt;br /&gt;
(many files =&amp;gt; 1 file, no compression attempted)&lt;br /&gt;
&lt;br /&gt;
* [[AR]] file format (.a, .lib) -- Unix Archiver (ar) format as used by various compilers/linkers&lt;br /&gt;
* [[ARC (Internet Archive)]] (.arc)&lt;br /&gt;
* [[BagIt]]&lt;br /&gt;
* [[BAR (Age of Mythology)]]&lt;br /&gt;
* [[bar]] (SunOS 4)&lt;br /&gt;
* [[CAR (CarComp)]]&lt;br /&gt;
* [[cpio]] (.cpio)&lt;br /&gt;
* [[FAR (The Sims)]] (.far)&lt;br /&gt;
* [[Flash (Micro TECH Systems)]] (.flh)&lt;br /&gt;
* [[Hamster archive]]&lt;br /&gt;
* [[LBR]] (.lbr)&lt;br /&gt;
* [[LBR (Commodore)]] (.lbr)&lt;br /&gt;
* [[Lynx archive]] (Commodore) (.lnx)&lt;br /&gt;
* [[Mozilla Archive]] (.mar)&lt;br /&gt;
* [[pax]]&lt;br /&gt;
* [[Quake PAK]]&lt;br /&gt;
* [[SAVF]]&lt;br /&gt;
* [[SeqBox]] (.sbx)&lt;br /&gt;
* [[siva]] (.siva)&lt;br /&gt;
* [[Tape Archive]] (.tar)&lt;br /&gt;
* [[TPAC (Tim Gordon)]]&lt;br /&gt;
* [[VIV]] (.viv, .big; used in Electronic Arts games)&lt;br /&gt;
* [[Webarchive (Safari)]]&lt;br /&gt;
* [[XMIT]]&lt;br /&gt;
&lt;br /&gt;
== Compression + archiving ==&lt;br /&gt;
(Multiple files =&amp;gt; 1 file, makes it smaller. See [[Compression]] for formats that compress single files/streams, and [[Disk Image Formats]] for formats that capture the low-level structure of a disk)&lt;br /&gt;
&lt;br /&gt;
* [[4Q]] (.4q)&lt;br /&gt;
* [[777]]&lt;br /&gt;
* [[7z]] (.7z)&lt;br /&gt;
* [[ACB (compressed archive)|ACB]]&lt;br /&gt;
* [[ACE]] (.ace)&lt;br /&gt;
* [[afio]]&lt;br /&gt;
* [[AIN]] (.ain)&lt;br /&gt;
* [[ALZ]] (.alz) (ALZip)&lt;br /&gt;
* [[AMG (compressed archive)|AMG]] (AMGC)&lt;br /&gt;
* [[AR7]]&lt;br /&gt;
* [[ARC (compression format)|ARC]] (PC/MS-DOS) (.arc)&lt;br /&gt;
* [[ARC (Commodore)]] (.arc)&lt;br /&gt;
* [[ARC (FreeArc)]] (.arc)&lt;br /&gt;
* [[ARC (Internet Archive)]] (gzipped form: .arc.gz)&lt;br /&gt;
* [[ArcFS]] (RISC OS) (.arc)&lt;br /&gt;
* [[ArcMac]]&lt;br /&gt;
* [[ARG]]&lt;br /&gt;
* [[ARHANGEL]]&lt;br /&gt;
* [[ARJ]]&lt;br /&gt;
* [[ARX]]&lt;br /&gt;
* [[ASD Archiver]]&lt;br /&gt;
* [[Astrotite]] (.afa)&lt;br /&gt;
* [[B6Z]] (.b6z)&lt;br /&gt;
* [[BIX]]&lt;br /&gt;
* [[BlakHole]] (.bh)&lt;br /&gt;
* [[BRU]] - (RSX-11M backup)&lt;br /&gt;
* [[BSArc and BSA]]&lt;br /&gt;
* [[Cabinet]] (.cab)&lt;br /&gt;
* [[CAR (SAP)|CAR]] (a SAP archive format; also see [[SAR]])&lt;br /&gt;
* [[CAR (MylesHi!)]]&lt;br /&gt;
* [[CFL]] (Compressed file library) (.cfl)&lt;br /&gt;
* [[ChiefLZ]] (LZA)&lt;br /&gt;
* [[CMZ (archive format)|CMZ]]&lt;br /&gt;
* [[CODEC (Telvox)]]&lt;br /&gt;
* [[Compact File Set]] (.cfs)&lt;br /&gt;
* [[Compact Pro]] (.cpt)&lt;br /&gt;
* [[CRUSH]]&lt;br /&gt;
* [[Disk Archiver]] (.dar)&lt;br /&gt;
* [[DGCA]] (.dgc)&lt;br /&gt;
* [[Diamond]]&lt;br /&gt;
* [[Doom WAD]] (.wad)&lt;br /&gt;
* [[DWC]] (.dwc)&lt;br /&gt;
* [[Dzip]] (.dz)&lt;br /&gt;
* [[Eazel]] (.eaz)&lt;br /&gt;
* [[EGG (ALZip)]] (.egg)&lt;br /&gt;
* [[Freeze!]]&lt;br /&gt;
* [[FTCOMP]]&lt;br /&gt;
* [[GCA]] (.gca)&lt;br /&gt;
* [[Genus Graphics Library]]&lt;br /&gt;
* [[Greenleaf ArchiveLib]]&lt;br /&gt;
* [[HA]] (.ha)&lt;br /&gt;
* [[HAP]]&lt;br /&gt;
* [[HKI]] (WinHKI) (.hki)&lt;br /&gt;
* [[HPACK (compressed archive)|HPACK]] (.hpk)&lt;br /&gt;
* [[HUF (CP/M)]]&lt;br /&gt;
* [[Hyper archive]] (.hyp)&lt;br /&gt;
* [[ICE (ICEOWS)]] (.ice)&lt;br /&gt;
* [[IMP]] (.imp)&lt;br /&gt;
* [[JAR (ARJ Software)]] (.j)&lt;br /&gt;
* [[JARCS]] (.jar)&lt;br /&gt;
* [[JRchive]] (.jrc)&lt;br /&gt;
* [[KGB Archiver]] (.kgb)&lt;br /&gt;
* [[Konqueror web archive]] (.war)&lt;br /&gt;
* [[LHA]] (.lzh, .lha)&lt;br /&gt;
* [[LHARK]]&lt;br /&gt;
* [[LHice]]&lt;br /&gt;
* [[LIMIT]] (.lim)&lt;br /&gt;
* [[LZX]] (.lzx)&lt;br /&gt;
* [[MAFF]] (Mozilla web archive; uses ZIP for compression)&lt;br /&gt;
* [[MAr (Melting-Pot)]]&lt;br /&gt;
* [[MDCD]] (.md)&lt;br /&gt;
* [[Micrognosis Compression Archiver]] (MAR)&lt;br /&gt;
* [[Now Compress]]&lt;br /&gt;
* [[NuFX]] (.bxy)&lt;br /&gt;
* [[oPAQue]]&lt;br /&gt;
* [[packARC]] (.pja)&lt;br /&gt;
* [[Packdir]] (RISC OS)&lt;br /&gt;
* [[PackIt]] (.pit)&lt;br /&gt;
* [[PAK]] (.pak) &lt;br /&gt;
* [[PAK (ARC extension)]]&lt;br /&gt;
* [[PAQ]] (.pa6, .pa7, .pa8, others)&lt;br /&gt;
* [[PCX Library]] (.pcl)&lt;br /&gt;
* [[PEA]] (PeaZIP) (.pea) &lt;br /&gt;
* [[PerfectCompress]] (.uca)&lt;br /&gt;
* [[PIM]] (.pim)&lt;br /&gt;
* [[PLA]] (ARCHICAD Archive) (.pla)&lt;br /&gt;
* [[PMA]] (.pma)&lt;br /&gt;
* [[PPMd]]&lt;br /&gt;
* [[PUT]] (MicroFox) (.put)&lt;br /&gt;
* [[Quadruple D Archiver]] (.qda)&lt;br /&gt;
* [[Quantum compressed archive]] (.q)&lt;br /&gt;
* [[RAR]] (.rar)&lt;br /&gt;
* [[RARC (Nintendo)]]&lt;br /&gt;
* [[RAX (compressed archive)|RAX]]&lt;br /&gt;
* [[RK]] (WinRK)&lt;br /&gt;
* [[RKIVE]] (.rkv)&lt;br /&gt;
* [[S7z]] (.s7z)&lt;br /&gt;
* [[SAR]] (a SAP archive format; also see [[CAR (SAP)|CAR]])&lt;br /&gt;
* [[SAR (Streamline Design)]]&lt;br /&gt;
* [[SARJ]] (.srj)&lt;br /&gt;
* [[Scifer]] (.sen, .ba, .xml)&lt;br /&gt;
* [[ShrinkIt]] (.shk)&lt;br /&gt;
* [[Slim!]]&lt;br /&gt;
* [[Softlib]] (Softdisk Publishing) (.slb)&lt;br /&gt;
* [[Spark]] (.spk)&lt;br /&gt;
* [[SQLite Archive]] (SQLAR)&lt;br /&gt;
* [[Squash ARH|Squash]] (.arh)&lt;br /&gt;
* [[Squeeze It]] (.sqz)&lt;br /&gt;
* [[SQWEZ]] 2.x (.sqz)&lt;br /&gt;
* [[SQX]] (.sqx)&lt;br /&gt;
* [[StuffIt]] (.sit)&lt;br /&gt;
* [[StuffIt X]] (.sitx)&lt;br /&gt;
* [[TBAFS]] (RISC OS)&lt;br /&gt;
* [[TSComp]] (.tsc)&lt;br /&gt;
* [[UFA]]&lt;br /&gt;
* [[UHARC]] (.uha) &lt;br /&gt;
* [[UltraCompressor II]] (.uc, .uc0, .uc2, .ucn, .ur2, .ue2)&lt;br /&gt;
* [[WARC]] (.warc, .warc.gz)&lt;br /&gt;
* [[X (X1)]] (.x)&lt;br /&gt;
* [[xar (Extensible Archive)]] (.xar)&lt;br /&gt;
* [[XP3]] (.xp3) - used in [[KiriKiri Adventure Game System]]&lt;br /&gt;
* [[XPACK]] (.xpa)&lt;br /&gt;
* [[YAC]] (.yc)&lt;br /&gt;
* [[Yamazaki zipper archive]] (.yz1) - used in DeepFreezer&lt;br /&gt;
* [[ZIP]] (.zip)&lt;br /&gt;
* [[Zipx]] (.zipx)&lt;br /&gt;
* [[Zoo]] (.zoo)&lt;br /&gt;
* ZPack Lite (.zpk) - See [[Z/Install Lite]]&lt;br /&gt;
* [[ZPAQ]]&lt;br /&gt;
* [[Zzip]] (.zz)&lt;br /&gt;
&lt;br /&gt;
== Diff files ==&lt;br /&gt;
(containing only the parts of a file that have changed, so they can be applied to an existing file to update it; used for update distribution and incremental backups)&lt;br /&gt;
&lt;br /&gt;
* [[ACB (compressed archive)|ACB]]&lt;br /&gt;
* [[binpatch (Jaap Korthals Altes)]]&lt;br /&gt;
* [[bsdiff]]&lt;br /&gt;
* [[Courgette]]&lt;br /&gt;
* [[diff]]&lt;br /&gt;
* [[FidoNet nodediff]]&lt;br /&gt;
* [[GDIFF]]&lt;br /&gt;
* [[IPS (binary patch format)]]&lt;br /&gt;
* [[JSON Patch]]&lt;br /&gt;
* [[RTPatch]]&lt;br /&gt;
* [[Unified diff]]&lt;br /&gt;
* [[UPS (binary patch format)]]&lt;br /&gt;
* [[VCDIFF]]&lt;br /&gt;
&lt;br /&gt;
See also [[Wikipedia:Data differencing]].&lt;br /&gt;
&lt;br /&gt;
== Encrypted or cryptographically signed archives ==&lt;br /&gt;
* [[SDN (SDN Project)]]&lt;br /&gt;
* [[XIP]]&lt;br /&gt;
* [[ZED]]&lt;br /&gt;
&lt;br /&gt;
== File splitting ==&lt;br /&gt;
(1 file =&amp;gt; multiple files. Most file splitting utilities just produce raw file fragments, and don't have a native file format. But some use a container format, and some create a separate &amp;quot;control&amp;quot; file for metadata.)&lt;br /&gt;
&lt;br /&gt;
* [[AUTOCHOP]]&lt;br /&gt;
* [[LambChop]]&lt;br /&gt;
* [[SPLIT (M. Dingacci)]]&lt;br /&gt;
&lt;br /&gt;
Also, the two sorts of [[Horcrux]], [[Horcrux (jesseduffield)]] and [[Horcrux (kndyry)]], are split-and-encrypted files.&lt;br /&gt;
&lt;br /&gt;
== Filesystem backup and restoration ==&lt;br /&gt;
Formats designed for backing up disks, usually specifically targeted at particular [[filesystem]]s (but backing it up in the form of file structures, not raw sector images like [[Disk Image Formats]]).&lt;br /&gt;
* [[BACKUP (MS-DOS)]]&lt;br /&gt;
* [[BlockHashLoc]]&lt;br /&gt;
* [[Partimage]] &lt;br /&gt;
* [[ufsdump]]&lt;br /&gt;
* [[Unix dump]]&lt;br /&gt;
* [[Windows Imaging Format]] (.wim, .swm)&lt;br /&gt;
&lt;br /&gt;
== Institutional archiving ==&lt;br /&gt;
* [[ARK]] (identifier for archived documents)&lt;br /&gt;
* [[OAIS]] (Open Archival Information System, an organization that does archiving)&lt;br /&gt;
* [[Planets Core Registry]]&lt;br /&gt;
* [[PRONOM]]&lt;br /&gt;
** [[PUID]]&lt;br /&gt;
* [[SIRF]] (Self-Contained Information Retention Format)&lt;br /&gt;
* [[Submission Information Package]]&lt;br /&gt;
* [[UPF]] (Universal Preservation Format)&lt;br /&gt;
&lt;br /&gt;
== Metadata formats ==&lt;br /&gt;
* [[Archive Team hostname file]]&lt;br /&gt;
* [[CDX]] (associated with web archives)&lt;br /&gt;
* [[DFDL]] (Data Format Description Language) - a file format for describing file formats&lt;br /&gt;
* [[Internet Archive metadata]]&lt;br /&gt;
* [[mtree]]&lt;br /&gt;
* [[Portland Common Data Model]]&lt;br /&gt;
* [[TOSEC Naming Convention]]&lt;br /&gt;
* [[Web Archive Metadata File]] (metadata for [[WARC]])&lt;br /&gt;
&lt;br /&gt;
(see also [[Metadata]], [[Bibliographic data]])&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
* [[Cache Directory Tagging Standard]]&lt;br /&gt;
&lt;br /&gt;
== Program/App/Applet/Installer specialized archive formats ==&lt;br /&gt;
* [[APK]] (Android app)&lt;br /&gt;
* [[Bundle file (Linux)]]&lt;br /&gt;
* [[Bundle file (OS X)]]&lt;br /&gt;
* [[Cabal]]&lt;br /&gt;
* [[Cakewalk Bundle (BUN)]]&lt;br /&gt;
* [[Cakewalk Bundle (CWB)]]&lt;br /&gt;
* [[Cross-Platform Installer Module]]&lt;br /&gt;
* [[deb]] (Debian package)&lt;br /&gt;
* [[IPS archive|Image Packaging System (IPS) archive]] (.p5p)&lt;br /&gt;
* [[IPS manifest|Image Packaging System (IPS) manifest]] (.p5m)&lt;br /&gt;
* [[Inno Setup self-extracting archive]]&lt;br /&gt;
* [[InstallShield CAB]]&lt;br /&gt;
* [[InstallShield installer archive]]&lt;br /&gt;
* [[InstallShield Z]]&lt;br /&gt;
* [[IPA]] (.ipa) =&amp;gt; iOS app in archived form; actually in zip format&lt;br /&gt;
* [[Jar]] (.j, .jar) (Java) =&amp;gt; this is just a renamed zip file with some mandatory files&lt;br /&gt;
* [[Meta-Package File]] (.mpkg) (Mac OS X)&lt;br /&gt;
* [[Microsoft Update Standalone Package]]&lt;br /&gt;
* [[NSIS]] (Nullsoft Scriptable Install System)&lt;br /&gt;
* [[Olive]] (executable virtual-machine archive of software)&lt;br /&gt;
* [[Package File (OS X)]] (.pkg)&lt;br /&gt;
* [[PackageForTheWeb]]&lt;br /&gt;
* [[RPM]] (RedHat Package Manager)&lt;br /&gt;
* [[SIS]] (Symbian)&lt;br /&gt;
* [[Snap]]&lt;br /&gt;
* [[SWG]] (SWAG)&lt;br /&gt;
* [[Unity package file]]&lt;br /&gt;
* [[WAD (Wii)]]&lt;br /&gt;
* [[Windows Installer]] (.msi, .msp)&lt;br /&gt;
* [[Wise installer package]]&lt;br /&gt;
* [[XAR (Executable Archive)]]&lt;br /&gt;
* [[Z/Install Lite]]&lt;br /&gt;
&lt;br /&gt;
== Self-extracting archives ==&lt;br /&gt;
(in addition, some of the other archivers are able to produce executable files for some platform which include the archived data and a program to extract them, and generally have the file extension normal for executables, such as .exe for DOS/Windows. In many cases, if you rename the extension to the appropriate one for the archive type involved, e.g., '''.zip''', the file will open in the appropriate archiver, which is handy for extracting them on systems not compatible with the original executable.)&lt;br /&gt;
* [[COMPACK]] / BUILDSFX&lt;br /&gt;
* [[SDA]] (Self Dissolving Archive)&lt;br /&gt;
* [[SEA (StuffIt)]] (StuffIt Self-Extracting Archive)&lt;br /&gt;
* [[Self-extracting ZIP]]&lt;br /&gt;
* [[SFX]] (Self-Extracting Archive)&lt;br /&gt;
* [[shar]] (Shell Archive, in Unix-like systems)&lt;br /&gt;
* [[SQWEZ]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
Refer to [[Compression and archiving software]].&lt;br /&gt;
&lt;br /&gt;
== Transfer formats ==&lt;br /&gt;
(encapsulate a system-specific file structure to make it compatible with foreign systems, file transfer protocols, etc.)&lt;br /&gt;
* [[AppleDouble]]&lt;br /&gt;
* [[AppleSingle]]&lt;br /&gt;
* [[Bento]] (1990s Apple cross-platform compound content format)&lt;br /&gt;
* [[Binary II]] (.bny) (for Apple II series) (often [[squeeze]]d as .bqy)&lt;br /&gt;
* [[BinHex]] (.hqx)&lt;br /&gt;
* [[GEOS Convert]] (.cvt)&lt;br /&gt;
* [[MacBinary]]&lt;br /&gt;
* [[oric-dsk-manager exported file]]&lt;br /&gt;
* [[TI variable file]]&lt;br /&gt;
&lt;br /&gt;
For low-level transfer encodings, see [[Transfer Encodings]].&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.coredumps.de/doc/dump/zwicky/testdump.doc.html Torture-testing Backup and Archive Programs: Things You Ought to Know But Probably Would Rather Not]&lt;br /&gt;
* [http://www.ietf.org/mail-archive/web/apps-discuss/current/msg13094.html Discussion of proposed top-level MIME type for 'archive']&lt;br /&gt;
* [http://blogs.loc.gov/digitalpreservation/2014/02/what-do-you-mean-by-archive-genres-of-usage-for-digital-preservers/ What Do you Mean by Archive? Genres of Usage for Digital Preservers]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/TBAFS</id>
		<title>TBAFS</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/TBAFS"/>
				<updated>2021-04-19T17:03:36Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: Created page with &amp;quot;{{FormatInfo |subcat=Archiving |extensions={{noext}} }} '''TBAFS''' is an archiver for RISC OS. On RISC OS systems, files in this format typically have a [[RISC OS filetype|fi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|subcat=Archiving&lt;br /&gt;
|extensions={{noext}}&lt;br /&gt;
}}&lt;br /&gt;
'''TBAFS''' is an archiver for RISC OS. On RISC OS systems, files in this format typically have a [[RISC OS filetype|filetype]] of B21 (&amp;quot;TBAFSarc&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | File Header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Word containing &amp;quot;TAFS&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Unknown (0xC8)&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Size of the header (0x10)&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Unknown (0x90)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Directory header for the root directory&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Directory header&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Unknown (0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Unknown (0x00)&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Offset to array of directory entries&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Offset to array of directory entries&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Directory entry (file)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Entry type (1)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Load address&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Exec address&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Uncompressed size&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Name (40 bytes, null terminated)&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Offset to file&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Directory entry (subdirectory)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Entry type (2)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Load address&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Exec address&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Uncompressed size (0)&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Name (40 bytes, null terminated)&lt;br /&gt;
|-&lt;br /&gt;
| 24 || Offset to file&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Directory entry (blank)&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Entry type (-1)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 0 (60 bytes)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* http://web.archive.org/web/19971011050058/http://www.tba-software.co.uk:80/games.html&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.tbasoftware.co.uk/p/downloads.html Page on TBA Software site]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Category:File_formats_with_extension_.tca</id>
		<title>Category:File formats with extension .tca</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Category:File_formats_with_extension_.tca"/>
				<updated>2019-03-07T19:05:49Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: Created page with &amp;quot;T&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:File formats by extension|T]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/The_Complete_Animator_Film</id>
		<title>The Complete Animator Film</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/The_Complete_Animator_Film"/>
				<updated>2019-03-07T18:59:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: Created page with &amp;quot;{{FormatInfo |formattype=electronic |subcat=Video |extensions={{noext}}, {{ext|tca}} }}  == Overview ==  '''{{PAGENAME}}''' is an animation file format used by Iota Software's...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Video&lt;br /&gt;
|extensions={{noext}}, {{ext|tca}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
'''{{PAGENAME}}''' is an animation file format used by Iota Software's &amp;quot;The Complete Animator&amp;quot; for RISC OS and Windows systems ([[RISC OS filetype|file type]] C2A).&lt;br /&gt;
&lt;br /&gt;
== Format details ==&lt;br /&gt;
&lt;br /&gt;
Files created by The Complete Animator consists of a series of chunks. A file is required to contain an &amp;lt;code&amp;gt;ACEF&amp;lt;/code&amp;gt; chunk, which contains an [[Ace Film]] file in it's entirety, and a &amp;lt;code&amp;gt;PALE&amp;lt;/code&amp;gt; chunk, which contains the palette, as well as other information about the relevant screen mode.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
* [http://www.iota.co.uk/tca/index78f5.html?page=filefmt/default The Complete Animator File Format]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [http://www.chaos.org.uk/~pdh/software/intergif.htm InterGif]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://www.iota.co.uk/tca/ The Complete Animator website.]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Unified_Emulator_Format</id>
		<title>Unified Emulator Format</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Unified_Emulator_Format"/>
				<updated>2019-03-07T16:31:27Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: PRONOM&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Disk Image Formats&lt;br /&gt;
|extensions={{ext|uef}}&lt;br /&gt;
|pronom={{PRONOM|fmt/792}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The '''Unified Emulator Format''' (UEF) is a format used to store raw tape, disk, and ROM data from Acorn computers, including [[Kansas City Standard data cassette]]s, in a computer file suitable for storage and transfer on modern systems and networks. Since some other computer systems (e.g., the SOL-20) also use the Kansas City standard for cassettes, this format will also serve to archive cassette data for them, similarly to how a [[Tap file]] encodes Commodore cassettes.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [http://mdfs.net/Docs/Comp/BBC/FileFormat/UEFSpecs.htm UEF specs]&lt;br /&gt;
* [[Wikipedia:Unified Emulator Format|Wikipedia article]]&lt;br /&gt;
* [http://beebwiki.jonripley.com/Acorn_cassette_format Acorn cassette format] - covers physical and signal layers in addition to describing the block layer relevant to UEF images&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [http://www.boddie.org.uk/david/Projects/Emulation/UEFtrans/ UEFtrans: Python script to handle UEF data]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Archimedes_VIDC_audio</id>
		<title>Archimedes VIDC audio</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Archimedes_VIDC_audio"/>
				<updated>2019-03-06T23:05:32Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: Created page with &amp;quot;{{FormatInfo |name=Archimedes VIDC audio |formattype=electronic |subcat=Audio and Music }} The audio format used by the VIDC1 chip on the Acorn Archimedes is a variant of [[µ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|name=Archimedes VIDC audio&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Audio and Music&lt;br /&gt;
}}&lt;br /&gt;
The audio format used by the VIDC1 chip on the Acorn Archimedes is a variant of [[µ-law]].&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
* [[FFmpeg]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://www.chiark.greenend.org.uk/~theom/riscos/docs/ultimate/a252aud.txt Acorn and Sun audio formats (and convertor)]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	<entry>
		<id>http://fileformats.archiveteam.org/wiki/Squash_(RISC_OS)</id>
		<title>Squash (RISC OS)</title>
		<link rel="alternate" type="text/html" href="http://fileformats.archiveteam.org/wiki/Squash_(RISC_OS)"/>
				<updated>2018-11-05T15:36:39Z</updated>
		
		<summary type="html">&lt;p&gt;Ccawley2011: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{FormatInfo&lt;br /&gt;
|formattype=electronic&lt;br /&gt;
|subcat=Compression&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Squash files (file type FCA, Squash) contain compressed data for single files on RISC OS systems.&lt;br /&gt;
&lt;br /&gt;
The [[file command]] calls this format &amp;quot;squished&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
&lt;br /&gt;
According to the help text for the Squash application, &amp;quot;The Squash module currently compresses using a 12-bit LZW algorithm but no guarantee is made that this will be so in the future.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The compressed data is preceded by a header, with offsets measured in bytes and all values stored in little-endian byte order:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
! Offset || Description&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| &amp;quot;SQSH&amp;quot; (4 byte ID)&lt;br /&gt;
|-&lt;br /&gt;
! 4&lt;br /&gt;
| Length of the original, uncompressed file in bytes&lt;br /&gt;
|-&lt;br /&gt;
! 8&lt;br /&gt;
| Load address of the original file&lt;br /&gt;
|-&lt;br /&gt;
! 12&lt;br /&gt;
| Execution address of the original file&lt;br /&gt;
|-&lt;br /&gt;
! 16&lt;br /&gt;
| Reserved (should be 0)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As with a number of data formats related to filing systems on RISC OS, the load and execution addresses are actually used to hold the file type and date stamp of the original file.&lt;br /&gt;
&lt;br /&gt;
The remaining data in the file (from offset 20 to the end) can be decompressed using gunzip. One way to do this is to run the following in a bash shell:&lt;br /&gt;
&lt;br /&gt;
  dd if=input_file skip=20 bs=1 | gunzip -c - &amp;gt; output_file&lt;br /&gt;
&lt;br /&gt;
== Sample files ==&lt;br /&gt;
* http://www.arcade-bbs.net/filepages/file77.htm → [ftp://www.arcade-bbs.net/data/077500/078950/078954 Time1], [ftp://www.arcade-bbs.net/data/072500/073900/073941 WATERFALL]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://acorn.riscos.com/riscos3/35/35DiscImage/Apps/!Squash/!Help Help file] for the Squash application&lt;br /&gt;
* [http://acorn.riscos.com/riscos3/37/37DiscImage/Manuals/Manual/BOOK2AB/E_18.HTM Manual page] in the RISC OS 3.7 user guide&lt;br /&gt;
* [http://mdfs.net/Docs/Comp/Acorn/Filetypes The Unofficial Acorn Filetypes List]&lt;br /&gt;
&lt;br /&gt;
[[Category:RISC OS]]&lt;/div&gt;</summary>
		<author><name>Ccawley2011</name></author>	</entry>

	</feed>