nedoPC.org

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



Reply to topic  [ 219 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7 ... 15  Next
Радио-86РК на 8088 (или 8086) 
Author Message
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Post 
Тьфу, елки-пилки..
Это я что то "протормозил"- RST оно и вправду тiльки у 8080 ( ну и у V20/V25/V30/V35 в режиме системы команд 8080 ес.с.но ) а изпользовать можно как ик14 ,так и ив1 для RST*** весьма схожим образом.
У меня просто думка была за процесорний модуль на 8080 - там всё одно треба две ив1 для клавиатуры, так, вот думаю, пущай и третья для RST*** вместе с ними прикупится (- а ежёли штук 200~300 ,да ещё и других нужных, за раз купить, то они по 0.5р. всего обойдутся ).
А в *86 режиме - да, тiльки CALL ** ** на шину от контроллера типа ***вн** ..


21 May 2014 06:41
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
petrenko wrote:
А в *86 режиме - да, тiльки CALL ** ** на шину от контроллера типа ***вн** ..

А мне почему-то всегда казалось INT NUM, а не CALL ** ** у 86-го...
Конечно же INT у него в коде - 0CDH, но это INT ** , а не CALL ** ** .

Mixa64 правильно же пишет:
Mixa64 wrote:
...два INTA просит, в одном вектор передается, другой по протоколу положен...

_________________
iLavr


21 May 2014 09:53
Profile
Doomed

Joined: 10 Mar 2012 16:21
Posts: 598
Location: РФ
Reply with quote
Post 
Торопление.. Отплывание..
Согласен, ну просто разгильдяйство - Вову Димой обозвал.. :-?

И, да, кто вдруг захочет применить 155ив1 из-за "недоставаемости" 585/589ик14 или 580вн59 - предупреждаю - в отличие от нормальных контроллеров сие нищебродское решение прерывания теряет запросто !


28 May 2014 17:33
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Mixa64 wrote:
логично ожидать Радио-86РК на 8088

РК86 на 8088 вполне возможен и на нём даже смогут работать все программы РК86, естественно при их конверсии. Т.к РК-программы на 8088 напрямую вообще не работают, то цепляться за неудачную архитектуру РК (т.е тратить пол памяти на В/У) нет смысла и экран удобно разместить на E000, изначально выделив ему полные 4 кб (чтобы не пришлось его переносить в режиме 39 строк). Т.о речь идёт лишь об использовании схемных решений РК - видео на ВГ75 и клавиатуры РК86. Для целей получения ЭВМ на 8088 это на два порядка более простое решение, чем МИКРО-16.

Речь, конечно, идёт о том, чтобы взять старую плату РК86 и через переходник вставляемый в панельку процессора (а проще, через системный разъём) подключить небольшую внешнюю платку на которой стоит ГФ84 и 8088 с адресной защёлкой.

Расширять ПЗУ не потребуется. Потому, что несмотря на то, что плотность кода у 8088 в ~1.3 раза худшая, чем у КР580, отчего объём ROM-BIOS F800 при тупой лобовой перетрансляции увеличится, но, с учётом JR-команд и если из ПЗУ исключить ненужное (работу с магнитофоном), то ROM-BIOS уместится и в 2 кб. Эта идея меня интересует и, если найдутся интересанты, то такой доработкой можно заняться. Я даже специально напишу эмулятор такого РК86.

Ценность данной идеи в том, что система команд 8088 намного приятнее для программиста, а развитость системы команд при написании программы сразу под 8088 позволит получать объём кода лишь не намного больший, чем у программ для КР580 (у которого всё делается через аккумулятор и HL, а в 8088 это можно делать с любыми регистрами, отчего отпадают лишние пересылки).

К сожалению, компиляторы ЯВУ, несмотря на их наличие в MSDOS, вряд-ли удастся использовать.

Но если бы я занялся реализацией этого, то я бы не стал ставить 8088 в лоб так примитивно. А стал бы ставить 8088 с использованием двух локальных шин. Так как это делали в акселераторах для Apple-II. Тогда скоростной процессор работает со своим скоростным ОЗУ, а в самом компьютере используется только экранное ОЗУ, обращение к которому (а также к В/У) процессор производит на медленной скорости (т.е с WAIT).

В случае РК86 это особенно оправдано и не только потому, что ОЗУ на плате не потянут высокую скорость, а из-за ПДП. Когда ядро процессора отделено буферами от основной шины РК86, то процессор не надо загонять в HOLD на время когда ПДП закачивает экранные байты в ВГ75. Благодаря этому не придётся впустую терять 26% скорости CPU. Хотя потерь такта 5 МГЦ 8088 всё-равно не избежать, т.к в случае, если в момент обращения к экранному ОЗУ (что на основной плате) идёт цикл ПДП, то вводится WAIT, до окончания ПДП (т.е при сигнале HLDA буфера не открывается и формируется /READY=1, пока ПДП не освободит шину основной платы). Но это торможение не более, чем на несколько процентов, т.к в текстовый экран процессор пишет не часто.

Mixa64 wrote:
а кто софт напишет?

При 8088 с этим как раз проще, в отличие от процессора 6800. Т.к система команд 8080 является подмножеством для 8086. Потому имеются конверторы исходников КР580 в исходники ассемблера 8086.

Сейчас, при наличии IDA, не проблема получить исходники ПЗУ, системных программ и игр. А имея исходник, с помощью программы конверсии исходников 8080 в 8086 получаем исходник для 8086, слегка корректируем его (например, под другие адреса экрана) и транслируем.

Исходники большинства системных программ РК у меня есть (и получение их заняло не более часа на каждую, в основном на приведение текста в порядок, т.е на оформление, а не на разбор логики). Так, что при желании, при трудозатрате от получаса до нескольких часов на каждую игру, можно получить для такой ЭВМ весь парк игр РК86 из сезона 1989 года.

Lavr wrote:
Он уже давным-давно был, причем от самих авторов "Радио-86РК".

Гораздо более разумный подход - это использовать плату графического адаптера от ИРИШИ, дополнив её простейшей платкой процессорного ядра на 8088 на такте 5 МГЦ.

Граф.адаптер ИРИШИ совместим с CGA (даже по управляющим битам задающим режим). Авторы ИРИШИ изначально разрабатывали так, чтобы просто заменив плату процессора получился бы комп близкий по возможностям к IBM PC, а при наличии КНГМД, даже совместимый по MSDOS и играм. Описание граф.адаптера можно посмотреть в иришиной красной книге.


09 May 2018 01:00
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 459
Location: Москва
Reply with quote
В 14-м году внезапная длительная командировка на чужбину случилась, как раз в момент разгара размышлений над включением 8088 в стиле РК86. Потом, когда через много месяцев снова глянул в эту сторону, уже не понимал, зачем я тогда про это думал.


09 May 2018 04:45
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Alekcandr wrote:
читал, что был некий конвертор кода 8080 в 8086, который должен был свести к минимуму переделку софта CP/M.

На дискетах CP/M для СМ-1800 был такой конвертор в варианте для CP/M (читал, что была аналогичная версия и для MSDOS). Эта программа была на всех дистрибутивных дискетах всех компьютеров с CP/M (хотя реально ей уже никто не пользовался). Версии для MSDOS у меня нет, но недавно решил попробовать с помощью XLT86.COM конвертировать исходник ПЗУ РК86 под процессор 8088. Собственно сам выходной код мне не нужен, лишь любопытно было узнать насколько раздуется код.

Но оказалось не всё так просто. Конвертор оказался вполне работоспособным, но глупым. Выходной текст нуждается в существенной редакции. Вероятно рассчитано на какой-то древний ассемблер для 8088, который был для MSDOS 1.0, т.к по крайней мере современные TASM и MASM выдают тысячи ошибок и нужна большая ручная редакция.

Редактировать надо не только из-за сегментности, а в основном из-за того, что конвертор просто глупый. В частности, все условные переходы заменяются на конструкцию в два джампа, причём даже тогда, когда ссылка не forward и даже однопроходная программа вполне может проверить, что ссылка назад и не далее, чем 127 ячеек. Например, команда JP NZ,ADDR заменяется на JZ $+5 : JMP ADDR, хотя ADDR стоит раньше и близко, - а в таком случае достаточно одной команды JNZ ADDR. То же самое и с условными CALL-ями и с условными RET-ами (которые заменяются на конструкции типа JZ $+3 : RET).

С учетом того, что более 90% переходов обычно доступны в диапазоне +/- 127 байт, то нужна большая правка, чтобы избавиться от бесполезных двухкомандных переходов.

Однако я нашёл способ этого избежать, - надо ещё до конверсии заранее все КР580 команды вида JP FLAG,addr в тех местах, где переходы недалёкие, заменить на макрокоманды JRNZ, JRZ, JRNC, JRC, JRM, JRP, JRPO, JRPE и т.п. Эти команды при конверсии останутся без изменения, а будут заменены на двух-джамповые конструкции только те условные переходы, где дальние переходы (и где без такой конструкции из двух команд не обойтись).

Затем остаётся только в конвертированном исходнике заменить эти макрокоманды на имеющиеся недалёкие команды переходов 8088 - JNZ, JZ, JNC, JC, JS, JNS, JPO, JPE.

Т.к подобные замены в текстовом редакторе с помощью "поиск и замена" сделать намного проще и быстрее, чем после вручную искать переходы на $+5 и вручную редактировать сотни таких мест, то это экономит много времени.

Команда EX (SP),HL заменяется сразу на 3 команды:

XCHG SP,BP
XCHG [BP],BX
XCHG SP,BP

Команда PUSH AF заменяется на 2 командны 8088 - LAHF : PUSH AX, а POP AF заменяется на POP AX : SAHF. При этом LAHF/SAHF нужна только, если нужно сохранять флаги, а если важен только регистр AL, то LAHF/SAHF излишни. А когда нужно сохранять/восстанавливать только флаги, то короче однобайтовые команды PUSHF/POPF.

Но особенно противно, что 3-х байтовые команды типа LD A,(addr) или LD HL,(addr) заменяются на 4-х байтовые команды. В то время, как команды OUT - двухбайтовые. Потому при установке 8088 в РК86 может быть имеет смысл подумать о размещении всех эр-кашных БИС-ов в области портов.

После конверсии объём кода РК-ПЗУ увеличился на 17%. После большой ручной редакции процент увеличения объёма кода немного понизился до 16%. Если делать программы сразу для 8088, то полагаю, что объём кода будет лишь на ~15% больше, чем у аналогичной программы написанной для КР580. Ранее считал, что у КР580 плотность кода намного лучше.

Хотя я с'экономил в объёме кода РК-ПЗУ 177 байт, этого всё-равно не хватило, чтобы уместить код ROM-BIOS РК86 на процессоре 8088 в 2 кб. Но хватит, если выкинуть некоторые ненужные команды и все подпрограммы для магнитофона, а вместо этого встроить загрузку ОС из ROM-диска.

Система команд 8088, конечно на порядок приятнее, чем у КР580. Но мне интереснее наличие компилятора ЯВУ. Можно попробовать найти какой-нибудь ранний Паскаль для MSDOS 1.0. При этом годится только Паскаль (или Си) имеющий ассемблерные INLINE-вставки. Без этого связываться с установкой процессора 8088 на РК86 не имеет смысла.

И нужен намного более грамотный конвертор исходников, анализирующий адреса переходов. Или же нужен конвертор из мнемоники не КР580, а из мнемоники Z80 (естественно только для подмножества тех команд, что есть в КР580, плюс JR переходы). Тогда конвертору не понадобится "быть умным" и двухпроходным, т.е высчитывать можно ли в конкретном месте применить REL-переход или требуется ставить две команды 8088.

Но даже тогда останется достаточно много ручной работы по доделке исходников. Т.е на переделку и отладку каждой игры от РК86 на процессор 8088 будет уходить несколько часов времени. Это всё-равно конечно меньше трудозатрат, чем написание аналогичной игры в кодах 8088 с нуля, даже если использовать ЯВУ (а на ассемблере написание одной игры требует трудозатраты в десятки часов).

Во вложении все конверторы исходников (для CP/M), что я смог найти на CP/M Public Domain CD архивах (где-то есть аналогичные программы и для MSDOS).

Там конверторы исходников КР580 в Z80 и обратно. Я их все проверил. Обидно, что эти программы сдуру не понимают 8-ми битовую кодировку, отчего приходится сначала конвертировать в КОИ-7, а конвертированный 8088-исходник обратно конвертировать в АЛЬТ-кодировку, отчего комментарии становятся заглавными буквами, что неприятно. Один из конверторов Z80 в 8080 немного дохлый (вместо команды JNZ ставит какую-то чушь, но после замены её на JNZ всё работает).

Все эти программы я использовал не в CP/M (в эмуляторе или реале), а в MSDOS (точнее Win XP) с помощью незаметного TSR-эмулятора 22NICE, и все они работали. Что значит, что они MSDOS-корректные (т.е не лезут к структуре CP/M-каталога и не используют для проверки наличия свободного места на диске Allocation Table). Потому их можно "тупо в лоб" конвертировать для MSDOS.

Как раз для некоторых конверторов есть и исходникии. Т.е при желании Вы можете сделать их версии для MSDOS, просто конвертировав и отредактировав, чтобы работали в MSDOS. Если же у Вас не Win XP, а более свежая Windows, которая уже не умеет прогонять MSDOS-программы, то придётся использовать запуск CP/M-программ под 22NICE через DosBox.

Если у кого-то есть более умные конверторы исходников Z80/КР580 в исходники 8088 или 6502, то просьба поделиться.


Attachments:
ASM convertors.rar [66.91 KiB]
Downloaded 292 times


Last edited by barsik on 02 Jun 2018 23:26, edited 7 times in total.

01 Jun 2018 23:59
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post Re:
barsik wrote:
То же самое и условными RET-ами, которые заменяются на конструкции типа JZ $+3 : RET. С учетом того, что более 90% переходов доступны в диапазоне +/- 127 байт, то нужды в таких двухбайтовых переходах нет..

В системе команд 8088, 8086 нет условных RET-ов, вот они и "заменяются на конструкции типа":
Code:
JZ $+3
RET.
А вы как предлагаете заменять условные RET-ы? :roll:

_________________
iLavr


02 Jun 2018 00:31
Profile
Doomed

Joined: 01 Oct 2007 10:30
Posts: 665
Location: Ukraine
Reply with quote
Просто мысли. Ну не знаю. 8080 и 8086 - это как небо и земля. Разрыв окончательный и бесповоротный. Причем тут РАДИО-86РК?

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


02 Jun 2018 04:21
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Alekcandr wrote:
8080 и 8086 - это как небо и земля. Разрыв окончательный и бесповоротный. Причем тут РАДИО-86РК?

Была тут мысль на форуме сделать РАДИО-86РК на 8088... barsik её развивает...

_________________
iLavr


02 Jun 2018 05:31
Profile
Doomed
User avatar

Joined: 19 Feb 2017 03:46
Posts: 584
Location: Санкт-Петербург, Россия, третья планета от Солнца, галактика Млечный Путь
Reply with quote
Alekcandr wrote:
Причем тут РАДИО-86РК?
Lavr wrote:
Была тут мысль на форуме сделать РАДИО-86РК на 8088... barsik её развивает...

Извиняюсь за оффтоп, мой пост не имеет отношения к Тиму Паттерсону и его MSX-DOS.

Да, это продолжение той темы. Я там недавно сделал один пост, где написал, что у меня есть конвертор исходников, который позволяет без особого напряжения и гигантских трудозатрат адаптировать для РК86 на 8088 антикварные игры РК86. С тех пор я обдумываю идею поставить в свой РК86 процессор 8088 или 8086 (имею их оба). Но сейчас потерял эту тему и модератору лучше перенести последние посты туда.

Я в общем-то пока не особо развиваю эту тему, в смысле, что пока не решил ставить 8088 в РК86 (мне более интересно поставить в РК незнакомые процессоры 6502, 65С02, 6802, 68008 или Z180, а на ассемблере 8088 я уже сравнительно много программировал в 90-тые). Сегодня просто из интереса попробовал конвертировать исходник КР580.

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

А РК86 это, не считая ИРИШИ, единственный из известных бытовых компьютеров в котором такт процессора не требуется синхронизировать с видеочастью. Потому в РК ставить другой процессор просто. И, кстати, это же свойство даёт возможность турбировать просто подав на процессор любой максимально высокий такт. В ИРИШЕ ~120 микросхем. Ясно, что удобнее экспериментировать на более простом компьютере (где микросхем всего 29, а если заменить ОЗУ на 62256 останется 22).

Интересно поставить в РК86 любой скоростной процессор. Например, Z80 на такте всего 8-10 МГЦ, позволяет написать эмулятор РК86 (причём это проще, чем на ОРИОНЕ, т.к экран визуализировать не надо), который позволит использовать игры РК86, без необходимости их конверсии. Ещё лучше 65С02/65802 на такте 15-25 МГЦ, что эквивалентно Z80 на такте 30-50 МГЦ. Кстати, имеющийся у меня 8088 был ещё в 1993 проверен в XT-Турбо на такте 10 МГЦ. Хотя думаю, что Z80 на том же такте будет раза в 1.5 быстрее, чем 8088, а тем более HD64180 (или Z180), который при том же такте быстрее, чем Z80 за счёт меньшего числа тактов команд.

К тому же пока смущает отсутствие ЯВУ генерирующего код 8088, тогда как для КР580/Z80 выбор ЯВУ большой. Хотя при применении 8088 отпадает проблема DOS - с помощью конвертора можно за час конвертировать CP/M-80 в CP/M-86.

Вообще программировать для полноценного 16-ти разрядного CPU намного проще. Потому даже делали программное моделирование 16-ти разрядного процессора на 8-ми разрядном.

В частности, 6502 неудобный, т.к вообще не имеет 16-ти разрядных регистров и 16-ти разрядной арифметики. Потому для 6502 было написано несколько компиляторов и интерпретатор 16-ти разрядного процессора (и он даже встроен в ПЗУ Aplle-II+). Называется псевдомашина Sweet-16.

Удобство в том, что программист пишет программу на ассемблере мифического 16-ти разрядного процессора, в котором есть нормальная арифметика, что снимает необходимость "трахаться с 6502". А компилятор на выходе выдаёт код для реального 6502.

Узнав об этой идее, я хотел в начале 90-тых написать кросс-компилятор DEC-ассемлера, чтобы на выходе он давал код для КР580, но знаний и опыта не хватило.

Можно попробовать написать компилятор ассемблера 8088 выдающий на выходе код для КР580. Здесь плюс не только в том, что программируешь для реального РК86 на ассемблере 8088, но и можно предварительно отлаживать программы для РК86 с процессором 8088 не имея такой машины реально.

Alekcandr wrote:
Ну не знаю. 8080 и 8086 - это как небо и земля.

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

Ассемблер 8088 неудобен из-за отсутстствия условных CALL, RET и полноценных условных переходов. Потому я сразу же написал макрокоманды делающие такие команды. Это оказалось удобно и привычно.

Потому поставив в РК86 такой процессор можно программировать как для КР580, прогоняя КР580-исходник через конвертор. Или можно даже написать прямой ассемблер выдающий из КР580-исходника на выходе коды 8088. В этом ассемблере можно реализовать модель развитого КР580, в котором есть всё, что имеет КР580 плюс еще несколько 16-ти разрядных регистров с полноценной 16-ти разрядной арифметикой и индексный регистр IX или IY, что улучшает удобство программирования. То, что код 8088 не намного больше по объёму, чем код КР580 очень удачно (а например, с 32-х разрядным процессором 68008 были бы сложности из-за в разы большего объёма кода).


Last edited by barsik on 02 Jun 2018 09:27, edited 2 times in total.



02 Jun 2018 07:55
Profile
Maniac

Joined: 18 Nov 2013 15:15
Posts: 209
Location: все оттуда ;)
Reply with quote
barsik wrote:
Да, это продолжение той темы. Я там недавно сделал один пост, где написал, что у меня есть конвертор исходников, который позволяет без особого напряжения и гигантских трудозатрат адаптировать для РК86 на 8088 антикварные игры РК86. С тех пор я обдумываю идею поставить в свой РК86 процессор 8088 или 8086 (имею их оба). Но сейчас потерял эту тему и модератору лучше перенести последние посты туда.

Это всё ради игр от РК ? Или для чего то более серьёзного ?
Зрение не жалко на таком ТВ выводе ?

Мне кажется проще сделать компьютер на ISA платочке и все интерфейсные вещи вынести на стандартный PC.

barsik wrote:
Интересно поставить в РК86 любой скоростной процессор. Например, Z80 на такте всего 8-10 МГЦ, позволяет написать эмулятор РК86 (причём это проще, чем на ОРИОНЕ, т.к экран визуализировать не надо), который позволит использовать игры РК86, без необходимости их конверсии. Ещё лучше 65С02/65802 на такте 15-25 МГЦ, что эквивалентно Z80 на такте 30-50 МГЦ. Кстати, имеющийся у меня 8088 был ещё в 1993 проверен в XT-Турбо на такте 10 МГЦ. Хотя я думаю, что Z80 на том же такте будет раза в 1.5 быстрее, чем 8088, а тем более HD84180 (или Z180), что ещё быстрее, чем Z80 за счёт меньшего числа тактов команд.

Может забавно было применить процессор, который умеет выполнять коды i8080 и переключаться на выполнение кодов i8088 ? Это NEC V20 если мне не изменяет память ?

barsik wrote:
К тому же пока смущает отсутствие ЯВУ генерирующего код 8088, тогда как для КР580/Z80 выбор ЯВУ большой.
*пытаясь удушить язвительность и шутки про отключение от Гугла*
Ну уж для i8086\8088 различных реализаций ЯВУ на порядки больше чем для i8080.

barsik wrote:
Хотя при применении 8088 отпадает проблема DOS - с помощью конвертора можно за час конвертировать CP/M-80 в CP/M-86.

Легко доступны оригинальные исходники, без извращщений и переносом asm кодов с 8080 на 8088.
Вот для примера:
http://www.nostalgia8.nl/mirrors/cpm86/files.htm

barsik wrote:
Программист пишет программу на ассемблере мифического 16-ти разрядного процессора, в котором есть нормальная арифметика, что снимает необходимость "трахаться с 6502". А кросс-компилятор на выходе выдаёт код для 6502.
Программисты пишут под конкретные платформы и задачи. Нет тут ничего мифического.

barsik wrote:
Я хотел в начале 90-тых написать кросс-компилятор DEC-ассемлера, чтобы на выходе он давал код для КР580, но знаний и опыта не хватило.

barsik wrote:
Можно попробовать написать компилятор ассемблера 8088 выдающий на выходе код для Z80. Здесь плюс не только в том, что программируешь для реального РК86 на ассемблере 8088, но и можно предварительно отлаживать программы для РК86 с процессором 8088 не имея такой машины реально.

Это всё зачем ?!?!?!?
Если нужно в системе аппаратнозависимый кусочек, о его придётся написать на ассемблере того процессора, которые применен в этой платформе !
Остальное проще написать на С и скомпилировать.

P.S. Что то там в Ркашке в связке процессора/контроллера ПДП и добавленного аппаратного регистра было хитрое ;)
Оно точно перенесётся на 8088 ?


02 Jun 2018 08:45
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Предлагаю перенести последние сообщения из этого топика перенести сюда и продолжить эту тему уже здесь.
Тема создания ПК аналогичного РК-86, но на i8088 и i8086 весьма интересная. Вся проблема упирается в то, где взять софт, но при наличии конвертора и энтузиастов, кто сможет занятся конверсией есть смысл продолжить тему. При наличии конвертированного монитора РК в асм 8086 этот монитор можно отладить в эмуляторе b2m.(to barsik - конвертированные исходники можно выложить?) Дальше можно запустить схему в протеусе, а затем и собрать в реале... В протеусе 8086.dll существует, хотя и с глюками :(. Есть большое желание сделать свою dll :), но это на оочень далекое будущее...
Для начала надо обдумать карту адресного пространства и собрать конфигурацию в b2m.


02 Jun 2018 09:04
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Что такое РК86 на ххх ? Каким требованиям он должен отвечать, чтобы считаться РК86 ?


02 Jun 2018 11:40
Profile
Doomed
User avatar

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

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

А рэтро программирование (как и рэтро железо) просто и понятно. И доступно каждому, особенно на ассемблере. Несколько часов на изучение системы команд CPU и можно начать писать программы.

Своя железка на CPU 8088 даст почувствовать байты. Когда программируешь для PC с байтами даже не имеешь дела. Объём кода не волнует. И даже не волнует оптимизация по скорости. Т.к из-за введения кэшей и мультиконвейров на современных процессорах экономия на машинных тактах стала бессмысленной. Например, на 8086 скорости двух фрагментов отличаются по времени прогона в 2 раза, а на Пентиуме разницы вообще нет.

На ассемблере 8088 я уже программировал в 90-тые.. Потому 8088 меня и не особо привлекает (хотя нет особой разницы в том, каким процессором заниматься). К тому же для 8088 программировать слишком легко, для более качественного напряжения мозга лучше самые убогие процессоры 6502 и 6800. Но в железе и в байтах своя железка позволит хорошо разобраться.
VGrad wrote:
Зрение не жалко на таком ТВ выводе ?
У меня на плате РК счётчик 155 ИЕ4 заменён на 155 ИЕ5, отчего фонт на 30% более качественный, шириной не 6 пикселей, а 8 пикселей (не 384 точки в линии растра, а 512). Это на PC я порчу зрение, т.к там размеры букв в разы меньше.
VGrad wrote:
Может забавно было применить процессор, который умеет выполнять коды i8080 и переключаться на выполнение кодов i8088 ? NEC V20.
В этом нет работы для программиста-любителя. То же самое получается, если поставить два процессора. Кстати так и делали (я мечтал поставить в XT процессор Z80, но ума не хватило). Это было важно в начале 80-тых, когда CP/M-программ было больше.

Но в основном V20 (и V30) вошли в моду уже в конце 80-тых и не для CP/M, а для для целей апгрейда XT, т.к были скоростнее. Прогон 8080-программ тогда уже никого не интересовал.

Но раз они pin-compatible with Intel 8088, то какая разница, что ставить? Если удастся достать V20, то отлично. Это, кстати, более скоростная альтернатива 8085-му по замене КР580 на более скоростной, т.к 8080 в скоростном варианте на 4 МГЦ это винтажный раритет и стоит дорого.
VGrad wrote:
Ну уж для i8086\8088 различных реализаций ЯВУ на порядки больше чем для i8080
Конечно. Вопрос в том как получить маленький код странслированной программы. Т.к компиляторы в лучшем случае транслируют для MSDOS, то к коду программы добавляется интерфейс с MSDOS, что увеличивает объём кода на десятки килобайт. Что толку от крутого компилятора, если он добавит к коду программ 50 кб для интерфейса с Windows?

CP/M компиляторы ЯВУ прибавляют к коду всего 2-3 кб, а для BDS C вообще есть исходник RUN-тайм библиотеки и можно выкинуть всё, что относится к CP/M и вставить свой интерфейс с подпрограммами ПЗУ F800. Нужен очень древний Си или Паскаль для MSDOS V1.0 с встроенным ассемблером (INLINE) и желательно с исходником RUN-тайм модуля и подробной документацией как компилировать программы не требующие DOS и даже для ПЗУ.
VGrad wrote:
Легко доступны оригинальные исходники CP/M-86
В этом есть смысл только, если есть задумка использовать компиляторы для CP/M-86. CP/M-86 использует ROM-BIOS IBM PC, - во всём этом долго разбираться, проще и быстрее конвертировать старую CP/M или другую DOS для КР580, т.к там всё (в смысле подпрограммы низкого уровня) уже написано.
VGrad wrote:
Программисты пишут под конкретные платформы и задачи. Нет тут ничего мифического.
Любой ЯВУ тоже можно считать мифической псевдо-машиной. CISC процессор для каждой команды исполняет микропрограмму. Если есть компилятор с языка более развитого ассемблера, пусть и мифического процессора, то для него команды КР580 являются микрокомандами. Если есть компилятор ассемблера в котором, кроме команд КР580 есть умножение, деление и другие команды которых нет в реальном КР580, то использование такого компилятора эквивалентно установке в компьютер такого процессора и существенно упрощает программирование.
VGrad wrote:
barsik wrote:
Можно написать компилятор ассемблера 8088 выдающий на выходе код для КР580. Здесь плюс... в том, что... можно предварительно отлаживать программы для РК86 с процессором 8088 не имея такой машины реально.
Это всё зачем ? Если нужно в системе аппаратно-зависимый кусочек, то его придётся написать на ассемблере того процессора, которые применен в этой платформе ! Остальное проще написать на С и скомпилировать.
Так вообще весь код для микропроцессоров аппаратно зависимый. Это только P-код Паскаля независимый.

Ассемблер моделирующий регистры 8088 в ОЗУ и заменяющий отстутствующие команды макроподстановкой это что-то среднее между ЯВУ и реальным ассемблером (в котором каждая строка одна маш.команда) и эффективнее, чем Си, потому PL/M в ~5 раз эффективнее Си по объёму кода и скорости.
VGrad wrote:
Что то там в Ркашке в связке процессора/контроллера ПДП и добавленного аппаратного регистра было хитрое. Оно точно перенесётся на 8088 ?
Вообще ВТ57 должен работать с портами, хотя ВГ75 в РК стоит в области ОЗУ. Потому возможны какие-то проблемы, если есть системный контроллер. Возможно потому, мне и не удалось 30 лет назад в РК поставить ВК28.


Last edited by barsik on 06 Jun 2018 20:24, edited 7 times in total.



02 Jun 2018 11:52
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
newold86 wrote:
Что такое РК86 на ххх ?

Аббревиатура РК расшифровывается как Радиолюбительский Компьютер, разве нет? :ewink:
newold86 wrote:
Каким требованиям он должен отвечать, чтобы считаться РК86 ?

быть как можно простым для повторения его радиолюбителем...изначально в 1986 году, а теперь на КР1810ВМ86 :mrgreen:

А по существу, почему бы не сделать максимально простую обвязку для ВМ86(и уж тем более ВМ88) для поиграться с этим процессором используя наработки от РК-86? Будет простой стенд для изучения х86, который и к телевизору можно подключить.

Для затравки, во вложении конфиг для b2m, которому лишь нужен правильный РОМ-монитор.
(нужен перетранслированный монитор от РК в коды х86...)


Attachments:
Radio-86RK8086.zip [691 Bytes]
Downloaded 279 times
02 Jun 2018 12:09
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 219 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7 ... 15  Next

Who is online

Users browsing this forum: No registered users and 6 guests


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

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