PC-01 Lviv
http://pc01.lviv.ua/forum/

Стандартный Basic 2.0
http://pc01.lviv.ua/forum/viewtopic.php?f=22&t=189
Page 2 of 4

Author:  ivagor [ 26 Aug 2012, 06:45 ]
Post subject:  Re: Недостатки и недоработки ПК-01 "Львов"

Quote:
К сожалению обработка LIST в ПЗУ, поэтому загружаемой программой исправить не получится.
Успеваю первым себя поправить. Пуcть и не изящно, но исправить можно. Возможно стоило бы объединить с патчем под z80, но я поленился и просто развел по адресам, чтобы их можно было применять последовательно.
Quote:
Мы как-то уже поднимали вопрос его генезиса в вопросах к Вл. Пуйде, но первоисточник все-таки твердо не установили. Если будет желание, почитайте озвученные соображения.
Трудно спорить с тем, что первооснова почти всех бейсиков для советских 8биток была альтаировская. Но мне кажется, что большинство адаптировали не с первоосновы, а с версий, опубликованных в Радио для Микро80 (те кто начал раньше) и РК86.

Attachments:
BasicListPatchRAM.zip [425 Bytes]
Downloaded 422 times

Author:  liberation [ 26 Aug 2012, 12:06 ]
Post subject:  Re: Недостатки и недоработки ПК-01 "Львов"

Quote:
Возможно стоило бы объединить с патчем под z80, но я поленился и просто развел по адресам, чтобы их можно было применять последовательно.
Все забываю спросить, а в чем суть патча для z80?

Author:  ivagor [ 26 Aug 2012, 12:50 ]
Post subject:  Re: Недостатки и недоработки ПК-01 "Львов"

Quote:
Все забываю спросить, а в чем суть патча для z80?
Не стал смотреть исходник, просто по памяти - в постальтаирских бейсиках есть пара мест, где критично различие в установке флага четности (на 580) и четности/переполнения (на z80). Сначала я городил (для вектора) громоздкие процедуры, потом "позаимствовал" вариант с доработанного (кажется В. Пушковым) орионовского бейсика 2.4.

Author:  liberation [ 26 Aug 2012, 13:05 ]
Post subject:  Re: Недостатки и недоработки ПК-01 "Львов"

Quote:
Не стал смотреть исходник, просто по памяти - в постальтаирских бейсиках есть пара мест, где критично различие в установке флага четности (на 580) и четности/переполнения (на z80).
Дело в том, что Бэйсик для ПК-02 уже адаптировали в 90-е, вроде бы это дело рук Ал.Мамонтова. К своему стыду признаю, что не могу припомнить, где на этом форуме описывал суть доработки... И так вспомнить ничего не могу. Но один момент восстановил. После всех правок размер интерпретатора увеличивался, что приводило к потере работоспособности некоторых особо "хитроумных" программ.

А Ваш патч изменяет размер интерпретатора?

Author:  ivagor [ 26 Aug 2012, 13:22 ]
Post subject:  Re: Недостатки и недоработки ПК-01 "Львов"

Quote:
Но один момент восстановил. После всех правок размер интерпретатора увеличивался, что приводило к потере работоспособности некоторых особо "хитроумных" программ.

А Ваш патч изменяет размер интерпретатора?
Нет, размер не меняется, но зато пострадали два текстовых сообщения, в readme я написал какие. Проверял в прошлом году несколько бейсиковсиких игрушек - работали нормально.

Author:  ivagor [ 26 Aug 2012, 13:43 ]
Post subject:  Re: Недостатки и недоработки ПК-01 "Львов"

Кстати, забыл в загружаемом патче LISTа написать, какие адреса он занимает. Перезалил с дополненным readme.

Author:  ivagor [ 08 Oct 2012, 13:09 ]
Post subject:  Re: Стандартный Basic 2.0

С опозданием лет на 25 можно написать следующую информацию про запуск процедур на ассемблере из бейсика.
Запуск кодовых процедур через LISTадрес-- быстрее и короче, чем USR - не надо делать 2 POKE перед каждым USR, что особенно не круто при регулярном обращении к ассемблерным процедурам (например в цикле и т.п.). Одна особенность - в процедуре, вызванной через LIST нужно при выходе ставить не RET, а JMP 06FBh (наверно можно и по другому, но и через REM работает).

Author:  ivagor [ 08 Oct 2012, 20:40 ]
Post subject:  Re: Стандартный Basic 2.0

Еще один мелкий прикол. Думаю подошел бы для розыгрыша, например на 1 апреля, но я не буду ждать.
Особенности выполнения функций CHR$ и HEX$ (причем CHR$ так работает во всех постальтаировских бейсиках, т.е. на подавляющем большинстве советских 8биток на ВМ80, а HEX$ есть не во всех вариантах).
Пример:
10 A=49 - для CHR$ здесь числа от 0 до 255, для HEX$ можно и больше, но тогда результат не всегда будет правильным
20 B$=CHR$("") - в кавычках можно написать что угодно, как раз можно проявить фантазию для шутки
30 PRINT B$ - то, что здесь будет напечатано, зависит от A в строке 10
В свое время наверно можно было это использовать как метод затруднения разбора коммерчески распротраняемых :) бейсик программ.

Author:  ivagor [ 09 Oct 2012, 18:31 ]
Post subject:  Re: Стандартный Basic 2.0

Продолжение ежевечерней рубрики для любителей бейсика. Правда, говорят, их уже не осталось.
Использование дробных чисел в ON GOTO/GOSUB
Пусть есть такая программка:
10 A=1.999999
20 ON A GOTO 100,200
100 PRINT 100
110 STOP
200 PRINT 200
210 STOP
Она напечатает 100.
А если заменить первую строку на
10 A=1.9999999
то напечатает 200.
Ничего особо удивительного в этом нет, но все равно немного забавно.

Author:  liberation [ 10 Oct 2012, 10:46 ]
Post subject:  Re: Стандартный Basic 2.0

Quote:
Продолжение ежевечерней рубрики для любителей бейсика. Правда, говорят, их уже не осталось.
Остались последние из могикан, остались! И хотя программы на Бэйсике для ПК-01 популярностью в те времена не пользовались, к примеру, их не принимали "на обмен", но как я сейчас погляжу, это было зря, потому что некоторые вещи получались забавными.

А существует ли в природе листинг с толковыми комментариями альтаировского Бэйсика?

Author:  ivagor [ 10 Oct 2012, 12:10 ]
Post subject:  Re: Стандартный Basic 2.0

Quote:
Остались последние из могикан, остались!
Значит еще одну часть стоит написать :)
Quote:
программы на Бэйсике для ПК-01 популярностью в те времена не пользовались, к примеру, их не принимали "на обмен"
Насчет обмена не знаю, но на векторе фирмы и фирмочки их тиражироваили за деньги.
Quote:
А существует ли в природе листинг с толковыми комментариями альтаировского Бэйсика?
Есть вот такой вариант - http://www.interact-sw.co.uk/altair/index2.html.
Есть полный дизассемблер (насчет комментариев не помню) орионовского варианта, тоже являющегося потомком альтаировского.
На векторе есть неполный дизассемблер Филиппова (у него может и был полный, но в народ дошел такой), возможно был дизассемблер Фролова (или он взял у Филиппова) и есть неполный мой.
Уверен, что у многих программистов на ПК-01 как и на векторе были хотя бы какие-то частичные дизассемблеры бейсика.

Author:  ivagor [ 10 Oct 2012, 16:36 ]
Post subject:  Re: Стандартный Basic 2.0

Подмена номеров строк переходов в GOTO/GOSUB. Можно использовать для затруднения понимания листинга. В спектрумовском бейсике это очень просто в связи с наличием двух представлений числа - текстового и числового. В постальтаировских бейсиках номера строк для переходов - это цифры, но все же можно отображать один номер, а переходить на другой. Это возможно из-за того, что если написать что-то вроде
10GOTO100 !@#$%^&&**
то всякая ерунда после 100 и пробела будет проигнорирована а переход на 100 успешно выполнится. Вместо ерунды можно забить коды 7Fh, чтобы удалить "нежелательные" цифры, а потом цифры, которые мы хотим отображать.
Пример приложил.

Attachments:
HIDJMP.ZIP [178 Bytes]
Downloaded 388 times

Author:  Zelya [ 11 Oct 2012, 13:57 ]
Post subject:  Re: Стандартный Basic 2.0

Вы решили полностью разложить особенности Бейсика по полочкам? Мне очень понравились Ваши расследования :)

Author:  ivagor [ 12 Oct 2012, 13:55 ]
Post subject:  Re: Стандартный Basic 2.0

Спасибо за поддержку, надо бы еще чего-нибудь найти этакого :). Скорее это не раскладывание особенностей по полочкам, а выискивание отдельных недокументированных вывертов, хотя возможно часть из них где-то описана.

Author:  liberation [ 12 Oct 2012, 14:12 ]
Post subject:  Re: Стандартный Basic 2.0

Quote:
Скорее это не раскладывание особенностей по полочкам, а выискивание отдельных недокументированных вывертов...
А насколько оригинально реализованы графические примитивы в Бэйсике ПК-01? Где-то тут уже вскользь упоминалось, что прорисовка окружностей и, кажется, заливка довольно интересно были сделаны. Так ли это? Или тоже калька с неведомого прототипа?

Page 2 of 4 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/