PDA

Просмотр полной версии : Q-DOS



ZEK
14.02.2011, 12:34
Есть где нить сырки BIOS для CP/M от Профи, в Z80 мнемотиках ?

Vadim
14.02.2011, 12:42
Конечно есть. Какой именно тебе нужен? Есть Concurrent BIOS ver4.xx, есть CBIOS 5 (для так называемой DOS 5.30), есть версия которая в q-dos юзается (сделанная на основе версии 4)

ZEK
14.02.2011, 12:49
Concurrent BIOS ver4.xx
юзаемый мной эмуль вроде только 4.xx умеет
что значит Concurrent?

Подойдет ли BIOS для валяющихся в сети сырков CP/M, к примеру этому (http://www.cpm.z80.de/download/cpm2-asm.zip) ( CP/M 2.2)
который отлично собирается SjAsm+

Vadim
14.02.2011, 13:01
Concurrent - так его назвал автор, Крестьянников А.А. Биос этот несколько отличается от обычного CP/M. Дело в том, что когда на профи захотели установить ЦПМ, то почему то остановили свой выбор на МикроДОС. МикроДОС, в общем то, более продвинута чем CP/M 2.2, в ней есть имитация командных файлов делаемая перенаправлением консоли на чтение из файла, есть перенаправление вывода в файл. Есть прерывание работы функции 0A, позволяющее делать временный выход в командную строку с возвратом обратно. Есть кое-какие вызовы от CP/M 3, но они были практически бесполезными. Так вот. Крестяников стал писать БСВВ не противоречя идеям МикроДОС, а в МикроДОС БСВВ имеет иную структуру. Можно сказать что CBIOS это ооочень навороченный БИОС в стиле МикроДОС, но там привнесено слишком много что бы его считать МикроДОС'ным. Это по сути модуль связывающий драйверы, содержащий функции для вызова драйверов, для пересылки информации. Что бы запустить на нём вышеприведенный сорец, необходимо написать нечто вроде эмулятора BIOS CP/M 2.2 который будет работать через CBIOS. Это весьма просто. Используя эту схему можно на профика прикрутить любые варианты ЦПМ. Я всё это хочу сделать, да всё некогда и никак я не могу себя заставить начать.

ZEK
14.02.2011, 13:12
Что бы запустить на нём вышеприведенный сорец, необходимо написать нечто вроде эмулятора BIOS CP/M 2.2 который будет работать через CBIOS.
тогда по другом поставлю вопрос, смогу ли я выцарапать оттуда драйвера Beta FDC, клавиатуры и шрифт?

Vadim
14.02.2011, 13:13
Шрифт и так идёт в виде файла 2048 байт. Драйверы клавы и экрана и дискетный есть в виде исходных текстов.

ZEK
14.02.2011, 13:27
Вижу одну проблему с переносом на KAY
там FDC доступен только когда установлен DOS и не отключено ПЗУ, то есть получается при работе с FDC надо назад возвращать ПЗУ и через 3Dxx прыгать туда, допустим даже что бы ускорить работу и не извращается драйвер FDC можно подсунуть в ПЗУ TR-DOS, но тогда у меня возникает вопрос, можно ли на законных основаниях держать буфер сектора где нить в верхних адресах?

Vadim
14.02.2011, 13:36
можно ли на законных основаниях держать буфер сектора где нить в верхних адресах?
Конечно, в профи реализации вообще буфер сектора лежит в скрытой (в основное время) странице. Для ускорения работы я делал буфер на 5 секторов. Благо памяти хватало. Заметно быстрее становились дисковые операции.

ZEK
14.02.2011, 13:47
Для ускорения работы я делал буфер на 5 секторов. Благо памяти хватало
В KAY одно окно проецирования и проблематично использовать расширенную память под буфер. Разве что разместить в области 0х000-0х0100 процедуру которая будет заниматься перекидыванием из/в расширенную память

Black_Cat
14.02.2011, 13:48
там FDC доступен только когда установлен DOS и не отключено ПЗУименно для этого и сделан IODOS, мож проще его прикрутить?

Black_Cat
14.02.2011, 13:58
В Фениксе такой проблемы нет благодаря IODOS, и никакого паяльника.
А вааще "умникам" каестроителям с самого начала говолилось прикрутить IODOS, дык напихали всякой ненужной фигни, вместо единственно нужной вещи :( , терь пусть МГТФом паяют..

..правда есть более правильный вариант - прицепить дочку на любой из контроллеров, имеющих игольчатый дубликат NemoBus :)

Vadim
14.02.2011, 14:19
В kay же не вшит железно контроллер Beta Disc. Сделать более другой контролёр и всё. А лучше одну плату FDD+HDD+BIOS, что бы воткнули карту и была возможность загрузки с hdd.

Black_Cat
14.02.2011, 14:40
АТМовский менеджер памяти пусть это г остаётся в АТМ :) , у Спектрума есть хорошо проработанный собственный менеджер: http://zx.clan.su/forum/7-57-1
Работает во всех окнах, совместим с архитектурами Scorpion256, KAY-1024, Profi-1024, Pentagon-1024

Black_Cat
14.02.2011, 16:39
В общих чертах: в менеджере памяти на каждое окно по 2 порта (для CPU3 -три исторических: #7FFD, #1FFD, #DEFD(заменитель #DFFD, токо его спековская часть)). Адресуемый диапазон - до 1Gb. Любая страница в любое окно, кроме CPU1 - в него токо любая видеостраница (A16'=1). Идеологически исключено применение АТМ-подобного менеджера - т.е. принципиально низзя! Объясняется это тем, что идеология развития Спектрума заточена под аппаратную реалтайм многозадачность, предполагающую возможность быстрой смены слепков состояния всех системных портов и регистров CPU, а так же ограниченностью отведённой под это специальной памяти - 16к (256 XWM(Хiмеra Virtual Mashine) по 64 байта на каждую). При этом само тело XWM находится в ОЗУ постоянно и не перемещается, для этого и надо много ОЗУ. В задачу ОС входит так же управление XWM: выделение места и разделение общих ресурсов, перезагрузка регистров и портов XWM, переключение между XWM, арбитраж приоритетов, и т.д.

ZEK
14.02.2011, 16:57
ладно это все офтопик, и я понял что не пойму тебя, предлагаю весь фотоп снести
ps. У меня по MMU совсем другие мысли как без разни сделать кучу памяти, с возможностью аппаратной виртуальной памятью (пометка использования, пометка записи в страницу), страничной трансляцией, DMA внутри памяти, и все без резни, плата памяти будет выглядеть как платка SIMM ток побольше и с компа сигнал сброса завести только.

Black_Cat
14.02.2011, 17:14
:) ясно, не очень наверно и хотелось понимать :)

ZEK
14.02.2011, 17:17
ясно, не очень наверно и хотелось понимать
твоя реализация невозможна, по колву текста наверное больше чем проц займет ресурсов, моя без резни существующих компов и влазит в CPLD

Black_Cat
14.02.2011, 17:38
моя без резни существующих компов и влазит в CPLD а собсно никто и не призывает реализовать всё на старых компах, но кое-какие элементы прикрутить возможно. Старым компам вполне по силам вытесняющая многозадачность с ручным переключением задач, например :) , а вот на FPGA - уже можно реализовать всё! :)
Что касательно простоты перелелки стапых компов, то тут всё уже продумано :) - спецификация на расширенные стандарты NemoBus v.1.2 & v2.0 решает всё! :) - минимум доделок, максимум возможностей, и всё - простой установкой контроллера в NemoBus v.1.2 :)

ZEK
14.02.2011, 17:48
Ну опять флейм, обсуждение ведется в рамках существующих компов

Black_Cat
14.02.2011, 18:14
обсуждение ведется в рамках существующих компов действительно, с пониманием меня у тебя туго :) , я ведь о существующих и говорю :) . Заинтересованные лица уж давно получили схемы доработки NemoBus v.1.0 до v.1.2 , а так же доп доработки, необходимые для установки на шину NemoBus v.1.2 контроллера расширенного управления памятью, а так же множества других полезностей, например DMAUSC :)

ZEK
14.02.2011, 21:33
В общем KAY не заточен под CP/M до Profi и ATM ему очень далеко и возможна только угрюмая реализация в духе скорпионовского CP/M. А нехватает всего навсего второго окна проецирования.

Верней не второго а изменения положения этого окна, для CP/M щелканье банков в осласти С000-FFFF практически бесполезная фича, к тому же мешающая.