Этот вопрос поднимается каждые 3-4 года на разных форумах. Если поискать по zx.pk.ru (pk.zx.ru?) то там были развёрнутые ответы.
Если коротко: всё основано на двух постулатах:
1) да, у агата есть магнитофонный порт
2) нет, его редко кто использовал и на него нет софта (не считая нескольких спецпрог, например, для чтения спектрумовских картинок)
Если бы всё было просто, мы бы давно на сайте опубликовали точный порядок этих действий.
В вашем вопросе непонятны две фразы:
> Имею ячейку портов без ПЗУ - загрузка с ББ невозможна.
Что такое ББ ?
> Вообще - возможна ли работа с магнитофоном в ДОС?
На каком уровне ?
Порт мафона доступен всегда, ДОС - дисковая операционная система, она вообще не имеет понятия о каком-то магнитофонном порте - зачем он ей ?
В эпле, откуда порт пришёл на агат, мафон обслуживался системным монитором (типа BIOS'а), который входил в состав ROM-бейсика. Поддержка была двух видов: чтение/запись дампа памяти (адреса задаются пользователем) и чтение/запись бейсик-программы.
Жирно подчеркну и дам ссылку:
http://agatcomp.ru/Reading/for_beginners.shtml
- ДОС и бейсик на агате - это две разные программные сущности, каждая из которых живёт и работает сама по себе. В каком-то далёком приближении, можно считать, что это два плагина сисмона.
Так вот в семёрочном сисмоне порт мафона поддерживает чтение/запись дампов памяти. НО (почему ваша затея сейчас практически невыполнима):
1) это очень медленно. Там скорость - байт 40-60 в секунду. Никто , как на спектруме, тут не занимался оптимизацией кодирования. Глюков тонна при малейших ошибках (на реальном мафоне было с этим очень плохо).
2) собственно, зачем вам ДОС в озу ? она никаких тестов дисковода не имеет, дискет у вас нет с файлами, дисковод может быть не работает ? Что вы от неё хотите ?
3) никаких особых тестов 140ки не существует. Есть только тестилка скорости вращения, она написана 50/50 на бейсике и ассемблере. Собственно, в нём и тестировать нечего: позиционер головки видно при начальной загрузке (код загрузчика его двигает на начало диска), канал чтения - либо работает либо нет. Любая команда ДОС это сразу видит, но никакой тест не сможет указать причину ошибок чтения: глюки контроллера или дисковода или дискеты или головки. Это всё определяется только прямыми руками с приборами, как минимум вольтметром, но лучше осцилографом. Программно можно только проверить, меняется ли значение в порту чтения, но это и без всякого теста можно посмотреть в сисмоне. Хотя это мало что даст с точки зрения полноценной диагностики.
4) ни бейсик ни дос вы не прочитаете одной только командой R (и не запишете тоже) потому что оба они размазаны по разным регионам памяти, причем бейсик находится в нескольких перекрывающихся страницах. Т.е. область d000.dfff, например, в зависимости от режима работы эмпзу будет коммутироваться на разные банки памяти.
5) команда 0.ffffw умрёт в эмуляторе чуть дальше середины, потому что регион c000.cfff - регистры управления, уже обращение к c040 включит таймер и без обработчика прерываний код в эмуляторе зависнет.
6) мало загрузить всё в озу, перед передачей управления (а куда вы его будете передавать?) нужно сконфигурировать аппаратуру, в первую очередь: контроллеры озу.
Всё это бы можно было преодолеть, если бы не один вопрос: на кой вам агат без дисковода?
Софта под такую конфигу нет, ....
Хотите игрушку простенькую запустить: не мучайтесь с плейерами:
просто считайте в ИКП файл, например, mars или met, посмотрите его координаты в памяти (проще всего в do33c2, в разделе "информация об объекте") и потом, выйдя в сисмон наберите команду записи, а на агате - чтения. Выход звуковухи воткнув во вход мафона агата. Учтите только, что это всё можно пробовать только на семёрочном ИКП или , лучше, Basic-60. В девяточном икп мафонный порт не поддерживается (команды есть, но они не работают).