RS-232 disk mounter

Сабжи короче

Postby performer » Fri, 18.09.2020 18:31:12

Слона то я и не заметил! вернее, факта того, что транспорт на запись работает, просто сохранения на диск нет.

Долго думал, как бы сделать так, чтобы записью не запороть подкинутые имеджи, в итоге имеем следующее:

По-умолчанию утилита использует файлы $TMP/rs232mnt-<n>.trd для всех 4 дисков, файлы отображаются в память mmap-ом и запись секторов асинхронно падает на диск.
* Если на параметрах задан путь к файлу с расширением .trd (маленькими буквами), то для чтения и записи будет использован он.
* Если файл пустой или создается при запуске - он будет отформатирован как TRDOS 80x2.
* Если на параметрах указан файл любого другого формата (или .TRD большими буквами) - при запуске он будет сконвертирован в $TMP/rs232mnt-<n>.trd.
performer
 
Posts: 13
Joined: Sun, 13.09.2020 17:05:53

Postby TS-Labs » Fri, 18.09.2020 18:53:37

performer wrote:файлы отображаются в память mmap-ом

А почему не просто malloc? Зачем терзать ммап?

Про запись: там была какая то засада в протоколе по сериалу, то ли что-то не допилено, то ли какая-то техническая проблема. Я сейчас сходу не готов за это браться, но при желании разобраться могу рассказать историю впиливания и где валяются недоделки.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby performer » Fri, 18.09.2020 19:37:29

Я чот не замечаю, чтоб со стороны TSConf шли операции записи. COPY ничего реально не копирует.. Оно точно реализовано в конфе?
performer
 
Posts: 13
Joined: Sun, 13.09.2020 17:05:53

Postby performer » Fri, 18.09.2020 19:40:44

> А почему не просто malloc? Зачем терзать ммап?

А смысл? потом при выходе файл писать? mmap отлично работает на любых системах, да еще учитывая, что операций записи кот наплакал все прозрачно и надежно )
fsync пишет все равно ассинхронно :) хотя, я думаю, пока следующий сектор прилетит, оно уже на диск закомитится

> Про запись: там была какая то засада в протоколе по сериалу, то ли что-то не допилено, то ли какая-то техническая проблема. Я сейчас сходу не готов за это браться, но при желании разобраться могу рассказать историю впиливания и где валяются недоделки.

Я под спеку не писал лет 25... так что слабо представляю... Ну, пусть ждет своего времени. У меня все запилино
performer
 
Posts: 13
Joined: Sun, 13.09.2020 17:05:53

Postby TS-Labs » Fri, 18.09.2020 20:56:00

performer wrote:Оно точно реализовано в конфе?

Дело там в драйвере, который - прослойка между виртуальной вг93 и компортом. И там-то и было что-то не доделано. Я при случае гляну.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby performer » Mon, 21.09.2020 13:26:49

Чот я по AVR-ным сорцам тут https://github.com/tslabs/zx-evo/tree/m ... vr/current вообще не понял, где ВГ эмулируется
performer
 
Posts: 13
Joined: Sun, 13.09.2020 17:05:53

Postby TS-Labs » Mon, 21.09.2020 13:55:48

Эмуляция не в авр, а на з80+фпга.
Схема такая:
1. Для требуемого флопа (A..D) включается 1 в соотв. бит порта FDDVirt.
2. При обращении к любому регу ВГ93 вместо текущей страницы памяти аппаратно включается 255-я во все окна з80.
3. Там находится код (trap), работающий прослойкой между кодом для ВГ93 и драйвером девайса, эмулирущим флоп.
4. В зависимости от типа примонтированного девайса, идет вызов драйвера (SD, компорт и тд).
5. Драйвер девайса возвращает прочитанный сектор, либо записывает переданный сектор.
6. Трап возвращает данные и статус в вызывающий код ВГ93.
Пользовательская программа не знает, что работает не с физической ВГ, кроме конечно отличающихся задержек.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby TS-Labs » Sun, 25.04.2021 05:45:45

UPDATE
! Пофиксал противную багу связанную с особенностями работы компорта в виндовсе.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby LessNick » Sun, 25.04.2021 11:15:24

TS-Labs wrote:! Пофиксал противную багу


:ura: :vodka:
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Previous

Return to Utilities

Who is online

Users browsing this forum: No registered users and 1 guest

cron

x