В пределе можно рассмотреть совсем безумные идеи патча интерпретатора на лету. Если, скажем удастся локализовать код исходных операторов большими кусками, то можно делать отдельные куски "микрокода" команд. Например, делаем BLOAD в ленточной версии BASIC или LOAD DATA в дисковом BASIC 2.5, загружая микрокод команды в интерпретатор на место быстрого набора зарезервированных слов (или какой-другой команды).
Или, cкажем, расширяем оператор SCREEN новыми смыслами на которые по умолчанию стоят заглушки.
Может и правда начать с генерации какого-либо P-кода?
Скажем, в Supersoft C есть т.н. Optimizer - отдельный исполняемый файл C2.COM, основная задача которого - перетолмачивание P-кода сгенерённого компилятором в ассемблерный выхлоп (то что он какой-нить peephole optimization ещё делает-скорее доп. фича).
Этот конкретный P-код хранится в виде текстового файла, так что можно на лету играться. Пример:
Скрытый текст
C65 2
D27 sh_font
D3 DLG_FONT
B9
D27 wn_inactive
C65 2
C1
B9
D27 bm_prompt
C65 2
D3 DLG_INFO
B9
D27 wn_inactive
C65 2
B12
B99
H61 sigterm
C1
B9
D27 textcolor
C65 2
D27 clrscr
D27 sh_csr
C1
B9
D27 exit
C65 2
[свернуть]
Недостаток в том что вот этот конкретный генератор возможно не поддерживает floating point типы данных.
Конечно, придётся разбираться во всех p-кодах, дописывать (использовать) рантайм для операций над типами и т.п.
ЛС-Паскаль уже предлагался, там вроде UCSD p-code, не уверен. Если так, то там стеков гора и быстро на ВМ80 не выйдет.
Возможно уже где-то есть P-код генератор для какого-нибудь абстрактного Бейсика и компилятор P-кода в i8080 c исходниками на C.
Если так, то портануть его на какой-нибудь C для CP/Mи допилить до совместимости с BASIC 2.5 будет чуть проще, хоть и всё равно гора работы.





и допилить до совместимости с BASIC 2.5 будет чуть проще, хоть и всё равно гора работы.
Ответить с цитированием