
Сообщение от
Ewgeny7
поделитесь своим TINY BASIC-ом
Хорошо, но только через несколько дней. Мне требуется время, чтобы самому посмотреть, что это такое. Надо убрать несуразности и составить хотя-бы список операторов с параметрами (документации никакой нет и не было, и потому разбираться надо по исходнику). И главное в таком виде он абсолютно неприменим, т.к был сделан для экзотической ДОС ОРИОНА в банке 2 (а также использует RST, что нет в стандартной CP/M). А ДОС банки 2 для эмулятора нет. Их исходники для реального НГМД есть, но долго переделывать для эмулятора (не особо долго, но глупо тратить несколько часов, только ради того, чтобы посмотреть бейсик).
Поэтому хочу переделать этот бейсик так, чтобы его можно было использовать на любой CP/M. Кроме того, я могу сделать бездисковую версию: для чего CONIN/CONOUT надо переадресовать на стандартные входы F800 отчественных 8-ми разрядок и удалить дисковые операторы LOAD, BLOAD, SAVE, BSAVE (предполагаю, что LOAD грузит программу в токенах в буфер, а BLOAD вообще любой код на любой адрес), т.е убрать интерфейс с CP/M.
И встроить вместо этого ввод с МГ-ленты той-же командой LOAD в формате РК (что потребует 10 минут труда, т.к нужные фрагменты "под рукой") и СПЕЦИАЛИСТА или ОРИОНА, что потребует намного большего труда, т.к потребуется их предварительно "вырезать" из их ROM-BIOS. Всё это несложно (не более часа труда). Но проверить работу с МГ-лентой в реале я не смогу. Нет магнитофона, да и некогда возиться с реальным железом.
Могу ещё сделать "дисковую" версию для квазидиска ОРИОНА. Т.е для ОРИОНА в банке 0 или для РК86 у которого есть подпрограммы F836/39 в ПЗУ F800. По работе с файлами это будет аналог ORDOS BASIC ОРИОНА (не по работе операторов, это как раз отличается, а по месту где хранятся файлы и их формау). Это тоже не сложно, т.к для всего этого особо программировать, и даже думать, не надо. Надо просто добавить куски из других программ и странслировать. На IBM PC это делать намного удобнее, чем на ОРИОНЕ, где трансляция и линковка средней программы отнимала 5 минут и более, при непрерывном лязге дисковода. В то время как на PC трансляция это всего пол секунды.
Кроме того, я обнаружил, что TINY BASIC не закончен. В частности, не реализованы некоторые операторы. Может быть я смогу что-то добавить, но скорее всего нет. Т.к пока я готов сделать только косметические работы, что не требует никакого ума и отнимет мало времени. Не релизованы лишь дополнительные операторы, не входящие в стандарт TINY. А операторы TINY BASIC из прототипа все реализованы, там вообще всё было примитивно (например, IF не имеет ни THEN, ни ELSE)
Код:
XDEFUSR:
XARRAY:
XBSAVE:
RST 18H
defb 13,10,'NOT IMPLEMENTED',0
XEND:
JP OK