По адресу 23840 находится трёхбайтовая системная переменная TR-DOS, в которой хрянятся первые три символа введенной строки. Набираем простую программу:
10 PRINT PEEK 23840
20 PRINT PEEK 23841
30 PRINT PEEK 23842
Входим в TR-DOS, сохряняем программу на диск:
SAVE "a" LINE 10
Запускаем программу из TR-DOS:
RUN "a"
Видим на экране:
247
34
97
где 247 код команды RUN, 34 — кавычка, 97 — a (RUN "a).
Снова заходим в TR-DOS, запускаем программу:
LOAD "a"
Видим на экране:
239
34
97
где 239 код команды LOAD, 34 — кавычка, 97 — a (LOAD "a).
Эврика!
Снова заходим в TR-DOS, переименовываем программу "a" в "boot":
NEW "boot", "a"
Запускаем:
RUN
Видим на экране:
247
34
98
где 247 код команды RUN, 34 — кавычка, 98 — b (RUN "b)
Снова заходим в TR-DOS, запускаем:
LOAD
Видим на экране:
247
34
98
где 247 код команды RUN, 34 — кавычка, 98 — b (RUN "b)
Ой! А почему 247, а не 239, мы же LOAD набирали? И вообще что за "b, мы вообще не набирали этого? А потому что команды запуска бута "без параметров" (просто LOAD, RUN, POKE, PEEK) трансформирутся интерпретатором TR-DOS в RUN "boot". Вот такой вот облом.
Но если не лень набирать полное имя (мне точно лень) хотя бы из одной буквы, то всё будет ровно, по RUN "a" запустится ZYX, по LOAD "a" запустится CONVER:
10 IF PEEK 23840=247 THEN RANDOMIZE USR 15619: REM : RUN "ZYX"
20 IF PEEK 23840=239 THEN RANDOMIZE USR 15619: REM : RUN "CONVER"




Ответить с цитированием