nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 15:28



Reply to topic  [ 38 posts ]  Go to page 1, 2, 3  Next
Исходники ПЗУ Микроши и их модернизация 
Author Message
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Cпрошу тут. ( хотя не особо надеюсь на ответ, ибо практические вопросы чаще "повисают в воздухе" )

Нуждаемся в коде ентой самой директивы "R" (, можно дизассемблированном, можно с комментариями :mrgreen: )
А также в адресах точек входа и как там передаются параметры.
Задача - всё та же - загружать "Микрошу" с rom-disk-а

( ну неужели за более чем 30лет никто этого не делал ?(риторический) .. )


15 Jun 2018 09:11
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
petrenko wrote:
Нуждаемся в коде ентой самой директивы "R" (, можно дизассемблированном, можно с комментариями :mrgreen: )
А также в адресах точек входа и как там передаются параметры.
Задача - всё та же - загружать "Микрошу" с rom-disk-а

Если применительно к РК-86 то, вот в этой теме есть и исходник всего монитора и именно директива R, а вот здесь я подключал SD карту к РК-86 совместно с ROM диском. Подключение не требует ни единого изменения ни в мониторе ни в железе самого РК.
В ПЗУ зашивается SDOS и грузится как внешняя программа из РОМ диска, запускается и позволяет работать с файлами с SD карты. На данный момент работает с любыми типами SD карт, но с ограничением на размер раздела FAT16 в 4ГБ. Тк "Микроша" и РК-86 близкие родственники :), то не вижу проблем с реализацией. Дальше больше, тк SDOS поддерживает разные интерфейсы подключения SD карты, то можно сделать гораздо проще, и использовать схему n8vem, она хоть и медленная, но для ее реализации на ВВ55 вообще ничего не нужно будет. Минус в том, что в эмуляторе ее не проверить, надо сразу на реале, ну или в протеусе :). Если будет интерес, можно проработать детали.

Добавлю, как-то barsik предлагал идею использовать адресные разряды А2-А7 как переключатели страниц по 64КБ, те если ВВ55 РОМ диска размещается в адресах А000-А7FF, и А0 и А1 задействованы в управлении ВВ55, то остальные разряды не обрабатываются и их можно завести на А16-А20 ПЗУ РОМ диска... но это требует внесения изменений в схему (вытащить их наружу), хотя и не требует изменения монитора для обращения к первым 64КБ.


15 Jun 2018 10:48
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Ну идей предлагают много разных и много кто предлагает.
У нас задача просто практическая - загружать "микрошу" с rom-disk-а .
Мы прошили в п.з.у. "микроши" монитор из ж."Радио"1989№12 для совместимости с рк86 , но директивы R в нём или нет или она по другому называется.

Я с удовольтвием побалаболю по различным теоретическим вопросам
, но , извините , чуть чуть позже, когда мы решим мелкие практические вопросы
( повторюсь, с практикой всё обстоит гораздо застойнее, нежели с балабольством, это тенденция на нескольких тех.форумах
, впрочем на "фантоме" двое форумчан таки помогли практически - оцифровали скан из ж."Радио"1989№12 - это до них никто не сделал за > чем 35 лет )

По какому конкретно адресу произходит анализ, что введена именно директива R и по какому адресу( точка входа ) начинает работу сама директива кто-нибудь может подсказать ?
( И как передаются параметры ? тоже желательно .. как там было в к.ф. .. "адръес , сьестра , адръес "(с) )


15 Jun 2018 14:31
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
petrenko wrote:
Нуждаемся в коде этой самой директивы "R" (дизассемблированном или с комментариями)
А также в адресах точек входа и как там передаются параметры.
Задача всё та же - загружать "Микрошу" с ROM-диск-а

Не понятно в чём проблема. Адреса входов и параметры видны в листинге трансляции. Эти адреса меняются в каждой конкретной версии ПЗУ. В листинге есть точка DIR_R и она подпрограмма, т.е её можно использовать как нестандартную подпрограмму извне. Эта подпрограмма грузит блок из ROM-диска, который такой-же как в ОРИОНЕ.

Для п/п-ммы DIR_R входные параметры такие:
HL - нач адрес в ПЗУ
DE - конечный адрес в ПЗУ
BC - начальный адрес в ОЗУ

Насчёт ПЗУ Микроши адаптированном под совместимость с РК ничего не знаю. Но кажется, чтобы получить монитор Микроши из монитора для РК надо в подпрограмме опроса клавиатуры поменять порты A и B, добавить инициализацию ВИ53 и изменить подпрограмму звука. При этом, естественно, магнитофонный формат будет как в РК86.

Вот исходник полного оригинала ПЗУ F800 РК86. Тут есть директива R. Это версия в мнемониках Z80 и версия в мнемониках КР580, которую я получил конверсией с помощью XZI.COM (потому в ней тексты в верхнем регистре). Хотя более удобно использовать версию ПЗУ в котором освобождены 200 байт, т.к туда можно встроить не только загрузку блоков из ROM-диска или прошивателя УФ-ПЗУ, но и директиву для прошивки УФ-ПЗУ (так было сделано в ленинградском мониторе Специалиста).

Директива R простая, но для эксплуатации неудобная. Для практического использования лучше ввести директиву B, которая вызывает п/п-мму DIR_R с конкретными параметрами, грузит блок в ОЗУ и стартует его.

- - - Добавлено - - -

Вложение исходника ПЗУ удалил, т.к это не 100% оригинал (чтобы вернуть оригинал надо удалить две строчки с JJJ_02 и расскоментировать две предыдущие строки). Четырём скачавшим это вложение лучше взять 100% оригинал исходника здесь


Last edited by barsik on 17 Jun 2018 01:44, edited 3 times in total.



15 Jun 2018 14:50
Profile
Novelist

Joined: 15 Jun 2018 16:58
Posts: 26
Reply with quote
petrenko wrote:
Мы прошили в п.з.у. "микроши" монитор из ж."Радио"1989№12 для совместимости с рк86 , но директивы R в нём или нет или она по другому называется.

Директивы там нет, место под нее не хватило.
ну ежели еще интересно:
Code:
DirectivReadROM:
            ld      a, 90h
            ld      (PPA2 + 3), a

loop_15:    ld      (PPA2 + 1), hl
            ld      a, (PPA2)
            ld      (bc), a
            inc     bc
            call    cmp_hl_de_loop
            jp      loop_15

но в Микроше разве есть доп. РРА ?
Ну и все же теоретический вопрос интересует - если этот ROM работает на реальной Микроше, то почемуу он не работает в эмуляторе?(


15 Jun 2018 17:10
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
barsik wrote:
.. Не понятно в чём проблема..
Нет "проблем". Есть мелкие затруднения, которые ( IMHO ) описаны довольно ясно.
barsik wrote:
... Адреса входов и параметры видны в листинге трансляции ...
Видны ... Все дома в г.Саратов видны на карте, однако в каком живёт например некто Сидоров - на карте не указано .. :mrgreen:
barsik wrote:
... Насчёт ПЗУ Микроши адаптированном под совместимость с РК ничего не знаю ..
Жаль .. :osad:
barsik wrote:
... кажется ...
Не не , такое давайте обсудим в "курилке" пожалуйста.
barsik wrote:
... Тут* есть директива R ...
*_Ну хорошо, "тут" , но по какому адресу то ? ( .. "адръес , сьестра , адръес "(с) )

Ну в общем я не особо и разсчитывал на успех, задавая вопрос .. :osad: Пойду заниматься мелкими практическими делишками, а на следующей неделе или когда буду посвободнее, мы сможем развёрнуто побалаболить по многим теоретическим вопросам.
Всем хорошего настроения !


Last edited by petrenko on 18 Jun 2018 14:35, edited 1 time in total.



15 Jun 2018 22:12
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
.
Дизассемблировал и получил исходник ПЗУ Микроши (совместимого по входам с РК86) из ж.Радио 12.1989, о котором идёт речь в данной теме. В качестве исходного взял дамп с упомянутого сайта (он называется не "фантом", а "Полигон призраков"). Интересно, что данный файл работает в EMU80, а в EMU виснет, если в конфиге не закомментировать секцию кассетного интерфейса.

Как видите это ПЗУ является почти полной копией ПЗУ РК86 из 1986 (того в котором ещё нет директивы R, которую добавили в 1987). Сам код процедур тот же самый. Но есть незначительные отличия (не считая других адресов БИС).

Отличия в портах A и B клавиатуры (они поменяны в Микроше). Кроме того клавиша РУС/ЛАТ читается в РК86 по биту D7, а в Микроше по биту D5. Похоже, что разработчики сознательно меняли в Микроше не только порты, но и биты спец.клавиш, что вне матрицы PC7<->PC5, чтобы избежать всякой совместимости. Непонятно зачем старались устранить совместимость.

Также есть изменения в подпрограмме вывода звука выходом INTE, дополнительно на порт PC выводятся единицы по всем разрядам. А ВИ53 вообще не инициализируется. Очевидно какой-то бит PC отключает вывод звука с ВИ53 (иначе он пищит при включении питания, т.к не имеет входа сброса). Кстати, проще программно затыкать ВИ53, чем делать это аппаратно. Отличается также размещение клавиш доп.клавиатуры. Также добавлен вектор для одной стандартной подпрограммы на 7653 инициализируемый кодом RET. Подпрограмма PUSK_VG (F82D) не сохраняет регистров.

В данном исходнике ПЗУ Микроши имена меток сделаны такими же, что и в исходнике РК86. Т.е имена цифровых меток не соответствуют адресам в ПЗУ Микроши, а соответствуют адресам в ПЗУ РК86. Удобно сравнивать, например, загрузив в редактор оба исходника (в двух окнах, разбив экран надвое, чтобы сравнивать тексты) и постранично листая в обоих окнах текст, сразу можно видеть, что 99% кода совпадает.

Похоже переделку ПЗУ делал не очень знающий ПО РК программист. В частности, он не совместил не только внутренние нестандартные точки ПЗУ РК (без чего некоторые программы не работают), но даже стандартную точку WARM START не совместил с стандартным РК адресом F86C (а сделал F882). Причём это исправляется легко, т.к до WARMST стоят 17 NOP-ов (очевидно чтобы подогнать размер кода к 2К и чтобы можно было вставить здесь коды инициализации других БИС). В Микроше WARMST тоже иной - это F89D, но совмещаться с ней бесполезно, т.к сам монитор другой. А все внутренние точки ПЗУ РК оказались сдвинуты на 2...10 байтов. Это дополнительная причина несовместимости, которая, впрочем, легко устраняется перекомпоновкой фрагментов.

Этот монитор даёт совместимость только корректных программ, т.е программ работающих с клавиатурой п/п-ми F812, F81B, F803 и не лезущих в нестандартные точки внутри ПЗУ. Хорошие игры опрашивают клавиатуру напрямую через ППА 8000. Проблема не только в том, что ППА по этому адресу в Микроше нет, а в том, что перепутаны порты и биты клавиатуры (хотя сама клавиатура одинаковая). Потому переделка программ не сводится лишь к подстановке другого адреса ППА.

И всё-же такой монитор имеет смысл, т.к многие игры работают с клавиатурой только подпрограммами ПЗУ. Наличие такого ПЗУ избавляет от необходимости при конверсии заменять п/п-ммы РК-ПЗУ, которых нет в Микроше (или они отличаются) отдельными подпрограммами, подключаемыми к адаптируемой программе, что резко упрощает конверсию программ от РК86.

Если надо, то могу переделать это ПЗУ так, чтобы внутренние точки совпадали с РК-ПЗУ и добавить работу с ROM-диском. Это несложно, имея исходник. На всякий случай напомню, что чтобы создавался полный листинг трансляции надо закомментировать директиву .xlist (в сАмой первой строке).
petrenko wrote:
Нуждаемся в коде ентой самой директивы "R" (можно дизассемблированном, можно с комментариями)... также в адресах точек входа и как там передаются параметры
Вопрос хотя и поставлен неконкретно, но Вам ответили так, как поняли вопрос. А двоим ответившим, вместо того, чтобы их поблагодарить, Вы ответили невежливо. Кстати, распространение личных данных, тем более взятых с другого сайта, нарушают правила форума.

Вы получили, что просили. Просили исходник директивы R и его получили. Про параметры подпрограммы я ответил, а адрес виден в листинге трансляции. Если Вам ответили не так, как Вы ожидали, так надо правильно формулировать вопрос или просьбу. Здесь не экстрасены, чтобы догадаться, что подразумевался вовсе не вопрос о исходнике DIR_R, а имелась ввиду просьба встроить директиву R в Ваш монитор.

- - - Добавлено - - -

В дамп исходного ПЗУ и, соответственно в дизассемблированный исходник при получении дампа путём сканирования журнала и конверсией в текст закралась ошибка. По адресу FCA0 вместо байта 01 должен стоять байт D1. В исходнике соответственно метку JJJ_01 надо переименовать в POPREG и вместо команды LD BC,E1C1 вставить три команды
Code:
POPREG: POP     DE
        POP     BC
        POP     HL


- - - Добавлено - - -

Обновил вложение, исправил ошибку.


Attachments:


Last edited by barsik on 20 Jun 2018 11:02, edited 7 times in total.

17 Jun 2018 00:08
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
.
Вот на скорую руку освободил нужное число ячеек и ввёл в это ПЗУ Микроши директиву R. В эмуляторе EMU80 проверил, - читаются FF. Позже разберусь как встроить в конфиг эмуляцию ROM-диска и проверю с файлом ROM-диска. Входную точку WARM START тоже сделал (на F86C). Но внутренние точки не подгонял, сделаю позже, сейчас нет времени. Это и не особо важно, т.к программ нагло лезущих внутрь ПЗУ немного. Думаю, что это уже можно проверить в реале. При трансляции не обращайте внимания на сообщения о сдвиге внутренних точек.

Позднее, освобожу побольше ячеек и сделаю стартовую загрузку ОС из ROM-диска. Т.е по сбросу будет проверяться наличии ROM-диска и если он есть, то будет грузиться из ROM-диска и стартовать первый файл в формате ORDOS ОРИОНА (по адресам из самого ORDOS-файла). Это позволяет не меняя ПЗУ, вставлять разные ROM-диски и автоматически стартовать разные DOS.

- - - Добавлено - - -

Как указано в предыдущем посте в дамп исходного ПЗУ закралась ошибка. В данном исходнике надо сделать те же изменения. В этом ПЗУ байт D1 должен стоять по адресу FCA1 (не FCA0 как в журнальной версии).


Attachments:
MIKROSHA with DIR_R.rar [40.81 KiB]
Downloaded 453 times


Last edited by barsik on 19 Jun 2018 02:51, edited 1 time in total.

17 Jun 2018 04:36
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
barsik wrote:
... А двоим* ответившим, вместо того, чтобы их поблагодарить, Вы ответили невежливо.
*_Даже двоим ??? :esurprised:
Впрочем мне не в лом извиняться даже "при отсутствии состава правонарушения" и прилюдно , так что :
ежели вдруг что Вам показалось невежливым, то : извините на всякий случай.

,а теперь по делу :

в "микроше" переключение знакогенератора делается через P2B7 ,а верно ли понимаю, что в "более-РК-совместимом" мониторе это уже не так ? И таким образом верно ли, что мы должны( не в смысле "дюрфен" и не в смысле "мюссен" ,а в смысле "золлен" ) будем оответствующим образом перекинуть заводкую перемычку ? ( продолжение ентого вопроса в части физически перемычки ес.с.но уместнее в теме "схема микроши" ) И каков адрес команды в рк-коде , где произходит переключение знакогенератора ? ( впрочем это уже мелкая косметика, несущественно в рамках основной практической задачи )

Ещё раз всем хорошего настроения !


Last edited by petrenko on 18 Jun 2018 14:31, edited 1 time in total.



17 Jun 2018 05:10
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
petrenko wrote:
в "Микроше" переключение знакогенератора делается через P2B7, а верно ли понимаю, что в "более-РК-совместимом" мониторе это уже не так ? И таким образом верно ли, что мы должны будем соответствующим образом перекинуть заводкую перемычку ?

Каков адрес команды в РК-коде, где происходит переключение знакогенератора ?

Пришлось долго искать информацию по Микроше, чтобы понять о чём речь. Wiki сайта Emuverse и Wiki сайта zx-pku.ru - бесполезны. Краткое описание для непосвящённых уместно в общей Википедии, а на специализированном техническом сайте хотелось бы видеть информацию. Почему не дать исчерпывающую информацию об архитектуре для программиста, ведь архитектура проста и текста о ней немного.

Пришлось скачивать и изучать заводскую документацию к Микроше, но и там не нашёл информации о коммутации фонта. Пришлось разбираться в адресах и битах по схеме. А позднее более менее вразумительное описание адресов портов и назначение разрядов нашёл в книге автора Микроши (С.Н.Попов "Персональный компьютер Микроша").

Выяснил, что есть второй ППА. Этот ППА стоит по адресу C800 и в нём бит PB7 переключает фонт. Звук выводится всего по одному каналу ВИ53 и запрещается (или модулируется) битом PC2 ППА клавиатуры. А бит PC1 служит для вывода программного звука, причём выход INTE на схеме вообще никуда не подключен. Что удивляет, т.к в обсуждаемом ПЗУ звук BEEP и клик сделаны по DI/EI.

Увидев альтернативный фонт удивился тупости авторов. Такой фонт полезен только, если оба фонта доступны одновременно, т.е когда для коммутации фонтов используются атрибуты ВГ75. А если управление портом, то одновременно доступен только один из двух фонтов. Зачем в обоих фонтах псевдографика? И какая польза от маленьких латинских и русских букв, если при этом становятся недоступны заглавные буквы. Надо было маленькие русские буквы включить или вместо заглавных латинских, или, что лучше (т.к сохраняются и латинские буквы), вместо псевдографики (кодов 0...1F).

Не понял, что имеется ввиду под "более РК-совместимым" ПЗУ, но в данном ПЗУ к запасному порту вообще нет обращений, т.е фонт никак не переключается и второй ППА можно даже не ставить. Т.о адреса команды переключающей фонт, которая Вас интересует в ПЗУ нет, т.к монитор вообще не переключает фонт. Полагаю, что его вообще никто не переключает, т.к такой второй фонт вообще никому не нужен. А от перестановки фрагментов кода, чтобы внутренние входные точки стали другими, ничего не меняется. Куда можно перекинуть перемычку? На выход INTE ?


Last edited by barsik on 18 Jun 2018 07:17, edited 3 times in total.



17 Jun 2018 14:26
Profile
Novelist

Joined: 15 Jun 2018 16:58
Posts: 26
Reply with quote
Не только лишь все на ПП могут пользоваться FR. А уж выискивать ошибки сканирования - видимо еще меньше.
Ни на что конечно не влияет, почти. если не пользоваться записию SAVE, чисто для исторической справедливости т.с.,
по адресу 0FCA0h число D0, соответственно дизасм
Code:
   POP   AF
[b]JJJ_01:   LD   BC,0E1C1H[/b]
@BAK   EQU   $
   RET

неверный. Там восстановление стека, есичо. Ну и т.к. я в основном эмулем emu пользуюсь, он не хотел работать, пришлось дважды дизамблить туда -сюда. Помогло заткнуть не всю процедуру TapeWriteBlock, а всего лишь чтение в ней (зачем?) из ВГшки
Code:
            ld      a, (VG75 + 1)

Все остальное не влияет на работопособность в эмууле :( данного модифицированного монитора.


18 Jun 2018 02:55
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Post 
Причина моего забанивания на упомянутом сайте в том, что я невозместим.

Image

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

Реальная цепочка событий перед моим забаниванием такова:

 
В теме про vinxru, я написал дословно следующее:

"vinxru предпочёл социальные сети, т.к в свой группе он гарантирован, что не будет оскорблений и злобных тролей, что регулярно возникают на этом сайте, несмотря на модерацию".

Что эта почти нейтральная фраза заслуживает пожизненного изгнания ?

Тем не менее, в ответ на это Ewgeny7 разразился ругательствами и сообщил, что "берет на себя грех" и забанивает меня с сайта, что я всех достал жалобами, потому теперь жаловаться будет некому.

Тогда, пока не поздно, я написал личное письмо старшему модератору. Через 3 часа Ewgeny7 удалил свой пост. Думаю, понял, что причины "забана" нету и это выставляет его подлецом.

А т.к письмо я уже отослал, то получилось, что я беспричинно развожу склоки, жалуюсь на модераторов, хотя именно таков порядок жалоб. - Сначала жалуешься старшему модератору на рядового модератора, и только затем хозяину сайта.

Думаю, что старший модератор показал моё личное письмо всем модераторам. И тогда несколько модераторов проголосовали за изгнание. Причём, если всем, кого изгоняли ранее, делали предупреждение или предварительно забанивали на несколько месяцев, то меня сразу забанили навсегда. Настолько этим "маленьким царькам" оказалась неприятна правда.

Интересно, что порядочности не хватило даже публично объявить, что меня забанили. Тихо забанили, хотя принято хоть что-то официально объявлять в таких случаях. Естественно, у администрации не хватит смелости организовать опрос, как было с Риндексом.


Last edited by barsik on 18 Jun 2018 14:16, edited 4 times in total.



18 Jun 2018 08:23
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Закачал .asm ( к сожалению не смог закомпилировать в бинарник )

P.S. Выражаю благодарность форумчанину "barsik"


18 Jun 2018 08:37
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
petrenko wrote:
Закачал .asm ( к сожалению не смог закомпилировать в бинарник )
Если у Вас не MSDOS и не Win XP, то для запуска BAT-файла надо предварительно загрузить DosBox, и перейдя в этот каталог запустить BAT-файл из командной строки (или нортона для MSDOS).

Тут используется резидентный эмулятор 22NICE, который работает только в MSDOS. К тому же он TSR, т.е загружается и остаётся в ОЗУ (чтобы не подключать сам эмулятор 22NICE к каждой программе). Это позволяет запускать CP/M-программы в MSDOS. Для этого COM-программы CP/M переименовываются в *.CPM и снабжаются отдельным стартёром, который при его запуске передаёт управление резидентному эмулятору 22NICE, который в свою очередь считывает CPM-файл и прогоняет его под эмуляцией. Тем самым как бы программы CP/M работают в MSDOS. Это и позволяет использовать CP/M-компиляторы в MSDOS. Не все CP/M программы работают в CP/M-эмуляторах, которые используют в качестве носителя диск MSDOS, т.к при этом не эмулируется CP/M-каталог и Allocation Table.

Потому некоторые программы CP/M приходится запускать только в эмуляторах, где используется образ диска CP/M. В основном CP/M программы не работают в MSDOS из-за отстутствия эмуляции Allocation Table, т.к в CP/M-программе единственная возможность точно узнать размер свободного места на диске - это посчитать число нулёвых битов в Allocation Table. Потому как раз самые грамотные программы перед записью файла проверяют, а есть ли на диске место для записи этого файла. Если бы в CP/M была функция возвращающая размер свободного места на диске, то проблем с прогоном CP/M программ в MSDOS не было бы вообще.

Кстати, я когда-то писал резидентный TSR-драйвер экрана, который отлавливал выводимые на экран управляющие VT52-коды и конвертировал их в управляющие ANSI-коды. Это позволяло загрузив драйвер ANSI.SYS в MSDOS использовать чисто консольный нортон написанный для CP/M, CP/M Turbo-Pascal и CP/M-текстовые редакторы.

Вероятно есть аналоги 22NICE и для Windows, т.е программы позволяющие прогонять чисто консольные CP/M-программы прямо в Windows. Никто не подскажет, где скачать?

Кстати, сейчас дизассемблировал заводское ПЗУ Микроши. Собираюсь его немного оптимизировать, чтобы выиграть байты, и встрою в него директиву R, а может быть и автостарт файла из ROM-диска. Этот исходник мне самому пригодится для его конверсии в коды 8088.

Но во вложении не новое ПЗУ Микроши переделанное из заводского, а то же самое ПЗУ из ж.Радио 12.1989 куда просто добавлена директива R (исходник которой выложен раньше, странслировать который сложно используя не Win XP и не имея DosBox).


Attachments:
22nice.rar [34.13 KiB]
Downloaded 408 times
new_microsha_ROM.rar [1.73 KiB]
Downloaded 435 times
18 Jun 2018 10:46
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Слегка почистил тему - слишком много [не]лирических отступлений...

_________________
:dj: https://mastodon.social/@Shaos


18 Jun 2018 23:04
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 38 posts ]  Go to page 1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.