History of 1.62.xx

DSS_1.62.93, 21.04.2021

* исправлены некоторые ошибки в работе командной строки

DSS_1.62.92, 17.12.2020

* исправлена работа с RAM дисками

DSS_1.62.90, 09.12.2020

* исправлена загрузка с диска "B"
* устранена "уязвимость" в функции 0x09 (BOOTDSK). Можно было после загрузки свободно менять загрузочный диск, что не правильно! Регистр B более не влияет на функцию (игнорируется). Функция всегда возвращает загрузочный диск.
* в функции 0 (Init_DOS) вызываемая загрузчиком добавлено создание переменной %BOOTSDK%.
* FIB (File Info BLock) расширен до 60 байт (новые поля пока в резерве). Пул FIBов вытеснен в отдельную страницу (-600 байт из страницы с системой).
* Оптимизировал функцию пачати в консоль (0x5b/0x5c) по части печати символа с кодом 0x09 (табуляция).

DSS_1.62.79, 26.10.2020

* драйвер ms-mouse заменил на kempston mouse (чтение портов).

DSS_1.62.56, 16.09.2020

* исправлена ошибка в драйвере мыши - могли быть зависания, если мышь/конвертор посылали данные с потерями.
* исправлена функция func_5b (Вывод символа на экран в тек. позиции.). была ошибка при печати в последней строке, приводящая к выводу символов с нулевой координаты, вместо скролинга экрана.
* исходники перевёл под sjasmplus.

DSS_1.62.23, 11.05.2016

* scan_all_devices - исправил ошибку в определении кол-ва hdd в системе
+ open_dev (временное название)
- добавил функцию которая по лог.номеру девайса
! boot.exe - обновлена утилита для создания системного (загрузочного) диска. исправлена возможность загрузки с диска slave (фирменная ошибка от авторов). обязательно - ДОС должен быть не ниже версии 1.62.23!!! (пока только для hdd) возвращает его физ.код (который потом можно применить в функциях биоса).

DSS_1.62.22, 10.07.2015

* nsector, divcs, open_dsk, blok_rd, blok_wr - исправления поддержки fdd.

DSS_1.62.21, 09.07.2015

* get_abs_fsec - устранил ошибку при которой всегда брался код диска master.
* open_dsk, rd_bpb - мелкие правки...
* исправлена ошибка в обработчике мыши - не корректно сохранялся порт окна проца.

DSS_1.62.20, 08.07.2015

* nsector - исправлена ошибка пересчёта кластера в сектор - func_0c - установка флага fast-ram убрана. - func_0d - сброс флага fast-ram убрана. - ecache.exe, dcache.exe - утилиты для включения и выключения биос fast-ram убраны из комплекта.

DSS_1.62.19, 06.07.2015

- div32 - убрал эту процедуру из-за тормозности
+ divcs - вместо div32 - деление на размер кластера путём сдвига битов. работает значительно быстрее.
* nsector - небольшая оптимизация, так же за счёт замены на сдвиги (вместо приращения в цикле).
* blok_rd, blok_wr - исправления под изменённые процедуры.

DSS_1.62.17 (внутряняя), 01.06.2015

* func_0d - исправлена ошибка приводящая к зависанию, если функция вызывалась не из под dcache.exe (1 лишний pop) * заменил процедуру 32 битного деления.

DSS_1.62.16, 23.09.2014

* dcache.exe - доработан (в процессе тестирования 1.62.15 не работал).
* copy.exe, flicplay.exe в загрузочном образе обновлены до последних из авторских исходников.
* ecache.exe, dcache.exe, timer.exe, copy.exe - перемещены в папку bin

DSS_1.62.15, 16.09.2014

+ Func_0C - установка флага bios_cache через запрос на страницу памяти. Указывает системе (файловым операциям), что включён кэш и там есть дисковая часть bios.
+ Func_0D - сбрасывает флаг bios_cache. Посел этого все файловые операции используют стоковый bios.
* blok_rd, blok_wr - все процедуры вызова bios для чтения и записи доработаны для работы с кэшем.
+ rst 20h - по адресу 20h рассположен переключатель на bios в кэше. Биос соответственно доработан до того же уровня. Прошивка для обновления не требуется. В комплекте так же поставляются две утилиты:
+ ecache.exe - включает кэш, ставит флаг bios_cache, получает номер страницы куда сохранает переключатель кэша/пзу и подгружает в кэш на 0й адрес специально доработанный кусок биоса.
+ dcache.exe - выключает кэш, сбрасывает флаг bios_cache. Сам кэш (содержимое) не трогает.

DSS_1.62.11, 11.09.2014

* Включена запись (func_14(), blok_wr() и сопутствующие процедуры).
* Func_12 - устранена ошибка сброса кэша фата на диск приводящая к порче файла на диске (указан был буффер FIB включая номер хэндла).

DSS_1.62.9, 10.09.2014

* open_dsk() - исправлена ошибка с перечитыванием каталога диска. Поставил проверку, что если в буфере FIB лежит дескриптор каталога, тогда нужно делать вызов rd_bpb. Если обычный файл, то смысла перечитывать bpb диска нет.

DSS_1.62.8, 09.09.2014

* open_dir() - из-за лишнего pop hl не работал выход из подкаталога. Исправлено.
* open_dsk() - доработка с целью ускорения чтения - добавлена проверка кода диска. Если код не сменного диска (выше f0h), тогда обращение к rd_bpb не будет.

DSS_1.62.7, 09.09.2014

* В основном исправления ошибок, которые сам и добавил. В паре мест перепутал недок.регистры (zmac не знает про них, потому делаю макросами), выровнял стэк и было две ошибки в пересчётах секторов. func_13, blok_rd, save_fib, open_dir.

DSS 1.62.1, 08.09.2014

* Изменил процедуру деления div32, воткнув процедуру из PQ-DOS для Profi.

DSS 1.62.0, 08.09.2014

* Изменилась слегка логика работы с FIB и хэндлами. Пока предварительно в функциях/процедурах чтения файла/каталога. Теперь области fib две - первая это пул дескрипторов, вторая это рабочий буффер, куда копируется дескриптор, с которым работаем в текущий момент. Функции поиска свободного дескриптора, поиск существующего дескриптора и освобождение дескриптора больше не возвращают в iy адрес. Теперь все данные переносятся в рабочий буффер _FIB. Соответственно файловые операции оптимизированны. Зачем избавляться от iy? Это индексный регистор и он медленный. куда быстрее получить доступ прям из буффера, чем через индексы.
+ save_fib() - Добавлена процедура сохранения рабочего FIB обратно в пул.