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

Полигон-2

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

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

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

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

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

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

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


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


Ссылка


Дата регистрации на форуме:
14 апр. 2010
Ну так по выше указанным ссылкам вроде...

И очень попросим товарища GARNIZON - он точно в курсе структуры.
tnt23
Advanced Member


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


Ссылка


Дата регистрации на форуме:
19 нояб. 2006
Вот честно скажу, по указанным ссылкам полазал, но нигде описания форматов не нашел. Может, и искал не очень прилежно, но времени тоже жалко, знаете ли :)
Sergei Frolov
Advanced Member
Коллекционер

Откуда: Питер
Всего сообщений: 2719
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 июля 2003
Кстати, в агатовских дисках MFM за начало дорожки берется так называемый "сбой синхронизации".
Если надо, могу поискать заводскую доку. Где-то лежала.
tnt23
Advanced Member


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


Ссылка


Дата регистрации на форуме:
19 нояб. 2006
Sergei Frolov написал:
[q]
Если надо, могу поискать заводскую доку. Где-то лежала.
[/q]
Давай.

Сбой синхронизации изобразить в эмуляторе легко, его собственные файлы .MFM представляют собой буквальный битовый поток. Что туда битами запишется, то и будет проиграно в компьютер.

Вот в обратную сторону (на запись), если формат записи не MFM, работать скорее всего не будет.
icedwarm
Newbie


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


Ссылка


Дата регистрации на форуме:
14 апр. 2010
Да, описания формата нет, щас отпишусь в группу АГата, спрошу.


Отписал и Олегу и Вольдемару. Ждем скорейшего ответа.
icedwarm
Newbie


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


Ссылка


Дата регистрации на форуме:
14 апр. 2010
Вот ответ от Олега:

Привет.

Наиболее пригодны к реализации, на мой взгляд, два формата дисков: "сырой"
aim и "очищенный" dsk.

Во втором случае в файле хранятся просто сектора в прямой последовательности
(т.е. 256*21*160=860160 байт).
К этим образам разные авторы дописывают различную служебную информацию типа
номера тома, описания и т.п.
В своих эмуляторах я использую альтернативный формат, распознаваемый по
сигнатуре "Agathe emulator virtual disk\x0D\x0A\x1AAD" в начале образа. Если
такая сигнатура присутствует, предполагается наличие 256-байтного заголовка.
Тогда по смещению 0x30 находится признак защиты от записи (0x01), по
смещению 0x32 - длина описания N, далее - N байт описания в кодировке cp866.
По смещению 0x31 находится номер тома. Как видно из описания, этот формат
подразумевает стандартный вид сектора, формирование которого ложится на
эмулирующую программу.

Поэтому для начала проще всего реализовать "сырой" формат AIM. В нём каждый
байт, считываемый с диска, сопровождается байтом служебной информации A,
содержащим следующие признаки:
A&0x80 - синхросбой (для совместимости также при A=0x01)
A=0x03 - начало индексной метки
A=0x13 - конец индексной метки
A=0x02 - зацикливание дорожки (переход на начало)
Каждая дорожка содержит 6464 16-битных слова, младший (первый) байт
которого - данные, старший (второй) - описанные выше признаки. Индексная
метка в образе может отсутствовать, тогда я её начало ставлю в первом байте
дорожки, а конец - по смещению 0x30, хотя наверное можно это сделать и
как-то иначе).
Если признака A=2 не встречено, дорожка просто прокручивается по всей длине.
В соответствии с остальными признаками, устанавливаются регистры данных и
состояния контроллера.

Более подробно тонкости реализации можно посмотреть у меня в исходниках. В
действительности, всё это можно реализовать намного более эффективно, чем
это сделано у меня.

Успехов!
Олег.
icedwarm
Newbie


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


Ссылка


Дата регистрации на форуме:
14 апр. 2010
Ответ от Вольдемара.

привет!

Тему почитал, там вроде и так всё написано, но я из неё не понял или
не видел главный вопрос: эмулятор имеется ввиду именно дисковода
(т.е. привода) или привод + контроллер ?

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

Хотя, с учётом того, что схемы, форматы, ПЗУшки контроллера уже известны и опубликованы
- наверное, задача тоже решаемая вполне.

Есть один разработчик (Alexey Belodvortsev), который работает над аппаратным агатом
на современной базе, он вроде тоже собирался эмулировать флоп,
но не знаю, в каком у него это состоянии - он вроде над дисплеем
и сисплатой сидел, до дисковода не близко.

Я если встречу его, ссылку на тему дам, может он что нибудь тоже подскажет.

В аттаче оригинал описания AIM-формата.
Ну и немного по теме тут (по 800кб устарело, но по 140-ке пока именно так):
http://ssmu.ru/er/agat/Soft/notes.shtml

Подробности по контроллеру 800кб:
http://ssmu.ru/er/agat/Reading/fl800k.shtml
Там описания, схемы, прошивки...
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: готовых решений загрузить агат с нуля, без дискет, сейчас нет. Есть много обходных путей, но все они требуют того или иного времени и/или знаний, как обычно, в обратной пропорции.

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

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

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

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