С этими микроконтроллерами от
GeneralPlus/SunPlus есть один момент довольно тонкий.
Если почитать даташиты на них, а они практически все есть в доступе, то документы эти весьма
не подробны, многие особенности в них опущены.
Я полагаю, что это связано вот с чем - микроконтроллеры от
GeneralPlus/SunPlus предполагают прошивку
масочного ПЗУ, т.е. софт пишется каждый раз под одно конкретное изделие, которое должно выпускаться
приличным тиражом, иначе нет смысла с ним заморачиваться.
Я почитал некоторые западные технические форумы, типа нашего, где посетители ковыряются-таки
в этих изделиях от
GeneralPlus/SunPlus, и там они пишут, что можно получить дополнительную информацию
от
GeneralPlus и даже
development board, но при этом прийдется подписать
Non-Disclosure Agreement (
NDA) - документ об ограничении распространения этой информации.
При этом категорически не советуют подписывать
NDA, если вы собрались позаниматься всем этим сугубо
с
homebrew целями. Какие будут репрессии - я не стал читать, но скорее всего это будет финансовая
сторона вопроса.
А так-то, в каждом изделии действительно есть
GeneralPlus Test Program - я полагаю это их
тест-мониторная система, в которой имеются хорошо разработанные подпрограммы работы с их железом.
$C000-$C7FF - это
2048 байт - аккурат достаточно для приличной тест-мониторной системы.
Вот только подробностей в мануале нет.
Но, к примеру, у упомянутого здесь микроконтроллера
GPLB38B есть входной пин
TEST.
Я думаю, что при активном логическом уровне на нем, изделие на основе
GPLB38B как раз и входит в свою
тест-мониторную систему.
Девушка, которая хачила Тамагочи, этот код как раз сдампила и декомпильнула.
https://www.kwartzlab.ca/2013/05/generalplus-test-program/И обнаружила, что есть функция (14), которая позволяет загрузить внешний код
и передать ему управление. Для этого и ОЗУ достаточно -
1216 байт.
Это далеко до полноценного компьютера, но поиграться можно,
Возняк вон целый
Woz-monitor упихал в 256 байт.
Ну и на странице софта разработчика от
GeneralPlus http://www.generalplus.com/1LVlangLNxxSVyySNservice_n_support_dесть пакет разработки с примерами
G+IDE for 6502 Example Code.
Я думаю, там есть что подсмотреть в плане программирования этих микроконтроллеров.