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.
|
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, чтобы удалить "нежелательные" цифры, а потом цифры, которые мы хотим отображать. Пример приложил.
|
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/ |