![]() |
Basic 128 & usr 15619
Всем привет!
Столкнулся с интересной проблемой, может, на форуме пролетало, но не нашел. Может, кому пригодится. Итак, дисковал я ленточную прогу, заточенную под 128К. Прока грузила бэйсиком с ленты блоки кодов и закидывала их на RAM-диск 128-го. Чтобы не испытывать проблем с синтаксисом операторов загрузки/записи на RAM-диск, решил переделать бэйсик-загрузчик в редакторе 128К. Заменил всякие LOAD "" CODE на RANDOMIZE USR 15619: REM: LOAD "NAME" CODE, разбил строки с операторами зарузки, сохранил, запустил, и... "C, Nonsense in BASIC"! Бэйсик после первой строки загрузки был испорчен. Причина тут в том, что редактор BASIC 128 не токеризирует набранные по буквам ключевые слова после REM. А вот TR-DOS при исполнении токенизирует, но не меняет длину строки. В общем, чтобы работал USR 15619, надо либо править строку в 2 приема (REM добавлять после ввода LOAD "NAME" CODE), либо делать это в BASIC 48. Вопрос к гуру: если об этои где-то писалось, не подскажете, где можно почитать еще? |
REM это коменты. так что 128 их не так использует - это нормально. найди 1 отличие между 128 и 48 бейсиком)))
|
Да понятно, что это комменты. Мне интересно почему TR-DOS токенизирует набранные по буквам комманды, но не меняет длину строки.
|
Между прочим, набирать строку работы с tr-dos именно токенами, рекомендовали в книжке ".. для пользователей и программистов" - Ларченко-Родионова (правда, там это рекомендовали с иной целью).
|
Быть может, есть резон поправить эту проблему в модифицированных прошивках TR-DOS? Правда, вариант токенизации с удалением набора символов и правкой длины строки может привести к другим проблемам. Так что, если уж править, было бы здорово заменять первую букву набранного токена на его код, а остальные - на пробел. Ну или вообще избавиться от токенизации.
|
Quote:
Использование токенов, удобно тем, что не нужно "знать" как пишется та или иная команда (также не тратится лишнее время на набор и место в памяти). Логичнее не пользоваться таким "атавизмом", как 128 бейсик. А изменение содержимого любого из ПЗУ может вызвать "несовместимость" ряда программ. Поэтому, мне не совсем понятна причина недовольства текущим положением вещей. |
Quote:
Quote:
Quote:
|
Quote:
|
Quote:
Quote:
|
вспомнился ещё один баг который не позволяет сделать программу короче - это выполнение команды RUN (загрузка кодового блока и его старт с адреса загрузки). точнее один раз RUN можно выполнить, но корректного возврата в бейсик не получится.
|
| All times are GMT +4. The time now is 00:21. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.