<< Вернуться к содержанию




1) О том, что посылается Пълдиновским BIOS в $e629
при установке нужного режима экрана.

+----------------------------------------------------------+
|       |          |                биты                   |
| Режим | Значение |0x80|0x40|0x20|0x10|0x08|0x04|0x02|0x01|
|       |          |    |    |    |    |    |    |    |    |
+----------------------------------------------------------+
|   0   |  0 / 2   | x  | x  | 0  | 0  | 0  | 0  |0/1 | x  |
|   1   |   $3e    | x  | x  | 1  | 1  | 1  | 1  | 1  | x  |
|   2   |   $24    | x  | x  | 1  | 0  | 0  | 1  | 0  | x  |
|   3   |   $38    | x  | x  | 1  | 1  | 1  | 0  | 0  | x  |
|   4   |    0     | x  | x  | 0  | 0  | 0  | 0  | 0  | x  |
+----------------------------------------------------------+

x - значит значение бита не изменяется (биты с весом 0x40/0x80
отвечают за кассетофон, а бит с весом 0x01 - за режим
клавиатуры LAT/КИР).

В режиме screen0 - если модель 601А, то бит с весом 0x02
устанавливается в 1, а если модель 601 - то в 0.

Бит 0x20 определяет режим (0 - текстовый, 1 - графический).
Биты 0x10 и 0x08 определяют палитру (0..3) в режиме screen2.
Бит 0x04 определяет, цветной ли графический
         режим (0 - черно-белый, 1 - цветной).
Бит 0x02 определяет разрешение по горизонтали.


2) В эмуляторе сейчас и для модели 601 и для модели
601A используется video.rom (video_a.rom - не используется).
video.rom - ПЗУ со шрифтами 8x8, а video_a.rom - со
шрифтами 8x16. В принципе, в video_a.rom в данном случае нет
необходимости, т.к. и "при растяжении символов по высоте"
из video.rom изображение при эмуляции Пълдин-601A получается
нормальное.

3) Есть ещё один продукт на Пълдине, где используется нестандартный
видеорежим. См. файл pcterm.asm из архива p601vpc.tar.gz со странички:
http://solidstate.karelia.ru/~yura/pyldin/yura/terminal.htm
http://pyldin.narod.ru/yura/terminal.htm
Там используется текстовый режим 53x25.

4) На реальном Пълдине были сделаны замеры времени выполнения
следующей программой:

program dl;
uses unicrt;
var cr:char;

procedure id(N: word);
code    $5f, $d, 25,    {       SNCI 25    }
        $30,            {       tsx        }
        $ee, 0,         {       ldx x      }
        $31, $31,       {       ins, ins   }
        $32, $33,       {       pula, pulb }
        $36,            { loop  psha       }
        $86, 166,       {       ldaa #166  }
        $4a,            { wait  deca       }
        $26, $fd,       {       bne wait   }
        $32,            {       pula       }
        $4d,            {       tsta       }
        $26, $03,       {       bne Not0   }
        $5a,            {       decb       }
        $2b, $03,       {       bmi end    }
        $4a,            { Not0  deca       }
        $20, $f0,       {       bra loop   }
        $6e, 0;         { end   jmp x      }
begin
  writeln('delay(20000)'); cr:=readkey; delay(20000); write(#7);
  writeln('delay-inline(20000)'); cr:=readkey; id(20000); write(#7)
end.
        Но несмотря на все ожидания, задержка была не 20 секунд,
а 22. (Тест был проведен на 3 компьютерах - и везде время
получилось 22 секунды).

Также существует программа TEST.PGM (она находится в архиве unitime.zip),
специально написанная авторами Пылдина для замеров времени.
Так вот, на реальном Пылдине программа TEST.PGM выдаёт значение 00:00:00.70
в первом столбце time  for 650 muls (время 650 умножений). Это необходимо
знать разработчикам эмуляторов компьютера Пылдин.
Помимо этой программы в архиве unitime.zip находятся
исходные тексты модуля UNITIME, предназначенного для различных
тестов времени и т.д. Модуль UNITIME написан для Uni Pascal и Turbo Pascal,
поэтому может работать как на Пылдине, так и на IBM-совместимых компьютерах.


5) В файле videoreg_txt.htm приведена
информация о поведении различных видеорегистров при их различных
значениях. Например, про видеорегистр 9 было сказано: "При
значениях >= $0a экран начинает прыгать". Однако, недавно
выяснено, что, оказывается, на всех компьютерах - по-разному.
На двух компьютерах экран начинал прыгать уже при значении 8
видеорегистра 9. Наверняка и для других видеорегистров есть
некоторые расхождения в "критических значениях". Например, был
проведен на разных Пълдинах тест текстового режима 53x25
(который используется в программе pcterm.asm). Было проверено
3 компьютера, и только на одном из них все 53 символа умещались
на экране. На другом - помещался лишь 51 символ (и то правые 3
уж очень далеко справа были, что сложно их рассмотреть). На
третьем компьютере помещалось 52 и еще пол-символа. Слева с
началом символов на экране на всех компьютерах все было нормально.

6) Также на реальном Пълдине выяснена некоторая информация по
поводу реальной функции int_$17. Какой бы не был задан диск - от
него берется только младший бит - короче 2, 4, ..., $fe - диск A:,
а 3, 5, ..., $ff - диск B: (так что в эмуляторе не нужно вообще
никаких if, нужно только & 0x01). Если на компьютере нет платы
дисковода, то возвращается код ошибки 0xc0, а если нет дискеты
в дисководе или дисковод выключен, то код 0x40. В случае со
стороной - ситуация та же, что и с диском - берется только младший
бит от заданного значения. Если номер сектора или дорожки выходит
за допустимые пределы, то возвращается код ошибки 0x40.

7) Для форматирования Пълдиновских дискет на IBM очень удобно
пользоваться программой FFORMAT. Программу FFORMAT желательно не
запускать под Windows (а только в режиме эмуляции MS-DOS). Эта
программа при форматировании более оптимально располагает сектора
на дискете, что повышает скорость работы с дискетой. FFORMAT намного
удобнее и оптимизирует доступ к дискете намного эффективнее, чем
PU_1700.COM или 800.COM. Очень удобно программой FFORMAT форматировать
5,25"-дискеты на формат 400 Кб (40 дорожек, 10 секторов на дорожке).
Такие дискеты нормально читаются Пълдином. (На Пълдине также есть
программа, которая форматирует на формат 400 Кб - f400.cmd). Но в
f400.cmd есть ошибка - она не отмечает сбойные сектора, поэтому
форматировать на 400 Кб всё-таки лучше программой FFORMAT. Как всегда,
не забывать запускать makeboot.exe после форматирования. Также не
следует забывать, что Пълдиновский эмулятор не поддерживает
низкоуровневое форматирование дискет, поэтому не рекомендуется
форматировать дискеты из-под эмулятора.

8) Старые версии программ UPC.EXE, UPL.EXE и YOP.EXE (которые в 1990-1991
годах распространялись на дискетах в комплекте с компьютером Пылдин)
при работе под Windows 3.x/95/98/ME (если используется 32-битный доступ к
винчестеру) не записывают выходной файл. Это - следствие ошибки в этих
программах (в Паскале нельзя вызывать функцию переименования файла Rename,
если файл открыт). Следует пользоваться этими программами в режиме эмуляции
MS-DOS (под Windows NT/2000/XP всё работает нормально). А вот на страничке
с программным обеспечением для компьютера Пылдин размещены более новые
версии этих программ, в которых эта ошибка исправлена и которые
нормально работают в любой операционной системе.

9) Программы UASM.COM и UNARC.COM при работе под Windows 2000
не воспринимают первый параметр в командной строке (под
Windows NT 4.0 - всё работает нормально). При запуске этих
программ под Windows 2000 в качестве 1 параметра следует указать
любой символ, а уже далее - как обычно (т.е. что обычно указываем
1 и 2 параметром, теперь будет 2 и 3...), например:
UASM 111 <имя_файла.601>
С программой UNARC.COM дела обстоят так же, хотя в этой программе
нет необходимости - на IBM для распаковки ARC-архивов можно
пользоваться более удобными ARC.EXE, PKXARC.COM, PKUNPAK.EXE,
NARC.EXE и т.д.