Попалась мне по ходу дела тут одна статейка древняя:
Full text of "6502 Assembler in BASIC",
и сразу-то она меня никак не удивила: у многих компьютеров тех времен ассемблер был написан
на
BASIC, ибо
BASIC был зачастую встроенным в ПЗУ языком -
М$ во всю старалась...
Но зацепило мне меня в тексте, что этот "
6502 Assembler" написан на
Hewlett-Packard 2000 series F BASIC ,
и я решил взглянуть, что же за зверь такой -
Hewlett-Packard 2000 F ?
http://www.decodesystems.com/hp2000/#photosПрикольные, кстати, прически у древних "
Адок Лавлейс", а
Hewlett-Packard 2000 F - ну почти
PDP-8 на вид.
Автор в статье пишет об особенностях
Hewlett-Packard 2000 series F BASIC и обещает привести
версию и для
M$ BASIC.
Я не знаю, выполнил ли он своё обещание, но стало мне интересно, что аж на таких древних "холодильниках"
брались за программирование
6502 на ассемблере!
Поэтому я решил оригинал оцифровать и попробовать на
ВАСЮКЕ от
M$.
Здесь оригинал, если приспичит свериться:
Здесь мой OCR оригинала с переводом на русский и довольно прилично
вычищенным текстом исходника на
Hewlett-Packard 2000 series F BASIC :
Если текст исходника загрузить в
M$ QBasic, то так примерно пяток мелких ошибок он находит,
они вычищаются легко...
Но самое неприятное оказалось в структуре файлов последовательного доступа этого самого
Hewlett-Packard 2000 series F BASIC :
На
Hewlett-Packard 2000 series F BASIC, оказывается, можно открыть файл на запись, записать вперемешку
численные и строковые переменные, потом позиционировать на начало и в той же последовательности считать их.
У
M$ QBasic такой фокус не проходит, если
RANDOM ACCESS файл, то запись должна быть фиксированной длины.
Если файл
на запись, то чтобы читать его, надо закрыть и открыть
на чтение что в этом коде
пришлось бы делать постоянно.
Ну и еще один хитрый трюк есть у
Hewlett-Packard 2000 series F BASIC : кроме постоянной метки
конца файла, есть текущая метка. И
BASIC, встретив эту метку передает управление на условленный адрес,
т.е. дописывать в файл можно "как по прерыванию" (так в оригинале написано), безо всяких там
SEEKи прочих финтов с позиционированием, как у
M$.
В общем с наскоку посмотреть прелести
"6502 Assembler in НР 2000 F BASIC" не случилось.
Но поскольку раритет интересный - решил выложить здесь.
Свой вариант из-под
M$ QBasic не выкладываю, т.к. уже сильно "шашкой порубил" пока не пришла
ко мне умная мысль:"
А не почитать ли, что действительно делали файловые команды НР 2000 F BASIC ?"
http://www.decodesystems.com/hp2000/https://www.mrynet.com/hp2000/documentation.html