Книгу писали: Болдачев А.В., Ларченко А.А., под редакцией Родионова. И все эти заслуженные мужи всё-таки допустили ляп с BIN'ом. BIN естественно не годится, NOT PI рулит.
Вид для печати
Причем, BORDER NOT PI выполняется почти в два раза медленнее, чем BORDER 0, что визуализировано на этом скриншоте:
https://s17.postimg.cc/pscsw4q2j/border.png
eugeniusz, если сделать вариант Вашей программы для загрузки в ОЗУ?
Да, это займет место в ОЗУ, но зато можно будет сделать отступы для блоков FOR-NEXT и IF-THEN.
Добавить команды редактирования.
Пользователи реалов смогут легко воспользоваться сервисом редактирования, предоставляемым Вашей программой.
Типа как в ZXED Spectrum Toolkit:
Скрытый текст
Код:A ALTER - searches for and then replaces a string of
characters. You specify both the original
and the new string, and the range of line
numbers where the changes are to be
made. See also VERIFY below.
B BYTES - tells you how much free memory space is
available for your program/variables.
C COPY - duplicates lines of your program. You
specify the range of lines to be copied
and where they are to be placed.
D DELETE - deletes a block of lines from your
program. You specify the range of lines
to be deleted.
F FIND - finds a string of characters. All lines
containing the specified string are listed
to the screen.
H HELP - gives a menu of the options available
along with a brief description of the
Function.
L LINE - returns the address of a specified line. This
address is the first character of the line.
M MOVE - as for COPY, except that the original lines
are DELETED thus effectively moving
lines from one part of your program to
another.
P APPEND - appends a specified string to lines.
R RENUMBER - renumbers the line numbers of your
program, including GOTO and GOSUB
references. Will also amend the references
for LIST, LLIST, RESTORE, RUN and
SAVE ... LINE.
You specify the start and end line
numbers, the new base line number and
the increment step.
S SEQUENCE - gives AUTO LINE NUMBERS, which is
very useful for entering long programs.
You specify the starting line number and
the increment.
V VERIFY - when ON, will list all lines containing the
string replaced by ALTER. When OFF,
no listing is produced, just the total
number of changes made in confirmation
of successful amendments or otherwise.
[свернуть]
Переделать, наверно, можно ПЗУ-128. Такие переделки уже были - Basic-128 заменялся на коммандер.
Скрытый текст
Можно было бы оставить дизайн меню, пункты указать:
128 TR-DOS
48 TR-DOS
48 BASIC
48 BASIC+
Остальное место использовать как электронный диск.
При выборе 48 BASIC+ в ОЗУ копируется программа, расширенного редактора и подключается ПЗУ BASIC 48.
При простом выборе пунктов TR-DOS, происходит переход в ДОС, при, например, нажатой клавише SYMBOL SHIFT из ПЗУ в ОЗУ загружается и запускается какой-нибудь бут (типа односекторного) или лучше с возможностью выбора диска.
[свернуть]
1. Дизасмить код Laser Basic, смотреть как сделано там. Я баловался таким году в 1999.
2. Попробовать найти тред про это же самое здесь. Я натыкался случайно и совсем даже не помню по каким ключевым словам искать.
Идея проста. В ОЗУ перекидывается MAIN_LOOP и код нескольких операторов, которые возвращаются не по ret, а прямым переходом в MAIN_LOOP. Патчатся адреса, и вуаля - интерпретатор в ОЗУ. Дальше в нем можно менять что угодно. ПЗУ остается фирмовым. Но отжирается место в ОЗУ. ИМХО, в пределах 3-5 килобайт.
добавлю хочуху из bogobasic—
3. Добавлено три новых команды в бейсик:
! - вызов TR-DOS (эквивалентно RANDOMIZE USR 15616).
@ - исполнение команды TR-DOS из Бейсика (эквивалентно RANDOMIZE USR 15619:REMНапример, можно в бейсике быстро набрать "@ CAT" - будет каталог. Или "@ RUN "ZEUS" - будет, соответственно, запущена программа ZEUS.
Уже есть такое :)
http://zx-pk.ru/threads/12660-iso-ro...tml?highlight=
у меня все это не складывается)
немо иде в этот прекрасный мир не вписывается