<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
		<id>http://wiki.kasettilamerit.fi/wiki/index.php?action=history&amp;feed=atom&amp;title=Brother</id>
		<title>Brother - Muutoshistoria</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.kasettilamerit.fi/wiki/index.php?action=history&amp;feed=atom&amp;title=Brother"/>
		<link rel="alternate" type="text/html" href="http://wiki.kasettilamerit.fi/wiki/index.php?title=Brother&amp;action=history"/>
		<updated>2026-05-19T05:46:36Z</updated>
		<subtitle>Tämän sivun muutoshistoria</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>http://wiki.kasettilamerit.fi/wiki/index.php?title=Brother&amp;diff=62&amp;oldid=prev</id>
		<title>Lameriadmin (29. huhtikuuta 2018 kello 15.45)</title>
		<link rel="alternate" type="text/html" href="http://wiki.kasettilamerit.fi/wiki/index.php?title=Brother&amp;diff=62&amp;oldid=prev"/>
				<updated>2018-04-29T15:45:17Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;col class=&#039;diff-marker&#039; /&gt;
				&lt;col class=&#039;diff-content&#039; /&gt;
				&lt;tr style=&#039;vertical-align: top;&#039; lang=&#039;fi&#039;&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Vanhempi versio&lt;/td&gt;
				&lt;td colspan=&#039;2&#039; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Versio 29. huhtikuuta 2018 kello 15.45&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot; &gt;Rivi 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Brother LW-20, LW-30 LW-100 LW-400 and WP-70 disk format ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Brother LW-20, LW-30 LW-100 LW-400 and WP-70 disk format ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;* Based on one set of Brother LW-30 dumps. All were single sided, tracks were offset, logical track 0 is on physical track 2, 12 sectors per track, 256 bytes per sector.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;* Bitcell timing is the same as with 300 rpm FM.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Based on one set of Brother LW-30 dumps. All were single sided, tracks were offset, logical track 0 is on physical track 2, 12 sectors per track, 256 bytes per sector.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Bitcell timing is the same as with 300 rpm FM.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Documentation&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Documentation&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lameriadmin</name></author>	</entry>

	<entry>
		<id>http://wiki.kasettilamerit.fi/wiki/index.php?title=Brother&amp;diff=61&amp;oldid=prev</id>
		<title>Lameriadmin: Ak: Uusi sivu:  == Brother LW-20, LW-30 LW-100 LW-400 and WP-70 disk format ==   * Based on one set of Brother LW-30 dumps. All were single sided, tracks were offset, logical track 0 is on physic...</title>
		<link rel="alternate" type="text/html" href="http://wiki.kasettilamerit.fi/wiki/index.php?title=Brother&amp;diff=61&amp;oldid=prev"/>
				<updated>2018-04-29T15:44:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ak: Uusi sivu:  == Brother LW-20, LW-30 LW-100 LW-400 and WP-70 disk format ==   * Based on one set of Brother LW-30 dumps. All were single sided, tracks were offset, logical track 0 is on physic...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uusi sivu&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
== Brother LW-20, LW-30 LW-100 LW-400 and WP-70 disk format ==&lt;br /&gt;
&lt;br /&gt;
 * Based on one set of Brother LW-30 dumps. All were single sided, tracks were offset, logical track 0 is on physical track 2, 12 sectors per track, 256 bytes per sector.&lt;br /&gt;
 * Bitcell timing is the same as with 300 rpm FM.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Documentation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
8-bit GCR (MSB always 1) to 5 bits of data, translated in continuous stream, 8 GCR bytes into 5 decoded bytes at a time:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;AA  00     BA  08     DA  10     EE  18&lt;br /&gt;
AB  01     BB  09     DB  11     EF  19&lt;br /&gt;
AD  02     BD  0A     DD  12     F5  1A&lt;br /&gt;
AE  03     BE  0B     DE  13     F6  1B&lt;br /&gt;
AF  04     BF  0C     DF  14     F7  1C&lt;br /&gt;
B5  05     D5  0D     EA  15     FA  1D&lt;br /&gt;
B6  06     D6  0E     EB  16     FB  1E&lt;br /&gt;
B7  07     D7  0F     ED  17     FD  1F&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
16-bit GCR to track/sector number translation table:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;EFDA  00     DEEB  10     D5DE  20     B7EF  30     ABFD  40     D5B5  50     B7BE  60     ABDB  70&lt;br /&gt;
ADB7  01     F7D5  11     EBBD  21     DADA  31     BDEB  41     EBF7  51     DAAD  61     BDBA  71&lt;br /&gt;
BEFB  02     B5AF  12     FDAB  22     EFB7  32     DED5  42     FDDE  52     EFEF  62     DEFD  72&lt;br /&gt;
DFEA  03     D6F6  13     BAEE  23     ADFB  33     F7AF  43     BABD  53     ADDA  63     F7EB  73&lt;br /&gt;
FABF  04     EDDD  14     DBD7  24     BEEA  34     B5F6  44     DBAB  54     BEB7  64     B5D5  74&lt;br /&gt;
B6AE  05     AABB  15     F5B6  25     DFBF  35     D6DD  45     F5EE  55     DFFB  65     D6AF  75&lt;br /&gt;
D7F5  06     BBED  16     AEFA  26     FAAE  36     EDBB  46     AED7  56     FAEA  66     EDF6  76&lt;br /&gt;
EEDB  07     DDD6  17     BFDF  27     B6F5  37     DDAA  47     BFB6  57     B6BF  67     AADD  77&lt;br /&gt;
ABBA  08     F6B5  18     EABE  28     D7DB  38     F6ED  48     EAFA  58     D7AE  68     BBD6  78&lt;br /&gt;
BDFD  09     AFF7  19     FBAD  29     EEBA  39     AFD6  49     FBDF  59     EEF5  69     DDB5  79&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Three sector interleave tables:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; 1   1   1&lt;br /&gt;
 6   2   4&lt;br /&gt;
11   3   7&lt;br /&gt;
 4   4  10&lt;br /&gt;
 9   5   6&lt;br /&gt;
 2   6   9&lt;br /&gt;
 7   7  12&lt;br /&gt;
12   8   3&lt;br /&gt;
 5   9  11&lt;br /&gt;
10  10   2&lt;br /&gt;
 3  11   5&lt;br /&gt;
 8  12   8&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sector layout (sectors are read and written one at a time):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;0xAA&lt;br /&gt;
0xAA * 0x30&lt;br /&gt;
0xBF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFE&lt;br /&gt;
&lt;br /&gt;
0xAB     Sector header lead byte checked by the ROM routine&lt;br /&gt;
DATA     = 16 bit value for track + 16 bit value for sector from translation table&lt;br /&gt;
0xDD     Sector header trail byte checked by the ROM routine&lt;br /&gt;
&lt;br /&gt;
0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xBF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFE&lt;br /&gt;
&lt;br /&gt;
0xED     Sector data lead byte checked by the ROM routine&lt;br /&gt;
DATA + CRC = 416 GCR bytes that decodes to 256 databytes and 4 CRC-bytes&lt;br /&gt;
0xF5     Sector data trail byte 1 checked by the ROM routine&lt;br /&gt;
0xDD     Sector data trail byte 2 checked by the ROM routine&lt;br /&gt;
&lt;br /&gt;
0xDD 0xDD 0xDD 0xDD 0xDD 0xDD 0xDD 0xDD 0xDD&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CRC routine, in the end regC, regD &amp;amp; regE contain the three CRC bytes calculated from the decoded databytes, fourth byte always decodes to 0x58 or else ROM checksum routine fails:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;int offset = 0;&lt;br /&gt;
unsigned char regC = buffer[offset++];&lt;br /&gt;
unsigned char regD = buffer[offset++];&lt;br /&gt;
unsigned char regE = buffer[offset++];&lt;br /&gt;
unsigned char bytes = 0xFD;&lt;br /&gt;
&lt;br /&gt;
while (bytes) {&lt;br /&gt;
    regA = regD;&lt;br /&gt;
    if (regC &amp;gt;&amp;gt; 7) regA ^= 1;&lt;br /&gt;
    regD = regC;&lt;br /&gt;
    regC = regA;&lt;br /&gt;
    regA = (regD &amp;lt;&amp;lt; 1) ^ regE;&lt;br /&gt;
    regE = regD;&lt;br /&gt;
    regD = regA;&lt;br /&gt;
    regE ^= buffer[offset++];&lt;br /&gt;
    bytes--;&lt;br /&gt;
};&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lameriadmin</name></author>	</entry>

	</feed>