Обновление DSS
Moderator: Shaos
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Обновление DSS
вроде уже ни кому ничего не нужно, но я всё-ровно чутка побаяню: обновление 1.62.19.
грохнул старые процедуры получения номера сектора из кластера и 32бит деление. заменил на битовые сдвиги. Чтение и запись ускорены примерно в 1.5 - 2 раза. Думаю, можно ещё ускорить, но это уже сложнее. По старым тестам с файлом 1.4мегабайта, копирование с одного раздела на другой было 21 секунда. Теперь файл размером 1.7мегабайта копируется за 12 секунд.
собственно обнова во вложении...
старый system.dos заменить файлом из архива (копирование с заменой).
...
вложение удалено из-за ошибки при записи файла (создавался файл нулевой длинны).
грохнул старые процедуры получения номера сектора из кластера и 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.
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Обновление DSS
спасибо - поглядим
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Обновление DSS
да я там уже косяк нашёл. поторопился малость. при копировании иногда файл 0й длинны получается. исправлю и выложу по новой.Shaos wrote:спасибо - поглядим
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Обновление DSS
ок - не гляжу, жду...Sayman wrote:да я там уже косяк нашёл. поторопился малость. при копировании иногда файл 0й длинны получается. исправлю и выложу по новой.Shaos wrote:спасибо - поглядим
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Обновление DSS
Собственно исправленная версия 1.62.20 во вложении. кратко об изменениях:
* исправил процедуру пересчёта кластера в сектор (тупая ошибка была, пара строк не докрутил).
- убрал функции 0c и 0d связанные с включением и выключением fast-ram. Соответственно, из комплекта уходят две утилиты - ecache.exe и dcache.exe. кто обновляется до текущей версии, удалите у себя эти две утилиты.
Убрал эти две функци и утилиты потому, что по тестам нет почти никакой разницы между дровами в fast-ram и в биосе. судя по исходнику на ahdl, винт работает на максимуме. Была идея, добавить в плис работу акселя с портами винта, и даже есть исходник такой, где через процедуру заполнения акселем делается чтение с винта, но при сборке ядра именно этот исходник не собирается (не участвует в сборке). зараза. а было бы крута двумя командами зачитать сектор с винта...
ну а поскольку особой разницы нет (доли секунды), то и надобность в этих двух функциях и утилитах отпадает. заодно высвободил не мало места под другие нужды. в дальнейшем процедуры чтения и записи будут ещё оптимизированы (например, идея кэширования линейных секторов для быстрого их чтения или записи, минуя лишние пересчёты кластера в сектор, так же идея расширить кэш кластеров с 8кб до 16кб, а в последующем выделение в батник параметра для резервирования памяти для кэша кластеров и т.д.).
* исправил процедуру пересчёта кластера в сектор (тупая ошибка была, пара строк не докрутил).
- убрал функции 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.
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Обновление DSS
вот ещё кидаю обновление, более массовое, устраняющее жёсткие косяки - 1.62.22.
* исправил ошибку при которой дос всегда выбирал в качестве hdd только устройство master. Соответственно при попытке начать работу с двумя дисками, данные второго просто не подгружались (всегда было обращение к первому физическому диску).
* исправил косяк в обработчике мыши - не корректно сохранялся порт одного из окон процессора. В результате видимый косяк проявлялся в виде полосы на экране (fformat.exe).
* nsector, divcs, open_dsk, rd_pbp - исправления для восстановления работоспособности дисководов. Так же мелкие правки относительно оригинальных версий.
change.log пересохранил в кодировке dos для возможности чтения из Флекса на Спринтере.
Выражается благодарность palsw за альфа тесты и прочую помощь!
* исправил ошибку при которой дос всегда выбирал в качестве 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.
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Обновление DSS
надо мне чтоли тоже достать спринтер из под подоконника да пыль сдуть...
P.S. не натыкался на причину косяка когда списки файлов на винте превращаются в нечитабельное месиво?...
P.S. не натыкался на причину косяка когда списки файлов на винте превращаются в нечитабельное месиво?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Novelist
- Posts: 45
- Joined: 16 Dec 2014 13:52
- Location: Украина-Измаил
Re: Обновление DSS
на реале такого не было что бы крякозяблы - hdd очень надежно работает в отличии от глючного флоппика.
Разбей винт утилитой fdisk под dss или акрониксом fat16 по 2гб разделы. Главное первый раздел должен начинаться с 63
Разбей винт утилитой fdisk под dss или акрониксом fat16 по 2гб разделы. Главное первый раздел должен начинаться с 63
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Обновление DSS
можно пойти с другого конца. возьми нормальный винт, ну там гигов на 10/20/40. акронисом в винде разбей на разделы. максимальный раздел для фат16 2047мб (кластер 64 сектора, т.е. 32кб). чтобы потом сильно не парица, первый раздел мегабайт на 200 - 500 создай и второй раздел на 2 гига. форматни на пц, подрубай потом к Спринтеру. возьми дискету системную, обнови на ней дос (до 1.62.22). загружайся с дискеты, если у тебя дисковод работает. если с флопом проблема, то могу скинуть бутсектор в виде дампа, его нужно будет на винт на сектора 1 и 2 записать, например, через winhex. Если дискета работает на спринтере, то загрузившись попробуй сделать запись небольшого текстового файла на винт, прям в корень. потом проверь чтение - если содержимое с мусором, то можно будет потом от этого исходить. что не так в железе. последняя дос всё пишет и читает корректно на 100%. Если будет мусор, то это уже косяк или где то в железе или в биосе (например, криво зашито или старая версия какая-нить).Shaos wrote:надо мне чтоли тоже достать спринтер из под подоконника да пыль сдуть...
P.S. не натыкался на причину косяка когда списки файлов на винте превращаются в нечитабельное месиво?...
Сдувай пыль и проверяй. Если будет мусор в файле/фате после записи на винт, файл котором проверял + дамп 0го сектора+дамп раздела+образ дискеты выкладывай, посмотрим что там такое поменялось при записи...
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Обновление DSS
не совсем обновление и не совсем доса, но, для редких обладателей редкого Спринтера - консольная утилита для разворачивания 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.
Дискета должна быть заранее отформатирована в 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.
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Обновление DSS
во вложении два архива.
dos16263.zip
* исправлена ошибка в драйвере мыши - могли быть зависания, если мышь/конвертор
посылали данные с потерями.
* исправлена функция func_5b (Вывод символа на экран в тек. позиции.). была
ошибка при печати в последней строке, приводящая к выводу символов с нулевой
координаты, вместо скроллинга экрана.
* исходники перевёл под sjasmplus.
* исправил старую (свою) ошибку в драйвере fdd (функция fdd_init)
dos_km.zip (1.62.78)
* заменил драйвер ms-mouse на драйвер kempston mouse (экспериментально!)
по кемпстон мышке - заменена только та часть драйвера, в которой происходит обновление переменных чтением портов мышки. остальная часть драйвера без изменений.
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.
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Обновление DSS
В архиве от ИванМака есть исходники нескольких версий DSS:
А последняя (в корневом каталоге) названа 1.70 от 23 апреля 2003 года - кто-то её пробовал собирать и работать с ней?
Code: Select all
20000817.152
20010208.152
20010806.155
20021215.160
20030214.160
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Обновление DSS
Загнал все официальные версии DSS на гитлаб - вплоть до v1.70:
https://gitlab.com/sprinter-computer/dos
Список известных ошибок по состоянию на 1.60:
P.S. Вот отличия незаконченной версии 1.70 от релизной 1.60:
https://gitlab.com/sprinter-computer/dos/-/commit/0f7350186a6002d1774b20f516e1d7bdc5ab95b1
Список всех изменений выдернутых из каждого ASM-файла:
плюс DSS_MAP.TXT был сильно перелопачен и сбока вместо одного бинаря стала собирать 2 - dos-main.bin и dvr-main.bin, которые потом склеивются вместе для получения system.dss
P.P.S. После последней сборки 1.70 было сделано ещё одно изменение в EXECUTE.ASM:были убраны строчки с ;;; которые судя по всему были миганием бордюра для отладки (я все промежуточные версии проверил пересборкой в досбоксе и в каждый коммит вставлял MD5 получившегося бинаря, но не сам бинарь - оно 100% совпадало с тем что было в архиве)
https://gitlab.com/sprinter-computer/dos
Список известных ошибок по состоянию на 1.60:
Всё ли из этого исправлено в альтернативной DSS v1.62.x?+ function WINCOPY & WINREST не запрещают прерывания перед вызовом BIOS (используется вывод стеком!).
- при выводе на консоль длинного текста, экран не скролируется. Проверять на достижение 80 позиции!
+ ошибка в функции SCROLL A=0.
+ ошибка при просмотре каталога в функциях установки атрибутов пропускаются системные файлы. п/п SEARCH MASK=#23
- игнорирование ошибок при записи системных областей FAT/DIR, невозможность отработать ошибку write-protect, так как она теряется при попытке записать измененный каталог на диск. Но возникает ошибка file not found так как сразо после создания система открывает файл.
- ошибка разбора допустимого имени файла, если оно состоит из "." так как подрузомевается пробелы точка пробелы.
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
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
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Обновление DSS
да. и старый загрузчик от 1.6х теперь не может эту версию загружать. ей новый нужен. драйвера там перемещены в отдельную страницу.стала собирать 2 - dos-main.bin и dvr-main.bin, которые потом склеивются вместе для получения system.dss
P.S. О! нашёл исходник для нового загрузчика, в архиве Паринова.
Last edited by Sayman on 03 Dec 2020 01:20, edited 1 time in total.
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Обновление DSS
ну может какие изменения можно в вашу версию перетащить? например запоминание текущего каталога и диска при открытии файла, чтобы потом при закрытии их вернуть (если я правильно понял логику)Sayman wrote:да. и старый загрузчик от 1.6х теперь не может эту версию загружать. ей новый нужен. драйвера там перемещены в отдельную страницу.стала собирать 2 - dos-main.bin и dvr-main.bin, которые потом склеивются вместе для получения system.dss
Я тут за главного - если что шлите мыло на me собака shaos точка net