Работа над ошибками
ZX-Guide #2
В описании интерфейса Beta Disk непра─
вильно указан разряд, выбирающий плотность
записи. Он должен быть D6 (как указано у
Ларченко и Родионова), но MFM=0, а FM=1 (а
не как указано у Ларченко и Родионова).
Процедуры TR-DOS устанавливают D5, но не
понятно, почему.
IG #6
В этюде номер 5 использована конструк─
ция INC H,L. Из-за этого получается сли─
шком короткий период последовательности
случайных чисел - всего 256. Надо писать
INC H,HL. Просто INC HL не рекомендуется,
т.к. в ПЗУ есть большие последовательности
одинаковых или похожих байтов.
IG #7
Если вам досталась версия IG #7, где не
грузится статья "errata", то переименуйте
на диске файл errata!!.W в Errata!!.W. Он
мешал потому, что движок журнала ищет ста─
тьи по 4 первым символам имени,и не только
в архиве,но и снаружи. А файл был добавлен
в спешке уже после сборки журнала.
From : Lord Vader
IG#7 - "Turbo Sound"
Конденсаторы С1,С2 не могут быть 0.1мкФ
- надо хотя бы 10мкФ.
From : Vitamin
IG#7 - "Оптимизация"
В случае PUSH HL:SBC HL,DE:POP HL име─
лось в виду CY=0.
From : ZET-9
IG#7 - "DNAmake"
Указано,что элемент FINDER, если не на─
шёл элемент, который он ищет, возвращает
ошибку 0,0 (а это сообщение "всё ОК"!). Hа
самом деле он возвращает ошибку 0,1 (пос─
мотрел в исходниках: 0 - номер элемента, 1
- номер ошибки).
From : ZET-9
IG#7 - "Расположение разделов на HDD"
Оказывается, и на FAT32 все сектора в
цилиндре 0, кроме самого первого - свобод─
ны, а указанные там сектор 2 (считая от
единицы) и сектор 6 (считая от единицы) -
это сектора от начала раздела, и они суще─
ствуют внутри каждого раздела.
На секторе 6 хранится копия boot-секто─
ра (т.е. самого первого сектора этого раз─
дела). А в статье указано, что в секторе 6
- копия таблицы разделов.
Я наконец-то узнал,где хранятся старшие
два байта номера кластера в FAT32 (там же
4 байта): оказывается, в резервной области
из десяти байт, по смещению +20,+21 от на─
чала элемента каталога.
From : Vitamin & Shiru Otaku
IG#7 - "Video"
Была пропущена инструкция: что делать,
когда AVIStreamOpenFromFile(...)!=0. Прог─
рамма должна выглядеть примерно так:
bool vzx_avi_open(LPCSTR szFile)
{
vzx_hdd=DrawDibOpen();
AVIFileInit();
if(AVIStreamOpenFromFile(&vzx_avi,szFile,
streamtypeVIDEO,0,OF_READ,NULL)!=0)
{
MessageBox (HWND_DESKTOP,
"Failed To Open The AVI Stream",
"Error",MB_OK);
return vzx_ok=false;
}
...
}