PC-01 Lviv

It is currently 28 Mar 2024, 13:02

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 49 posts ]  Go to page Previous 1 2 3 4 Next
Author Message
PostPosted: 26 Aug 2012, 06:45 
Offline

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


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


Last edited by ivagor on 26 Aug 2012, 13:42, edited 2 times in total.
Top
   
PostPosted: 26 Aug 2012, 12:06 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Возможно стоило бы объединить с патчем под z80, но я поленился и просто развел по адресам, чтобы их можно было применять последовательно.
Все забываю спросить, а в чем суть патча для z80?

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 26 Aug 2012, 12:50 
Offline

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


Top
   
PostPosted: 26 Aug 2012, 13:05 
Offline
User avatar

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

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 26 Aug 2012, 13:22 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Quote:
Но один момент восстановил. После всех правок размер интерпретатора увеличивался, что приводило к потере работоспособности некоторых особо "хитроумных" программ.

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


Top
   
PostPosted: 26 Aug 2012, 13:43 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Кстати, забыл в загружаемом патче LISTа написать, какие адреса он занимает. Перезалил с дополненным readme.


Top
   
PostPosted: 08 Oct 2012, 13:09 
Offline

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


Top
   
PostPosted: 08 Oct 2012, 20:40 
Offline

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


Top
   
PostPosted: 09 Oct 2012, 18:31 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Продолжение ежевечерней рубрики для любителей бейсика. Правда, говорят, их уже не осталось.
Использование дробных чисел в 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.
Ничего особо удивительного в этом нет, но все равно немного забавно.


Top
   
PostPosted: 10 Oct 2012, 10:46 
Offline
User avatar

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

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 10 Oct 2012, 12:10 
Offline

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


Top
   
PostPosted: 10 Oct 2012, 16:36 
Offline

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


Attachments:
HIDJMP.ZIP [178 Bytes]
Downloaded 381 times
Top
   
PostPosted: 11 Oct 2012, 13:57 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Вы решили полностью разложить особенности Бейсика по полочкам? Мне очень понравились Ваши расследования :)


Top
   
PostPosted: 12 Oct 2012, 13:55 
Offline

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


Top
   
PostPosted: 12 Oct 2012, 14:12 
Offline
User avatar

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 49 posts ]  Go to page Previous 1 2 3 4 Next

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


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

Search for:
cron
Powered by phpBB® Forum Software © phpBB Limited