Шикарная идея для чтения программ с большим потенциалом. Спасибо!
В то же время возможны проблемы с раскраской текста прямо в PRINT
Для примера вот накалякал от балды снапшот :-)
https://files.fm/u/rsqyy2yp
Шикарная идея для чтения программ с большим потенциалом. Спасибо!
В то же время возможны проблемы с раскраской текста прямо в PRINT
Для примера вот накалякал от балды снапшот :-)
https://files.fm/u/rsqyy2yp
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Вообще не отображать, кроме строк куда идет переход. Но, боюсь, это уже не влезет в ПЗУ..
- - - Добавлено - - -
В режиме редактирования в кавычках высвечивать реальные цвета, а в режиме просмотра в кавычках писать код цвета. Имхо, это будет универсальным решением, иначе будет непонятно откуда взялись эти цвета на экране (при работе программы), а это удобный способ расцветить вывод. (мы исходим из того, что это ПЗУ стоит постоянно -- если же его переключать с обычным, то вопрос снят сам собой).
а зачем двоеточия с двух сторон от THEN в операторе IF?
Нужна утилита, которая бы оптимизировала бейсик. Т.е. утилита, которая бы в программе все нули заменяла на NOT PI, все двух-трёхзначные числа на что-то типа CODE "o" (вместо o любой символ или токен). Все прочие числа обрамляла бы в VAL "число".
1=SGN PI
2=PI-SGN PI
3=PI
4=PI+SGN PI
5=?
6=PI+PI
36=PI^PI ну и т.д., в том числе можно юзать синусы, косинусы и т.п. корни.
Но утилите нужно указывать диапазоны строк, где будет произведена оптимизация, потому что не во всех строках нужна такая оптимизация, ибо она крадёт скорость у и без того тормознутого во всю голову бейсика.
Куплю корпус и материнку от Spectrum +2/+3
такие утилиты есть (только я названия сходу невспомню).
вот пример такой оптимизации
http://www.worldofspectrum.org/infos...cgi?id=0015662
Последний раз редактировалось goodboy; 08.05.2018 в 11:31.
ZX_NOVOSIB, а можно подробнее раскрыть смысл такой оптимизации?
Гаррий, Легко:
Цитата из книжки про бейсик:
Существенный недостаток ZX Spectrum — относительно малый
объем свободной памяти (около 40 килобайт). А тут еще интерпре-
татор Бейсика «транжирит» память: под запись любого числа ин-
терпретатор отводит 6 ячеек памяти независимо от размера числа.
Под каждый символ отводится 8 ячеек памяти.
** Более подробно о подключении альтернативных шрифтов см. [1].
Даже если это просто единица или ноль. Вот и приходится про-
граммистам, работающим на Бейсике, изощряться, чтобы втис-
нуться в узкие рамки памяти Speccy.
Прежде всего надо расширить область памяти, отведенную для
работы бейсик-программы. Границы, в которых может размещать-
ся программа с переменными, определяются компьютером, но мо-
гут быть изменены. Старший адрес памяти, разрешенный к ис-
пользованию интерпретатором Бейсика, хранится в системной пе-
ременной RAMTOP (23730/31). Стандартно он равен 65367. Но
если программа не вмещается, его можно увеличить до предела —
до 65535*. Для этого нет необходимости записывать новое значе-
ние RAMTOP с помощью РОКЕ. Изменить RAMTOP можно с по-
мощью специально предназначенного для этого оператора CLEAR с
параметром 65535. Правда, CLEAR к тому же очистит все перемен-
ные, массивы, выполнит операторы CLS и RESTORE, вообще подгото-
вит программу к новому пуску.
Если и после перемещения RAMTOP не хватает памяти, при-
дется применять более изощренные методы.
Приведем несколько самых распространенных способов ,сжатия
бейсик-программ. Хотя в этой области нет предела для фантазии.
Во-первых, надо свести к минимуму длину имен всех числовых
переменных. Если их меньше, чем букв в алфавите, то все сделать
однобуквенными.
Памятуя, что числовые константы занимают много места, не
помешает самые часто используемые из них заменить на перемен-
ные. Надо только единожды в начале программы присвоить им
требуемые значения.
Целые числовые константы выгоднее записывать как символь-
ные и помещать их «под» функцию VAL. К примеру, операторы
LET а=5 и LET a=VAL "5" тождественны, однако второй оператор
занимает в памяти на две ячейки меньше (но, следует учесть,
работает медленнее).
Для сокращения объема памяти, занимаемого программой, бы-
вает полезно вместо числовых массивов использовать символьные.
Ведь под каждый элемент числового массива, независимо от того,
что в нем хранится, отводится по пять ячеек памяти, в то время, как
под элемент символьного массива отводится лишь одна ячейка.
Преобразовать же символьную константу в число можно с по-
мощью той же VAL.
И, напоследок, парочку «хитростей». Например, вместо нуля,
который, как и любое число, занимает в памяти 5 байт, можно
записать просто BIN, либо NOT PI. Число «пи» отлично от нуля, и это
главное, а логический оператор NOT, по определению, превращает
его в ноль. Внешне получилось длиннее и мудреней, но в памяти,
тем не менее, такая запись займет лишь две ячейки. Вывернув-
шись, можно «смоделировать» и единицу. Например, записав
NOT BIN либо SNG PI.[свернуть]
Куплю корпус и материнку от Spectrum +2/+3
not pi, не?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)