|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Last visit was: 15 Jun 2024 15:37
|
It is currently 15 Jun 2024 15:37
|
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: 22879 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: 22879 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: 1388 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: 22879 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: 22879 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: 1388 Location: Abakan
|
Может изначально создавать пустую строку, а потом в цикле загонять туда код через CHR$(n)?
|
07 Apr 2017 19:04 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22879 Location: Silicon Valley
|
ну тогда проще в цикле сразу в нужную память загонять
|
07 Apr 2017 20:22 |
|
|
jdigreze
God
Joined: 02 Jan 2006 02:28 Posts: 1388 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 |
|
Who is online |
Users browsing this forum: No registered users and 10 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|