PDA

Просмотр полной версии : [ZX48] SAVE сохраняет бейсик-переменные текущей сессии



SaintTurnip
03.05.2018, 14:50
Оказывается, бейсик-48 сохраняет рабочие переменные. Ух ты. Не знал про это.

Эксперимент.

> 10 PRINT a
> RUN

2 Variable not found, 10:1

> LET a=100
> RUN

2 Variable not found, 10:1

> LET a=100
> GOTO 10

100

> SAVE "test_save"
> (RESET)
> LOAD ""
> RUN

2 Variable not found, 10:1

> (RESET)
> LOAD ""
> GOTO 10

100

> SAVE "test_save2" LINE 10
> (RESET)
> LOAD "test_save2"

100

Выводы:

1) SAVE сохранил текущие переменные сессии
2) RUN стирает переменные перед запуском
3) Автостарт это GOTO 10, а не RUN 10
4) При парсинге TAP-файлов надо вытаскивать и сохраненные переменные

Black Cat / Era CG
03.05.2018, 14:52
Ага хранятся, в книгах это описано :) Поэтому и параметра у Барсик-файла два: длина без/с переменными.

creator
03.05.2018, 15:05
eugeniusz, какие удивительные открытия. ;)

А вот так интереснее:
<RESET>
LET a=10
SAVE "a"
<RESET>
LOAD ""
PRINT a

Программы нет, а переменные всё равно сохранились:

Type Name Length Start Size
--------------- ---------- ------ ----- -----
Program a 0 NONE 6
-----Headerless--block----- 255 6

SaintTurnip
03.05.2018, 15:43
creator, ты видишь программу? и я не вижу. а она есть.

iceoflame
03.05.2018, 17:24
Блин, ну так оно и есть. Например часть бейсик загрузчиков, опираются на сохраненные переменные. И типа если сделаешь CLEAR то все йок, переменные нагнуться. т.е. CLEAR: SAVE "HI", данные о переменных не сохранятся, это вы еще не видели как числа хранятся и почему народ пишет CLEAR VAL "24999".

SaintTurnip
03.05.2018, 17:29
iceoflame, про VAL догадываюсь, хотя именно в этом примере выигрыш невелик.

iceoflame
03.05.2018, 17:32
Ну там где Идет 24499, и в игрушке например 4 файла, и все это нужно еще загрузить с диска, то тогда там каждый байтик на вес золота.

SoftFelix
03.05.2018, 17:36
Всегда перед SAVE'ом Бэйсика делал CLEAR - меньше размер. А при TR-DOS'е на сектор-два меньше записывалось.