Вопрос не том как записать, а где взять то, что записать.
Хотя мне уже дали архив с утилитами, но там всё скопом в кучу навалено.
Интересно, существуют "оригинальные" комплекты ОС+утилиты под неё?
Вид для печати
Вопрос не том как записать, а где взять то, что записать.
Хотя мне уже дали архив с утилитами, но там всё скопом в кучу навалено.
Интересно, существуют "оригинальные" комплекты ОС+утилиты под неё?
Вот я совсем не уверен что ос при загрузке будет что-то с КД делать.
Я тут кучу разных ос перепробовал с магнитофона грузить - либо сразу лезут к дисководу и тупик (не находят себя на вставленной дискете), либо нет поддержки дисковода и дальше непонятно как файлы на КД подгружать....
А уж чтобы загрузить ос с ленты и сделать загрузочную дискету - вообще, похоже, фантастика.
Видимо, был какой-то специальный загрузчик. Эй, вектористы, которые без дисковода работали, отзовитесь! :)
---------- Post added at 00:16 ---------- Previous post was at 00:08 ----------
Гы :) RTFM!
Цитата:
2.1. Загрузка МикроДОС с магнитной ленты.
Успешное завершение загрузки определяется миганием индикатора
РУС/ЛАТ. По окончании загрузки передачу управления МикроДОС производят од-
новременным нажатием клавиши СБР и БЛК. Для передачи управления ОС Микро-
ДОС с автоматическим форматированием электронного диска необходимо удержи-
вая клавишу УС нажать и отпустить клавиши СБР и БЛК, затем отпустить УС.
---------- Post added at 00:19 ---------- Previous post was at 00:16 ----------
Попробовал у себя в эмуляторе, действительно, нужно просто Ctrl удерживать :) Но на КД ничего не записывается, странно.
---------- Post added at 00:50 ---------- Previous post was at 00:19 ----------
Только к дисководу она всё равно лезет, зараза. В эмуляторе просто висит, у меня маркер начала дорожки не "мигает" без диска, может если на реале засунуть диск она как-то отреагирует...
Да никак не отреагирует.
Обратится к диску и повиснет.
А про форматирование КД понятно. А дальше вот что-то никак у меня.
Даже по команде 2 микродоса (копирование с ленты на диск не получается ничего).
Точнее, в эмуляторе висит, потому что контроллер дисковода без образа диска готовность не выдаёт, а реальный контроллер, в принципе, должен готовность выдавать даже если в дисководе диска нет.
---------- Post added at 01:00 ---------- Previous post was at 00:57 ----------
Т.е. в микродос она всё-таки выходит? Тогда попробуй без очистки памяти загрузить с магнитофона format.com, по идее должен заработать...
---------- Post added at 01:01 ---------- Previous post was at 01:00 ----------
Т.е. опять-же, удерживая клавишу УС.
Да в том-то и дело что дальше идет попытка чего-то читать и всё.....
Выходят в дос версии без поддержки FDD, а зачем там формат грузить?Цитата:
Т.е. в микродос она всё-таки выходит? Тогда попробуй без очистки памяти загрузить с магнитофона format.com, по идее должен заработать...
---------- Post added at 23:10 ---------- Previous post was at 23:04 ----------
Идея была до безобразия простая и наивная:
1) Загрузить ОС с ленты
2) Директивой 2 ОС скопировать файлы ОС, формат и сисген на КД
3) отфоматировать дискету
4) сделать дискету системной
НО, все оси либо не умеют грузится с ленты (лезут к диску с фатальным исходом), либо не работают с дисководом вообще.
Такой вот тупик...
Я думаю, формат работает с диском напрямую, ему от системы нужен лишь консольный ввод-вывод. Я бы попробовал так:
1. грузим квазидисковую ОС с магнитофона
2. грузим на КД format.com
3. форматируем дискету
4. грузим нормальную ОС с магнитофона
5. грузим на КД sysgen.com и файл с нормальной ОС, например mdos34.com
6. записываем ОС на дискету sysgen-ом
Как сделать пункт номер 2?
Я пробовал пропускать format.com через rom2wav, а потом из-под ос использовать директиву 2.
Но не получается - не видит ос звука....
Нужно записать файл format.com в магнитофонном формате МикроДОС, rom2wav тут не годится. Это можно сделать через эмулятор. Загрузить в образ квазидиска файл format.com, открыть его в квазидисковом МикроДОС (т.к. процедуры чтения/записи с МЛ в более новых версиях часто выкошены) и "сохранить на ленту" командой 3 FORMAT.COM, включив предварительно запись звука в эмуляторе.
dk_spb, я тоже сначала попробовал rom2wav, который Игорь Титарь написал, и тоже не получилось. Потом покопался в отладчике, и выяснил, что квазидисковый ДОС прежде чем начать читать файл, ожидает преамбулу, минимум 256 байтов 00 или FF. Как-же так подумал я, и сохранил в эмуляторе файл format.com при помощи программы savedos.com из архива http://www.sensi.org/%7Esvo/scalar/ware/693/, после чего в квазидисковом ДОСе файл считался на ура (все действия я делал в своём эмуляторе).
Залить формат получилось.
Работает он и в безфлоповой дос.
Но, как я и боялся, у меня FDC походу битый.
Замена ВГ не помогает.
Какой-то странный ноль у него =1,8V. Причем такой уровень чудесно снимается с выхода инвертора и идет на OE ВА86. И, что не менее интересно, на всех выходах ВА86 такой же уровень, даже когда выходные ноги в воздухе. Если бы там пульсации 0/1 были - пробник бы сказал. Чудеса...
Придётся к осцилографу тащить всё это дело.
dk_spb, Извиняюсь, у Вас на ВГ93, +12 вольт подаётся? Дело в том, что в Кишинёвском варианте они беруться с БП дисковода, т.е. если дисковод не подключен, то 12 вольт не подаються, и ВГ не заводиться.
С уважением.
У меня переходник 5v->12V стоит.
Вчера взял 5V не с компа, а с внешнего БП, от которого флоп запитан.
Проблема с логическими уровнями ушла, но счастья всё-равно нет.
format.com пишет что начинает форматирование, флоп начинает работать и все.
Пробником вижу что идёт активное чтение !!! с дискеты. Сигналы записи с ВГ не идут.
Комп при этом "висит", похоже не получает битик готовности в регистре статуса.
Вот думаю может ВАшку махнуть....
А нет ли у кого описания системных вызовов BDOS ?
(полный список вызовов для всех версий cp/m не предлагать ;-)
Включают доступ к квазидиску нормальным образом (не через стек) в областях:
бит 7 - E000-FFFF
бит 6 - 8000-9FFF
бит 5 - A000-DFFF (это вроде стандарт)
бит 4 - вся область посредством стековых команд
биты 2 и 3 - номер 64Кб-страницы для доступа посредством стековых команд
биты 0 и 1 - номер 64Кб-страницы для нормального доступа
Тряхнул стариной, немножко поколдовал с фонтами и релизаю обе операционки на 47 и 56K с описаниями и тулкитом.
Вроде теперь любой символ можно отличить визуально (русские А от английских например).
При запуске 56К переформат квазидиска обязателен!
В общем, наслаждайтесь. SysGen.com прилагается в тулах.
Поглядел внимательно на наши МикроДОСы, и обнаружил, что Серёга пропустил один инкремент при определении типа процессора в POST.
И с тех пор, с 94 года POST "определял" любой проц как i8080.
Такого позора я стерпеть больше не смог и пофиксил определялку заодно добавив определение КР580ВМ1 до кучи.
Ну а разогнавшись, дописал определение Омского RTC, так что POST теперь при входе показывает текущее время или ругается что RTC не найдена.
Обе операционки прилагаются. POST запускается удерживанием клавиши УС при нажатии БЛК + ВВД после загрузки системы с диска.
Форматы квазидисков у МикроДОС 56К и 47К несовместимы, при переходе с одной на другую, форматите квазидиск (вот POST и увидите ;) )
Летом 2011 протестировал несколько ДОСов на предмет скорости вывода символов:
Запускал программку в EMU, ставил бряки на начало вывода и конец, получал число тактов (точность эмуляции вектора очень хорошая, думаю тут вопросов нет). Абсолютные цифры IMHO не особо важны, т.к. зависят от конкретной программы, интереснее сравнить относительную скорость вывода символов в разных ОСах.Код:Вывод 960 символов
mdos311 - 10106800 тактов=3.3689 секунд=284.9567 символов в секунду
f51 - 9942280 тактов=3.3141 секунд=289.6720 символов в секунду
fph511 - 9939296 тактов=3.3131 секунд=289.7590 символов в секунду
mdosf143 - 9939128 тактов=3.3130 секунд=289.7639 символов в секунду
cpm59 - 9653424 тактов=3.2178 секунд=298.3397 символов в секунду
mdos30 - 9361568 тактов=3.1205 секунд=307.6408 символов в секунду
mdos23 - 9361116 тактов=3.1204 секунд=307.6556 символов в секунду
mdos28 - 9357644 тактов=3.1192 секунд=307.7698 символов в секунду
mdos31 - 9082188 тактов=3.0274 секунд=317.1042 символов в секунду
cpm39 - 7131864 тактов=2.3773 секунд=403.8215 символов в секунду
mdbold56 - 6871404 тактов=2.2905 секунд=419.1283 символов в секунду
mdbold47 - 6191992 тактов=2.0640 секунд=465.1169 символов в секунду
mdos34 - 4059448 тактов=1.3531 секунд=709.4561 символов в секунду
t72 - 3856532 тактов=1.2855 секунд=746.7849 символов в секунду
rds2.01 - 3708984 тактов=1.2363 секунд=776.4930 символов в секунду
Несколько сомнительные штуки, но решил все же выложить, в EMU работает.
Пока нет общедоступных копий оригинальных загрузочных дискет для CPM59 можно воспользоваться такими самопальными образами:
Вложение 39493
Используется поддержка этой системой формата диска МикроДОС и то что "дискета любого формата может быть системной"
Стартуем конфиг vector06c-coman, выбираем один из образов для правого (второго) дисковода (можно и в первый вставить, но возникнут кое-какие проблемы), жмем F12.
После старта системы будут доступны 2 диска - A: (ERAM) и F: (второй дисковод с дискетой МикроДОС). Очень рекомендую почитать описание этого ОСа, т.к. названия дисков не очевидны. На образы записан STAT, им можно посмотреть параметры дисков (написал примеры вызова STAT - форум преобразовал их в смайлы, RTFM, короче).
Момент не отмеченный в документации - cpm256 и cpm512/cpm768 ожидают увидеть каталог на МикроДОСовском диске F: на разных дорожках. К счастью в МикроДОС есть команда О.
Можно "сделать" дискету в "родном" формате - создаем файл 655360 байт заполненный E5, даем ему расширение .trd, после вставляем в первый дисковод (обратите внимание, в данном случае это будет буква C: ) и переписываем с F: (или через отладчик в память, потом SAVE на диск) что нужно. Сделать диск "родного" формата системным у меня не получилось, но я в этом не специалист.
Можно сделать ROM-диск и грузить ДОС с него.
Kernel code в main RAM до 0xF000
На практике, без существенных перетолмачиваний для 6128 бы сгодилось, но там только ещё один банк и 8085, а не z80.
В принципе, при определённом количестве свободного времени и наличии исходников, возможно можно портировать с C на 80й ассемблер и завести под Вектор-06ц/02 с квазидиском Баркаря. Но имхо усилий стоит таких же как и написание proprietary многозадачного микрокернела для стандарных Векторов. Я думал на эту тему, взяв за основу что-либо подобное FreeRTOS или Nucleus в смысле планировщика задач, но пришёл к выводу, что в одиночку потребует слишком много лет и усилий.
Если говорить про классические железки, то ERAM вроде почти подходит. Переписывать с C имхо абсолютно не реально, тут лучше супервектор (быстрый z80 + подходящий менеджер памяти) бы подошел.
Ну я об этом и написал. Там проблема без переделок выполнение кода возможно только в 16k окнах. Без переделок будет необходим динамический runtime linker (есть статьи, как это сделать для 8080/z80) и своп, а если брать во внимание хотя-бы "старые" задачи под CP/M, то их исполнение даже в режиме "эмуляции" становится цирковым представлением, причём всё равно в однозадачном режиме, ибо.
Проще подумать о простой переделке ERAM маппера и буткода чтобы дома с паяльником можно было повторить, обеспечив возможность мапить любые 16К страницы. Тогда и что либо юниксоподобное становится реальностью и MP/M можно портануть и native задачи (игрушки) можно пускать в монопольном режиме, но обеспечив возврат в систему.
Согласен. Я поэтому и писал, что портировать фузикс на асм практически нереально. Проще-по шагам: написать на асме минималистическое мультизадачное ядро, взяв за основу планировщик из какой-нибудь компактной RTOS, а файловые системы, командный язык, консоли и гуи наворотить уже поверх, драйверами. В общем типичный миникернел-наше всё. Но и в этом случае-годы.
Наворотить-то можно что угодно, но супервектор не особо интересует. Он будет ничем не лучше сонма существующих уже "супер" платформ на основе FPGA. ПМСМ будет очередной сфероконь с очень узкой группой потребителей. Ну а как есть (с минимальными переделками буткода и memory маппера), годится только ассемблер. Код на C, даже если брать самый быстрый код, генерируемый C компилятором WhiteSmith от Плаугера (раза в полтора быстрее чем код, генерируемый K&R-нестандартным BDS), всё равно будет раз в 5 менее эффективным по быстродействию, чем то, чего можно добиться асмом.
Совершенно не пытаюсь демотивировать. Просто мои 5c.
Спасибо за наводку на whitesmith, нагуглил пару интересных текстов
ERAM я имел в виду comanовский, КД баркаря и 6128 имхо все же меньше подходят
ivagor, а тебе никогда не хотелось радикально оптимизировать вывод текста в МикроДОС-е? Мне кажется, что если сделать буферизацию и рисовать по нескольку символов пачками (кратно 4-м, чтобы выравнивать по границам байтов), либо по переполнению буфера, либо по прерыванию, можно ускорить вывод в разы. По крайней мере для наиболее типичных ситуаций, когда выводится много символов подряд один за другим. Или это все уже проверено и существенных выгод не дает?
Не думаю, что смогу заметно обогнать текущих чемпионов (rds и t72), но если оптимизировать какую-нибудь старую версию, то эффект будет заметен, только мне это не особо интересно. А так присоединяюсь, я только за, если кто-нибудь резко ускорит вывод символов в досе.
- - - Добавлено - - -
Имхо главный недостаток векторовских досов - нет "нормальных" версий для hdd или sd. Версии Фролова для hdd, насколько я понял из отзывов реальщиков, работают, но с современным compact flash ведут себя неоднозначно. Версия с поддержкой sd и fat32 была бы очень полезна, в т.ч. для вариантов на плис.
Вчера попробовал разобраться, чем отличаются версии RDS "просто" и для РУ7. В версии для РУ7 2 отличия:
1. Команды обмена информацией с квазидиском вынесены из области A000-DFFF
2. Разделено обращение адресностью и стеком. Во всех других ОСах (использующих КД) это совмещают.
В вектор-user 18 в комментарии к схеме КД на РУ7 написано: "Отзывается на версии ДОС с BIOS 5.1 и подобные".
После этого посмотрел и другие ДОСы. Оказалось, что процедуры обмена информацией с КД расположены в области A000-DFFF только у "базовых" кишиневских версий и "РДС не для РУ7", во всех остальных - за пределами этого участка. ИМХО автор РДС Вьюнов перестраховался, достаточно было п.1 (и, кстати, версия для РУ7 универсальнее, она и на РУ5 и на РУ7 должна работать.
Отмечу, что ограничения скорее всего есть не у всех КД на РУ7, а только у омского и московского (ЦК). У КД Чеботарева (Радиолюбитель) и ERAM с большой вероятностью ограничений нет, но они требуют перепрошивки D36 (в связи с этим интересно, как их использовать с .02). Омский, кстати, требует пару проводков на ВУ вывести, а московский обходится без доработок вектора.
Во флейме про элиту писал, что для программирования палитры хватит двух out, если между ними будет достаточная задержка. Оказалось, что в большинстве ДОСов (кроме кировской версии, РДС и COMANовских для ERAM) так и делают.
Я думал, что достаточно одного, если он аккуратно прицелен в обход сигнала HVSYNCn?
Та ещё "Засада" с программированием палитры...
Напомните, "стандартный" софт типа ОСей, Бейсика, Драйверов, игр, и.т.п. программируют палитру каждое прерывание или только когда это нужно (при старте и изменениях пользователем) ?
Просто если каждое, то сколько это ресурсов тратится на обход сигнала HVSYNCn...
Там дискуссия протекала примерно так (по памяти):
1. "Вектор, этот комп, в котором на цвет палитры нужно десяток out".
2. Мой ответ был, что хватит двух, если между ними достаточный промежуток. А если тщательно выбрать моменты программирования, то хватит и одного. Вот быстрого варианта (один out/цвет) я нигде не встречал, кроме своего fastpalprog. На этом месте я выпрямляюсь, надуваюсь и гордо гляжу по сторонам.
Справедливости ради - с ОСами не все так плохо. В харьковских (t34, t72), РДС и комановских палитру не долбят постоянно. За что авторам респект.
Ну и я сделал пару (или даже тройку) модификаций бейсика 2.5 без долбежки палитры. Правда они все экзотические и, в отличие от ОСей, относятся к "новому времени".
Еще вчера смотрел двух чемпионов по скорости вывода символов t72 и РДС. В принципе можно еще немного ускорить. Например развернуть циклы. Но если поставить цель сохранить размер TPA, то нужно использовать навороченные квазидиски (Баркаря, Кировский, ERAM) для хранения развернутых процедур. Там 8 процедур (на 8 позиций по горизонтали), при разворачивании в 7/10 раз они неслабо разбухнут. Если уж совсем ничем себя не ограничивать, то можно и фонты предсдвинуть. Это уже где-то на грани или за гранью демомейкерства.
Несколько странно, что в свое время не сделали ни одного варианта ДОСа с числом символов в строке 40 или 32. Для ДОСов без КД это дало бы +8 Кб TPA. Может частью CP/Mовских программ было бы неудобно пользоваться, но для запуска игрушек было бы нормально.
Я хорошо понимаю желание иметь как можно больше текста на одной странице, особенно когда страница такая маленькая, а прокрутка такая медленная.
Для "как можно больше текста на одной странице" с НГМД без КД есть МикроДОС-28 и CP/M-39, а вот для запуска в таких условиях игрушек >=32 Кб ДОСов нет. С другой стороны для запуска игрушек хватило бы какого-нибудь (бездосового) boota, может они даже были, просто я не в курсе.