User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Эмулятор CPM, text only

  1. #1

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Эмулятор CPM, text only

    Цитата Сообщение от andreil Посмотреть сообщение
    (я про CPM32_04)
    Там при сборке генерится файл em180.asm (если его не было). Вот там и .... самый форменный =/
    Попробую найти АСМ, который скомпилит его...
    Я сейчас по-другому сделал. Заменил оригинальный АСМ-движок Z80 ядром Z80 на C (2 файла) из этого проекта что рекомендовал mastermind :

    Цитата Сообщение от mastermind Посмотреть сообщение
    https://github.com/MockbaTheBorg/RunCPM - этот эмулятор не годится? Он уже кросс-платформенный, ничего допиливать не надо.
    Работает. Конечно, помедленнее чем версия на ASM. Но зато теперь нет преград andreil для портирования на Линупс ибо никакого ASM, pure C only (кстати, я бы тоже поюзал когда будет результат). Сам пока не стал - там надо заморочиться с консолью, как бы не ncurses придется заюзать чтобы портануть 1:1 (ибо позиционирование курсора и т.п.).
    На винде проверял на ядре Юзикса. Собирает бинарник 1 в 1 с тем, что выпекает исходный вариант мастера Мураками. Получившееся положил пока что тут (исходники):
    https://github.com/serge-404/CPM32
    Собирал в Borland C Builder 5 (удобно жеж: отладка, GUI - вот это вот всё). Планирую пару мелких усовершенствований чуть погодя, раз уж под рукой теперь есть рабочий проект.
    Последний раз редактировалось Error404; 11.06.2019 в 18:27.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Планирую пару мелких усовершенствований чуть погодя, раз уж под рукой теперь есть рабочий проект.
    Слегка увеличил TPA до 59.75к (т.е на 256 байт). BDOS теперь начинается на 0FF00h а BIOS на 0FFCAh. Да, дистанция от BDOS до BIOS теперь не кратна 256 байтам, но сохранять эту древнюю традицию времен CPM 1.x не считаю нужным - за всю практику мне попадалось только одно кривое приложение, считающее высоту BDOS/BIOS по регистру H (т.е. кратно 256), остальные делают грамотно - по полному 16-битному значению ячеек (1-2) и (6-7). В принципе, можно еще сотню байт добавить в TPA вычистив пустоты между буферами BDOS, но это уже будет "лучшее враг хорошего".

    Добавил частичную (для наиболее распространенных кодов) поддержку орионовской разновидности VT-52. Теперь экранные CP/M-приложения с позиционированием курсора и очистками строк/экрана работают как надо, а не кашей символов:

    Скрытый текст


    1.

    2.

    .
    [свернуть]

    Актуальное залил на GIT. Прикинул объем переделки под Линпус - приличненько, не зря andreil прячется.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  4. #3

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Добавил в cpm.exe поддержку KOI8, с псевдографикой. Конечно, мелочь, а приятно.



    Пока не придумал как поддержать в консоли Винды включение и выключение инверсии символов для VT52. То, как оно было сделано у Мураками, в современных консолях Винды (W7...W10) не работает (хотя в доках не пишут как такое может быть).
    Последний раз редактировалось Error404; 15.06.2019 в 14:10.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  5. #4

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Добил инверсию, еще будет часть кодов Robotron-1715 эмулироваться (т.к. на Орионе было прилично софта от Роботрона, работало через драйвер-транслятор).
    Также, почти готова версия для Линукс (ну как для Линукс, оно же и для Винды - на дефайнах компилируется из общего исходника) - набит и отлажен код, на чтение уже работает, осталось чуть поднажать.

    Подумываю на основе этого сделать текстовую эмуляцию Ориона - добавить страницы памяти и порт F9, без графики (консоль - клавиатуру и текст - перехватывать на обращениях к определенным подпрограммам как и было сделано у Мураками для эмуляции CP/M).



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

    Ну, типа чтобы Юзикс работал в этом текстовом окошке
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  6. #5

    Регистрация
    29.11.2009
    Адрес
    г. Бийск
    Сообщений
    521
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    41
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию еще эмулятор

    Error404,Вот еще эмулятор СРМ. Работет и под Linux.
    Я для себя переделал для I8085 вместо Z80.Работает с консолью.
    Вложения Вложения
    • Тип файла: 7z cpm-emu.7z (463.3 Кб, Просмотров: 106)
    Микро-80, Радио-86РК, Океан 240, Ириша, Спектрум-48, NEC PC-8201, ЮТ-88(2017) .

  7. #6

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от L Juriy Посмотреть сообщение
    Error404,Вот еще эмулятор СРМ. Работет и под Linux.
    Я для себя переделал для I8085 вместо Z80.Работает с консолью.
    Отлично. Наши разработчики UZIX теперь будут иметь обширный инструментарий. Вот только все попрятались.
    Тем не менее я все же доделаю версию эмуля Мураками для Линукса, т.к. он ориентирован на Hitech-C (в частности обработка статусов завершения чего нет в оригинальной CPM 2.2, но есть в самом компиляторе и оно нужно для пакетной обработки). Потом сравню обе версии, главный критерий - компилируемость UZIX (не код же сравнивать - там наверчено у обоих, причем эмуль из вложения вроде посложнее смотрится). Компиляция UZIX задает нативной CPM-версии Hitech-C и эмулятору передельные нагрузки по ресурсам, которые вывозит далеко не каждый эмулятор CPM.

    Есть и более далеко идущие планы: когда версия эмуля CPM для Linux будет полностью готова, я вкручу ее в сам UZIX (уже имеющийся ассемблерный эмуль уступает по возможностям) - там он будет запускать код CP/M (т.е. имитировать BDOS/BIOS, оставляя всё ОЗУ ТРА) в дополнительной целой 64к странице. Этим получим "UZIX собирает UZIX", что сейчас вообще ни один 8-битный юникс клонов UZI пока еще не делает.
    Последний раз редактировалось Error404; 22.06.2019 в 13:03.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  8. #7

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В-общем, эмулятор для линупса испёк. Hitech С работает, псевдографику, спецрежимы символов, эмуляцию экрана ROBOTRON1715 и Kaypro тоже вроде как-то впилил.
    Осталось допилить makefile для UZIX и далее будет стресс-тест.
    Неприятно удивило, что правила makefile написанные под виндовозный make (который вообще-то тоже GNU) не работают под линупсом (и тамошний make говнит, утомил).
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  9. #8

    Регистрация
    20.06.2005
    Адрес
    Светлогорск
    Сообщений
    885
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    В-общем, эмулятор для линупса испёк. Hitech С работает, псевдографику, спецрежимы символов, эмуляцию экрана ROBOTRON1715 и Kaypro тоже вроде как-то впилил.
    Осталось допилить makefile для UZIX и далее будет стресс-тест.
    Неприятно удивило, что правила makefile написанные под виндовозный make (который вообще-то тоже GNU) не работают под линупсом (и тамошний make говнит, утомил).
    Всё нормально там написано.
    Проблема только в Windows-API, растущем везде и отовсюду В *NIX нет функций _splitpath, _makepath, _searchenv - надо переписывать места с их использованием.
    И ещё - в линуксе пути регистрозависимы, так что путь, используемый в функции load_program, некорректен. Там сперва проверяется доступность файла, потом его имя и путь приводятся к верхнему регистру
    "Байт-48"

  10. #9

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andreil Посмотреть сообщение
    Всё нормально там написано.
    Проблема только в Windows-API, растущем везде и отовсюду В *NIX нет функций _splitpath, _makepath, _searchenv - надо переписывать места с их использованием.
    И ещё - в линуксе пути регистрозависимы, так что путь, используемый в функции load_program, некорректен. Там сперва проверяется доступность файла, потом его имя и путь приводятся к верхнему регистру
    Это все сделано уже, думаешь чем я тут столько времени занят? И консоль в т.ч. (которая в оргинале тоже вся Винда-платформеннозависимая), там тоже пришлось подумать и погуглить т.к. для BIOS CPM нужен небуферизированный ввод-вывод на консоль и просто линуксовый putchar/getchar не проканает. Мулятор который на git уже содержит в cpm.c код для обоих ОС (Win/Lin). Я про другое спрашивал - про makefile для сборки уже самого UZIX, который ты как пишешь тут у тебя уже переделанный под Линукс есть. Это сэкономит мне пол дня как минимум, что по нынешним временам немало.
    Последний раз редактировалось Error404; 04.07.2019 в 21:36.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  11. #10

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В-общем, эмулятор причесал, Hitech C собрало UZIX под эмуляцией на Linux. Цель номер один (эмуляция CP/M) достигнута.
    Далее попробую впилить в этот эмуль дополнительно включаемый режим эмуляции АльтаирДОС (т.е. неполный Орион - без графики), чтобы можно было под Линукс "не отходя от кассы" запускать в эмуляции UZIX.COM (ядро Юзикса, которое есть CP/M приложение, но оперирующее страницами ОЗУ через орионовский порт F9). Но в отличии от, работать оно будет уже не с локальными файлами, а с образом, т.к. эмулировать ФС Юзикса из локальных файлов шибко геморно ИМХО т.к. там отстуствует какой-то уровень абстрагирования, а устроено оно сложнее CP/M.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Помогите с ZX-Evo и CPM
    от kostya261 в разделе Оси
    Ответов: 9
    Последнее: 12.03.2022, 14:55
  2. конвертор Zeus to Text
    от goblinish в разделе Софт
    Ответов: 4
    Последнее: 08.09.2012, 18:09
  3. Обменяю контроллер DISK monitor/CPM для БАЛТИКА от СОНЕТа
    от backa в разделе Барахолка (архив)
    Ответов: 14
    Последнее: 12.01.2012, 20:59
  4. Как перевести на PC cpm дискеты с кворума?
    от Shnurkov в разделе Внешние накопители
    Ответов: 1
    Последнее: 28.07.2011, 12:03
  5. text mоde
    от sv в разделе Демо
    Ответов: 5
    Последнее: 16.02.2009, 15:47

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •