<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://www.old-games.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dim568</id>
	<title>Old-Games.RU Wiki - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://www.old-games.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dim568"/>
	<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Dim568"/>
	<updated>2026-04-23T00:26:32Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28852</id>
		<title>Участник:Dim568/Silmarils IO DOS</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28852"/>
		<updated>2020-09-10T21:02:24Z</updated>

		<summary type="html">&lt;p&gt;Dim568: /* Первая базовая механика */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Header ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extend ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | H3 || colspan=&amp;quot;2&amp;quot; | H4 || colspan=&amp;quot;2&amp;quot; | H5||colspan=&amp;quot;2&amp;quot; | H6 ||colspan=&amp;quot;2&amp;quot; | H7 ||colspan=&amp;quot;2&amp;quot; | ?? ||colspan=&amp;quot;2&amp;quot; | H9 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logic ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
/* blancpc.io обрабатывается отдельно от основной логики */&lt;br /&gt;
ReadBaseHeader();&lt;br /&gt;
int8_t control = (H1 &amp;gt;&amp;gt; 8) &amp;amp; 0xFE8; //старшие 7 бит&lt;br /&gt;
if( H2 != 0 ){&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
      /* базовый кейс, часть данных пишется в сегмент кода o_0 */&lt;br /&gt;
    }else{  &lt;br /&gt;
      /* Нужно найти файлы подходящие под этот кейс */&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
    /* кейс похож на несжатые данные, но под него попадают только monstre.io и telep.io в первой Ishar */&lt;br /&gt;
  }&lt;br /&gt;
}else{&lt;br /&gt;
  /* Кейс похож на хранение системной информации, явный пример main.io */&lt;br /&gt;
  ReadExtendedPart();&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
    }else{&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==H2 равен 0==&lt;br /&gt;
Дочитываются дополнительные 16 байт заголовка&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t VAL01 = ((H3/4)+1)*16;&lt;br /&gt;
VAL1 += 0; // Нужно проверить, при запуске равен нулю, но бывает ли иным?&lt;br /&gt;
uint16_t VAL02 = (H4*6)+VAL01;&lt;br /&gt;
uint16_t VAL03 = ES_REG_VAL; // Портит всю малину, нужно понять можно ли без значения регистра&lt;br /&gt;
VAL03 += (H7/16)+1&lt;br /&gt;
uint16_t VAL04 = VAL03 + (((H9+3)*0x26)/16)+1; // Значение используется в алгоритме когда H2 равен 1, нужно проследить дальше&lt;br /&gt;
uint16_t VAL05 = ((H6&amp;amp;0x0F)&amp;lt;&amp;lt;12);&lt;br /&gt;
uint16_t VAL06 = H5/16;&lt;br /&gt;
VAL05 += VAL06;&lt;br /&gt;
uint16_t VAL07 = VAL04 + VAL05;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Заметки на полях ==&lt;br /&gt;
=== Первая базовая механика ===&lt;br /&gt;
Старшие биты базового слова копируются в младшие биты слова приемника.&lt;br /&gt;
{{cut&lt;br /&gt;
| Оригинальная реализация&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void SilmarilsIORotate(uint16_t* recipient, uint16_t* base, uint8_t count){&lt;br /&gt;
  uint32_t  tmp = 0;&lt;br /&gt;
  // Input check&lt;br /&gt;
  if( recipient == NULL || base == NULL)&lt;br /&gt;
    return;&lt;br /&gt;
  // Do work&lt;br /&gt;
  while(count &amp;gt; 0){&lt;br /&gt;
    tmp = (*base)&amp;amp;0x8000;&lt;br /&gt;
    (*base)      &amp;lt;&amp;lt;= 1;&lt;br /&gt;
    (*recipient) &amp;lt;&amp;lt;= 1;&lt;br /&gt;
    if(tmp)&lt;br /&gt;
      (*recipient) |= 1;&lt;br /&gt;
    count -= 1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{cut&lt;br /&gt;
| Оптимальная реализация для X32&lt;br /&gt;
|&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void SilmarilsIORotate(uint16_t* recipient, uint16_t* base, uint8_t count){&lt;br /&gt;
  uint32_t  blob = 0;&lt;br /&gt;
  // Input check&lt;br /&gt;
  if( recipient == NULL || base == NULL)&lt;br /&gt;
    return;&lt;br /&gt;
  // Make blob&lt;br /&gt;
  blob = (uint32_t)((*recipient) &amp;lt;&amp;lt; 16) | (uint32_t)*base;&lt;br /&gt;
  // Do work&lt;br /&gt;
  while(count &amp;gt; 0){&lt;br /&gt;
    blob &amp;lt;&amp;lt;= 1;&lt;br /&gt;
    count -= 1;&lt;br /&gt;
  }&lt;br /&gt;
  // Write result&lt;br /&gt;
  *recipient = (blob&amp;amp;0xFFFF0000) &amp;gt;&amp;gt; 16;&lt;br /&gt;
  *base      = (blob&amp;amp;0x0000FFFF);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28851</id>
		<title>Участник:Dim568/Silmarils IO DOS</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28851"/>
		<updated>2020-09-10T20:44:44Z</updated>

		<summary type="html">&lt;p&gt;Dim568: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Header ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extend ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | H3 || colspan=&amp;quot;2&amp;quot; | H4 || colspan=&amp;quot;2&amp;quot; | H5||colspan=&amp;quot;2&amp;quot; | H6 ||colspan=&amp;quot;2&amp;quot; | H7 ||colspan=&amp;quot;2&amp;quot; | ?? ||colspan=&amp;quot;2&amp;quot; | H9 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logic ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
/* blancpc.io обрабатывается отдельно от основной логики */&lt;br /&gt;
ReadBaseHeader();&lt;br /&gt;
int8_t control = (H1 &amp;gt;&amp;gt; 8) &amp;amp; 0xFE8; //старшие 7 бит&lt;br /&gt;
if( H2 != 0 ){&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
      /* базовый кейс, часть данных пишется в сегмент кода o_0 */&lt;br /&gt;
    }else{  &lt;br /&gt;
      /* Нужно найти файлы подходящие под этот кейс */&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
    /* кейс похож на несжатые данные, но под него попадают только monstre.io и telep.io в первой Ishar */&lt;br /&gt;
  }&lt;br /&gt;
}else{&lt;br /&gt;
  /* Кейс похож на хранение системной информации, явный пример main.io */&lt;br /&gt;
  ReadExtendedPart();&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
    }else{&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==H2 равен 0==&lt;br /&gt;
Дочитываются дополнительные 16 байт заголовка&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t VAL01 = ((H3/4)+1)*16;&lt;br /&gt;
VAL1 += 0; // Нужно проверить, при запуске равен нулю, но бывает ли иным?&lt;br /&gt;
uint16_t VAL02 = (H4*6)+VAL01;&lt;br /&gt;
uint16_t VAL03 = ES_REG_VAL; // Портит всю малину, нужно понять можно ли без значения регистра&lt;br /&gt;
VAL03 += (H7/16)+1&lt;br /&gt;
uint16_t VAL04 = VAL03 + (((H9+3)*0x26)/16)+1; // Значение используется в алгоритме когда H2 равен 1, нужно проследить дальше&lt;br /&gt;
uint16_t VAL05 = ((H6&amp;amp;0x0F)&amp;lt;&amp;lt;12);&lt;br /&gt;
uint16_t VAL06 = H5/16;&lt;br /&gt;
VAL05 += VAL06;&lt;br /&gt;
uint16_t VAL07 = VAL04 + VAL05;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Заметки на полях ==&lt;br /&gt;
=== Первая базовая механика ===&lt;br /&gt;
Старшие биты базового слова копируются в младшие биты слова приемника.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
void SilmarilsIORotate(uint16_t* recipient, uint16_t* base, uint8_t count){&lt;br /&gt;
  uint32_t  blob = 0;&lt;br /&gt;
  // Input check&lt;br /&gt;
  if( recipient == NULL || base == NULL)&lt;br /&gt;
    return;&lt;br /&gt;
  // Make blob&lt;br /&gt;
  blob = (uint32_t)((*recipient) &amp;lt;&amp;lt; 16) | (uint32_t)*base;&lt;br /&gt;
  // Do work&lt;br /&gt;
  while(count &amp;gt; 0){&lt;br /&gt;
    blob &amp;lt;&amp;lt;= 1;&lt;br /&gt;
    count -= 1;&lt;br /&gt;
  }&lt;br /&gt;
  // Write result&lt;br /&gt;
  *recipient = (blob&amp;amp;0xFFFF0000) &amp;gt;&amp;gt; 16;&lt;br /&gt;
  *base      = (blob&amp;amp;0x0000FFFF);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28837</id>
		<title>Участник:Dim568/Silmarils IO DOS</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28837"/>
		<updated>2020-09-09T14:22:18Z</updated>

		<summary type="html">&lt;p&gt;Dim568: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Header ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extend ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | H3 || colspan=&amp;quot;2&amp;quot; | H4 || colspan=&amp;quot;2&amp;quot; | H5||colspan=&amp;quot;2&amp;quot; | H6 ||colspan=&amp;quot;2&amp;quot; | H7 ||colspan=&amp;quot;2&amp;quot; | ?? ||colspan=&amp;quot;2&amp;quot; | H9 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logic ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
/* blancpc.io обрабатывается отдельно от основной логики */&lt;br /&gt;
ReadBaseHeader();&lt;br /&gt;
int8_t control = (H1 &amp;gt;&amp;gt; 8) &amp;amp; 0xFE8; //старшие 7 бит&lt;br /&gt;
if( H2 != 0 ){&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
      /* базовый кейс, часть данных пишется в сегмент кода o_0 */&lt;br /&gt;
    }else{  &lt;br /&gt;
      /* Нужно найти файлы подходящие под этот кейс */&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
    /* кейс похож на несжатые данные, но под него попадают только monstre.io и telep.io в первой Ishar */&lt;br /&gt;
  }&lt;br /&gt;
}else{&lt;br /&gt;
  /* Кейс похож на хранение системной информации, явный пример main.io */&lt;br /&gt;
  ReadExtendedPart();&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
    }else{&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==H2 равен 0==&lt;br /&gt;
Дочитываются дополнительные 16 байт заголовка&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t VAL01 = ((H3/4)+1)*16;&lt;br /&gt;
VAL1 += 0; // Нужно проверить, при запуске равен нулю, но бывает ли иным?&lt;br /&gt;
uint16_t VAL02 = (H4*6)+VAL01;&lt;br /&gt;
uint16_t VAL03 = ES_REG_VAL; // Портит всю малину, нужно понять можно ли без значения регистра&lt;br /&gt;
VAL03 += (H7/16)+1&lt;br /&gt;
uint16_t VAL04 = VAL03 + (((H9+3)*0x26)/16)+1; // Значение используется в алгоритме когда H2 равен 1, нужно проследить дальше&lt;br /&gt;
uint16_t VAL05 = ((H6&amp;amp;0x0F)&amp;lt;&amp;lt;12);&lt;br /&gt;
uint16_t VAL06 = H5/16;&lt;br /&gt;
VAL05 += VAL06;&lt;br /&gt;
uint16_t VAL07 = VAL04 + VAL05;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28836</id>
		<title>Участник:Dim568</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28836"/>
		<updated>2020-09-09T14:21:54Z</updated>

		<summary type="html">&lt;p&gt;Dim568: Содержимое страницы заменено на « Silmarils IO Structure (DOS)»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Участник:Dim568/Silmarils_IO_DOS|Silmarils IO Structure (DOS)]]&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28835</id>
		<title>Участник:Dim568/Silmarils IO DOS</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28835"/>
		<updated>2020-09-09T14:19:14Z</updated>

		<summary type="html">&lt;p&gt;Dim568: /* Base */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Header ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extend ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | H3 || colspan=&amp;quot;2&amp;quot; | H4 || colspan=&amp;quot;2&amp;quot; | H5||colspan=&amp;quot;2&amp;quot; | H6 ||colspan=&amp;quot;2&amp;quot; | H7 ||colspan=&amp;quot;2&amp;quot; | ?? ||colspan=&amp;quot;2&amp;quot; | H9 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logic ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
/* blancpc.io обрабатывается отдельно от основной логики */&lt;br /&gt;
ReadBaseHeader();&lt;br /&gt;
int8_t control = (H1 &amp;gt;&amp;gt; 8) &amp;amp; 0xFE8; //старшие 7 бит&lt;br /&gt;
if( H2 != 0 ){&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
      /* базовый кейс, часть данных пишется в сегмент кода o_0 */&lt;br /&gt;
    }else{  &lt;br /&gt;
      /* Нужно найти файлы подходящие под этот кейс */&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
    /* кейс похож на несжатые данные, но под него попадают только monstre.io и telep.io в первой Ishar */&lt;br /&gt;
  }&lt;br /&gt;
}else{&lt;br /&gt;
  /* Кейс похож на хранение системной информации, явный пример main.io */&lt;br /&gt;
  ReadExtendedPart();&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
    }else{&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28834</id>
		<title>Участник:Dim568/Silmarils IO DOS</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28834"/>
		<updated>2020-09-09T14:16:46Z</updated>

		<summary type="html">&lt;p&gt;Dim568: /* Base */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Header ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extend ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | H3 || colspan=&amp;quot;2&amp;quot; | H4 || colspan=&amp;quot;2&amp;quot; | H5||colspan=&amp;quot;2&amp;quot; | H6 ||colspan=&amp;quot;2&amp;quot; | H7 ||colspan=&amp;quot;2&amp;quot; | ?? ||colspan=&amp;quot;2&amp;quot; | H9 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logic ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
/* blancpc.io обрабатывается отдельно от основной логики */&lt;br /&gt;
ReadBaseHeader();&lt;br /&gt;
int8_t control = (H1 &amp;gt;&amp;gt; 8) &amp;amp; 0xFE8; //старшие 7 бит&lt;br /&gt;
if( H2 != 0 ){&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
      /* базовый кейс, часть данных пишется в сегмент кода o_0 */&lt;br /&gt;
    }else{&lt;br /&gt;
      /* кейс похож на несжатые данные, но под него попадают только monstre.io и telep.io в первой Ishar */&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}else{&lt;br /&gt;
  /* Кейс похож на хранение системной информации, явный пример main.io */&lt;br /&gt;
  ReadExtendedPart();&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
    }else{&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28833</id>
		<title>Участник:Dim568</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28833"/>
		<updated>2020-09-09T14:10:39Z</updated>

		<summary type="html">&lt;p&gt;Dim568: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Участник:Dim568/Silmarils_IO_DOS|Silmarils IO Structure (DOS)]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===H2 равен 0===&lt;br /&gt;
Дочитываются дополнительные 16 байт заголовка&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t VAL01 = ((H3/4)+1)*16;&lt;br /&gt;
VAL1 += 0; // Нужно проверить, при запуске равен нулю, но бывает ли иным?&lt;br /&gt;
uint16_t VAL02 = (H4*6)+VAL01;&lt;br /&gt;
uint16_t VAL03 = ES_REG_VAL; // Портит всю малину, нужно понять можно ли без значения регистра&lt;br /&gt;
VAL03 += (H7/16)+1&lt;br /&gt;
uint16_t VAL04 = VAL03 + (((H9+3)*0x26)/16)+1; // Значение используется в алгоритме когда H2 равен 1, нужно проследить дальше&lt;br /&gt;
uint16_t VAL05 = ((H6&amp;amp;0x0F)&amp;lt;&amp;lt;12);&lt;br /&gt;
uint16_t VAL06 = H5/16;&lt;br /&gt;
VAL05 += VAL06;&lt;br /&gt;
uint16_t VAL07 = VAL04 + VAL05;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28832</id>
		<title>Участник:Dim568/Silmarils IO DOS</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28832"/>
		<updated>2020-09-09T14:09:36Z</updated>

		<summary type="html">&lt;p&gt;Dim568: /* Base */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Header ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extend ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | H3 || colspan=&amp;quot;2&amp;quot; | H4 || colspan=&amp;quot;2&amp;quot; | H5||colspan=&amp;quot;2&amp;quot; | H6 ||colspan=&amp;quot;2&amp;quot; | H7 ||colspan=&amp;quot;2&amp;quot; | ?? ||colspan=&amp;quot;2&amp;quot; | H9 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logic ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
ReadBaseHeader();&lt;br /&gt;
int8_t control = (H1 &amp;gt;&amp;gt; 8) &amp;amp; 0xFE8; //старшие 7 бит&lt;br /&gt;
if( H2 != 0 ){&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
    }else{&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}else{&lt;br /&gt;
  ReadExtendedPart();&lt;br /&gt;
  if( control &amp;lt; 0){&lt;br /&gt;
    if( control == 0xA0 ){&lt;br /&gt;
    }else{&lt;br /&gt;
    }&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28831</id>
		<title>Участник:Dim568/Silmarils IO DOS</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28831"/>
		<updated>2020-09-09T13:50:52Z</updated>

		<summary type="html">&lt;p&gt;Dim568: /* Base */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Header ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extend ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | H3 || colspan=&amp;quot;2&amp;quot; | H4 || colspan=&amp;quot;2&amp;quot; | H5||colspan=&amp;quot;2&amp;quot; | H6 ||colspan=&amp;quot;2&amp;quot; | H7 ||colspan=&amp;quot;2&amp;quot; | ?? ||colspan=&amp;quot;2&amp;quot; | H9 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logic ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
ReadBaseHeader();&lt;br /&gt;
if( H2 != 0 ){&lt;br /&gt;
  if((int16_t)((H1&amp;amp;0xFE00)&amp;gt;&amp;gt;8) &amp;lt; 0){&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}else{&lt;br /&gt;
  ReadExtendedPart();&lt;br /&gt;
  if((int16_t)((H1&amp;amp;0xFE00)&amp;gt;&amp;gt;8) &amp;lt; 0){&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28830</id>
		<title>Участник:Dim568</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28830"/>
		<updated>2020-09-09T13:49:38Z</updated>

		<summary type="html">&lt;p&gt;Dim568: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Участник:Dim568/Silmarils_IO_DOS|Silmarils IO Structure (DOS)]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===H2 равен 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t VAL1 = H0 - 6&lt;br /&gt;
uint16_t _H1 = H1&amp;amp;0xFEFF;&lt;br /&gt;
int8_t Control_1 = (int8_t)(_H1&amp;gt;&amp;gt;8);&lt;br /&gt;
if(Control_1 &amp;gt; 0){&lt;br /&gt;
  _H1 &amp;amp;= 0xFF;&lt;br /&gt;
}else{&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===H2 равен 0===&lt;br /&gt;
Дочитываются дополнительные 16 байт заголовка&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t VAL01 = ((H3/4)+1)*16;&lt;br /&gt;
VAL1 += 0; // Нужно проверить, при запуске равен нулю, но бывает ли иным?&lt;br /&gt;
uint16_t VAL02 = (H4*6)+VAL01;&lt;br /&gt;
uint16_t VAL03 = ES_REG_VAL; // Портит всю малину, нужно понять можно ли без значения регистра&lt;br /&gt;
VAL03 += (H7/16)+1&lt;br /&gt;
uint16_t VAL04 = VAL03 + (((H9+3)*0x26)/16)+1; // Значение используется в алгоритме когда H2 равен 1, нужно проследить дальше&lt;br /&gt;
uint16_t VAL05 = ((H6&amp;amp;0x0F)&amp;lt;&amp;lt;12);&lt;br /&gt;
uint16_t VAL06 = H5/16;&lt;br /&gt;
VAL05 += VAL06;&lt;br /&gt;
uint16_t VAL07 = VAL04 + VAL05;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28829</id>
		<title>Участник:Dim568/Silmarils IO DOS</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568/Silmarils_IO_DOS&amp;diff=28829"/>
		<updated>2020-09-09T13:44:13Z</updated>

		<summary type="html">&lt;p&gt;Dim568: Новая страница: «== Header == === Base === {| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; | |- | 0|| 1 || 2 || 3 || 4 || 5 |- | colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Header ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extend ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | H3 || colspan=&amp;quot;2&amp;quot; | H4 || colspan=&amp;quot;2&amp;quot; | H5||colspan=&amp;quot;2&amp;quot; | H6 ||colspan=&amp;quot;2&amp;quot; | H7 ||colspan=&amp;quot;2&amp;quot; | ?? ||colspan=&amp;quot;2&amp;quot; | H9 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logic ==&lt;br /&gt;
=== Base ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
ReadBaseHeader();&lt;br /&gt;
if( H2 != 0 ){&lt;br /&gt;
  if((int16_t)(H1&amp;amp;0xFEFF) &amp;lt; 0){&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}else{&lt;br /&gt;
  ReadExtendedPart();&lt;br /&gt;
  if((int16_t)(H1&amp;amp;0xFEFF) &amp;lt; 0){&lt;br /&gt;
  }else{&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28823</id>
		<title>Участник:Dim568</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28823"/>
		<updated>2020-09-08T15:08:30Z</updated>

		<summary type="html">&lt;p&gt;Dim568: /* H2 равен 0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Черновик&amp;lt;br /&amp;gt;&lt;br /&gt;
=Silmarils IO Structure=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== Base Header ==&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
H2 - используется как флаг для определения алгоритма обработки файла&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===H2 равен 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t VAL1 = H0 - 6&lt;br /&gt;
uint16_t _H1 = H1&amp;amp;0xFEFF;&lt;br /&gt;
int8_t Control_1 = (int8_t)(_H1&amp;gt;&amp;gt;8);&lt;br /&gt;
if(Control_1 &amp;gt; 0){&lt;br /&gt;
  _H1 &amp;amp;= 0xFF;&lt;br /&gt;
}else{&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===H2 равен 0===&lt;br /&gt;
Дочитываются дополнительные 16 байт заголовка&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | H3 || colspan=&amp;quot;2&amp;quot; | H4 || colspan=&amp;quot;2&amp;quot; | H5||colspan=&amp;quot;2&amp;quot; | H6 ||colspan=&amp;quot;2&amp;quot; | H7 ||colspan=&amp;quot;2&amp;quot; | ?? ||colspan=&amp;quot;2&amp;quot; | H9 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t VAL01 = ((H3/4)+1)*16;&lt;br /&gt;
VAL1 += 0; // Нужно проверить, при запуске равен нулю, но бывает ли иным?&lt;br /&gt;
uint16_t VAL02 = (H4*6)+VAL01;&lt;br /&gt;
uint16_t VAL03 = ES_REG_VAL; // Портит всю малину, нужно понять можно ли без значения регистра&lt;br /&gt;
VAL03 += (H7/16)+1&lt;br /&gt;
uint16_t VAL04 = VAL03 + (((H9+3)*0x26)/16)+1; // Значение используется в алгоритме когда H2 равен 1, нужно проследить дальше&lt;br /&gt;
uint16_t VAL05 = ((H6&amp;amp;0x0F)&amp;lt;&amp;lt;12);&lt;br /&gt;
uint16_t VAL06 = H5/16;&lt;br /&gt;
VAL05 += VAL06;&lt;br /&gt;
uint16_t VAL07 = VAL04 + VAL05;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28817</id>
		<title>Участник:Dim568</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28817"/>
		<updated>2020-09-08T14:00:15Z</updated>

		<summary type="html">&lt;p&gt;Dim568: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Черновик&amp;lt;br /&amp;gt;&lt;br /&gt;
=Silmarils IO Structure=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
== Base Header ==&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
H2 - используется как флаг для определения алгоритма обработки файла&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===H2 равен 1===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t VAL1 = H0 - 6&lt;br /&gt;
uint16_t _H1 = H1&amp;amp;0xFEFF;&lt;br /&gt;
int8_t Control_1 = (int8_t)(_H1&amp;gt;&amp;gt;8);&lt;br /&gt;
if(Control_1 &amp;gt; 0){&lt;br /&gt;
  _H1 &amp;amp;= 0xFF;&lt;br /&gt;
}else{&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===H2 равен 0===&lt;br /&gt;
Дочитываются дополнительные 16 байт заголовка&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; | H3 || colspan=&amp;quot;2&amp;quot; | H4 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
uint16_t VAL1 = ((H3/4)+1)*16;&lt;br /&gt;
VAL1 += 0; // Need check in time&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28816</id>
		<title>Участник:Dim568</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28816"/>
		<updated>2020-09-08T08:05:22Z</updated>

		<summary type="html">&lt;p&gt;Dim568: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Черновик&amp;lt;br /&amp;gt;&lt;br /&gt;
Silmarils IO Structure&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
H2 - используется как флаг для определения алгоритма обработки файла&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==H2 равен 1==&lt;br /&gt;
1. H0 -= 6&amp;lt;br /&amp;gt;&lt;br /&gt;
2. (H1&amp;gt;&amp;gt;8)&amp;amp;0xFE сравнивается на знак(??)&lt;br /&gt;
&lt;br /&gt;
==H2 равен 0==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 || 21&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;16&amp;quot; | ???&lt;br /&gt;
|}&lt;br /&gt;
1. Дочитываются дополнительные 16 байт заголовка&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
	<entry>
		<id>https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28815</id>
		<title>Участник:Dim568</title>
		<link rel="alternate" type="text/html" href="https://www.old-games.ru/wiki/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Dim568&amp;diff=28815"/>
		<updated>2020-09-07T23:06:14Z</updated>

		<summary type="html">&lt;p&gt;Dim568: Новая страница: «Черновик&amp;lt;br /&amp;gt; Silmarils IO Structure {| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; | |- | 0|| 1 || 2 || 3 || 4 || 5 |- | colspan=&amp;quot;2&amp;quot;  | H0 || colspan=…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Черновик&amp;lt;br /&amp;gt;&lt;br /&gt;
Silmarils IO Structure&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;text-align:center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| 0|| 1 || 2 || 3 || 4 || 5&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;  | H0 || colspan=&amp;quot;2&amp;quot;  | H1 || colspan=&amp;quot;2&amp;quot; | H2&lt;br /&gt;
|}&lt;br /&gt;
H2 - используется как флаг для определения алгоритма обработки файла&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==H2 равен 1==&lt;br /&gt;
1. H0 -= 6&amp;lt;br /&amp;gt;&lt;br /&gt;
2. (H1&amp;gt;&amp;gt;8)&amp;amp;0xFE сравнивается на знак(??)&lt;br /&gt;
&lt;br /&gt;
==H2 равен 0==&lt;br /&gt;
1. Дочитываются дополнительные 16 байт заголовка&lt;/div&gt;</summary>
		<author><name>Dim568</name></author>
	</entry>
</feed>