Z80 -> PIC
viewtopic.php?t=7636
PIC17C4X в режиме микропроцессора (nedoPC-17)
viewtopic.php?t=8303
и др.
Есть ссылки на уже реализованные проекты:
эмулятор Z80 на PIC
viewtopic.php?t=9278
Мне эта идея также близка, но с одной поправкой - выполнить эмулятор конкретно на одном-двух корпусах PIC16F84.
Во-первых, у меня они в достаточном количестве есть (и как говаривал Наполеон своим артиллеристам - "… всё остальное не имеет значения"


Понятно, что в случае PIC придется создать фактически интерпретатор кодов команд i8080, и в этой связи меня заинтересовали интерпретаторы BASIC Stamp, разработанные как отдельными любителями, так и целыми ассоциациями. В отличие от Паралакса, джентльмены добиваются фактически спортивного результата, упихивая интерпретатор BASIC конкретно в PIC16F84 и не иначе. Среди таких проектов интересны BASIC ST1-64 и BS/4.
BS Club - PIC Interpreters Club
http://webspace.webring.com/people/hu/um_3829/
PIC Micro Controller BASIC Languages
http://www.piclist.com/techref/microchi ... basics.htm
Dontronics - Basic Stamp Divided By Four!
http://www.dontronics.com/bs4.html
И тут мне попался замечательный проект from Tom Napier - “Picaro”.

Я не понял местного юмора, и, возможно, Shaos внесёт ясность:
но джентльмен Tom Napier удачно реализовал прототип интерпретатора кодов команд, близких к набору i8080, на одном корпусе PIC16, что, собственно, он и поставил своей задачей."Since this little computer would be more adventurous than most, I decided to call it “Picaro.” (I was tempted to call it “Picard” but decided I couldn’t afford a fight with Paramount’s lawyers.)",
О подробностях можно прочитать здесь:
http://i.cmpnet.com/edtn/ccellar/e023pdf1.pdf
и взять оригинальные исходники...
ftp://ftp.circuitcellar.com/Circuit_Cel ... DATED!.ZIP
А здесь - копия документа в формате Word, в которой мне пришлось подчистить некоторые выявленные опечатки:
http://sgu-wap.narod.ru/Picaro/Picaro_Controller.doc
ибо, если на заборе написано слово из трёх букв - не верь, там могут быть и дрова.

С учётом того, что кроме, собственно, самогО интерпретатора, Tom Napier упихал в PIC16C56 ещё и тест–мониторную программу, очень похожую на ранний Монитор от "Специалиста", он убедил меня, что i8080-совместимый компьютер в принципе можно реализовать на одном-двух корпусах PIC16F84, поскольку места в памяти программ у Тома еще и осталось!
Схемотехника Picaro весьма проста:

http://sgu-wap.narod.ru/Picaro/Scheme.gif
и это сподвигло меня попробовать девайс в среде 'Протезуса':

http://sgu-wap.narod.ru/Picaro/Picaro.gif
Выяснилось, что отладка интерпретатора, выполняющего интерпретирующую программу - это не фунт изюма, поэтому я вывел на индикаторы текущий адрес интерпретируемого кода, чтобы видеть соответствие между кодами PIC16F84 и программой на псевдо-i8080.
Пришлось также адаптировать коды PIC16C56 к PIC16F84, и на этом этапе выяснились некоторые опечатки в исходниках Тома, которые я и подправил по ходу дела. Не скажу, что кочевряжился очень серьёзно, поскольку всё равно придётся для себя многое переписать и изменить, но тест проходит успешно, и опции все работают корректно, хотя наличие ошибок не исключаю.
Проект 'Протезуса' (6 Pro) выкладываю:
http://sgu-wap.narod.ru/Picaro/Picaro.rar
Рабочий вариант - Picaro_1.DSN (в Picaro_2.DSN я смотрел протокол работы с EEPROM, ибо глючило в одном месте, но вроде подправил.)
Когда всё заработало, ей богу, испытал редкую ностальгию и опустился до удовольствия попрограммировать в кодах под Монитором, благо 'Виндавоз' позволяет сделать это без бумажки, а процесс так напоминает спартанский способ общения с древним 'Специалистом'.

Параллельный интерфейс, вероятно, нужен для отладки программ при общении с инструментальной машиной, а так всё вполне работоспособно через консоль RS-232.
Компиляторов в коды псевдо-i8080 Том не прикладывал, справедливо заметив:
Мне кажется, что Picaro - достойный прототип для создания собственных эмуляторов 8-битных компьютеров, тем паче, что можно начинать не с нуля, а пробовать всё на работающем экземпляре, благо Том не пожадничал исходники, а я внёс тест-программу в EEPROM, так что сразу всё работает, и нет нужды ничего записывать. Хотя можно менять программу с консоли побайтно опцией E Монитора, а также записывать её в память EEPROM директивой U, синтаксис которой несколько непривычен, но работает сугубо так, как написано у Тома. Это позволяет заносить программу через окно консоли методом Copy-Paste строками по 16 байт в HEX-коде, не забывая заканчивать их [Enter]."I do this by hand, which is a strong motivation for keeping the language simple. It would be easy to write an assembler for this language. I didn’t need to myself, and in any case, my software runs on an Amiga and wouldn’t be much use to WIntel users. Perhaps you can fill the gap."
Замечу, что остальные директивы Монитора заканчивать [Enter] не надо, но синтаксис следует соблюдать полностью: адрес - три символа, байт - два символа, регистр - прописные символы латиницы, иначе Picaro не понимает. [Enter] позволяет прервать интерпретацию, как и любую команду, хотя бывает и не так. [Space] в директиве E позволяет пропустить редактируемый байт. Все директивы интуитивно понятны, хотя и приводится их подробное описание.
Надеюсь, материал будет полезным для тех, кто хочет сам замутить эмулятор i8080 на PIC.
PS. Shaos - удали с аплоудера файлы:
http://www.nedopc.org/nedopc/upload/Picaro.bmp
http://www.nedopc.org/nedopc/upload/Picaro0.bmp
http://www.nedopc.org/nedopc/upload/Picaro1.bmp
они меньше по размеру, чем PNG, но .BMP движок не счел за [img]
