Подключите Ваш компьютер к проекту распределённых вычислений!
Этим Вы окажете большую помощь науке и медицине.
См. подробнее: http://solidstate.karelia.ru/~yura/pyldin/yura/computing.htm


Продолжение коллекции скриншотов.

(Эту Web-страничку лучше просматривать с разрешением монитора 800x600 или выше).

Компьютер Пълдин-601A. Работает ROM UNIDIAGNOSTICS. Тест графического режима 320x200. Палитра 1
Компьютер Пълдин-601A. Работает ROM UNIDIAGNOSTICS. Тест графического режима 320x200. Палитра 1.

Компьютер Пълдин-601A. Работает ROM UNIDIAGNOSTICS. Тест графического режима 320x200. Палитра 2
Компьютер Пълдин-601A. Работает ROM UNIDIAGNOSTICS. Тест графического режима 320x200. Палитра 2.

Компьютер Пълдин-601A. Программа TEST.CMD. Графический режим 320х200. На картинке приведены 3 экрана (3 палитры)
Компьютер Пълдин-601A. Программа TEST.CMD. Графический режим 320х200. На картинке приведены 3 экрана (3 палитры).

Компьютер Пълдин-601A. Работает программа ERRORS.PGM
Компьютер Пълдин-601A. Работает программа ERRORS.PGM.

Компьютер Пълдин-601A. Работает программа UPL.PGM
Компьютер Пълдин-601A. Работает программа UPL.PGM.

Компьютер Пълдин-601. Работает программа DISKCOPY
Компьютер Пълдин-601. Работает программа DISKCOPY.

Компьютер Пълдин-601. Работает программа FP (File Print), прилагающаяся как пример к UniPascal
Компьютер Пълдин-601. Работает программа FP (File Print), прилагающаяся как пример к UniPascal.

Компьютер Пълдин-601. Игра SOCOBAN. 1 комната
Компьютер Пълдин-601. Игра SOCOBAN. 1 комната.

Компьютер Пълдин-601. Информация о недокументированной функции INT_00; показано, как ею пользоваться в мониторе
Компьютер Пълдин-601. Информация о недокументированной функции INT_00; показано, как ею пользоваться в мониторе.

Посетите ссылку solidstate.karelia.ru/~yura/pyldin/download/djvu/r_unibios2.htm или pyldin.narod.ru/download/djvu/r_unibios2.htm - там рассказано про функцию INT_00 немного подробнее.


О недоделанной функции 7 (рисование закрашенного треугольника) в INT_$66.

Функция 7 в Пълдиновском прерывании INT_$66 была зарезервирована для рисования закрашенного треугольника, однако так и не была доделана до конца разработчиками. В UniBASIC также была команда TRIANGLE x1,y1 TO x2,y2 TO x3,y3 для рисования закрашенного треугольника. Команда TRIANGLE вызывала функцию 7 в INT_$66 и передавала ей необходимы параметры, однако результата выполнения функции TRIANGLE - не было, так как функция 7 в INT_$66 не была сделана. Вот поэтому TRIANGLE и не описана в руководстве к UniBASIC.

Однако несложно написать драйвер, который бы перехватывал INT_$66 и таким образом добавить возможность рисовать треугольник. Сделав функцию 7 в INT_$66, функция TRIANGLE в UniBASIC'е заработает автоматически.

Вы можете скачать архив с драйвером NEW66 и демонстрационной программой: new66.zip, однако, единственное, что в этот драйвер встроен алгоритм рисования только сторон треугольника, а не закрашенного треугольника.

Компьютер Пълдин-601. Драйвер NEW66.PGM
Компьютер Пълдин-601. Драйвер NEW66.PGM.

Компьютер Пълдин-601. Программа TR_DEMO.CMD, демонстрирующая возможности драйвера NEW66.PGM
Компьютер Пълдин-601. Программа TR_DEMO.CMD, демонстрирующая возможности драйвера NEW66.PGM.


О недокументированной функции INT_$78

В unidos.cmd часть текстовых строк упакованы и для их распечатки используется функция INT_$78. Функция INT_$78 задаётся при загрузке unidos.cmd (её код находится внутри unidos.cmd, а после загрузки unidos - в 7 странице, т.е. в RAM памяти). Ни в одном руководстве она не описана. Синтаксис её такой: на входе: X - указатель к упакованной строке, результат выполнения - распакованная строка выводится на экран. Для упаковки строк авторы использовали программу на Си pack.c. Она находится в архиве int78.zip. Интересная особенность этого алгоритма: почему-то если в исходной строке встречались символы @ и ` то при распаковке на экран будут выведены пробелы. Пример использования функции INT_$78:

                org     $100

                ldx     #txt
                int     $78
                rts
                        ;This message is packed
txt             dw      $378C,$0301,$7795,$2BFB,$3845,$6413,$4539,$FAA5
                end

Была проведена проверка, а какой же выигрыш от этого: Все строки в распакованном виде: 1087 байт, Все строки в упакованном виде: 840 байт + длина кода INT_$78: 112 байт, следовательно, выигрыш получаем 135 байт - выигрыш достаточно приличный, ведь весь модуль unidos'а должен уместиться в 8192 байта, а в последних версиях unidos'а свободными остаются всего 25-26 байт в конце, так что можно сказать, именно благодаря INT_$78 удалось уместить операционную систему unidos (точнее, интерпретатор команд unidos) в 8192 байт.

Компьютер Пълдин-601. Пример, связанный с функцией INT_$78
Компьютер Пълдин-601. Пример, связанный с функцией INT_$78.


< < < На главную страничку < < <

 

Hosted by uCoz