Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да это ты делай как хочешь, просто умные люди придумали функцию ADDR(X), чтобы не выёживаться, а LET перевели на положение атавизма, чтобы писать просто, вот так: Х = 3.14159. Поэтому на старте топика никто про убогий Sinclair BASIC и не говорил: А мне просто стало интересно, в каких ВАСЮКАХ еще есть этот ADDR(A$) - да практически во всех, с которыми я лично сам работал на "Специалисте", хотя я им и не пользовался тогда. А поскольку они "дратые" с "РК-86" и "Микроши" - значит почти на всех подобных ADDR(A$) должен быть.
_________________ iLavr
|
17 Apr 2016 07:18 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
Ну во-первых они "дратые" у старика Билли Так что ADDR(X) - это изобретение Микрософта... P.S. Форум вообще-то "ZX Spectrum" называется...
|
17 Apr 2016 07:27 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну и? Уважаемые джентельмены! Должен Вам с прискорбием сообщить, что у убогого Sinclair BASICот "ZX Spectrum" весьма удобного оператора ADDR(X) - НЕТ! Видимо потому, что писал его не "старик Билли", а какой-то другой "старик"... P.S. Ну что, Shaos, всё ништяк с "ZX Spectrum" ?
_________________ iLavr
|
17 Apr 2016 07:43 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
Угу...
P.S. Подкорректировал нашу высокоинтеллектуальную беседу ради эстетики...
P.P.S. Встречный вопрос - а можно ли у старика Билли в A$="..." писать не-буквы? т.е. непечатные символы и коды с >=128? например через бекслеш как в нормальных языках (ну это чтобы полноценно иметь в строковых переменных подпрограммы в любых кодах из всего диапазона значений 0..255)
|
17 Apr 2016 07:59 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
Ага, совсем даже не старик Билли, который на тот момент был ещё вовсе даже не старик. Функция без сомнения зачОтная и весьма полезная, а вот насчёт атавизма весьма спорно, в спецтруме оно: во1 одной кнопкой набирается , а во2, из-за этого от оператора в усмерть токенизированной системе было проблематично избавиться. Я уж умолчу наcчёт того, что в дальнейших реализациях васюков внезапно появляется ещё и оператор SET. Пожалуй, да, так и есть. Точнее сказать - помесь васюка и ОСи.
|
17 Apr 2016 08:49 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну, это смотря в каком спецтруме... в спецтруме-128 - вряд ли... Да все Васюки - в усмерть токенизированные, тем не менее LET был оставлен чисто для совместимости с прошлым: можно писать его, а можно и не писать... Замечу также, что ОС "Sinclair BASIC", известная также как Монитор-16, занимает 16К памяти, а ВАСИК для "Специалиста", также токенизированный, имеющий и автонабор, и альтернативу набора с клавиатуры, занимал всего 8К. Ну ладно - добавим 2К системной ПЗУ = 10К. И я бы не стал уж так демонизировать это понятие "токенизированный", это всего лишь замена ключевых слов числами. Вот, к примеру, таблица "токенов" от ВАСЮКА "Микроши": Ей просто соответствует таблица переходов на соответствующие функции, и не более того. А код токена, если я не забыл, - это его номер в этом связанном списке, который разделяют по последнему символу, б ольшему 7Fh. Если есть исходник ВАСЮКА, то исправить то, что хочется, довольно нетрудно.
_________________ iLavr
|
17 Apr 2016 11:32 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
128-й спектрум - это неудачная шутка испанских разработчиков и потом там есть режим 48К P.S. Не забудь, что в ПЗУ спектрума ещё и знакогенератор сидел и ещё место было, которое например в том же Урале использовали под русский шрифт...
|
17 Apr 2016 11:55 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Это сугубо твоё личное мнение, которое решил возвести в абсолют один недалекий посетитель ЗетИкс.ПеКа. А я, к примеру, с этим не согласен, хотя по большому счету мне это пофигу...
_________________ iLavr
|
17 Apr 2016 11:59 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Неожиданно пришлось сделать очень похожий опыт, и ответ получился вроде как отрицательным... Хотя, может я чего и напортачил... но делал вот так: В теле Васик-программы объявил текстовую переменную заведомо большей длины, чем подпрограмма на ассемблере. A$="123456789 ... 0123456789" Вышел из Васика и шестнадцатиричным редактором занес в строку "123... код ассемблерной программы. Снова запустил Васик, на запрос New?> ответил No - т.е. текст программы должен оставаться неизменным. По LIST и RUN Васик падает... Ну по LIST - понятно... непечатные символы портят вывод и Васёк запутывается в листинге. А вот почему падает по RUN ... пока никак не соображу....
_________________ iLavr
|
06 Apr 2017 17:11 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
Фигово
|
06 Apr 2017 18:02 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да я как-то пока полностью не уверен... Во времена "Специалиста" я что-то похожее точно делал... Возможно, я подзабыл как это сделать правильно...
_________________ iLavr
|
07 Apr 2017 05:30 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
Может изначально создавать пустую строку, а потом в цикле загонять туда код через CHR$(n)?
|
07 Apr 2017 19:04 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22589 Location: Silicon Valley
|
ну тогда проще в цикле сразу в нужную память загонять
|
07 Apr 2017 20:22 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1390 Location: Abakan
|
Ну, на том же спектруме можно после добавления в переменную нужного машинного кода удалить строки цикла и всего, что с ним было связано, после чего сохранить программу, и она сохранится с готовой переменной. Но! После этого нельзя делать RUN, только GOTO n, иначе переменная обнулится. Тоже самое касается всяких CLEAR n...
Кстати, при запуске с кассеты, не помню про запуск с диска, но скорее всего так же, делается именно GOTO n, где n - номер строки автозапуска, указанный при SAVE "name" LINE n.
Всем этим порой пользовались при защите программ от просмотра.
|
07 Apr 2017 21:24 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Если мы запихали в переменную программу, то могут быть непечатные символы. Как их потом будет видно (или не видно) по LIST ? Что-то мне кажется для корректности и чтобы ничего не падало, следует коды программы изначально держать в DATA. А вот после RUN первыми инструкциями ВАСЮКА в цикле READ это всё из DATA, и занести в переменую. Хотя... это как-то неуклюже выглядит...
_________________ iLavr
|
09 Apr 2017 15:55 |
|
|