Вход

Просмотр полной версии : РАДИО-86РК на Z80



Страницы : 1 [2]

b2m
31.01.2017, 12:52
Ошибка в том, что шаг управления памятью здесь равен 8000, а надо 4000.

А вот как надо, чтобы получить то, что требовалось:
Ты всё напутал :) Сначала ты просил окно 15Кб по адресам 8400-BFFF, потом просил коммутацию по пол-банки в адресах 0000-7FFF, то есть 32Кб. Я тебе привёл пример в сообщении #213 (http://zx-pk.ru/threads/20887-radio-86rk-na-z80.html?p=897823&viewfull=1#post897823) и выделил красным то, что необходимо для 32Кб окна. Там размер окна 8000 (hex). А для другого окна (которое 16Кб с перекрытым нулевым килобайтом) стоит размер 4000 (hex).

А в твоём примере выше - нет коммутации по 32Кб в адресах 0000-7FFF. Но если так надо - пожалуйста, я не настаиваю :)

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


Вот что стоит в конфиге предложенном B2M:
В каком сообщении я это предлагал?

alexm-1970
13.02.2017, 18:18
А софтовый эмулятор РК-86 на спектруме был?
А то было бы интересно поиграть в Crossfire на ZX

NEO SPECTRUMAN
14.02.2017, 00:57
Врятли он был
Да и написать его на спектруме...
ну не то что бы не возможно...
результат будет...


в самом простом случае это нужно переписать пзушку РК
это можно будет с натяжкой назвать эмулем
и работать это сможет только на +3 и других более продвинутых клонах
и запускаться на нем будет не много софта
но скорость зато будет может даже больше чем в оригинале

можно написать нормальный полноценный эмуль с интерпретатором
но это будет оочеень медленно...

эмуль с рекомпилятором быстр но сложен в отладке и написании

на резинке маловато своей памяти
на нем врятли удастся написать эмуль РКшки с 32К памяти
только 16К

ну и...
разрешение экрана спектрума как бы маловато для всего этого...
качество картинке будет...

да и полноценно эмулировать РК
шас даже на ПК не умеют
не то что на спектруме...
..много у него недокументированных возможностей...

barsik
14.02.2017, 04:36
А софтовый эмулятор РК86 на Спектруме был? Вряд-ли он был. Да и написать его на Спектруме... ну не то чтобы невозможно, но результат будет...

На Spectrum программного эмулятора РК86 не было. Потому что никому было не надо. Из 8-ми разрядок эмулятор РК есть только для ОРИОНА на Z80. На ОРИОНЕ нужна доработка, чтобы в области F800 программно можно было включить второе ПЗУ. Т.е в в области F800 должны быть 2 страницы ПЗУ по 2К. На этом и основан эмулятор РК86. Скорость эмулируемого процессора получается даже на ОРИОНЕ 5 МГЦ всего 150 КГЦ. Несмотря на это, игры работают с нормальной скоростью, а вот текстовые редакторы и ассемблеры дико тормозят. В описании из вложения это объяснено. Картинки эмулятора РК на ОРИОНЕ на Z80: http://barsik.ut88.ru/Screen_Shots.rar

Думаю, что можно на том же самом тормозном железе сделать эмуляцию КР580 на Z80 намного быстрее. Например, имея исходник РК-программы можно вставить упр.коды, например NOP-команду 'LD A,A', и RST. Тогда встретив код 'LD A,A', эмулятор прекращает эмуляцию и делает JMP на следующую команду, а по RST возвращается в эмулятор. Тем самым, участки, где точно нет записи в экран, мы прогоняем на максимальной скорости, раза в 3 быстрее чем реальный РК86. Например, если мы точно знаем, что вызывается подпрограмма, в которой нет, ни прямых записей в экран, ни чтений порта клавиатуры, то перед этой командой CALL вставляем код LD A,A, а после неё код RST. Тогда истратив всего 2 байта мы прогоняем подпрограмму на скорости Z80.

А для PC давно пора сделать конвертор программ РК86 в код для PC. Это конвертор просто берёт игру РК86 и подключает к ней код стартёра, делая COM-файл, программу для MSDOS. При запуске этого COM-файла в этом же каталоге ищется файл RK86.EMU и запускается для эмуляции игры РК86. Эту же идею надо реализовать и для других 8-ми разрядок. А то в традиционном эмуляторе эмулируют ДОС или загрузку с МГ, что излишне, если надо только запустить игру.


В самом простом случае, нужно переписать ПЗУ-шку РК

Только за счёт замены ПЗУ F800, чтобы вызовы CONOUT F809 выводили символы на экран ZX, будет прогон только корректных программ, что работают только подпрограммами ПЗУ. А это лишь редактор, ассемблер и отладчик и пара корректных игр. Чтобы была эмуляция прямой записи в экран РК 76D0...7FFF, надо эмулировать покомандно. Что позволяет не только верно эмулировать отличия команд Z80 от КР580, но и отлавливать команды с записью в экранное ОЗУ и команды работы с портом клавиатуры.


полноценно эмулировать РК сейчас даже на PC не умеют, не то что на Спектруме... При эмуляции РК нужно эмулировать команды задания режима ВГ75 и соответственно перестраивать режим визуализации. А так как ВГ75 можно запрограммивать десятком способов, то это не так просто. Но кажется, что на PC всё же добились эмуляции ВГ75 для всех игр, в том числе и графических. Но можно запрограммировать ВГ75 так, что эмулятор не сработает.


на "резинке" маловато своей памяти. На нём вряд-ли удастся написать эмуль РК-шки с 32К памяти только 16К

Сам код эмулятора занимает почти 15 кб, 32 кб - эмулируемое ОЗУ РК86, а ведь ещё нужен ZX-экран. Но проблема не в количестве, а ОЗУ должно быть на месте ПЗУ ZX. Есть ZX-клоны, где есть CP/M. Для чего ПЗУ отключается, а экран переносится выше C000. Вот на таком клоне эмулятор РК сделать несложно,. Если кто-то возьмётся это сделать, я предоставлю исходник блока эмуляции КР580 на Z80.


Ты всё напутал
Да, признаю. Легко напутать, когда не понимаешь сути.

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

b2m
14.02.2017, 10:38
EMRK86OR.rar
Ну и зачем нам документация без программы? Ну ладно у меня - эмулятор без документации, но пользоваться-то им можно. А тут что? Цену набиваешь?

NEO SPECTRUMAN
14.02.2017, 19:14
Только за счёт замены ПЗУ F800, чтобы вызовы CONOUT F809 выводили символы на экран ZX, будет прогон только корректных программ, что работают только подпрограммами ПЗУ. А это лишь редактор, ассемблер и отладчик и пара корректных игр. Чтобы была эмуляция прямой записи в экран РК 76D0...7FFF, надо эмулировать покомандно. Что позволяет не только верно эмулировать отличия команд Z80 от КР580, но и отлавливать команды с записью в экранное ОЗУ и команды работы с портом клавиатуры.
ну дык за это и написал.
хотя прямое обращение к видео памяти не так смертельно
у РК не используются прерывания
на них на спеке можно повесить интерпретатор видео рамы (как раз этим можно будет снизить скорость до нужного уровня)
но тк на РК ei и di используются крайне извращенным способом
этот способ сильно совместимость не повысит


Но проблема не в количестве, а ОЗУ должно быть на месте ПЗУ
интерпретатор так же может исполнять код с любым смещением (умя без проблем исполняется с 8000 то что формально лежит по 0000 :Р)
думаю на резинке возможна эмуляция РК86 с 16К рамы



Если кто-то возьмётся это сделать, я предоставлю исходник блока эмуляции КР580 на Z80.
на данный момент мне пока некогда заниматься этим (умя много своих проектов)
но этот код мне не помешает
авторство если что я укажу...



Но кажется, что на PC всё же добились эмуляции ВГ75 для всех игр, в том числе и графических.
но я не думаю что при этом времянки РК так же хорошо известны как задержки на фирменной резинке...


Например, имея исходник РК-программы можно вставить упр.коды, например NOP-команду 'LD A,A', и RST. Тогда встретив код 'LD A,A', эмулятор прекращает эмуляцию и делает CALL на следующую команду, а по RST возвращается в эмулятор
имея исходники программы
зачем вставлять какие то команды когда можно переписать ввод вывод
и сделать интерпретатор содержимого видеорамы...

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


При эмуляции РК нужно эмулировать
при эмуляции РК еще нужно эмулировать телевизор...
также как это нужно для эмуляции atari 2600, zx80/81...

зато клонов РК на ПЛИС наплодили...
интересно какой у них уровень совместимости...

barsik
14.02.2017, 20:10
Ну и зачем нам документация без программы? Ну ладно у меня - эмулятор без документации, но пользоваться-то им можно. А тут что? Цену набиваешь?

Выложил старый ДОК, чтобы не объяснять, что это возможно и уже давно сделано. Форум - для обмена идеями.

Зачем программа, если её никто не сможет использовать. Если бы Вы прочитали в ДОК-файле раздел требований к железу, то это стало бы ясно. К тому же и в посте это было cказано. Нужен ОРИОН с Z80 по варианту 1991 года с двумя ПЗУ F800, переключаемыми портом FC (хотя неважен, ни порт, ни бит, достаточно изменить макро .ROM0/.ROM1). И желательно ОРИОН турбированный до 7.5 МГЦ (плата С.Караваева).

Кроме того, зачем эмулятор в котором работает только часть игр (не работают игры, что перенастраивают ВГ75), если сейчас полно полноценных эмуляторов РК86. Чтобы использовать в этом эмуляторе такие игры, надо их дизассемблировать, узнать число строк и адрес экрана и затем включить в код управляющие команды. Эмулятор РК на ОРИОНЕ был актулен в середине 90-х, когда у большинства ещё не было IBM PC.

Если в Вашем эмуляторе можно сделать ОРИОН с ПЗУ 4 Кб, то должно заработать. Если будут проблемы, то я мог бы разобраться и убрать препятствия (в виде недокумментированных команд, команд INIR и т.п). Но нужен соответствующий конфиг-файл для ОРИОНА.

Привожу не только саму программу эмулятора РК86 на ОРИОНЕ, но и исходник блока эмуляции КР580 на Z80. Это позволит эмулировать на быстрой машине с Z80 и достаточным ОЗУ любой бытовой комп на КР580 с одной банкой ОЗУ. Код там очень простой, разработка была легкой. Т.к игры работают, то ошибок, наверно мало или вовсе нет. Чтобы сделать эмулятор РК на СИНКЛЕРЕ, надо добавить п/п-мму визуализации, переписать ПЗУ F800 (только вывод символа в экран D6.INC) и добавить командный монитор с RAM-командами и файловой системой (или, в крайнем случае, с загрузкой с МГ). Если бы я чего-нибудь понимал в синклерах, я бы мог это сделать за несколько дней.

Кстати, я тогда же написал эмулятор 6502 на Z80. Скорость эмуляции 6502 из-за 14-ти извращённых методов адресации и из-за меньшего числа тактов на команду, получилась намного меньше (чем для КР580) - ~50 КГЦ. Так, что задумка сделать эмулятор Apple-II на Z80H с тактом 12 МГЦ и текстовым адаптером - "не прокатила", т.к при этом достигалось бы только ~200 КГЦ 6502, вместо требуемых 1024 КГЦ.

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

Что в обычном разговоре вполне нормально, то в написанном виде воспринимается иначе. Обычно используют обращение 'Вы', так как при этом труднее скатиться к хамству и оскорблениям. Этим мы подчёркиваем уважение к собеседнику. Это понимали предки, поэтому в письмах в 19-м веке было принято писать обращение Вы с большой буквы. Поэтому, когда Вы употребляете обращение 'Ты', то и другие, менее вежливые и более вспыльчивые, тоже хотят писать 'Ты', из-за чего через несколько постов вспыхивает очередная склока.

В общем, b2m, скажу то же, что говорил Чичиков Ноздрунову: "Попрошу без амикошонства!".

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


на данный момент мне пока некогда заниматься этим (много своих проектов), но этот код мне не помешает, авторство, если что, я укажу...

Исходник во вложении. Авторство не важно. Любой программист это напишет без труда, тут думать особо не надо, просто возни много, хотя команд всего 244. Труднее когда пишешь эмулятор Z80 с ~1100 команд (отлавливал ошибки несколько лет, да и то, - не все недокумментированные команды сделал, только часто используемые).


Хотя прямое обращение к видео памяти не так смертельно, т.к у РК не используются прерывания. На них на Спеке можно повесить интерпретатор видео рамы (как раз этим можно будет снизить скорость до нужного уровня)

Для визулизации за счёт полной регенерации экрана 16 раз в секунду у 8-ми разрядки нет ресурса.

Даже на 386-той на 25 МГЦ не хватало такого ресурса. Поэтому все мои эмуляторы работают на другом принципе. На принципе контроля всех команд, которые могут писать в экран или читать с клавиатуры. Если происходит попадание в экран, то соответствующий байт кладётся не только в экранный буфер РК86, но и выводится символ в физический экран (ОРИОНА или VGA на PC). Это тормозит намного меньше. Хотя в случае ОРИОНА (где вывод графикой) текстовый адаптер ускорил бы эмуляцию.

А ресурса у Вас реально нет, т.к покомандная эмуляция тормозит в ~30 раз (или ~25, если игнорировать отличие работы флага Parity). Так что, если у Вас Z80 на 10 МГЦ, то эмулируемый такт составит ~350 КГЦ. Почти все игры будут работать с нормальной скоростью или быстрее, но системные программы будут тормозить (что неважно). Если будет визуализация за счёт периодической регенерации экрана, то надо просмотреть все команды пишущие в ОЗУ и убрать вызов п/п-мм визуализации записи байта или двух (п/п-ммы SCREEN и SCRN2, достаточно переопределить макро 'if_scrn' и 'if_noscrn', где проверяется, попадает ли запись в экран).

Lethargeek
14.02.2017, 20:38
barsik, так, для сведения - на форуме до наплыва новичков и неспектрумистов было принято общаться как раз на "ты", независимо от знакомства, возраста и заслуг. Спектрумисты даже обижались тогда на "выканье". И мне лично старые традиции по душе.

NEO SPECTRUMAN
14.02.2017, 21:20
Спектрумисты даже обижались тогда на "выканье".со своей стороны это подтверждаюа наплывшие новички это разве не забаненые по 7 раз старички?

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


Для визулизации, за счёт полной регенерации экрана 16 раз в секунду у 8-ми разрядки нет ресурса.
никто не заставляет выдавать 100% кадровесть теплый и ламповый фреймскипкоторый везде рекомендуется юзать если не хватает мощности

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

походу о нем речь и быларесурса хватитесть еще интерлейс +50% к скорости


которые могут писать в экран или читать с клавиатуры
а дополнительная проверка а пишет оно не в видео память ли сожрет как по мне...
а потом еще нужно на ходу это как то перекодировать

а что если программа захочет прочитать из видео памяти??

это уже нужно писать как по адресам видео памяти
так и рисовать это же на экране
вычислять координаты
куча времени...

у первого способа будет выиграшь
если на экране обновляется небольшое количество обьектов

а если их будет куча??
тогда уже будет быстрей тупо читать видео раму подряд и сразу же конвертировать и кидать на экран

кстате идея
сочетать эти 2 способа

счетчик на количество обращений к видеопамяти
пока за фрейм не превышено определенное число записей
идет вывод с немедленной отрисовкой на экран
если значение превышено
переходить на несколько фреймов (пока не снизиться нагрузка)в режим интерпретации всего экрана

возможно будет какой то прирост скорости...

barsik
14.02.2017, 23:23
А что, если программа захочет прочитать из видео памяти? Это уже нужно писать как по адресам видео памяти, так и рисовать это же на экране, вычислять координаты - куча времени...

Чтение программой из экранного буфера РК 76D0...7FFF никак не тормозит. Ничего писать и вычислять координаты не надо, т.к в экран РК байты кладёт сама КР580-программа.


У способа отлова команд пишущих в экран, будет выигрыш, если на экране обновляется небольшое количество объектов. А если их будет куча? Тогда уже будет быстрей тупо читать видео раму подряд, сразу же конвертировать и кидать на экран.

Да, у такой визуализации, скорость прогона зависит от того, сколько записей в экран происходит в единицу времени. Но даже на совсем тормозных машинах (где вообще не надо тормозить), колебания скорости не превышают критической величины и в большинстве игр почти незаметны. А если у машины, есть хотя-бы немного ресурса, то это выравнивается. Кроме того, все-равно придётся контроллировать попадание команд в порт клавиатуры, так что лишняя пара команд сравнения, "погоды не делает".

Так, на 386SX33 (всего 17 XT) скорость эмуляции всего 1.5 МГЦ и запаса скорости почти нет, а вот на 386DX40 (43 XT) и 486DX2-66 (220 XT) есть существенный запас скорости. Тогда после записи в экран КР580-программой, на 1000 следующих команд константа торможения временно делается нулевой, отчего их прогон идёт на максимальной скорости. В случае, если визуализация текстового компьютера в текстовом же режиме VGA, то торможение совсем маленькое. Увы, я сдуру использовал для эмуляции РК на PC графический драйвер в графическом режиме VGA (где вместо одной команды выполнялась тысяча), отчего и приходилось выравнивать скорость прогона. На 8-ми разрядке никакого ресурса нет, но текстовые программы пишут в экран немного, отчего колебания скорости почти незаметны.

Факты - упрямая вещь. Эмулятор на моём принципе работает в 100...200 раз быстрее, чем эмулятор с визуализацией за счёт периодической регенерации экрана с частотой 25...50 ГЦ. Правда тут не совсем такое сравнение, т.к все эмуляторы, доступные для сравнения имеют блок эмуляции CPU написанный на СИ, а я вынужден был писать на ассемблере для 386-той. Эмуляция на СИ медленнее, но не более, чем в 3-5 раз (всё-таки оптимизирующие компиляторы и для задания ячеек хранения регистров CPU используется спецификатор 'register', что существенно ускоряет), а также потому, что современные процессоры здорово понизили значение качественного кода.

Так, на 386-той неграмотный эмулятор и грамотный эмулятор отличаются по скорости вдвое. А на современном CPU они оказываются одинаковыми по быстродействию, что обидно. Есть ли эмулятор ОРИОНА с визуализацией "фрэймами", который мог бы работать на 286-той? Естественно нет, т.к это невозможно. Для некоторых эмуляторов и одноядерного ПЕНТИУМ-II не хватает.

HardWareMan
15.02.2017, 09:13
У меня был 286@16Мгц. Писал эмуль Спеца на асме. Экран обновлял только по факту записи в него (все равно при сбросе происходит очистка и, значит, актуализация), но только то, что в него записалось, а не весь. Без цвета. Работало, хоть и медленно. На 486DX66 уже бегало, даже тормозить приходилось, чтобы вывод на LPT магнитофона не рвало.

barsik
15.02.2017, 10:53
Экран обновлялся только по факту записи в него... На 486DX66 уже бегало, даже тормозить приходилось, чтобы вывод на LPT магнитофона не рвало.

Т.е та же самая идея отлова команд пишущих в экран и читающих/пишущих в порты. На 486DX2-66 у меня тест скорости показывал ~10 МГЦ, так что без торможения всё летало. 286-16 МГЦ это ~10 XT, что должно давать эмулируемый такт КР580 в ~1 МГЦ. Эмулятор CP/M Z80MU на 286-10 МГЦ давал 1 МГЦ (но ему не надо эмулировать экран и клавиатуру, так что сравнение нечестное).

Чем вывод на МГ через порт принтера? Программой КР580 или программой 486DX2-66? Что рвёт передачу, ведь при выводе на МГ нет обращений в экран?

Проблемы при выводе в линию у меня возникали из-за прерываний IBM PC (от системного таймера и для регенерации памяти), отчего скорость передачи приходилось делать очень низкой (чтобы программные паузы были долгими, благодаря чему они не сильно искажаются прерываниями). Интересно, что в MSDOS прерывания вредят меньше, а в Windows прерывания намного сильнее искажают программные паузы. А Windows, начиная с ME, вообще не позволяет писать в порты.

uart
15.02.2017, 12:32
Для некоторых эмуляторов и одноядерного ПЕНТИУМ-II не хватает.
Да сейчас то это пофигу. Важнее максимально возможная точность эмуляции и сервисные возможности.

Pyk
11.04.2017, 16:12
Нашел ошибку в версии RK-DOS для Z80, из-за которой не работала команда DIR. Ошибка в этом фрагменте кода:

LD HL,POS ; выводим ВК, если был 3-тий столбец
INC (HL)
LD A,(HL)

...

AE1E9: PUSH BC ; Сдвинуть стек


defb 3EH ; LD A,(POS)
POS: DS 1
OR A ; ВК, если следующий не первый столбец
То есть имеет место попытка модификации кода, находящегося в ПЗУ. А поскольку в РК в этой области на запись располагается ВТ57, то нарушается работа ПДП и отображения экрана.

barsik
25.04.2017, 23:12
Понятно. Спасибо. Ошибка возникла из-за того, что я использовал RK-DOS не на РК86, где код в ПЗУ, а на ОРИОНЕ, где код в ОЗУ и никаких ПДП нет. А экономить объём кода приходилось, чтобы выиграть TPA, т.к оконный драйвер занимает до 12 кб, RK-DOS 5 кб и экран ОРИОНА - 12 кб, что оставляет совсем мало места для программ, так что я экономил везде где мог. Естественно, для 80x86 самомодифицирующийся код считается неприличным, но на КР580/Z80 это повсеместно используется и считается нормальным, хотя и существенно затрудняет получение полноценного исходника примитивным дизассемблером (на IDA с этим проще, хотя время на получение полноценного исходника отнимает больше).

В моих неполноценных эмуляторах РК86 этот дефект было никак не обнаружить, т.к в одном моём эмуляторе вообще ничего невозможно выше 8000 (там код самого эмулятора), а в другом по адресу E000 - ОЗУ, а БИС ПДП вообще нигде и никак не эмулируется. Ведь ПДП для программ незаметен, отчего эмулировать его и не требуется - предполагается, что режим 78*30 "устанавливается сам по себе" (это изменить можно только вручную настроив параметры эмулятора). Для игр неиспользующих псевдографику этого хватало.

Если кому-то интересно, то я перетранслирую выложенную ранее версию для ОЗУ, так чтобы она работала и в ПЗУ (достаточно перенести все рабочие ячейки ниже 76D0, отчего код слегка разбухнет). Думаю, что никому RKDOS для Z80 "не горит", т.е не к спеху. Сейчас я занят, потому смогу сделать исправление через сколько-то дней.

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

https://yadi.sk/d/v_otxL6V3HMFgz - это исправленное вложение (RKDOS Z80, ужатая в 4 кб) из поста http://zx-pk.ru/threads/20887-radio-86rk-na-z80.html?p=898490&viewfull=1#post898490

как реакция на ошибку в коде RKDOS, которую нашел Pyk и описал в предыдущем посте. Здесь я изменил только адреса рабочих ячеек, что ранее были прямо в теле DOS (отчего этот код не мог работать в ПЗУ, только в ОЗУ).

Теперь эти ячейки перенесены в ОЗУ. Использованы ячейки:

POS - 762E, это ячейка флаг инверсии с МГ, явно не используется во время работы в RK-DOS, и
PSKFLG - 760C, это ячейка, которая вообще не используется в ПЗУ РК86 (забытая ячейка).

Vladimir_S
01.05.2017, 19:18
Всем привет и с праздником!
Ко мне обратился Павел Рябцов - просит предоставить схему РКшки на Z80 с тем, что бы изготовить плату. У меня последний вариант с двумя заменяемыми процессорами и выбором РК86/Апогей. Процессоры сдвинуты относительно друг друга так, что одновременно может быть воткнут только один процессор. И очень неудобно, что для смены процессора нужно вытащить один, вставить другой и установить перемычку.Но сейчас я начал паять схему с постоянно установленными процессорами Z80 и ВМ85. Роль перемычек играет PIC контроллер. Нажатием кнопки выбирается конфигурация РК86/Апогей и Z80/ВМ85 после нажатия кнопки СБРОС выбранная конфигурация становится активной.Если СБРОС не нажимать, то через 40 секунд будет отображаться последняя активная конфигурация. Если дело дойдет до изготовления платы, то каждый заказавший плату получит и прошитый PIC. Вопрос в том, актуально ли это? Если да, то нужно будет открыть тему где и будет обсуждаться множество вопросов. Например какое ОЗУ поставить или делать как предлагал barsik ОЗУ в 8400 - BFFF. В общем вопросов куча.

barsik
03.05.2017, 18:38
Вопрос в том, актуально ли это?

Для тех, кто сам программирует, замена КР580 на Z80 актуальна всегда. А просто пользователям это без разницы. Обсуждения новодела РК86 в теме "Модульный РК86" и ранее в других подобных темах зашли в тупик.

Но мне всё-же кажется, что выпуск базового РК86 только с другим процессором, не привлечёт людей. Хотя бы потому, что эта задача гораздо выгоднее решается выпуском маленькой платки с Z80 и несколькими ИМС обрамления, что втыкается прямо в панельку вместо КР580, сохраняя при этом возможность реверса (т.е возврата к КР580). Выгодность не по труду и деталям, а из-за того, что при этом "не откидываются" пользователи, кто не купит плату Павла Рябцова и не сделает себе крутой РК-новодел на Z80.

Кстати, более интересно сделать не просто маленькую платку для замены на Z80, а разработать настоящий акселератор, как предложено здесь http://zx-pk.ru/threads/27125-modulnyj-radio-86rk.html?p=902702&viewfull=1#post902702.

Совместимость с Апогеем повышает ценность платы. Но если для этого в РК ставятся ПЛИС, то это многих отпугнёт. Во первых тех, кто ПЛИС не любит, а во-вторых, это будет уже не рэтро-компьютер. Если есть ПЛИС, то возникает законный вопрос, - кто мешал и весь компьютер сделать на ПЛИС?

Думаю, что делать очередной римейк РК лишь с базовой архитектурой уже никому не интересно. Если уж делается новый компьютер, то разумно добавить в него немного корпусов и получить нечто большее. По-крайней мере 60К доступного ОЗУ в альтернативном режиме. Как указано здесь http://zx-pk.ru/threads/27125-modulnyj-radio-86rk.html?p=904653&viewfull=1#post904653 это решаемо даже при общем объёме ОЗУ всего в 64К и без изменения адресации В/У.


или делать как предлагал barsik ОЗУ в 8400...BFFF

Я не предлагаю вариант с "открытием ОЗУ 8400" для новоделов. Так лишь было сделано у меня на реале, т.к это простейший лобовой вариант расширения ОЗУ, чтобы иметь место куда загружать ДОС и увеличить TPA для редактора и ассемблера. Но, как показано в теме "Модульный РК86", это далеко не лучшее, и даже не самое простое по расходам деталей, решение по улучшению архитектуры. Но главное, это неудобно при расширении ОЗУ более чем на 15К (для доступа к ОЗУ сквозь окно, лучше окно 8К, т.е A000...BFFF).

Кстати, самое простое решение по расширению ОЗУ это полу банковая коммутация (неважно статика или РУ5), т.к это требует расхода деталей в кусок проволоки и выделения 1 бита в каком-то порту. На мой взгляд самое разумное расширение архитектуры, это именно то, что я предложил http://zx-pk.ru/threads/27125-modulnyj-radio-86rk.html?p=904653&viewfull=1#post904653.

На платке клона РК надо ввести цвет и обязательно 27256 для фонта. А также хотя-бы две РФ2 для ПЗУ F800 (вторая РФ2 вторым этажом). Если вместо ВИ53 на платах вдруг обнаружатся AY-8912 (8910), то недовольных такой заменой не будет. Но самое главное, чтобы конструкция осталось простой, а платка маленькой. Пусть дополнительных деталей будет не больше, чем 10 штук, т.е общее число 29+10.

Если предусмотреть один 50-ти контактный эпловский слот, то такой РК-совместимый, но одновременно полноценный Z80 CP/M-компьютер, заинтересует любителей CP/M. В слот будет втыкаться мультикарта (где будет IDE, ВВ51 и RAM- и ROM-диски). Если есть слот, то основного ОЗУ можно иметь всего 64К, если же слота нет, то лучше сразу предусмотреть расширение до 128К напайкой ОЗУ вторым этажом. И лучше, чтобы можно было ставить как w24512, так и w24257 (они более распространены, например, у меня 1 мб на w24257, но нет ни одной w24512), а может быть даже 62256 (хотя они и большие по плошади). Тогда какое ОЗУ имеешь, такое и впаивай.

Vladimir_S
30.05.2017, 16:21
Отложил в сторону то, что пока спаял. Завтра выхожу с отпуска и начну паять упрощенный РК. Без цвета, без внешнего порта и только на Z80. Цель эксперимента - подружить Z80 (со стандартной конфигурацией РК86) с РК ДОС Седова.

Shumadan
01.06.2017, 19:28
Ко мне обратился Павел Рябцов - просит предоставить схему РКшки на Z80
Рябцов?! Тот самый?)

Vladimir_S
01.06.2017, 19:50
Рябцов?! Тот самый?)
В каком смысле - Тот самый?

barsik
01.06.2017, 21:29
Завтра... начну паять упрощенный РК. Без цвета, без порта D14 и только на Z80. Цель - подружить Z80 (со стандартной архитектурой РК86) с RK-DOS Е.Седова

Отличная идея. Для безпроблемности с RK-DOS при Z80, да и для личного комфорта пользователя при пользовании ДОС, надо предусмотреть возможность иметь в системе (для нужд RK-DOS и не только) ПЗУ большее, чем 4 кб. Т.к никто не хочет понять, что в РК86 полезно расширение ПЗУ, попробую понятно объяснить почему это необходимо.

Так как 4 кб, это слишком мало для ДОС, на чём Е.Седов и "погорел". Он вынужден был извращаться по страшной силе, чтобы уместить в 4 кб хотя бы ядро системы и минимальное CCP с командами загрузки и запуска. А все остальные, очень необходимые при работе пользователя команды, ему пришлось делать внешними SYS-файлами, что неудобно и заставляет загромождать все диски SYS-файлами (тогда как юзеров, чтобы их там спрятать тоже нет). Из-за этих же ужасных ограничений объёма ПЗУ даже обработку BAT-файлов пришлось вынести в отдельный внешний файл COMMAND.COM. Хотя, очевидно изначально COMMAND.COM должен был играть роль обычного CCP оформленного в виде внешнего файла, как и сделано в развитых ДОС (CP/M, MSX, MSDOS). Поэтому из-за предельной "уплющенности" кода и немыслимо расширять или даже как-то минимально изменять RK-DOS V2.95, в частности для Z80.

А при Z80 приходится избавляться от извращений, возможных только при КР580 (а также эмуляции READY из сигнала INDEX, т.к дисководы 3.5" и HD-5.25" не имеют сигнала READY), отчего объём кода разбухает на килобайт и уже не влезает в 4 кб. А из функционала из кода RK-DOS можно выкинуть только вывод на принтер (~15 байтов) и команду TYPE (~20 байтов). Даже, если изуродовать ДОС и выкинуть обработку BAT-файлов и стартового AUTOEXEC это позволяет выиграть всего лишь ~50 байтов.

Поэтому при Z80 бессмысленно связываться с RK-DOS не предусмотрев расширение ПЗУ, хотя-бы на 2 кб. Это можно сделать кучей способов.

Во-первых можно, оставив ПЗУ 4 кб на плате РК-КНГМД, где-то, как-то установить на основной плате РК86 еще 2 кб. Например, напаяв на ПЗУ РФ2 с ROM-BIOS-ом вторую РФ2, включаемую каким-либо битом порта С D14 (порт C в ППА позволяет побитовое управление, поэтому наиболее подходит для управления конфигурацией). Так что D14 вообще-то убирать нежелательно, т.к это не даст выигрыша. Если понаставить кучу регистров для управления режимами, то это потребует, во-первых, организации дополнительных чип-селектов на запись, а во-вторых, куча сильно-токовых входов регистров 155-той серии сильно перегрузит шину (что уже не потянут CPU, ОЗУ и ППА). А D14 даёт 24 управляющих железом сигнала. Например, один из её разрядов при Z80 можно отдать на звук, (т.к делать громоздкую ловушку на команды DI/EI не смешно).

Впрочем, если наплевать на пользователей с клавиатурой MS-7007, то можно звук выводить на свободных разрядах порта C клавиатуры. Хотя ещё лучше звук выводить через D-триггер, т.к это сокращает код и избавляет от необходимости добиваться правильного меандра (скважности 2), что нужен для получения синусоиды путём установки на выходе звука НЧ фильтра (цепочка RC или LC).

В таком варианте расширения ПЗУ (когда 2 страницы ПЗУ в окне F800...FFFF) во вторую страницу разумно, как и принято во всех ROM-BIOS прошить три подпрограммы - чтение/запись сектора и формат трека. А в RK-DOS в соответствующих местах оставить только CALL на ROM-BIOS. Тогда код дискетных подпрограмм можно произвольно менять, настраивая на конкретное железо (флоп, винт, micro-SD или эл.диск из излишнего ОЗУ), не изменяя сам код RK-DOS, находящийся в ПЗУ на плате РК-КНГМД. Это грамотный вариант.

Во-втором варианте расширения ПЗУ под нужды RK-DOS, можно пользуясь очень расточительным расходованием области памяти 8000...FFFF на порты (по 8К на порт), организовать "дыры" в этом адресном пространстве размером в 2...6 кб и "воткнуть" там дополнительное ПЗУ, которое можно использовать, как для расширения ROM-BIOS (для вставки туда дискетных подпрограмм), так и для размещения там части кода RK-DOS, что не влезает в 4 кб ПЗУ на плате РК-КНГМД. Такой вариант технически "некрасив", но сработает. В таком варианте сделать RK-DOS одним массивом (D800...EFFF) не получится, т.к у МИКРОШИ на D800 стоит ВИ53.

В-третьем варианте расширения ПЗУ под нужды RK-DOS вводится страничность в той же области E000...EFFF, что уже истрачена на RK-DOS. Тогда каким-либо образом в этом окне прокачиваются две (или более) страниц ПЗУ размером в 4 кб каждая. Конструктивно и аппаратно это делается так. Из платки РК-КНГМД от МИКРОШИ удаляются две ПЗУ РФ2 напаянные в 2 этажа. А на основной плате РК86, около разъёма ГРПМ-61, там где есть некое подобие слепыша из 3-х рядов дырок, монтируют панельку на 28 ног, куда втыкают ПЗУ 27256. Эта ПЗУ выбирается чип-селектом E000, а на адреса A12, A13, A14 заводятся выходы доп.ППА D14 (например разряды PA0, PA1, PA2), что и обеспечивает работу многостраничного ПЗУ в стандартном окне RK-DOS и проще всего по объёму трудозатрат. Этот вариант наиболее предпочтителен, т.к даёт больше всего возможностей по хранению резидентного ПО и одновременно не меняет базовой архитектуры. Если расширить ПЗУ до 8К на плате РК-КНГМД, то ПЗУ теряется при удалении РК-КНГМД, а ПЗУ на основной плате остаётся даже если нет РК-КНГМД.

Поясню почему надо расширять RK-DOS.

Во-первых, RK-DOS сделана для работы с одним жёстко фиксированным дискетным форматом, а именно 5 секторов на трек при 160-ти треках. Тогда как есть дисководы на 35 треков, есть на 40 треков, а на винчестере и micro-SD для увеличения диска удобно организовывать 255 треков (максимально возможный размер диска RK-DOS достигается при 8 секторах и 255 треках, всего 1020 кб). Кроме того, даже обычный отечественный НГМД типа 5311 лучше работает в формате 7 секторов на трек при 166 треках, что даёт 581 кб на диск вместо 400 кб. Так как в начале первого сектора каталога специально зарезервировано 7 байтов, то сюда можно записывать БПД диска, сохранив совместимость по дискетам (если эти 7 байт нули, как на старых дискетах, значит это базовый формат 400К).

Во всех грамотных ДОС используется автоматическая настройка на формат диска. Для этого БПД считывается в процедуре настройки на формат (что входит в функцию SEL DSK). Считав БПД, ДОС автоматически, незаметно для пользователя, перенастраивается на работу с конкретным форматом дискеты. Таким образом можно, не меняя код самой ДОС, работать с дисками любого формата. Также это необходимо, когда в системе несколько приводов разного типа, флоп и эл.диск или винт и флоп. Для работы с каждым из них ДОС должна перенастраиваться. Чтобы ввести всеядность по форматам приводов, требуются дополнительное место в ПЗУ размером в 300-500 байт.

Большое нудобство в RK-DOS это отсутствие подкаталогов или хотя-бы юзеров. С подкаталогами туго, а вот юзеры ввести несложно, но для этого надо иметь в ПЗУ лишние 500 байт.

Ещё одним недостатком RK-DOS является извращённый программный интерфейс, где не только надо извращаться со стеком, но и работать напрямую с ячейками ОЗУ. Можно, при сохранении совместимости, ввести в RK-DOS нормальный программный интерфейс, например, набор функций как в CP/M, что не только позволит легкую переделку CP/M-программ, но главное облегчит работу программиста и существенно расширит ДОС. Сейчас фактически проще работать с диском подпрограммами низкого уровня (чтение/запись сектора), чем пользоваться функциями RK-DOS. Для такой доработки надо ещё 2-3 кб, отчего общий объём достигнет 10-11 кб. Такую доработку я не планирую, но это вполне возможно сделать.

Далее, чтобы избавиться от дурацких SYS-файлов, надо все внешние команды встроить в код ДОС. Тогда не надо будет на всех дисках хранить SYS-файлы, а все функции сохранятся. Я уже встроил несколько SYS-команд в код RK-DOS (в варианте для эл.диска, что умещается в 4К). Я встраивал код для работы в ПЗУ, т.е не сам извращённый код SYS-файлов. Но для простоты достаточно и тупого встраивания в ПЗУ кода самих SYS-файлов без модификаций. Тогда по вызову команды, код SYS-файла кидается в ОЗУ и стартует, что равнозначно старту SYS-файла с дискеты. Такая доработка RK-DOS занимает 20 минут и доступна любому пионеру лишь вчера узнавшему мнемонки КР580.

Сложность переноса SYS-файлов в ПЗУ в том, что там используется извращённый метод программирования, позволяющий даже при КР580 иметь перемещаемый код (переходы через стек). Но чтобы разобраться в такой программе и получить нормальный код, работоспособный в ПЗУ, надо долго и упорно считать числа байтов команд и вычислять адреса переходов. Поэтому проще написать свой эквивалент, чем разбираться в извращённом программировании. Поэтому DEL и REN я переписал, а остальные SYS-команды включил в код ДОС в оригинальном виде. От того объём кода разбух до полных 8-ми килобайт.

Vladimir_S
01.06.2017, 21:42
Т.к никто не хочет понять, что в РК86 полезно расширение ПЗУ
Странное утверждение, если учесть, что сам вчера критиковал конфигурацию в РЕ3, которая существенно расширяет область ПЗУ.

uart
01.06.2017, 22:10
Подобные "проблемы" ДОС решаются увеличением не ПЗУ, а ОЗУ. В той же Микроше для этого уже все готово. Даже отдельный модуль ОЗУ был. Объединить два модуля в один и всех делов то. С РК сложнее, хотя есть вариант на 60Кб, но у людей другие цели.

barsik
01.06.2017, 22:22
критиковал констукцию с использованием РЕ3, которая существенно расширяет область ПЗУ

Речь же о базовом РК86, а не об единичных образцах с использованием РЕ3 и размещением кусочков доп.ОЗУ и доп.ПЗУ в неиспользованных "дырках" памяти базовой архитектуры. Т.е именно о таком расширении ПЗУ, что каждый владелец РК86 может сделать просто и быстро с минимальными трудозатратами и расходом деталей всего-лишь в одно ПЗУ 27256 и панельку для него. А возня с прошивкой РЕ3 не является приемлемой минимальной доработкой. Конечно RK-DOS несложно перетранслировать для любого варианта, лишь бы само ПЗУ было физически.

Мыслим даже такой хитроумный вариант. Оставляем для RK-DOS только его базовые 4 кб на плате РК-КНГМД. А из доп.ПЗУ в окне A000...AFFF на основной плате организуем привод, например размером в 32 кб. На этом ROM-приводе RK-DOS размещаем все известные SYS-файлы, а также часто используемые программы (Нортон, диск-доктор, редактор, ассемблер, загрузчик с проводной линии из IBM PC). А CCP дорабатываем так, как будто в системе задана PATH, т.е если при получении команды на текущем диске нет файла с таким именем, то ищется файл на резидентном ROM-приводе RK-DOS.

Такой вариант кажется очень выгодным, если нет внешнего массового привода, а есть только небольшой эл.диск из излишнего ОЗУ, который гибнет при выключении питания. Очень заманчивая и очень простая в реализации концепция. А если довести эту идею до предела и сделать резидентный ROM-привод RK-DOS размером в 512К или даже 1020 кб, то туда можно прошить все программы РК86, которые представляют хоть какой-то интерес. Вариант с гигантским ROM-приводом удобнее, т.к тогда каждый пользователь может сам выбирать состав файлов. Только не надо это сравнивать с стандартным ROM-диском РК86, это совсем другое. Тем более, что в отличие от ОРИОНА, у РК86 нет даже ДОС для поддержки файлов в таком внешнем ROM-диске, читаемом через ППА и нет единого стандарта прошивки файлов в ROM-диск, если не считать статью об этом в РАДИО за 1990.


Подобные "проблемы" ДОС решаются увеличением не ПЗУ, а ОЗУ

Ну и как же расширение ОЗУ поможет улучшить РК-DOS ? В четырех килобайтах ПЗУ на плате РК-КНГМД от этого не прибавится места, необходимого при переделке RK-DOS на Z80.

Если имеется ввиду использование RK-DOS загружаемой в добавленное доп.ОЗУ (где-то в области выше 8000), то несмешно всякий раз при включении ЭВМ по полчаса грузить ДОС с магнитофона (даже если он цифровой). А если разместить ДОС работающую из ОЗУ в каком-либо ПЗУ (например в ROM-диске), то чем это лучше, только трудов больше (введение доп.ОЗУ и доп.ПЗУ) и болтающийся на косе внешний ROM-диск постоянно будет падать и коротить всё на основной плате.

uart
01.06.2017, 22:56
несмешно всякий раз при включении ЭВМ по полчаса грузить ДОС с магнитофона (даже если он цифровой). А если разместить ДОС работающую из ОЗУ в каком-либо ПЗУ (например в ROM-диске), то чем это лучше, только трудов больше (введение доп.ОЗУ и доп.ПЗУ) и болтающийся на косе внешний ROM-диск постоянно будет падать и коротить всё на основной плате.
Вообще я имел в виду, что ДОС должна загружаться диска загрузка, как и CP/M.

barsik
01.06.2017, 23:24
Вообще я имел в виду, что ДОС должна загружаться с дискеты холодным загрузчиком, как CP/M и MSDOS

Понятно, но речь-то не о CP/M, а о RK-DOS. Во-первых, в RK-DOS не предосмотрено системных треков. Во-вторых, RK-DOS жёстко привязана как к адресам самого кода в ПЗУ (вход в BDOS E001), так и к управляющим ячейкам в области 7600. Поэтому для неё расширение ОЗУ ничего не даёт, а разместив код РК-ДОС в ОЗУ в адресах E000...EFFF, Вы всё-равно имеете те же самые лишь 4 килобайта, т.к за F000 расшириться нельзя, т.к на F000 стоит РК-КНГМД. Потому для RK-DOS разумной альтернативы двухстраничному ПЗУ 8К в области E000...EFFF просто нет. Ведь введение двух страниц ОЗУ в области E000...EFFF это куча лишних корпусов и море проблем. Кроме того, не надо забывать, что не у всех владельцев РК86 ОЗУ выполнено на РУ5, а есть владельцы собравшие РК86 из наборов Электроника-01-04, где ОЗУ выполнено на 565РУ6 и его не расширить кусочком проволоки.

Кроме того, мне интересен как раз вариант, где нет дисковода, а есть эл.диск из ОЗУ и программа трансфера из IBM PC для его загрузки. А вариант с загрузкой кода ДОС с дискеты я применял в 1994, но для CP/M, т.к она слишком здоровая, чтобы её хранить в ПЗУ. Я сначала имел CP/M 28К, затем переделал в CP/M 56К. Первый вариант бессмысленен в силу мизерности размера TPA, даже из игр РК можно хранить на дисках CP/M только самые маленькие, а все программы CP/M вообще не работают. А при втором варианте мы зараз теряем вообще всё программное обеспечение РК86. Так что в итоге, с удручённым видом пришлось вернуться к базовой архитектуре и RK-DOS.

Totem
01.06.2017, 23:36
barsik, если человек знал, как работает 86РК, то к концу твоего поста , я уверен, уже забыл или так "если мы не знали откуда пришли, то теперь не знаем,куда мы идем" (c) :v2_dizzy_fisher::v2_dizzy_step:

barsik
01.06.2017, 23:58
теперь не знаем, куда мы идем

Извиняюсь, и прошу без обид, но Ваш пост совершенно лишён смысла. Информации ноль. Написали бы просто "Я ничего не понял, т.к и не старался понять, потому что сама тема меня не интересует".

Я всегда ясно и чётко излагаю свои мысли и это понятно любому, кто в теме и кого это интересует. А тем, кого это не интересует, не надо читать, чтобы после жаловаться "Слишком много букаф". А о том, как работает РК86 никто точно не знает, да и зачем? И лучше идти хоть куда-то, чем никуда.

Я понимаю, что фанаты ZX-Spectrum просто завидуют фанатам РК86. Ведь в то время как для ZX-Spectrum никакие простейшие доработки малокомпетентными аппаратчиками невозможны и не нужны, предельное несовершенство РК86 даёт простор для творчества, как для любого даже малоопытного аппаратчика, так и для программиста-любителя. Недостатки РК86 это его достоинства.

Totem
02.06.2017, 00:24
Извиняюсь, и прошу без обид, но Ваш пост совершенно лишён смысла. Информации ноль. Написали бы просто "Я ничего не понял, т.к и не старался понять, потому что сама тема меня не интересует".

Я всегда ясно и чётко излагаю свои мысли и это понятно любому, кто в теме и кого это интересует. А тем, кого это не интересует, не надо читать, чтобы после жаловаться "Слишком много букаф". А о том, как работает РК86 никто точно не знает, да и зачем? И лучше идти хоть куда-то, чем никуда.

Пытаюсь добиться, хоть одной осмысленной схемы, которую можно воплотить в железо, а не тысячу вариантов. Удачи.

uart
02.06.2017, 00:43
RK-DOS жёстко привязана как к адресам самого кода в ПЗУ (вход в BDOS E001), так и к управляющим ячейкам в области 7600
Жестко это как? Под нее сотни дискет софта? Или все же можно за пару дней, даже без использования дизассемблера, поменять адреса во всех существующих утилитах?


мы зараз теряем вообще всё программное обеспечение РК86
По такой логике надо было на машинках с 16К оставаться, для совместимости. Проблема надумана.

barsik
02.06.2017, 00:53
Пытаюсь добиться, хоть одной осмысленной схемы

Несмешно. Как нарисовать схему ПЗУ 27256? Проще описать словами, что и сделано. Есть чип селект E000, его и используем для выборки ПЗУ, а для переключения страниц на A12, A13, A14 подаём выходы PA0, PA1 и PA2 ППА D14. Что здесь неясного? Зачем тут схема? Если человек не знает как включается ПЗУ, зачем он здесь вообще?

Я рисую схемы когда это надо (например для РК86 рисовал схему окна ОЗУ 8400...BFFF, схему фонта 8*8), а сейчас для РК86 доработки предлагаю настолько простые, что схему быстрее объяснить словами, чем нарисовать. Ну что мне рисовать схему из одного провода, как на РУ5-тых в РК86 расширить ОЗУ до 64 кб? Схема расширения числа фонтов, это тоже один провод. Схема Турбо смотрите в ж.РАДИО 01.1991, хотя это тоже один провод. Повышение такта для ВТ57 (чтобы сократить простой CPU) это тоже переключение одного провода. Как включить ВИ53 читайте в журнале РАДИО 12.1987. Идея схемы переделки РК86 в МИКРОШУ мне только что пришла в голову и она тоже предельно проста и очевидна (заключается чуть в ином распредении проводов на выходе дешифратора ИД7).

Так что этот пост тоже абсолютно мимо.


Что под RK-DOS сотни дискет софта? Или все же можно за пару дней, даже без использования дизассемблера, поменять адреса во всех существующих утилитах?

Уточняю. Не только для RK-DOS, но и вообще ВСЕ программы РК86 влезают на 4 дискеты RK-DOS (с учётом тех программ, что у меня не было, дискет будет 5). Для МИКРОШИ это будет 10 дискет, хотя коммерческие TAPE-защиты не поместить на диск.

Саму RK-DOS и SYS-утилиты я перемещал на другие адреса (для ОРИОНА и СПЕЦИАЛИСТА) и исходники выложил, как появился на этом сайте. Кстати, переместить RK-DOS и даже получить полноценные листинги программ Е.Седова не так уж и просто. С утилитами нет проблем, а вот с дискетными программами Е.Седова надо много возиться (потому что они привязаны к особенностям РК86 и нагло лезут в экран). Поэтому расширив ОЗУ и переместив экран и ДОС под вершину 48К или 60К, Вы ничего не выиграете в плане использования программ для RK-DOS.

Сдвижка адресации RK-DOS создаст только лишние хлопоты и необходимость для запуска каждой программы реинициализировать ВГ75 так, как это в базовом РК86 (ведь заранее неизвестно, - это программа для ОЗУ 48К или обычная игра РК86 для ОЗУ 32К и экрана на 76D0).

Да и похоже, что переделанные программы никого не интересуют (ясно что сейчас без особого труда можно сделать лучше, чем когда-то), а интересуют только полные оригиналы из 80-тых. Но главное то, что ничего не меняя в адресах, мы не откидываем владельцев РК86 и МИКРОШ у которых всего 32 кб. Не плодим кучу несовместимых концепций и соответственно программ. Не надо путаться и отслеживать для какой ДОС данная программа. Это самый весомый довод. Да и поздно менять что-то кардинально, а затем "пробивать" это всеми силами. Если у кого-то есть на это энтузиазм и энергия, то - вперёд.

Для меня это не важно, т.к имею свой RK-DOS Нортон для ОРИОНА и РК86 (есть и своя утилита CHKDSK, т.к RK-DOS диск-доктор привязан к РК86) и дискетные программы от Е.Седова меня не волнуют. Дисковые текстовый редактор, бейсик и ассемблер меня тоже не волнуют. Бейсик не интересует, а свой дисковый текстовый редактор и ассемблер (к тому же макро) у меня тоже есть. Т.е я давно ушёл от стандартов РК86. Но нужно чтобы в РК86 был мой альтернативный фонт с рамочками и инверсией знакомест. Т.е нужны именно те простейшие доработки, что я тщетно давно прошу сделать. Но большинство пользователей РК86, за небольшим исключением считают, что вообще не надо менять схемотехнику, оттого и выпускаются только новоделы плат по схеме базового РК86. Отчего, даже чтобы уговорить хотя бы на расширение ОЗУ и ПЗУ в базовой архитектуре, надо вести длительные дебаты с ретроградами.


Проблема надумана

Надеюсь, что вышеизложенным я объяснил, что проблема не надумана, а обнаружена в реальности при попытке использозовать Вашу идею с перемещением RK-DOS на другие адреса. Конечно и это решаемо, но кому это надо? Минусы перевешивают плюсы.

uart
02.06.2017, 08:31
Поэтому расширив ОЗУ и переместив экран и ДОС под вершину 48К или 60К, Вы ничего не выиграете в плане использования программ для RK-DOS.
А я не говорил про сдвиг экрана на Микроше. Достаточно немного изменить ПЗУ и базовые утилиты RK-DOS. В дополнительное ОЗУ перенести служебные переменные и буфера. Ну и загружаемый с дискеты CCP.
При распределении адресного пространства как на Апогее, в ПЗУ вместо кучи разной байды поместить загрузчик РК-ДОС, которую можно сделать любого интересующего размера. Опять же остается совместимость с кучей уже переделанных программ.


Да и похоже, что переделанные программы никого не интересуют
Это понятно. Тут в основном радиолюбители, у них совсем другие интересы.


Надеюсь, что вышеизложенным я объяснил, что проблема не надумана, а обнаружена в реальности при попытке использозовать Вашу идею с перемещением RK-DOS на другие адреса. Конечно и это решаемо, но кому это надо? Минусы перевешивают плюсы.

Ну возможно это надо тем, кому РК-ДОС не нужна. На РК86/Z80/60К вполне можно загрузить CP/M. А можно вообще ничего не грузить, а использовать ОЗУ для своих нужд, имея все программы на внешнем ROM-диске или SD.

barsik
02.06.2017, 12:41
Читать только компетентным и разбирающимся в RK-DOS.


А я и не говорил про сдвиг экрана на Микроше. Достаточно немного изменить ПЗУ и базовые утилиты RK-DOS... Ну и загружаемый с дискеты CCP

Да, можно реорганизовать RK-DOS и так.

Т.е оставить в 4-х килобайтах ПЗУ на плате РК-КНГМД только уж совсем ядро (выкинув оттуда всё относящиеся к CCP), а также выкинуть с дискет все SYS-файлы, перенеся их код в 4-х килобайтовый CCP, работающий из ОЗУ выше 8000. Эта мысль вполне здравая, потому что код BDOS для Z80 уместится в 4 кб. Эта идея вполне подойдёт для РК86, где есть расширенное ОЗУ выше 8000 (например, в окне 8400...BFFF).

Это невозможно сделать при 32-х кб, т.к в этом случае CCP не только затирается, но и располагается ниже 7600-800 (800 это минимум на буфер VTOC, буфер просмотра каталога и дискетные буфера), что сокращает область загрузки до смехотворной величины.

Оформление CCP в виде отдельного модуля загружаемого с дискеты при старте DOS, действительно позволяет исхитриться и как-то уместить модифицированный код RK-DOS в ПЗУ размером всего в 4 кб, причём при такой концепции даже не сокращается уровень TPA.

Идея раздельного CCP, загружаемого с дискеты не нова и без сомнения Е.Седов так и хотел сделать сначала. И это бы у него получилось, если бы не всего 32К. Потому что идеология RK-DOS иная, чем в других ДОС в которых дискетный буфер для загрузки физического сектора и область для просмотра каталога выделены для нужд ДОС сразу и никогда не меняются. Поэтому там нет нужды динамически менять уровень TPA, он там всегда постоянный (в CP/M и MSX это сразу ниже BDOS). Иное дело в RK-DOS.

Здесь ДОС не имеет заранее выделенных буферов, а активно используется идеология RAMTOP. RK-DOS при своей работе запрашивает и получает нужное число байт, которое выделяется из области TPA, сразу под текущим уровнем RAMTOP, соответственно снижая указатель RAMTOP и текущий размер TPA. Поэтому при своём запуске программа для RK-DOS даже не знает сколько ОЗУ ей доступно, а вынуждена запрашивать вершину ОЗУ подпрограммой монитора. Если программа не разрушит ОЗУ выше RAMTOP, то например обработка BAT-файла не нарушится. По этим причинам при 32К ОЗУ Е.Седов не разместил загружаемый CCP сразу под вершиной ОЗУ, т.к это навсегда отняло бы у программ кусок размером с CCP плюс 800. Из-за этого и пришлось изобрести SYS-файлы, как внешние команды CCP, причём пришлось сделать их работающими из любых адресов, т.е перемещаемыми, хотя КР580 и не имеет JR-команд (для этого и пришлось извращаться с переходами через стек).

Но имея кусочек ОЗУ выше 8000, что никогда не затирается, CCP может грузиться из дискетного файла при холодном старте RK-DOS, что и позволяет выкрутиться с ПЗУ размером всего в 4 кб. Перемещение CCP в файл у известных ДОС имеет смысл потому, что CCP в области TPA там можно затирать, отчего CCP не отнимает ОЗУ у программ. При размещении CCP выше 8000, ОЗУ у программ тоже не отнимается,.

Но рассмотрим пристальнее плюсы и минусы такой концепции RK-DOS.

Для МИКРОШИ-48К такая концепция сработает, но для РК86, где вообще нет ОЗУ выше 8000, - нет. При этом мы сразу натыкаемся на мысль ввести на РК86 ОЗУ в области 8400...BFFF, как предлагали расширять ОЗУ некоторые (как вариант расширения ОЗУ не портящий адресацию портов). Значит, чтобы RK-DOS, по-прежнему оставалась общей для РК86 и МИКРОШИ, она должна использовать ОЗУ только начиная с 8400, что не проблема.

Главный минус в том, что теперь без загрузки CCP, RK-DOS вообще неработоспособна. Т.е не вставив дискету и не введя команду GE000 (хотя бы один раз) RK-DOS вообще ни на что непригодна. Даже если она имеет эл.диск из излишнего ОЗУ и вообще не нуждается в дискетном приводе. Таким образом попытка с'экономить на объёме ПЗУ не приводит ни к какой выгоде, т.к CCP всё-равно надо иметь в ПЗУ, пусть и во внешнем ПЗУ в виде файла на ROM-диске. А тогда получается, что проще вообще выкинуть ПЗУ с платы РК-КНГМД, открыть в области E000...EFFF ОЗУ и грузить туда RK-DOS из ROM-диска, запуская оттуда прошитый файл RKDOS$ или же грузить его же с магнитофона. Впрочем, вариант в ОЗУ даёт большие удобства при отладке новых версий ДОС.

Что мы выиграем при этом? Аппаратно, это проигрыш, т.к в МИКРОШЕ просто нет ОЗУ на E000, значит это ОЗУ надо ставить на плате РК-КНГД вместо ПЗУ (это легко, втыкаем в панельку 6264 или две 537РУ17). Плюс болтающийся на косе внешний ROM-диск от ОРИОНА. А на РК86 на РУ5-тых достаточно "открыть" окно ОЗУ E000...EFFF с помощью двух диодов.

Но ещё более фатально, что, при такой концепции мы просто выбрасываем за борт всех владельцев РК86 и МИКРОШ, имеющих ОЗУ на РУ6, т.е всего 32К, только ради того, чтобы не расширять ПЗУ для хранения RK-DOS.

Конечно совместимость с старыми программами RK-DOS сохраняется (для чего достаточно сохранять вход в BDOS E001 и управляющие ячейки RK-DOS в области 7600).


В дополнительное ОЗУ перенести служебные переменные и буфера

Да. дисковые буфера можно перенести выше 8000. Для этого достаточно при инициализации записывать в ячейку RAMTOP число C000. Тогда RK-DOS не будет при работе портить ОЗУ ниже 7600. С программами, которые считывают вершину ОЗУ из RAMTOP проблемы легко избежать, если при запуске программ переставлять RAMTOP на 7600. А вот со служебными переменными ничего не выйдет, т.к RK-DOS управляется прямой записью ячеек ДОС в области 7600. И если эти ячейки перенести, то надо выбрасывать все программы Е.Седова и экран, сохранённый на том же месте 76D0, - не спасёт.


Ну возможно это надо тем, кому РК-ДОС не нужна. На РК86/Z80/60К вполне можно загрузить CP/M

Тема другая. Об RK-DOS. Предлагая 60К, Вы соглашаетесь, что альтернативы хранению RK-DOS в ПЗУ на E000 не существует. 60 кб это совсем другая история, совсем другая архитектура, и фактически реально новый компьютер. Любой был бы рад иметь 60 кб и возможность использовать CP/M.

К сожалению, часть пользователей РК86, которые хотят лишь посмотреть игрушки, это не впечатляет. И как оказалось невозможно найти разработчика на такой вариант. Точнее, VITAL72 попытался это сделать, но без моральной поддержки у него пока не получилось. Наличие 60К превратило бы РК86 в нормальный CP/M компьютер и дало бы доступ к программам CP/M, что привлекло бы новых пользователей, не интересующихся самим РК86 и его ПО, кому нужен просто инструментальный CP/M компьютер. Но боюсь такому варианту РК86 не суждено родиться.

uart
02.06.2017, 14:06
Предлагая 60К, Вы соглашаетесь, что альтернативы сохранению RK-DOS в ПЗУ на E000 не существует.
Нет. Мухи отдельно, котлеты - отдельно. Для 60К РК-ДОС это все лишь одна из возможностей. Отдавать ей кусок адресного пространства слишком жирно. Для базовой Микроши надо объединять модули НГМД и ОЗУ в один. В этом случае правильнее РК-ДОС немного подпачить, что бы она не затирала основное ОЗУ. А для базовой РК-86 вообще ничего делать не надо. На 4-ех дискетках иметь копии SYS файлов не представляется мне особой проблемой.


Но боюсь такому варианту РК86 не суждено родиться.
Это да. У каждого свои интересы. Я наверное сделаю свой идеальный РК-86 в своем эмуляторе :)

barsik
02.06.2017, 15:48
Для базовой Микроши надо объединять модули НГМД и ОЗУ в один

Это тоже здравая идея. Но только для МИКРОШИ. Да и то, только потому, что у МИКРОШИ единственный слот, так что туда можно втыкать только или КНГМД или плату расширения ОЗУ до 48 кб.

Конструктивно, можно переразвести плату КНГМД для МИКРОШИ, заменив панельку 24-ноги на 28-ми ногую. И ставить туда 62256 и 27256 напаянные друг на друга. И естественно, 27256 использовать по полной, т.е в виде 8-ми страниц доступных через окно E000...EFFF. Но это разумно только для МИКРОШИ, владельцы которых "чахнут" над своими запломбированными МИКРОШАМИ в промышленных корпусах, не допуская даже мысли, что на плате МИКРОШИ можно сдвинуть хотя-бы один проводок.

А если владелец МИКРОШИ готов нарушить пломбы, имеет паяльник и способен поставить панельку 28 ног на основную плату, то и это не надо. Гораздо проще поставить панельку, чем переразводить РК-КНГМД, чтобы ввести в него доп.ОЗУ. В панельку ставятся две 6264, напаянные в два этажа. У меня на РК86 так было сделано одно время для окна ОЗУ 8400...BFFF. Так в МИКРОШЕ получается 48К, а единственный слот остаётся свободен для установки обычного старого КНГМД из Лианозово.

А для РК86, владельцы которого обычно уже имеют паяльник, гораздо лучше и проще вариант с установкой одной панельки на 28 ног на краю платы РК86. Куда можно поставить как ОЗУ 2*6264 (если основное ОЗУ на РУ6), так и ПЗУ 27256, коммутируемое кусками по 4К в окне E000...EFFF. Если ОЗУ на РУ5, то выгодно открыть ОЗУ A000...BFFF что даёт 40 кб в базовой архитектуре. А если ОЗУ на РУ7, то нет альтернативы пол банковой коммутации ОЗУ в окне 0...7FFF.


Для базового РК86 вообще ничего делать не надо

И это несправедливо. Для МИКРОШИ выпущены промышленные платы расширения ОЗУ до 48К, а РК86 остаётся только пропадать со своими мизерными 32-мя килобайтами, из-за того, что в РК86 область 8000...BFFF занята портами. Вот поэтому-то и надо в новоделе РК86 сделать совместимость с МИКРОШЕЙ, о чём я недавно уже писал в какой-то теме.

Или же хотя-бы ввести ОЗУ в окне 8400...BFFF, что просто реализуется и даёт возможность использовать разные ДОС для ОЗУ. А ещё лучше одновременно расширить и ПЗУ в окне E000 и добавить 15 кб ОЗУ в окне 8400...BFFF, или, если этого ОЗУ больше 16 кб, то в окне размером в 8 кб A000...BFFF (т.к коммутируемые окна долны быть кратными). Очень удобно поставить в окне A000...BFFF ОЗУ 6264, а ещё лучше скоростное электрически стираемое ПЗУ, что по сути ОЗУ не теряющее данные при потере питания.


На 4-х дискетках иметь копии SYS файлов не представляется мне особой проблемой

SYS файлы маленькие и для удобства и экономии места из них можно сделать один файл RKDOS.OVR. В SYS-файлах полезного кода в среднем менее 200 байт, так что объединив их в один файл экономится дисковое пространство и не загромождается каталлог.

Но вся эта идея с SYS-файлами не годится, если система бездисководная (только эл.диск), что как раз и имеет место у некоторых пользователей. Тогда все внешние команды должны входить в сам код RK-DOS, а SYS-файлы вообще не нужны.

А электронный диск пользователю RK-DOS необходим потому что копирование полной дискеты на одном НГМД занимает полчаса с непрерывной перестановкой дискет, а если ошибиться и нажать клавишу до установки целевого диска, то ценная дискета гибнет.


Я наверное сделаю свой идеальный РК86

Невыгодно. Опыт показывает, что плохо отрываться от масс, пусть лучше будет убого, но зато как у всех... С другой стороны, если ни к чему не стремиться, то проще было бы как 300 тысяч лет назад сидеть на деревьях и есть бананы.

uart
02.06.2017, 19:49
Так в МИКРОШЕ получается 48К, а единственный слот остаётся свободен для установки обычного старого КНГМД из Лианозово.
А отключить как? А что будет, если вставить модуль ПЗУ, который расположен по тем же адресам? И так ли много сохранилось "обычных" старых модулей?


РК86 остаётся только пропадать со своими мизерными 32-мя килобайтами, из-за того, что в РК86 область 8000...BFFF занята портами. Вот поэтому-то и надо в новоделе РК86 сделать совместимость с МИКРОШЕЙ
Тогда уж с Апогеем. У Микроши свои проблемы.


А электронный диск пользователю RK-DOS необходим
Не лампово. Сейчас то понятно, хоть гигабайт ОЗУ ставь, но это искажает идею радиолюбительского компьютера 80-х годов прошлого века.

gdv2002
02.06.2017, 20:06
Товарищи, вот все спорим, предлагаем, обосновываем и пр., а толку???!!!
Ну замутим РК86 в супер-пупер конфигурации и что? Кто напишет софт, ДОС и много чего еще?
30 лет назад намутили клонов, и не один толком не развили программно!!!!!!!! А что теперь говорить, когда осталось с пару десятков "некромантов" и из них программеров и десятка не будет!
Я уже не раз писал и повторюсь, платформа РК была обречена изначально, т.к. не было единой концепции, как на Спеке к примеру. Десятки клонов, и крутые и не очень, и ни один программно толком не поддержан. На всех клонах один и тот-же софт и те-же игры, ОРИГИНАЛЬНОГО ничего!!!!!
Сейчас идет очередной виток мозгового штурма в рядах "ветеранов", а получится очередной клон, ни чем не поддержанный!
Может стоит редким программерам не подгонять клон под свои возможности, а возможности подогнать к "оригиналу"?
Все мое ИМХО.

uart
02.06.2017, 20:22
gdv2002, так не писать надо, а адаптировать.

gdv2002
02.06.2017, 20:24
так не писать надо, а адаптировать.
Я хочу, но не умею. А кто умеет - не хочет. ((((

barsik
02.06.2017, 22:20
Сейчас хоть гигабайт ОЗУ ставь, но это искажает идею радиолюбительского компьютера 80-х годов прошлого века

Разве искажение, если я воткну в панельки двухэтажные РУ5-тые. У меня двухэтажных много (в таком виде использовались в ОРИОНЕ). РУ5-тые выпускали с 1984 (иначе как они могли стоять в ИРИШЕ разработки 1984). А вот как раз статика w24257, w24512 и флэш 27C512 - вот это явная фальсификация исторического железа. А вот 62256 на 150 НСЕК были доступны в конце 80-тых. Я тоже предпочитаю, чтобы были детали только 80-тых. Кстати, SIMM-30 256 кб - из 80-тых. Они вошли в моду в 1983, стоят в 'Apple Macintosh-128' выпущенном в январе 1984.

Доп.ОЗУ мне надо не для понта, а потому что без этого не могу пользоваться компьютером. У меня нет дисковода и винчестер не подключен. Есть 'micro-SD' на 2 и 4 Гб, но надо писать SPI интерфейс. Есть старые флэшки на 4/8 Гб, вряд ли их можно использовать для 8-ми разрядки? Поэтому мне и надо иметь электронный диск и желательно побольше. А уже опираясь на него, я подключу винчестер. Это всё просто, тут даже программирования практически нет, просто перетрансляция соответственно настроив подпрограмму чтения/записи сектора.

А больше ПЗУ хочу тоже из-за необходимости. Я уже объяснил, что не имея НГМД мне надо больше ПЗУ для ДОС (и не обязательно RK-DOS, есть ДОС лучше). Как конкретно будет расширено ПЗУ, мне без разницы. Хоть в окне E000...EFFF, хоть в окне A000...BFFF и даже в окне F800...FFFF меня устроит.


программеров и десятка не будет !

Да потому что программистов надо растить и привлекать со стороны. Нужны темы, где в доходчивой форме объясняются основы и нюансы. Чтобы каждому стало ясно, что программировать на порядок интереснее, чем возиться с железками. А те, кто сами не программируют должны поддерживать морально.

Понятно, что у программистов свои интересы, а игры для РК уже никто не пишет, потому что на ассемблере это труднее. А вот на Паскале, СИ, а ещё лучше на PL/M (если удастся его найти) это делать легче. Можно объединиться и делать программы группой. Для этого же Интернет подходит идеально. В 80-е и 90-е каждый программист-любитель "варился в собственном соку" (хорошо, если рядом оказывался кто-то, кто мог морально, а иногда и материально поддержать).

Для создания новых игр достаточно сделать несколько первых игр, например на Паскале или СИ (при необходимости с вкраплением ассемблера). Важно создать базовый набор подпрограмм (что называют "движок"), а далее задача только рисовать спрайты и придумывать сюжеты новых игр.


так не писать надо, а адаптировать

О чём речь ? Что надо адаптировать для РК86 ?

Программы МИКРОШИ ? Для этого проще иметь совместимость. Цветные программы АПОГЕЯ ? Так сначала надо иметь цвет. Цветные крутые программы ПАРТНЕРА ? Так схему МЦПГ еще не нашли, да и кто сделает такие платы для РК86 ? CP/M-игры от вражеских текстовых компьютеров (чьи исходники доступны) ? Так их менее десятка и все они для Z80. Программы на бейсике от вражеских компьютеров и других отечественных? Можно конечно этим озадачиться. Пусть кто-нибудь попробует.

Vladimir_S
03.06.2017, 03:58
программировать на порядок интереснее, чем возиться с железками.
А программировать железку созданную собой же еще на порядок интереснее.

uart
03.06.2017, 12:43
barsik, да, выпускался макинтош, но был ли он по карману советскому радиолюбителю? Тогда стоял выбор 16 или 32Кб ставить в Радио 86РК. Впоследствии ситуация немного поменялась, вышли другие ПЭВМ, но в архитектуре РК нет и не может быть нерационально расходуемой памяти. В Орион-128 была ОРДОС, в Специалист-MX RAMFOS, в РК - монитор. Если сейчас что-то написать лампово не станет.
Про адаптацию. Речь идёт согласно заголовку темы. Если сделать полноценный РК на Z80 и его обвязке, то адаптировать надо монитор, системные программы и знаковые игры. Ну и плюс CP/M перенести. Должен же быть от Z80 какой-то смысл. Если просто оставить старый РК86 32К, то вообще не интересно, нет для него задач.

barsik
03.06.2017, 14:13
да, в 1984 выпускался Apple Macintosh

Речь шла о том, что в MAC из 1984 стояли SIMM и некоторые удивляются каким образом при SIMM на 256К получилось ОЗУ в 128К. Оказывается использовались SIMM на 64 кб, а так как в MAC их 2 штуки, то и получилось 128 кб. Вскоре выяснилось, что для графической ЭВМ этого ОЗУ мало, потому начиная с января 1985 стали ставить уже 2 штуки SIMM на 256К (и ещё 2 штуки можно ставить дополнительно). Кстати в MAC можно ставить SIMM на 1 мб и даже 4 мб. Вот как делают профессионалы. Заранее предусматривают возможность расширения ОЗУ в десятки раз. Потому что даже обезъяне ясна тенденция с нехваткой ОЗУ. Аналогично сделали в Apple-II в 1976, можно ставить четвертики 4116, половинки и целые. А у нас, хоть в каком-то компьютере предусмотрели возможность расширения ОЗУ ?


в архитектуре РК нет и не может быть нерационально расходуемой памяти

Разве ? А что делает вторая половина в 32К во всех платах новоделах РК на РУ5-тых ? Почему это я буду использовать это ОЗУ нерационально? Как основное ОЗУ, так и ОЗУ в других банках можно использовать с большой пользой. И для этого даже трудиться не надо.

Я считаю, что в РК86 может быть столько памяти, сколько нравится. Причём в двух видах - во-первых, как расширение основного ОЗУ до 48К, так и необязательное расширение ОЗУ в других банках (что используется исключительно как VDISK). Любое ОЗУ не пропадёт зазря. Я не знаю отечественного компьютера, где сдуру расширили ОЗУ, а оно так и осталось без использования. А вот иметь более 48К основного ОЗУ нет смысла. Т.к таких больших программ нет и не будет, а ДОС и ROM-BIOS работающие в коммутируемом окне ПЗУ лучше, чем работающие в ОЗУ, т.к тогда, например, объём ДОС или BIOS неограничены (сколько ПЗУ поставите).


Если сделать полноценный РК на Z80 и его обвязке, то адаптировать надо монитор, системные программы и знаковые игры. Ну и плюс CP/M перенести. Должен же быть от Z80 какой-то смысл

Это речь вообще о новом компьютере на ВГ75.

Но даже для этого всё что Вы упомянули делается за час. Чтобы переделать ROM-BIOS достаточно изменить несколько EQU строк в исходнике. Системные программы будут работать и так (если стандартные входы в ПЗУ сохранить). Размер ОЗУ эти программы узнаЮт из RAMTOP. Зачем переделывать игры (если в машине есть режим совместимости с базовым РК) ?

Перетрансляция CP/М заключается в подстановке в исходник всего двух подпрограмм чтения и записи сектора (для конкретного носителя). И например, для РК-КНГМД я сделал эту работу в 1994, нагло заимствовав подпрограммы Е.Седова из RK-DOS. Потому получение любой версии CP/M для РК86 на базе такого КНГМД занимает 30 секунд (это время, чтобы задать в исходнике нужные адреса BDOS, BIOS и CCP). Далее, хлоп на <ВК> и через секунду готов ORD-файл готовый к прошивке в ROM-диск.

Кому-то CP/M интересна, мне не очень. Использовать dBase-II и SuperCalc мне не требуется. А компиляторы CP/M прекрасно работают и на PC, если у Вас Win XP, а не Windows, где программы MSDOS не работают и приходится трахаться с DOS-BOX. Как файловая система, т.е средство для хранения файлов, CP/M лучше, чем RK-DOS только для винчестера, т.к допускает большие диски в мегабайты, да и это не плюс, т.к для больших дисков скоростей РК не хватает (кстати, несложно изменить RK-DOS для дисков в 2 мб, изменив размер кластера до 2-х секторов).

Сделайте 48 или 60К и я сразу странслирую CP/M, она не помешает. Но для массовости из альтруизма лучше ориентироваться на базовую RK-DOS, реально ничего в ней не меняя (кроме простейшей перетрансляции для ПЗУ в 8 кб). Т.к это никого не откидывает.

Но всё это нереальные домыслы, т.к gdv2002, возможно, с детства ненавидит Z80 и ни за что не станет его применять. Но некоторым хотелось бы Z80. Хотя бы потому, чтобы разогнать его до 8 МГЦ. Я сам за Z80 по этой причине. Да и вроде бы, если gdv2002 не поставит Z80, то это сделает Павел Рябцов (читал где-то об этом). Но с другой стороны, наличие в платформе двух CPU вносит раскол и лишние хлопоты по отслеживанию для какого CPU конкретная программа.

uart
03.06.2017, 15:19
barsik, ну так сколько стоили в 1986 году для советского радиолюбителя две такие SIM и где он тогда мог достать такую память и разъемы под неё? А так да, можно поставить сколько угодно памяти, только будет ли это РК?
Больше 48К программы есть на Апогее. Есть C и Pascal, которым всегда памяти впритык, на Апогее они просто оживают. На том же Бейсике чуть сделаешь массив побольше и приплыл. Плюс ещё можно держать отладчик и две копии исследуемой программы.
Адаптация под Z80 и ее вариант Z80DMA, последовательный и параллельный порты, ... Переделывается монитор, освобождается место под загрузчик системы с дискеты, переделка РК-ДОС под новые условия. Да, с CP/M несложно, но тем не менее надо делать.

TomaTLAB
03.06.2017, 15:59
Разрешите влезть в ваш спор про "ламповость" :)
Конечно это исключительно мое субъективное мнение, но у меня сложилось убеждение, что сейчас новые разработки/доработки ретро платформ стоит делать Modus Conjunctivus.
Что можно было бы сделать в те времена, если бы все было доступно.
Не оглядываясь на доступность/недоступность приобретения каких либо компонентов для каких либо категорий разработчиков (любителей/профи).
Будем считать, что для разработчика были доступны все самые современные и прогрессивные разработки тех времен, но не сильно выходя за рамки, допустим процессорного комплекта (ну и с оглядкой на "страну происхождения" те же SIMM в РК как на корове седло, а для, например, MSX - так вполне).
По поводу ПЗУ. Сейчас использование тех же W27C512 вполне оправдано, особенно на этапе отладки. В законченном варианте можно будет заменить на банку "ламповых" РФ-ок. Позолоченных. :)
Но вот использовать и закладывать возможность использования флеши как неотъемлемого компонента платформы - уже не лампово. Но вполне допустимо как замена внешнего накопителя (RAM/ROM - диска), или с условием что оно будет, допустим, эмулировать существовавшие на тот момент EEPROM.

uart
03.06.2017, 17:07
Можно построить крестьянскую избу XIX века в три этажа, с конюшней, псарней и винным погребом. Можно и не из дерева, а кирпича, он же тоже тогда был. А ещё и водопровод провести, это вообще древнее изобретение. Но будет ли эта изба крестьянской?
РК - простой бюджетный компьютер для масс. А каких SIMM можно говорить, если 32Кб под вопросом? Посмотрите на Специалист. Готовы были монитор грузить с магнитофона, лишь бы сэкономить на РФ2.

barsik
03.06.2017, 18:03
Можно построить крестьянскую избу XIX века

Мой РК не музейный экспонат. У меня не такое хобби. Важно, что и на доступном тогда железе не составляло труда ввести простейшие доработки по расширению ОЗУ и ПЗУ, что я предлагаю. На более современных деталях это сделать просто удобнее, особенно если нет платы и делается вручную.


... две такие SIMM и где он тогда мог достать такую память и разъемы под неё?

Согласен, что авторам РК такая память была недоступна (они SIMM впервые увидали только в 1993, когда в страну хлынуло западное железо). Но РУ5 была доступна. Про РУ7 они тоже знали и видели их в магазине "Электроника". Почему не заложили в конструкцию установку хотя бы РУ5 ? Компьютер-то для любителей самодельщиков.

SIMM 256К эквивалентны РУ7, только скорости и конструктив чуть иные. А сейчас и 41256 и РУ7 достать сложно. РУ7 неразумно применять, потому что они выпуска конца 80-х, начала 90-тых и истёк их срок жизни. Оттого они дохнут как мухи и сбоят. PN-переходы рассосались, токи утечек увеличились и соответственно, накопительные ёмкости уже не хранят данные положенное по РТМ время. РУ5-тые по более надёжной технологии и от времени дохнут меньше. А надёжнее всех РУ3 (4116 выпуска 1979 работают до сих пор). Чем старее технология тем надёжнее. У меня было более 50-ти РУ7-мых в начале 90-тых. Остался один комплект и тот полудохлый. Так что, на место РУ7-мых можно найти только китайские 41256. А их тоже считают ненадёжными и полудохлыми.

Так что применять SIMM 256К я просто вынужден. Причём теперь даже склоняюсь к мысли поставить SIMM 1 мб. Ведь лучше их использовать, чем выбросить. Решил наконец как их смонтировать. Ставлю вертикально. На выводы 1 и 30 припаиваю штырьки. Для них - на плате 2 пустотелые заклёпки диаметром 1 мм. На двух стойках SIMM стоит вертикально. А к остальным выводам припаяны тонкие провода МГТФ-0.03.

Кстати, вместо ПЗУ 27xxx я применяю 'Electrically Erasable and Programmable CMOS ROM' размером в 8 кб (они бывают и 64К, но у меня только такие). Они работают как ОЗУ (25 НСЕК), но ничего не забывают при пропадании питания. Это меня здорово выручает, т.к лампу ДРЛ я разбил. В начале 90-х я использовал так же 6264 припаивая к ним батарейку.

uart
04.06.2017, 00:59
barsik, я программист, поэтому для меня не важно на каких микросхемах будет сделана современная версия РК и каким припоем, но важно как оно выглядит с программной точки зрения. Сейчас можно сделать неестественный для того времени компьютер, но зачем?

LeoN65816
05.06.2017, 06:34
А у нас, хоть в каком-то компьютере предусмотрели возможность расширения ОЗУ ?
Вот, на вскидку: АГАТ (-7, -9), ОРИОН-128, ПОИСК, ЕС-184х.
Более того, в АГАТ-7 и на генплатах и на ДопОЗУ предусмотрена возможность установки РУ6 или РУ5, и путем магических действий паяльником по перепайке перемычек (причем это предусмотрено конструктивно!) получаем 32 или 128 кило на каждом модуле.
А на девятке хоть все слоты забивай модулями ДопОЗУ по 128 кило (лишь бы дейзи-цепочка из этих модулей была без разрывов).

ilyaspb
05.06.2017, 12:28
Речь шла о том, что в MAC из 1984 стояли SIMM и некоторые удивляются каким образом при SIMM на 256К получилось ОЗУ в 128К. Оказывается использовались SIMM на 64 кб, а так как в MAC их 2 штуки, то и получилось 128 кб. Вскоре выяснилось, что для графической ЭВМ этого ОЗУ мало, потому начиная с января 1985 стали ставить уже 2 штуки SIMM на 256К (и ещё 2 штуки можно ставить дополнительно). Кстати в MAC можно ставить SIMM на 1 мб и даже 4 мб. Вот как делают профессионалы. Заранее предусматривают возможность расширения ОЗУ в десятки раз. Потому что даже обезъяне ясна тенденция с нехваткой ОЗУ. Аналогично сделали в Apple-II в 1976, можно ставить четвертики 4116, половинки и целые. А у нас, хоть в каком-то компьютере предусмотрели возможность расширения ОЗУ ?
"-А это опять-таки случай так называемого вранья!Поздравляю вас, гражданин, совравши!"

Ну не рассуждайте о том,чего ВЫ не знаете.Сначала изучите предмет,а потом рассуждайте о нём
Изначально Мас128 (январь 84)был создан с 16 чипами 4164 впаянных в плату .
Следующий Мас512к (сентябрь 84)тоже имел 16 впаянных в плату чипов памяти,но уже 41256.
А вот Mac Plus(январь 86)...
Материнская плата Macintosh Plus была основана на материнской плате Macintosh 512K, но были сделаны два основных изменения. Во-первых, было добавление сокетов памяти SIMM-30, первоначально поставляемых с четырьмя 256-килобайтными модулями памяти. Поскольку на компьютере теперь использовались модули памяти,вместо чипов спаянных на материнской плате,можно было заменить четыре модуля памяти 256 КБ на два модуля памяти 1 МБ, чтобы иметь компьютер с 2 МБ ОЗУ или с четырьмя модулями памяти 1 МБ и иметь компьютер с 4 МБ ОЗУ (поскольку процессор 68000 использует 16-битную шину данных, и каждый модуль памяти SIMM-30 является восьмибитным , нужно установить два или четыре модуля памяти, вы не можете установить один или Три модуля памяти).В январе 1988 года Apple начала предлагать Macintosh Plus с объемом памяти 2 МБ или 4 МБ.
Да и ерунда то,что в компьютере под ОЗУ(включая видео) было отдано всего 4 мегабайта из
16 адресуемых, и в схеме только 10 адресных сигналов на SIMM-30.
приложенный кусок схемы Мас+ не очень хорошего качества,но разобрать можно
http://savepic.ru/14251692.pngБолее 4Мб озу а маках стало доступно с применением 68030 процессора,а это другая история,но
я надеюсь вы и о ней ,с видом профита, порассуждаете.

Error404
05.06.2017, 18:37
можно сделать неестественный для того времени компьютер, но зачем?

просто стало интересно - а это как?
Что есть естественноость в контексте РК86 и его доработок? Порты и экран в середине адресного протранства, причем неотключаемо? Типа, добавим жару программисту чтобы ненароком не расслабился? :)

uart
05.06.2017, 18:56
просто стало интересно - а это как?
РК86 с ОЗУ 1Мб, при этом "порты и экран в середине адресного протранства, причем неотключаемо".


Что есть естественноость в контексте РК86 и его доработок?
Апогей БК-01Ц вполне себе РК. Партнер 01.01 тоже дает интересные возможности. Взять от них лучшее, исправить то, что стало видно спустя время - получится великолепный РК.

barsik
05.06.2017, 19:16
Опять-таки случай вранья ... Ну не рассуждайте о том, чего Вы не знаете

Хорошо, постараюсь.

Это не тема о Макинтоше. Я интересовался MAC в начале 90-тых. И тогда не было такого доступа к информации как сейчас. Потому и не знал, что были 3 модели с разными ОЗУ, выпускаемые с интервалом в полгода. Я думал, что это одна модель, но укомплектованная разным типом SIMM. Как можно предположить, что на такте 7 МГЦ могут работать 41256 и даже 4164 ? MAC не входит в область моих интересов (т.к вообще не годится для радиолюбительского хобби), поэтому никогда и не гуглил на эту тему.

Но зачем делать обидные посты, обзывать чужие ошибки сознательным враньём ? Не все тут "семи пядей во лбу", порой ошибаются. Ну хорошо, кто-то был некомпетентен, совершил ошибку. Но ведь поправить можно добродушно, а не с издёвкой. Унижение другого делает Вас счастливей ? И если Вы пишете "опять-таки", то где же ссылки на предыдущие случаи "моего вранья" ?

Стоит ли вообще придираться к мелочам, выискивать неточности в чужих сообщениях, к тому же к теме, где это вообще никого не волнует? А ещё и грубо, стараясь унизить и смешать ошибившегося с дерьмом. Кого волнует на каких ИМС сделано ОЗУ в компьютере 35 летней давности, если никто его не имеет и не использует ? Не лучше ли было это сделать добрее или даже просто послать ЛС, чтобы я мог исправить ошибку, не затаив обиду ?

Насчёт установки SIMM 4 мб, я и сам сомневался, но не мог проверить, т.к их не имею, а хотелось верить, что Стивен Джобс предусмотрел и это.


Неестественен РК86 с ОЗУ 1Мб, где "порты и экран в середине адресного протранства, причем неотключаемо"

Эй, ведь gdv2002 делает компьютер на статике w24257, где проблема уговорить его даже на дополнительные 16К. Порты выше C000 никому не мешают, а экран переносится программно, а не остается "посередине ОЗУ".

А 1 мб на SIMM ставится только в РК86 с динамическими ОЗУ. И вообще это вариант только для меня, т.к нужен только тем, кто не имеет НГМД. Кстати тут недавно видел в одной местной теме эмулятор дисковода на базе 'microSD' и если иметь его, то VDISK из излишнего ОЗУ не нужен даже тем у кого нет реального НГМД.

Да, кстати. Вот Вам ещё один, существенный довод в пользу Z80. В РК86 регенерируются только РУ5. Для SIMM при КР580 надо делать формирователь старших адресов регенерации. А если стоит Z80, то для регенерации ничего предпринимать не надо, - просто /RFSH переадресуем на /CAS и получается регенерация 'CAS before RAS' (экономия ИЕ7 и КП11).


Партнёр-01 дает интересные возможности. Если исправить то, что стало видно спустя время - получится великолепный РК

Вы что забыли, что gdv2002 хотел иметь базовую архитектуру, а не новый клон, похожий на ПАРТНЁР-01 ?

Я пытаюсь "раскрутить" его на доп.ОЗУ в области 8000...BFFF и доп.ПЗУ где-нибудь. Причём обнаружился очень простой вариант с окном ОЗУ A000...BFFF и отключаемым портом ППА (8000...9FFF), что мизерной ценой даёт расширение ОЗУ в базовом варианте до 40 кб и сплошные 48К в альтернативном режиме. А самое ценное, что всё это делается за несколько минут на базовой плате РК86.

А Вы пытаетесь уговорить его на совсем новую архитектуру. Пусть и хорошую, но не реализуемую на уже имеющихся платах РК86. Если это сделать, то это скорее всего, будет бесполезно. Т.к если это невозможно сделать на базовом РК минимальной ценой, то новые программы будут делаться только на базовый вариант РК86.

Лучше бы все заинтересованные высказались в пользу AY-8912. Этот музыкальный чип обошёлся мне дорого, но лежит "мёртвым грузом" уже 25 лет и ждёт своего часа.

uart
05.06.2017, 21:27
Т.к если это невозможно сделать на базовом РК минимальной ценой, то новые программы будут делаться только на базовый вариант РК86
По наблюдениям, если что и делают, так под Апогей. :)

Error404
06.06.2017, 15:37
С точки зрения написания больших программ и использования требовательных к ОЗУ ОС, самый очевидный и самый простой вариант расширения ОЗУ (а расширять его таки надо, т.к. это малой кровью даст CP/M) - сделать страничную адресацию, страницами по 64к. При этом в первой (т.е. нулевой) странице работающей с момента reset для 100% совместимости со старым ПО включены все стандартные порты и экран на стандартном месте (Апогей или РК - не суть), а во всех прочих страницах - только ОЗУ (все 64к - процессору, без вкраплений портов и экранов) или как вариант ОЗУ+ПЗУF800. Т.е. аппаратно достаточно установить регистр страниц (и расширить ОЗУ хоть статикой, хоть DRAM) и при значении этого регистра больше нуля (один вентиль ИЛИ), запрещать чип селекты всей РК-шной требухи (что-то типа дизаблить всю ИД7 дешифратора). Драйвера размещаются в странице 0 (они и пишут в экран и устройства В/В), а код ОС и электронный диск - в остальных страницах. Вызовы в страницу 0 (к драйверам) делает только ОС. Просто и красиво.

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



Лучше бы все заинтересованные высказались в пользу AY-8912. Этот музыкальный чип обошёлся мне дорого, но лежит "мёртвым грузом" уже 25 лет и ждёт своего часа.

Субъективно, синтезированную 8-битную музыку не воспринимаю вообще (а точнее воспринимаю скрежетом, как оно и есть), хоть на ВИ53, хоть на AY. Чуть лучше 8-битные оцифровки типа ковокса (но им надо вагон ОЗУ). Вот как шумовые эффекты в играх AY неплох, но кто напишет игры с AY для РК?

uart
06.06.2017, 16:57
Просто и красиво
И не РК. А просто некая CP/M машинка. Почему бы тогда не использовать Орион-128, при желании добавив туда текстовый контролер с 80 символами и КОИ-8?

gdv2002
06.06.2017, 17:28
Эй, ведь gdv2002 делает компьютер на статике w24257, где проблема уговорить его даже на дополнительные 16К
Ну вот и меня приплели!!!
Я не изобретаю велосипед, скорее хочу развести плату базового РК с проверенными и доступными на данный момент расширениями.
Я не хочу, да и не смогу, изобрести новую машину с крутыми возможностями.
Я не против увеличения ОЗУ и даже обращался в своей теме с вопросом, как вписать вторую микру памяти на 32Кб.

Error404
06.06.2017, 17:52
И не РК. А просто некая CP/M машинка. Почему бы тогда не использовать Орион-128, при желании добавив туда текстовый контролер с 80 символами и КОИ-8?

Этак любая вариация где не надо лечить жопоболь от портов и экрана - не РК. Тот же Апогей строго говоря - не РК, раз там унесли порты и экран. Если подходить с популярной бинарной логикой "АТМ-не спектрум", то вытираем все тутошние расцветшие темы "доработчиков", и расходимся. Чота даже ржу, "Орион-256 - не Орион-128!", таки да - 256 не 128. :)

uart
06.06.2017, 18:51
Этак любая вариация где не надо лечить жопоболь от портов и экрана - не РК. Тот же Апогей строго говоря - не РК, раз там унесли порты и экран.
В РК86 32К и 16К экран находится по разным адресам. Какая разница какой адрес у экрана или ППА например? Это правится за несколько минут и программа работает точно так же. Причем править надо в любом случае, программы существуют под РК/Микроша/Партнер/Апогей, нет единого источника, где представлены все программы под единственно верное распределение адресного пространства. Часть программ получает преимущество от большего ОЗУ, часть без него и работать не будет.


"Орион-256 - не Орион-128!", таки да - 256 не 128.
Даже с 512Кб и Z80Card-II Орион остается Орионом. Это вполне нормальный апгрейд, причем сделанный еще в те времена, что показывает его востребованность. Да, лучше процессор, больше памяти, но принципиально ничего не поменялось. А вот Орион-Про совсем другой компьютер, хотя и частично совместим.

barsik
06.06.2017, 20:20
Эта тема не предназначена для обсуждения платы новодела, т.к топик стартер не планирует выпускать печатные платы новодела. Это лишь его личный проект, который кстати, уже давно сделан в железе. У него собственная архитектура (с доп.ОЗУ и ПЗУ в неиспользуемых "дырках" памяти) и есть даже альтернативный режим АПОГЕЯ. А печатную плату новодела делает совсем другой человек gdv2002, в теме которого схема новодела и обсуждалась.

И вдруг ни с того ни с сего в эту тему набежала толпа советчиков и принялась обсуждать схемотехнику новодела на CPU 8085, что разрабатывает gdv2002 и обсуждает в другой теме. Топикстартер этим не занимается и Ваши советы ему не требуются. Зачем уговаривать топикстартера на Z80, если он это уже имеет ?

Хотя модераторы обычно тщательно следят и указывают что обсуждать в конкретной теме, а что нельзя, т.е "шаг в сторону от темы и растрел". В данном случае модераторы не сработали, т.к в этой теме при обсуждении адаптации RK-DOS на Z80 речь зашла о необходимости расширить ПЗУ, отчего и возникло смешение тем.

Не лучше ли все посты не адресуемые напрямую топикстатеру Vladimir_S и относящиеся к проекту платы новодела РК86 вернуть на родину. Вот сюда (http://zx-pk.ru/threads/26099-radio-86rk-plyus-sozdanie-i-obsuzhdenie-versii-2016g.html?p=853417&viewfull=1#post853417). Хотя уже трудно разделить темы, но кажется переносить надо, начиная с поста #287 (http://zx-pk.ru/threads/20887-radio-86rk-na-z80.html?p=915291&viewfull=1#post915291) на место ДО вот этого (http://zx-pk.ru/threads/26099-radio-86rk-plyus-sozdanie-i-obsuzhdenie-versii-2016g.html?p=915607&viewfull=1#post915607) поста

uart
06.06.2017, 21:13
Если что, то мои посты относились к этой теме, по крайней мере по ее названию. А очередная плата РК86 32К вообще не интересна.