PC-01 Lviv http://pc01.lviv.ua/forum/ |
|
Расширенный Basic для ПК-01 "Львов" http://pc01.lviv.ua/forum/viewtopic.php?f=22&t=65 |
Page 2 of 3 |
Author: | liberation [ 27 Oct 2012, 13:42 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Quote: ОК, я напишу про BEEP и про TAN, а кто-нибудь про другие.
Эх, где бы нам таких толковых "кто-нибудь" найти... Мы бы мир перевернули, а потом на место поставили бы. Quote: числовая_переменная=TAN() - опрос курсора без буферизации, можно отслеживать одновременное нажатие клавиш.
Опрос курсора? Это как? Получение его координат на экране? И причем тут одновременное нажатие клавиш?Quote: Тогда игрушки в каталоге XBS написали авторы XBASICа или их знакомые? Или те, кто покопался в XBASICе и вдруг решил на нем что-то сделать? Или еще вариант - авторы для затравки сделали пару игрушек, их (эти игрушки) кто-то посмотрел и по аналогии сделал свои.
Да, несколько игрушек на XBS считаются однозначно "заводскими", это я про "MAUS" (точно сохранилась), "LEV/Лев в клетке" и "POMID". И вроде бы было еще несколько игрушек, но утверждать не буду, пока не проведу основательную ревизию сохранившихся программ. Так же нельзя исключать, что кто-то занимался "реверс-инжинирингом" и мог написать еще что-то свое. Я знаю об одном таком случае: когда-то я сам написал простенькую игрушку на XBS (но вряд ли она сохранилась), было это сделано после изучения исходников "MAUS" (если не ошибаюсь). Насколько сейчас помню, тогда я глубоко в эту тему не вникал, использовал только GET/PUT для вывода спрайтов. В целом же, как я уже писал, софт на Бейсике для ПК-01 совершенно не котировался, уж не скажу почему. Просто так было. Возможно, если бы XBS был тогда хоть сколько-нибудь документирован, то все бы пошло несколько иначе. Но получилось как получилось. Хотели как лучше... |
Author: | ivagor [ 27 Oct 2012, 14:58 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Quote: Опрос курсора? Это как? Получение его координат на экране? И причем тут одновременное нажатие клавиш?
В смысле клавиш курсора. Ну и INKEY$ только одну клавишу дает, а тут в результате 4 младших бита, каждый отвечает за свою стрелку. Для полного счастья еще пробел стоило добавить.
|
Author: | ivagor [ 28 Oct 2012, 14:54 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Еще пара операторов: GET (и LET) СимвольнаяПеременная,Xнач,Yнач,Ширина,Высота - сохраняет в символьной переменной копию фрагмента экрана PUT (и CLS) Xнач,Yнач,Ширина,Высота,Байт - рисование прямоугольника "байтом" PUT (и CLS) Xнач,Yнач,Ширина,Высота,Символьная переменная - вывод на экран фрагмента заданного СиимвольнойПеременной PUT (и CLS) Xнач,Yнач - выводит на экран фрагмент из переменной (или рисует прямоугольник "байтом") с размерами заданными предыдущим (последним) "полным" PUTом Возможны промежуточные варианты между "кратким" и "полным" PUT Во всех случаях Xнач и Yнач отсчитываются с верхнего левого угла, левее и выше, чем начало системы координат графических операторов. Реальная дискретность Xнач и ширины 4. Еще PRINT@(X,Y)ЧтоНибудь - Печатает что-нибудь в заданном месте экрана. X и Y текстовые, обычные. Это я просто игрушку посмотрел, не код, может у PRINT еще какие-то возможности есть. |
Author: | ivagor [ 03 Nov 2012, 17:22 ] | ||
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" | ||
Модифицированный вариант DRAW - DRAW"описание_рисунка" При описании рисунка можно использовать следующие команды: Rсколько,Lсколько,Dсколько,Uсколько - вправо, влево, вниз, вверх на "сколько" (шаг по 2 точки, см. ниже про "кисть") Eсколько,Fсколько,Gсколько,Hсколько - вправо-вверх, вправо-вниз, влево-вниз, влево-вверх на "сколько" (шаг по 2 точки, см. ниже про "кисть") @ - переносит точку рисования DRAW в реальный левый верхний угол экрана, т.е. левее и выше начала координат стандартных графических операторов B - следующая команда не будет рисовать, а только переместит курсор. Можно использовать для относительного позиционирования курсора. Вместе с @ можно использовать для абсолютного позиционирования курсора. Cбайт - оказалось, что DRAW рисует "кистью", которая задается оператором C "Кисть" квадратная из 4х точек, можно их условно пронумеровать: 3 2 1 0 "Байт" в C задает цвета этих 4х точек: 32103210 Описание не совсем полное, но рисовать по этому описанию с использованием модифицированного DRAW можно. Небольшое дополнение по PRINT@ - в скобках кроме X и Y можно задать третий параметр - цвет, т.е. PRINT(X,Y,цвет)ЧтоНибудь UPD: Приложил пример использования модифицированного DRAW
|
Author: | ivagor [ 03 Nov 2012, 18:58 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
BAUD в XBASICе тоже расширен. В оригинале операнд BAUD может принимать значения 0 или 1, в XBASIC - от 0 до 4, при этом, что интересно, получаются скорости, описанные в "Секретах Львова" - http://lvovpc.cu.cc/article.shtml?id=5, только длительность пилота в XBASIC чуть меньше. |
Author: | ivagor [ 03 Nov 2012, 20:15 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
SLOAD в XBASIC заменили. Теперь он грузит на экран фрагменты (спрайты). Формат фрагментов простой - адрес (2 байта), потом 16 байт фрагмента (8x8 точек). Если их пронумеровать от 0 до F, то они будут расположены на экране так 0 1 2 3 4 5 .... E F Упомянутый "адрес" задает положение байта под номером 0. В качестве признака окончания можно использовать адрес выходящий за рамки ВОЗУ, т.е. за пределами 4000-7FFF (например 0000). XBASIC оказался интереснее, чем я ожидал. |
Author: | ivagor [ 03 Nov 2012, 20:41 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
STOPпериод_звуковых_колебаний (0-255), длительность (0-255) [,период_звуковых_колебаний, длительность...] Почти аналог SOUND, но длительность при одинаковых числовых значениях больше. Пары "период,длительность" отделяются запятой, а не точкой с запятой, как в SOUND. Для извлечения звука используется своя процедура, не из ПЗУ, поэтому соответствия чисел и нот отличаются от SOUND. |
Author: | ivagor [ 03 Nov 2012, 21:00 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Вывод символа с заданным кодом в определенную позицию экрана: CONTx,y,[цвет],код_символа В итоге почти все (кроме CLOAD, про него ниже) новые и измененные операторы XBASICа описаны. Описание не исчерпывающее, но все же лучше, чем ничего. По поводу CLOAD - предполагаю, что его не доделали, т.к. пустить по "новой" ветке удается только при "ручной проводке" в отладчике. |
Author: | liberation [ 04 Nov 2012, 01:38 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Quote: По поводу CLOAD - предполагаю, что его не доделали, т.к. пустить по "новой" ветке удается только при "ручной проводке" в отладчике.
Потрясающая работа! Огромное спасибо за нее! А что должен был бы делать "новый" CLOAD в идеале? |
Author: | ivagor [ 04 Nov 2012, 06:04 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Quote: А что должен был бы делать "новый" CLOAD в идеале?
У меня получилось так, что после пары вмешательств по ходу выполнения он догрузил бейсик-программу к уже имеющейся в памяти, т.е. своего рода MERGE для программ, записанных по CSAVE, а не по SAVE. Но программа именно дописывается после уже имеющейся в памяти, одинаковые строки не заменяются.Предполагаю, что для загружаемых по SLOAD спрайтов должен существовать редактор. Кстати, SLOAD можно использовать для познакоместной загрузки экрана, в духе спектрумовского BOMB JACKа. |
Author: | ivagor [ 04 Nov 2012, 15:03 ] | ||
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" | ||
Сделал простенький пример познакоместной загрузки. Как его посмотреть в Emu: 1. Загружаем XBASIC 3.2 (для удобства положил в архив) 2. Когда он стартует, задаем палитру OUT193,32 (конечно, это не обязательно, но желательно) 3. Набираем SLOAD и жмем Enter. Появится диалог открытия LVT-файла - жмем кнопку "Отмена". Теперь на тулбаре жмем кнопку Play/Stop и выбираем DIZSLO.WAV. Через 11-12 секунд начнет рисовать при загрузке.
|
Author: | liberation [ 05 Nov 2012, 00:22 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Quote: Предполагаю, что для загружаемых по SLOAD спрайтов должен существовать редактор.
Может быть. Существовала программа "Оформитель/OFORM", позволявшая добавить к программе заставку, но я с ней никогда не сталкивался, поэтому о принципах ее работы ничего не скажу. А вот заставки с познакоместной загрузкой я видел, одна из таких игр даже сохранилась, это версия "Popcorn" с ликом Сталлоне. Кстати, SLOAD можно использовать для познакоместной загрузки экрана, в духе спектрумовского BOMB JACKа. Надеюсь, что когда я займусь ревизией уцелевшего системного ПО, то можно будет еще что-то добавить по этой теме. |
Author: | nick [ 08 Jun 2016, 12:47 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Помню расширенный Бейсик, там еще был улучшенный оператор заливки (PAINT), обладавший большей скоростью и поддержкой шаблонов заливки! По моей информации, автором расширенного Бейсика для ПК-01 "Львов" был Валерий Карпов, доцент кафедры Прикладной математики (теперь "Информационных систем") факультета Прикладной математики (теперь "Прикладной математики и информатики") Львовского (теперь Национального) университета им. И.Франко. Он же вел занятия Малой Академии Наук в классе КУВТ Yamaha MSX. В 1993 году эмигрировал в США, т.к. специалист был очень толковый, а з/п в сфере высшего образования стали сами знаете какие. Так что связь с той поры утеряна. Мне кажется, там же была написана программа (вроде на Бейсике?), которая рисует красивого львенка из мультфильма. Кто-нибудь видел/имеет ту программу? |
Author: | Zelya [ 08 Jun 2016, 12:59 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Оно? |
Author: | nick [ 08 Jun 2016, 13:01 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Quote: Оно?
Нет, однозначно. Там львенок был очень красиво нарисован, как из мультфильма.
|
Page 2 of 3 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |