Обновление DSS

Компьютер "Спринтер" http://sprinter.nedopc.org

Moderator: Shaos

Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Re: Обновление DSS

Post by Sayman »

вроде уже ни кому ничего не нужно, но я всё-ровно чутка побаяню: обновление 1.62.19.
грохнул старые процедуры получения номера сектора из кластера и 32бит деление. заменил на битовые сдвиги. Чтение и запись ускорены примерно в 1.5 - 2 раза. Думаю, можно ещё ускорить, но это уже сложнее. По старым тестам с файлом 1.4мегабайта, копирование с одного раздела на другой было 21 секунда. Теперь файл размером 1.7мегабайта копируется за 12 секунд.
собственно обнова во вложении...
старый system.dos заменить файлом из архива (копирование с заменой).
...
вложение удалено из-за ошибки при записи файла (создавался файл нулевой длинны).
Last edited by Sayman on 07 Jul 2015 22:14, edited 2 times in total.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Обновление DSS

Post by Shaos »

спасибо - поглядим
Я тут за главного - если что шлите мыло на me собака shaos точка net
Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Re: Обновление DSS

Post by Sayman »

Shaos wrote:спасибо - поглядим
да я там уже косяк нашёл. поторопился малость. при копировании иногда файл 0й длинны получается. исправлю и выложу по новой.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Обновление DSS

Post by Shaos »

Sayman wrote:
Shaos wrote:спасибо - поглядим
да я там уже косяк нашёл. поторопился малость. при копировании иногда файл 0й длинны получается. исправлю и выложу по новой.
ок - не гляжу, жду...
Я тут за главного - если что шлите мыло на me собака shaos точка net
Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Re: Обновление DSS

Post by Sayman »

Собственно исправленная версия 1.62.20 во вложении. кратко об изменениях:
* исправил процедуру пересчёта кластера в сектор (тупая ошибка была, пара строк не докрутил).
- убрал функции 0c и 0d связанные с включением и выключением fast-ram. Соответственно, из комплекта уходят две утилиты - ecache.exe и dcache.exe. кто обновляется до текущей версии, удалите у себя эти две утилиты.
Убрал эти две функци и утилиты потому, что по тестам нет почти никакой разницы между дровами в fast-ram и в биосе. судя по исходнику на ahdl, винт работает на максимуме. Была идея, добавить в плис работу акселя с портами винта, и даже есть исходник такой, где через процедуру заполнения акселем делается чтение с винта, но при сборке ядра именно этот исходник не собирается (не участвует в сборке). зараза. а было бы крута двумя командами зачитать сектор с винта...
ну а поскольку особой разницы нет (доли секунды), то и надобность в этих двух функциях и утилитах отпадает. заодно высвободил не мало места под другие нужды. в дальнейшем процедуры чтения и записи будут ещё оптимизированы (например, идея кэширования линейных секторов для быстрого их чтения или записи, минуя лишние пересчёты кластера в сектор, так же идея расширить кэш кластеров с 8кб до 16кб, а в последующем выделение в батник параметра для резервирования памяти для кэша кластеров и т.д.).
You do not have the required permissions to view the files attached to this post.
Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Re: Обновление DSS

Post by Sayman »

вот ещё кидаю обновление, более массовое, устраняющее жёсткие косяки - 1.62.22.
* исправил ошибку при которой дос всегда выбирал в качестве hdd только устройство master. Соответственно при попытке начать работу с двумя дисками, данные второго просто не подгружались (всегда было обращение к первому физическому диску).
* исправил косяк в обработчике мыши - не корректно сохранялся порт одного из окон процессора. В результате видимый косяк проявлялся в виде полосы на экране (fformat.exe).
* nsector, divcs, open_dsk, rd_pbp - исправления для восстановления работоспособности дисководов. Так же мелкие правки относительно оригинальных версий.
change.log пересохранил в кодировке dos для возможности чтения из Флекса на Спринтере.
Выражается благодарность palsw за альфа тесты и прочую помощь!
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Обновление DSS

Post by Shaos »

надо мне чтоли тоже достать спринтер из под подоконника да пыль сдуть...

P.S. не натыкался на причину косяка когда списки файлов на винте превращаются в нечитабельное месиво?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
palsw
Novelist
Posts: 45
Joined: 16 Dec 2014 13:52
Location: Украина-Измаил

Re: Обновление DSS

Post by palsw »

на реале такого не было что бы крякозяблы - hdd очень надежно работает в отличии от глючного флоппика.
Разбей винт утилитой fdisk под dss или акрониксом fat16 по 2гб разделы. Главное первый раздел должен начинаться с 63
Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Re: Обновление DSS

Post by Sayman »

Shaos wrote:надо мне чтоли тоже достать спринтер из под подоконника да пыль сдуть...

P.S. не натыкался на причину косяка когда списки файлов на винте превращаются в нечитабельное месиво?...
можно пойти с другого конца. возьми нормальный винт, ну там гигов на 10/20/40. акронисом в винде разбей на разделы. максимальный раздел для фат16 2047мб (кластер 64 сектора, т.е. 32кб). чтобы потом сильно не парица, первый раздел мегабайт на 200 - 500 создай и второй раздел на 2 гига. форматни на пц, подрубай потом к Спринтеру. возьми дискету системную, обнови на ней дос (до 1.62.22). загружайся с дискеты, если у тебя дисковод работает. если с флопом проблема, то могу скинуть бутсектор в виде дампа, его нужно будет на винт на сектора 1 и 2 записать, например, через winhex. Если дискета работает на спринтере, то загрузившись попробуй сделать запись небольшого текстового файла на винт, прям в корень. потом проверь чтение - если содержимое с мусором, то можно будет потом от этого исходить. что не так в железе. последняя дос всё пишет и читает корректно на 100%. Если будет мусор, то это уже косяк или где то в железе или в биосе (например, криво зашито или старая версия какая-нить).
Сдувай пыль и проверяй. Если будет мусор в файле/фате после записи на винт, файл котором проверял + дамп 0го сектора+дамп раздела+образ дискеты выкладывай, посмотрим что там такое поменялось при записи...
Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Re: Обновление DSS

Post by Sayman »

не совсем обновление и не совсем доса, но, для редких обладателей редкого Спринтера - консольная утилита для разворачивания trd образов на реальную дискету. ТАк уж сложилось, что авторы местного tr-dos так и не сделали перехват #3d2f. Поэтому, много разного софта использующие разные турболоадеры не могут работать с винта. Сам столкнулся с этим гемором. Решил, что надо положить этому конец и накидал на скорую руку консолькую утилитку для записи образа trd на дискету. Утилита пока проста - работает один ключ w для записи на дискету, а развернуть пока можно только trd и причём только полный, т.е. 655360 байт. Если образ будет больше или меньше, то поведение программы не известно (не проверил этот момент). Так же не следует подсовывать scl образы.
Дискета должна быть заранее отформатирована в tr-dos формат. Сделать это можно утилитой fformat.exe от Василия (где-то ранее она уже пролетала).
Использование простое: trdrwe -w filename.trd, где -w = ключ для записи образа на дсикету, filename.trd имя образа (включая путь или без него). У меня настроенно так, что на диске С есть папка bin, там лежат разные утилиты. при запуске доса в батнике есть строка типа set PATH=C:\;C:\FN\;C:\BIN\;C:\ZX\;. В любом каталоге можно находится и вызывать утилиты лежащие в папках по path.
You do not have the required permissions to view the files attached to this post.
Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Re: Обновление DSS

Post by Sayman »

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

dos_km.zip (1.62.78)
* заменил драйвер ms-mouse на драйвер kempston mouse (экспериментально!)

по кемпстон мышке - заменена только та часть драйвера, в которой происходит обновление переменных чтением портов мышки. остальная часть драйвера без изменений.
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Обновление DSS

Post by Shaos »

В архиве от ИванМака есть исходники нескольких версий DSS:

Code: Select all

20000817.152
20010208.152
20010806.155
20021215.160
20030214.160
А последняя (в корневом каталоге) названа 1.70 от 23 апреля 2003 года - кто-то её пробовал собирать и работать с ней?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Обновление DSS

Post by Shaos »

Загнал все официальные версии DSS на гитлаб - вплоть до v1.70:

https://gitlab.com/sprinter-computer/dos

Список известных ошибок по состоянию на 1.60:
+ function WINCOPY & WINREST не запрещают прерывания перед вызовом BIOS (используется вывод стеком!).

- при выводе на консоль длинного текста, экран не скролируется. Проверять на достижение 80 позиции!

+ ошибка в функции SCROLL A=0.

+ ошибка при просмотре каталога в функциях установки атрибутов пропускаются системные файлы. п/п SEARCH MASK=#23

- игнорирование ошибок при записи системных областей FAT/DIR, невозможность отработать ошибку write-protect, так как она теряется при попытке записать измененный каталог на диск. Но возникает ошибка file not found так как сразо после создания система открывает файл.

- ошибка разбора допустимого имени файла, если оно состоит из "." так как подрузомевается пробелы точка пробелы.
Всё ли из этого исправлено в альтернативной DSS v1.62.x?

P.S. Вот отличия незаконченной версии 1.70 от релизной 1.60:
https://gitlab.com/sprinter-computer/dos/-/commit/0f7350186a6002d1774b20f516e1d7bdc5ab95b1
Список всех изменений выдернутых из каждого ASM-файла:

Code: Select all

DOS-MAIN.ASM:
;R08	15-04-2003 DNS	RENAMED FN. OPEN AND CLOSE
;R07	31-03-2003 DNS	NEW DEPLOYING ROUTINE
;R06	31-03-2003 DNS	RELAYOUTING MEMORY
;R05	27-03-2003 DNS	CHANGE DRV. INIT. METHOD
;R04	27-03-2003 DNS	DRIVERS MOVE TO SPECIAL PAGE
;R03	14-03-2003 DNS	CODE OPTIMIZATION
DOS5.ASM:
;R08	15-04-2003 DNS	SAVE AND RESTORE CURPATH MACROS
DOS_X.ASM:
;R11	15-04-2003 DNS	ROUTINE FOR STORE CURDISK AND CURDIR
;R10	03-04-2003 DNS	IMPROVED FN. VERSION
;R09	27-03-2003 DNS	PASTED SET/GET BOOT FN.
DVR-MAIN,ASM: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< NEW
;R00	2003-03-19 DNS	Initial version
EXECUTE.ASM:
;R09	14-04-2003 DNS	NOW EXEC DON'T FOLLOW TO PROGRAM'S DIR
плюс DSS_MAP.TXT был сильно перелопачен и сбока вместо одного бинаря стала собирать 2 - dos-main.bin и dvr-main.bin, которые потом склеивются вместе для получения system.dss

P.P.S. После последней сборки 1.70 было сделано ещё одно изменение в EXECUTE.ASM:

Code: Select all

;R09
	LD	A,7     ;;;
	OUT	(#FE),A

	CALL    BACK_CUR_PATH

	LD      A,0
	OUT     (#FE),A ;;;
;R09
были убраны строчки с ;;; которые судя по всему были миганием бордюра для отладки (я все промежуточные версии проверил пересборкой в досбоксе и в каждый коммит вставлял MD5 получившегося бинаря, но не сам бинарь - оно 100% совпадало с тем что было в архиве)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Re: Обновление DSS

Post by Sayman »

стала собирать 2 - dos-main.bin и dvr-main.bin, которые потом склеивются вместе для получения system.dss
да. и старый загрузчик от 1.6х теперь не может эту версию загружать. ей новый нужен. драйвера там перемещены в отдельную страницу.

P.S. О! нашёл исходник для нового загрузчика, в архиве Паринова.
Last edited by Sayman on 03 Dec 2020 01:20, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Обновление DSS

Post by Shaos »

Sayman wrote:
стала собирать 2 - dos-main.bin и dvr-main.bin, которые потом склеивются вместе для получения system.dss
да. и старый загрузчик от 1.6х теперь не может эту версию загружать. ей новый нужен. драйвера там перемещены в отдельную страницу.
ну может какие изменения можно в вашу версию перетащить? например запоминание текущего каталога и диска при открытии файла, чтобы потом при закрытии их вернуть (если я правильно понял логику)
Я тут за главного - если что шлите мыло на me собака shaos точка net