Посмотрел логи и возник (глупый) вопрос - а размер сектора у роботрона точно 512 байт?
Что то там такое в логах мелькает, что наводит на мысли о 128 или 1024 байтах.
Посмотрел логи и возник (глупый) вопрос - а размер сектора у роботрона точно 512 байт?
Что то там такое в логах мелькает, что наводит на мысли о 128 или 1024 байтах.
Нет, вроде 1024. А к чему вопрос?
К - а 800 (как и теледиск) с таким форматом умеет создавать-работатьПодозреваю, что теледиск - да, а 800 - просто не помню - давно я его уже гонял (когда переносил образы с СМ-1420 на Квант-4С через писюк
)..
Но судя по тому, что об 1024 известно, я так понимаю, что этот вопрос как-то решён...
Извиняюсь за подъем некротемы.
В Ленинградском компьютерном клубе восстановили Robotron 1715M
(и я заполнил маленькую карточку на него)
https://lenclub.sensi.org/dokuwiki/d...=robotron1715m
Всякая критика принимается.
Особенно приветствуются гайды про ДОС-программы записи дискет и перенос CP/M. Мне Линух ближе и я делал на нём.
Продублирую здесь свой пост с соседнего форума.
Когда-то давным-давно я безуспешно искал игру PILOTS для Robotron 1715. Почти восемь лет назад мне удалось найти основной файл PILOTS.COM. Но сразу после запуска программа пытается загрузить оверлейный модуль. Чтобы обойти эту проблему и хоть как-то запустить игрушку, я частично её дизассемблировал и поставил заглушку. А три года назад удалось найти архив, который содержит и оверлейный файл PILOTS.000.
Сам точно не зная зачем, я увлёкся дизассемблированием и декомпиляцией игры. В результате был получен полный исходный код на Паскале.
В программе применяется прямое обращения к видеопамяти из-за чего невозможна корректная работает на модели 1715М(W). Поэтому было решено модифицировать исходный код так, чтобы игра запускалась и одинаково работала и на 1715 и на 1715М. Работа велась довольно вяло и с перерывами, но была завершена.
Скрытый текст
При запуске определяется модель машины, устанавливаются адреса видеопамяти, подпрограммы пересылки в/из видеопамяти и константа частоты процессора для корректной работы процедуры задержки DELAY. Все изображения в игре созданы для кодировки SC619 (большие и малые латинские буквы), поэтому при запуске на модели 1715М выполняется сравнение загруженного знакогенератора с этой кодировкой и, в случае несовпадения, заменяется на SC619 с последующим возвращением исходного знакогенератор в конце игры.
Кроме того, модификация и оптимизация коснулась, в основном, инициализации, представления и вывода текстовых данных, заключения повторяющихся последовательностей в подпрограммы. В результате объём исполняемого кода существенно сократился, и вся игра могла бы уместиться в один исполняемый .COM-файл, но я решил оставить оверлеи, чтобы как и в оригинале, перед их запуском машина делала паузу и шуршала дискетой
Кроме того, исправлены две ошибки:
- "потеря" вертолётом шасси при подъёме и последующем повороте в направлении движения;
- заворот на конец предыдущей строки летящих влево птиц.
При первом запуске в заставке к игре вместо оригинальной copyright-строки выдаётся новая бегущая, после окончания пробега или при нажатии на любую клавишу выводится оригинальная статическая. При этом, в copyright-строке после 'Terminal:', если запуск произведён на 1715W, выводится инверсная строка 'PC 1715W'
АЛГОРИТМЫ, ЛОГИКА И ВИЗУАЛИЗАЦИЯ в обновлённой версии ОСТАЛИСЬ ПРЕЖНИМИ И НЕ ПОСТРАДАЛИ!
[свернуть]
Думаю, настало время поделиться оригинальной версией игры для 1715 и новой версией, способной работать на обеих моделях.
Архив PILOTS_W.zip, включает в себя:
- оригинальную версию игры для 1715 ( файлы PILOTS.COM, PILOTS.000, PILOTS.DAT);
- модифицированную версию для запуска на обеих моделях (файлы PILOTSW.COM и PILOTSW.000 );
- образ дискеты 1024*5*80 *2 с этими файлами (файл PILOTSW.CPM);
- перевод инструкций к игре и тестам ( PILOTS.pdf).
PILOTS_W.ZIP
AlexBel(17.01.2026), Oleg N. Cher(18.01.2026), Radon17(18.01.2026), RW9UAO(18.01.2026), svofski(18.01.2026)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Просто пишутся в память.
Сначала я сделал то, что посоветовал ув. shattered, а именно посмотрел MODCS.COM.
Процитирую своё сообщение от 19.01.2024 с phantom.sannata.org:
Скрытый текст
Чтобы узнать как пересылать данные в/из видеоОЗУ и знакогенератор я дизассемблировал резидент LOADCS.RSX, который специально для этого предназначен (см.файл SCP30_1715w.pdf) Дизассембляж-в файле LOADCS.lst. Этот резидент пришит к программе MODCS.COM, который грузит знакогенератор. Главный его недостаток - нельзя задать количество пересылаемых байт, оно фиксировано - 2048.
Из него я узнал последовательность действий по пересылке.
Сначала задаётся направление передачи, для этого надо вызвать функцию BIOS+54h с параметром в регистре ВС:
ВС=FF01 - из области программы(текущий банк) в видеоОЗУ (банк 0);
ВС=01FF - из видеоОЗУ (банк 0) в область программы (текущий банк).
После этого вызвать функцию BIOS+48h с параметрами:
BC=количество пересылаемых байт (должно быть не менее двух !!!)
DE=адрес источника
HL=адрес получателя.
!!! НО В САМОМ НАЧАЛЕ НЕОБХОДИМО УСТАНОВИТЬ УКАЗАТЕЛЬ СТЕКА SP НА АДРЕС, КОТОРЫЙ РАСПОЛОЖЕН В ОБЩЕЙ ОБЛАСТИ, ТО ЕСТЬ ВЫШЕ С000h, А В САМОМ КОНЦЕ ВЕРНУТЬ ЕГО НАЗАД !!! Если этого не сделать, то крах обеспечен - пробовал
То есть так:
Код:ld (0C100h), sp ld sp, 0C100h ld bc, 0FF01h call BIOS_54 ;(F203h+54h = F257h ) ld hl, dst ld de, src ld bc, size call BIOS_48; (F203h+48h = F24Bh ) ld a, 20h ; вроде работает и без этого, out (19h), a ; но так сделано в LOADCS ld sp, (0C100h)[свернуть]
Адрес знакогенератора 2000h.
Функции BIOS осуществляют пересылку посредством DMA.
Я делал просто LDIR'ом.
На всякий случай адрес страницы, где я писал о своих изысканиях https://phantom.sannata.org/viewtopic.php?p=780574#top, последние сообщения
Последний раз редактировалось Const14; 19.01.2026 в 22:51.
Jason(20.01.2026)
Это отход от принципа байтового устройства i/o. Адаптация к другому экрану становится сложнее. Правильнее - как загрузка шрифта в принтер, команда и сам шрифт выводятся через conout.
Кстати, у меня где-то есть rogue и sokoban для роботрона. Под эмулем - ОК. Запись состояния не работает, но это проблема эмуля. Есть текстовые адвентюры и ещё что-то. Найду, если интересно.
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)