Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Другие архитектуры »   Загрузить АГАТ-9
RSS

Загрузить АГАТ-9

Дискет уже нет. Есть ли исходники? Идеи?

<<Назад  Вперед>> Страницы: 1 2 3 * 4 5 6 7 8 9
Печать
 
AlexBel
Newbie


Откуда: Volgograd, Russia
Всего сообщений: 18
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
Я действительно начал проект железной модели Агата, но дело продвигается весьма вяло, в основном из-за недостатка времени. На настоящий момент работает процессорная часть (проходит сброс и раздается "пик" :) ) и частично работает видеоконтроллер. С сегодняшнего дня я в отпуске на пару недель и, в числе прочих планируемых задач, собираюсь повозиться с проектом. Если кого интересует аппаратная эмуляция дисковода - вот пара ссылок:
http://alexfreed.com/FPGApple/revisited.html
http://alexfreed.com/FPGApple/DE1_src/
Это модель Apple ][ от AlexFreed (Алекс, еще раз огромное тебе спасибо!) на FPGA для девборды Altera DE1. Модель работает с .nib-образами, проверял сам. На второй ссылке исходники, так что желающие могу увидеть эмуляцию дисковода Шугарта (140кБ) в железе и всей красе :) Увы, на 800к модели дисковода нет.
Если какие вопрос - постараюсь ответить в аське 320365827 или жабере nullparty (dog) gmail.com, но лучше сперва посмотреть сырки и почитать Мымрина :)
icedwarm
Newbie


Всего сообщений: 92
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
14 апр. 2010
Эмуляция шугарта не нужна, нужна имеено 800кб. Мымрина читали, ту это не причем.
Voldemar0
Junior Member


Откуда: Tomsk, Russia
Всего сообщений: 102
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 нояб. 2006
Привет!
Почитал тему, вроде бы ничего не пропустил. Возникли следующие мысли:

- Кому -то уже писал, может даже кому-то из этой темы: ЗАБУДЬТЕ О WAV ПРИМЕНИТЕЛЬНО К АГАТУ ! Это не спектрум, тут нет кучи софта для нормальной поддержки магнитофонного порта. У девятки из-за ошибки в ПЗУ этот порт не совсем функционален для чтения. Он очень медленный (где-то байт 50 в секунду) и очень привередливый. Я когда-то пробовал его использовать с разными магнитофонами - условно стабильно он начинал
работать, например, с Маяк-232. Мафоны третьего класса его не устраивали. Детонация там больше, что ли,...
Но дело даже не в скорости, а в том, что для загрузки элементарного бейсика (который тоже ни разу не элементарный) ЭВМ выполняет кучу разных действий, а вовсе не просто считывает дамп цифр в память.
В эту кучу входит и определение конфигурации машины и инициализация всяких устройств, контроллера памяти в первую очередь и чтение может происходить не сразу в используемый регион памяти, а в промежуточные буфера.
Причем эти операции перемешаны с собственно чтением частей ОС. Т.е. считываем, например, начальный загрузчик - ищем, куда дальнейшую часть читать. Считываем ДОС - затем ищем на диске Бейсик. Считали Бейсик - ищем, куда его приткнуть в памяти....

- Набирать код с клавиатуры ... Я сразу скажу об объёме работы: 59 блоков бейсик, 37 - дос (для семёрки). Блок - 256 байт. Причем по тем же правилам: ДОС, допустим, набрать не очень сложно: комп на УПС посадил, включил память в режим запись/чтение и вдвоем - один диктует другой кнопки давит. А вот с бейсиком будет сложнее - он сидит в модуле памяти, который не доступен для чтения одновременно с работой ПЗУшного сисмона. Поэтому придётся творчески обходить эту проблему :)) На девятке память более гибко конфигурируется, но и там, думаю, не всё будет просто.

Где взять то, что набирать ? Да легко - загрузите эмулятор, например бейсиком и наберите "call-151"
Попадёте в сисмон. А там просто указываете нужный регион памяти (пишу для семёрки, девятку наизусть не помню):
9600.BFFF
- и пожалуйста - дамп дос'a в наличии.... Глаза не сломайте :)
Там вперемежку идёт и код самого доса и буфера данных. Ну и не забывайте, что где-то
в области 3E0.3FF ещё есть наборы переменных, которые ДОС инициализировал перед запуском.
Точка входа в код - где-то в районе b900, но лучше это проверить.
Точка входа в реинициализцию (типа мягкий сброс) указана в 3f2.3f3.

Насвистеть этот же дамп в WAV можно почти также:
9600.BFFFW
Олеговский эмулятор может свистеть прямо в WAV, если я правильно понял.

- Готовых прог для перевода образов дисков в WAV не существует и быть не может именно по этой причине - смысла нет. Тупо перевести все байты в звук не проблема, вопрос в том, что с этим делать дальше.
Большинство ОС просто зависнут, если попытаться их запустить на машине без дисковода - они или зациклятся в его поиске или, не найдя, уйдут на исполнение какого нибудь мусорного кода. А инвентаризация дисководов есть неотьемлимая часть инициализации ОС (пожалуй, за исключением базовой ДОС3.3 - она считает текущим дисковод загрузки, но ей можно явно указать любые его координаты - поверит на слово. Тип привода ей знать не нужно, поскольку она работает только со 140кб). Да и вообще - дискета - устройство с параллельным доступом, с соответствующей файловой системой. На агатовских лентах же никто файловую систему и не планировал делать (даже tar там нет :) ).

- Если нужна "как бы работа" - т.е. для выставки, типа, картинка бегает по экрану и все довольны
- проще вообще забыть про ОС и бейсики и прочее, а вспомнить игрушки. Многие игрушки грузятся именно линейным дампом и могут быть целиком автономны. Такими игрушками обычно эмуляторы агата на первоначальном
этапе отлаживают, когда эмуляция дисковода ещё не работает нормально. Вот, хотя бы mars, honix...
Снять дамп игрушки очень просто (опять же пишу по семёрке, хотя по девятке отличия незначительны):
== Можно открыть образ в dos33c2 ( http://ssmu.ru/er/agat/Soft/dos33c2.shtml ) и нажать F3 на файле-игрушке: вы увидите в ответ именно дамп, причем сразу с адресами загрузки.
== Можно на реальной машине или в эмуляторе набрать BLOAD >файл> , затем зайти
в сисмон:
call-151
aa72.aa73 >вот тут для девяточной ОС будет другой адрес>
В ответ получите два байта - адрес только что загруженного файла, например:
aa72- 00 20
Дальше в каталоге смотрите его размер (он там в блоках - 256 байт) и можете смотреть дамп (например, 15 блоков):
2000.2FFF




А что делать ?

- Можно попросить загрузочную дискету у того, кого они ещё сохранились. Почта пока дискеты пересылает, неоднократно проверено. А если посылать чем нибудь вроде DHL - так они и придут через день-два.
При том, что базовый софт агата не защищен от копирования и имеет в своём составе эти самые средства
копирования, записать копию системного диска не проблема.

- Если уж хочется понабирать, можно попробовать подключить вход клавиатуры агата к параллельному порту PC.
То же набирание, но быстрее. Сразу скажу, что там используется однонаправленный последовательный канал с синхронизацией со стороны системного модуля (фиксированная скорость, вроде бы 8 КГц). Данные передаются сразу в КОИ-7 с установленным старшим битом, первым идёт старший бит. Скорость обмена (с учётом скорости реакции стандартного агатовского софта) - 10-100 байт в секунду.

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

- Линк#1 - http://ssmu.ru/er/agat/Hard/ - двунаправленный, поддерживает как 140 так и 800 к. Он гоняет образы в любом направлении на любой агатовской архитектуре, лишь бы была плата парпорта. Его недостаток (помимо скорости работы) - он требует наличия на агате живой ОС. Не то, чтобы нельзя было сделать совсем
автономный софт, но просто такой проблемы не ставилось: этот линк делался по заказу.

Вообще-то, до автономности ему не хватает драйвера дисковода. Простой драйвер 800кб можно уложить, наверное, в пару Кб. Исходники драйверов свободно доступны, например, в коллекции моего сайта.

WAV и MP3-файлы, которые входят в состав Link#1, содержат исключительно и только код сервера линка. Они были созданы в расчёте на то, что в первоначальный момент, когда человек начинает работать, у него есть куча дискет, которые он хочет перевести с агата в образы, но, естественно, на его агате нет программы-линка.


Про эмуляцию дисковода:

- Почему-то вопросы поднимаются о формате образов, а мне так кажется, что самая большая проблема будет не тут, а в вопросе о том, как кодируются данные контроллером перед отправкой дисководу. Вроде бы вот эти буквы все слышали - MFM - модифицированная частотная модуляция, но это ж не законченный формат записи, а только намёк на имеющиеся ограничения. Вроде того, сколько нулевых бит может приходится на один единичный бит. А такие вопросы, как, например, порядок бит в байте, размеры синхрополей (и вообще их конструкция) - отданы на усмотрение разработчика конкретного контроллера. Иначе бы агатовские дискеты вполне можно было писать/читать на PC, пусть и нестандартным софтом.

А форматы образов, которые используются в агатовских эмуляторах, такими тонкостями не заведуют - это происходит в силу обратимости кодирования данных агатовскими контроллерами - т.е. то, что драйвер дисковода
записал в регистр контроллера, то он в дальнейшем и прочитает (при условии соблюдения кучи ограничений, свойственных данному контроллеру). И в образе хранятся либо эти данные (те, которыми обменивается драйвер с контроллером) - если образ nibble или aim, либо те, которыми обменивается драйвер и ОС (для dsk-образов).

И эти образы (nibble и dsk) отличаются не только наличием/отсутствием адресных полей, но и, например, порядком бит (не байт!) в секторе (у 140к дисководов).

Так что больших-больших успехов желаю тому, кто с этим кодированием разберётся. Кстати, GARNIZON в своих поисках вроде бы нашел разработчика 800кб контроллера (Филипов ?) и даже переписывался с ним. Думаю, если хорошо попросить, он бы вспомнил тонкости кодирования и отличия кода своего контроллера от имевшихся в те годы альтернатив.


- Мост ( http://agatemulator.sourceforge.net/transfer.html ), который уже отлично читает агатовские дискеты 800к на PC, сейчас дорабатывается до возможности записи агатовских дисков с PC. Успехи пока не впечатляют, но работа ведётся всего пару недель, так что может быть всё заработает. В случае уверенного функционирования (т.е. когда устройство сможет записывать хотя бы 9 дискет из 10 без сбоев) GARNIZON собирался заказать серию таких устройств и затем делится с желающими.


- Про окончание работы дискет: 5-идюймовки сейчас уже правда не продаются и может быть даже не производятся. Но трешки -то есть. Агату, в общем-то, всё равно с чем работать. Судя по тому, что
были разработаны даже USB-дисководы - тема дискет ещё не собирается умирать, в т.ч., возможно, потому,
что они используются во всякой специальной аппаратуре, типа медицинской, музыкальной (я лично видел
синтезатор с флопиком, где-то с год-два назад. Не б/у. В магазине).

---

Resume: готовых решений загрузить агат с нуля, без дискет, сейчас нет. Есть много обходных путей, но все они требуют того или иного времени и/или знаний, как обычно, в обратной пропорции.

Если будут вопросы - пишите, но помните - теорию я могу рассказывать с утра до вечера. А вот чтобы что-то сделать реальное, нужно со шкафа достать агат, освободить рабочий стол, собрать нужную конфигурацию машины и дождаться, пока прогреется монитор :)
icedwarm
Newbie


Всего сообщений: 92
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
14 апр. 2010
Спасибо за подробное описание 8-), по полочкам разложилось если не все то многое 8-), в общем остается ждать пока GARNIZON добьет это дело. А необходимость агата не только в единоразовой загрузке для выставки, но и для дальнейшего его ковыряния и изучения.

Еще раз спасибо за подробную статью 8-).
Если можно, известите как только в этом деле будут продвижения.
Voldemar0
Junior Member


Откуда: Tomsk, Russia
Всего сообщений: 102
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 нояб. 2006
Извещать о продвижении не проблема, только кого ? С форума тема через какое-то время, видимо, исчезнет,
в рассылке на agat.yahoo, кажется, кроме меня и Олега никого и не осталось :))

Так что самое надёжное - смотреть наши сайты.
У меня, например, обновления тут видны:
http://ssmu.ru/netadmin/last.shtml
где-то ближе к концу страницы (web.ssmu.ru)

Кстати, если интересно ковырять агат (т.е. не наковырялись в 90-е) - начать можно отсюда:
http://ssmu.ru/er/agat/Reading/for_beginners.shtml
Вроде об этом тексте пока были только хорошие отзывы :)
GARNIZON
Advanced Member


Откуда: S-POSAD
Всего сообщений: 350
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 дек. 2007
Думаю что идея с адаптацией виртуального флопа уважаемого TNT23 для работы с АГАТом очень интересна,
но смысл делать поддержку формата .DSK (840кб) нет никакой , только .AIM(2020кб) так как самые интересные
и показательные пакеты работают только в .AIM для чего он и был придуман VOLDEMAR0ом
и одобрен всеми известными мне АГАТчиками в т.ч. стоявших у истоков АГАТостроения.
Так "раздутые" диски просто "не влезут " в формат .DSK.
но любой образ .DSK может быть сконверчен в .AIM - эмуляторы его понимают, утилиты тоже.
Насколько я понимаю VOLDEMAR0 прислал описание формата .AIM ?

Но мне кажется что связываться с такой объемной работой ради пары лишних покупателей
TNT23 не будет , его виртфлоп и так прекрасно выполняет свои задачи на радость владельцам
Спектрумов и Амиг, а агатовский контроллер настолько далек от АЛЯ-ВГ93 и прочего что проблем будет достаточно.
Если такое дополнение все-таки будет задумано , то я в очереди на покупку сего девайса.
Хотя убежден что игра не стоит свеч , уж больно нестандартно все у агата в этом смысле, но это
плата за высокую скорость и точность записи.

Какая именно инфа нужна от разработчика контроллера?
дело в том, я сомневаюсь что он многое помнит и связь с ним весьма затруднена, он давно живет в штатах.
Где-то я выкладывал текст об фишках АГАТовского контроллера , найду скопирую следующим сообщением.

ICEDWARM:

Как ЭТО будет уметь писать диски, сразу буду заказывать партию, копию вам без проблем конечно.
А пока так сказать "на первое время" для экспозиции воспользуйтесь готовыми дисками(почту не отменяли).
GARNIZON
Advanced Member


Откуда: S-POSAD
Всего сообщений: 350
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
11 дек. 2007
Вот:

так и отказались со временем от паршивого 140кб эплпривода 5088,
и стандартным стал обычный 160 дорожечный флоп (напр TEAC55gr)
С Молниеносным контроллером (без применения ВГ93) на двух ВВ55 по одной для каждой стороны.
Кто работал с агатом знает что никакой другой комп не может так разогнать привод даже в режиме
FAST как АГАТ (36 секунд на диск) , мало того - реализовано буферирование операций обмена. Т.е. файловая система может делать два вида запросов к драйверу диска, с мгновенной доставкой данных (ну, скажем, если ей нужен заголовок файловой структуры или блок данных каталога) и с возможностью отложенного выполнения (когда собственно ведётся обмен с содержимым файла). Реализовано это так: создан специальный массив по элементу на каждый сектор трека (т.е. 21...22 для филипповской разметки). В каждом элементе указывается тип операции над данным сектором (т.е. что-то вроде: 0 — ничего не делать, 1 — чтение, 2 — запись, 3 — проверка) и адрес сектора в памяти. Когда файловая система шлёт запросы с флагом возможности отложенного выполнения, то эти операции просто помещаются в соответствующий элемент массива, а реально ничего не выполняется, пока не случится либо запрос без мозможности отложенной операции (обычно последний блок запроса) или не случится переход на другую дорожку.

Вот тут и начинается самое интересное, происходит обработка всех отложенных заданий. Драйвер просто отлавливает заголовки секторов которые проходят в данный момент мимо головки и по номеру смотрит на задания указанные в массиве. Если ничего не надо делать — просто пропускает, сказано прочитать — прочитает, сказано записать — запишет, после выполнения операций флаг скидывается на 0, причём для записи было сделано так, что устанавливался не 0, на проверка и на следующем обороте выполнялась проверка записанного, причём не по контрольной сумме, а сличением данных. Когда после обработки очередного сектора оказывалось, что заданий нет — начиналась работа по новому заданию.

Что это даёт? А две простые вещи — массовое чтение выполняется строго за один оборот (плюс максимум один сектор), т.е. драйвер не ожидает прихода того сектора который был запрошен на этой дорожке первым, как это делают практически все другие компы у которых к тому же делается синхронизация по дырочке на диске (в Агате вполне в норме было диск размечать без привязки к дырке). Вторая вещь — запись выполнялась с отличной проверкой, причём на это требовалось всего два оборота (можно вспомнить, что на PC если включить запись с проверкой всё начинало плестисть со скоростью аж по 15/18 оборотов на дорожку для 1,2/1,44 МБ).
icedwarm
Newbie


Всего сообщений: 92
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
14 апр. 2010
2 GARNIZON:

Да, конечно это проблемно, тему с этим устройством я однажды поднимал на другом ресурсе и тогда активно обсжудали модернизацию подобного устройства под агаты - дело кончилось ничем, но как вы сказали, если товарищ TNT23 сделает это, то очередь покупателей девайса пополнится!!!.

Вашего же девайса жду с нетерпением!!!! 8-).
AlexBel
Newbie


Откуда: Volgograd, Russia
Всего сообщений: 18
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 дек. 2007
А этот вариант в плане адаптации к Агату не рассматривался?
http://hxc2001.free.fr/floppy_...pyemulator
Я его повторял, со спектрумом и MSX гонял лично, работает без проблем. Правда, проверял только на чтение, но все можно узнать и проверить, было бы желание...

2icedwarm: Я думаю, что без всяких сообщений запрашивать авторизацию по аське не очень правильно - я, например, таких сразу заношу в игнор. Не сделал этого лишь потому, что сопоставил по времени свой ответ в форуме и запрос авторизации. Ведь нетрудно написать "Привет, я icedwarm, авторизуй, пожалуйста!". И все, никаких проблем...

2GARNIZON: Привет! Что-то тебя в аське не видно последнее время...
Voldemar0
Junior Member


Откуда: Tomsk, Russia
Всего сообщений: 102
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 нояб. 2006
... Эту же логику ("ленивое чтение") они потом добавили и в драйвер 140кб. Но, правда, там дорожка всё равно требует два оборота или больше - драйвер налету вынужден выполнять сложное декодирование, получается: один сектор читаем, один пропускаем (пока декодируем предыдущий).

Теоретическое минимальное расчётное время (может быть мне удастся достигнуть его в следующем проектируемом устройстве - мост 140 >-> PC): 35 дорожек * (0.22 сек на дорожку + переход между дорожками) - около 10 секунд на диск. Если читать также защитные промежутки между дорожками (как это пытается делать КОРРЕКТОР СМЕЩЕНИЯ) - то
подольше.

--

Кстати, вы хотели новости ? Их есть у меня, принимаю поздравления - сегодня мост успешно записал первую дискету. :))
<<Назад  Вперед>> Страницы: 1 2 3 * 4 5 6 7 8 9
Печать
Полигон-2 »   Другие архитектуры »   Загрузить АГАТ-9
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS