Участник:Dim568: различия между версиями
Перейти к навигации
Перейти к поиску
Dim568 (обсуждение | вклад) |
Dim568 (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | + | ||
− | + | [[Участник:Dim568/Silmarils_IO_DOS|Silmarils IO Structure (DOS)]] | |
{| class="wikitable" style="text-align:center;" | | {| class="wikitable" style="text-align:center;" | | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===H2 равен 1=== | ===H2 равен 1=== | ||
Строка 25: | Строка 17: | ||
===H2 равен 0=== | ===H2 равен 0=== | ||
Дочитываются дополнительные 16 байт заголовка | Дочитываются дополнительные 16 байт заголовка | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> |
Версия 16:49, 9 сентября 2020
H2 равен 1
uint16_t VAL1 = H0 - 6
uint16_t _H1 = H1&0xFEFF;
int8_t Control_1 = (int8_t)(_H1>>8);
if(Control_1 > 0){
_H1 &= 0xFF;
}else{
}
H2 равен 0
Дочитываются дополнительные 16 байт заголовка
uint16_t VAL01 = ((H3/4)+1)*16;
VAL1 += 0; // Нужно проверить, при запуске равен нулю, но бывает ли иным?
uint16_t VAL02 = (H4*6)+VAL01;
uint16_t VAL03 = ES_REG_VAL; // Портит всю малину, нужно понять можно ли без значения регистра
VAL03 += (H7/16)+1
uint16_t VAL04 = VAL03 + (((H9+3)*0x26)/16)+1; // Значение используется в алгоритме когда H2 равен 1, нужно проследить дальше
uint16_t VAL05 = ((H6&0x0F)<<12);
uint16_t VAL06 = H5/16;
VAL05 += VAL06;
uint16_t VAL07 = VAL04 + VAL05;