ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 19 янв 2021, 21:01

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 32 сообщения ]  На страницу Пред. 1 2 3 След.
Автор Сообщение
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 27 окт 2012, 13:42 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
ОК, я напишу про BEEP и про TAN, а кто-нибудь про другие.
Эх, где бы нам таких толковых "кто-нибудь" найти... Мы бы мир перевернули, а потом на место поставили бы. :D
Цитата:
числовая_переменная=TAN() - опрос курсора без буферизации, можно отслеживать одновременное нажатие клавиш.
Опрос курсора? Это как? Получение его координат на экране? И причем тут одновременное нажатие клавиш?
Цитата:
Тогда игрушки в каталоге XBS написали авторы XBASICа или их знакомые? Или те, кто покопался в XBASICе и вдруг решил на нем что-то сделать? Или еще вариант - авторы для затравки сделали пару игрушек, их (эти игрушки) кто-то посмотрел и по аналогии сделал свои.
Да, несколько игрушек на XBS считаются однозначно "заводскими", это я про "MAUS" (точно сохранилась), "LEV/Лев в клетке" и "POMID". И вроде бы было еще несколько игрушек, но утверждать не буду, пока не проведу основательную ревизию сохранившихся программ. Так же нельзя исключать, что кто-то занимался "реверс-инжинирингом" и мог написать еще что-то свое. Я знаю об одном таком случае: когда-то я сам написал простенькую игрушку на XBS (но вряд ли она сохранилась), было это сделано после изучения исходников "MAUS" (если не ошибаюсь). Насколько сейчас помню, тогда я глубоко в эту тему не вникал, использовал только GET/PUT для вывода спрайтов.

В целом же, как я уже писал, софт на Бейсике для ПК-01 совершенно не котировался, уж не скажу почему. Просто так было. Возможно, если бы XBS был тогда хоть сколько-нибудь документирован, то все бы пошло несколько иначе. Но получилось как получилось. Хотели как лучше... :wink:

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 27 окт 2012, 14:58 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Цитата:
Опрос курсора? Это как? Получение его координат на экране? И причем тут одновременное нажатие клавиш?
В смысле клавиш курсора. Ну и INKEY$ только одну клавишу дает, а тут в результате 4 младших бита, каждый отвечает за свою стрелку. Для полного счастья еще пробел стоило добавить.


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 28 окт 2012, 14:54 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Еще пара операторов:
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 еще какие-то возможности есть.


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 03 ноя 2012, 17:22 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Модифицированный вариант 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


Вложения:
DRAW_XBAS_example.ZIP [222 байт]
200 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 03 ноя 2012, 18:58 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
BAUD в XBASICе тоже расширен.
В оригинале операнд BAUD может принимать значения 0 или 1, в XBASIC - от 0 до 4, при этом, что интересно, получаются скорости, описанные в "Секретах Львова" - http://lvovpc.cu.cc/article.shtml?id=5, только длительность пилота в XBASIC чуть меньше.


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 03 ноя 2012, 20:15 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
SLOAD в XBASIC заменили. Теперь он грузит на экран фрагменты (спрайты). Формат фрагментов простой - адрес (2 байта), потом 16 байт фрагмента (8x8 точек). Если их пронумеровать от 0 до F, то они будут расположены на экране так
0 1
2 3
4 5
....
E F
Упомянутый "адрес" задает положение байта под номером 0.
В качестве признака окончания можно использовать адрес выходящий за рамки ВОЗУ, т.е. за пределами 4000-7FFF (например 0000).
XBASIC оказался интереснее, чем я ожидал.


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 03 ноя 2012, 20:41 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
STOPпериод_звуковых_колебаний (0-255), длительность (0-255) [,период_звуковых_колебаний, длительность...]
Почти аналог SOUND, но длительность при одинаковых числовых значениях больше. Пары "период,длительность" отделяются запятой, а не точкой с запятой, как в SOUND. Для извлечения звука используется своя процедура, не из ПЗУ, поэтому соответствия чисел и нот отличаются от SOUND.


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 03 ноя 2012, 21:00 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Вывод символа с заданным кодом в определенную позицию экрана:
CONTx,y,[цвет],код_символа

В итоге почти все (кроме CLOAD, про него ниже) новые и измененные операторы XBASICа описаны. Описание не исчерпывающее, но все же лучше, чем ничего.

По поводу CLOAD - предполагаю, что его не доделали, т.к. пустить по "новой" ветке удается только при "ручной проводке" в отладчике.


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 04 ноя 2012, 01:38 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
По поводу CLOAD - предполагаю, что его не доделали, т.к. пустить по "новой" ветке удается только при "ручной проводке" в отладчике.
Потрясающая работа! Огромное спасибо за нее! :D

А что должен был бы делать "новый" CLOAD в идеале?

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 04 ноя 2012, 06:04 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Цитата:
А что должен был бы делать "новый" CLOAD в идеале?
У меня получилось так, что после пары вмешательств по ходу выполнения он догрузил бейсик-программу к уже имеющейся в памяти, т.е. своего рода MERGE для программ, записанных по CSAVE, а не по SAVE. Но программа именно дописывается после уже имеющейся в памяти, одинаковые строки не заменяются.

Предполагаю, что для загружаемых по SLOAD спрайтов должен существовать редактор.
Кстати, SLOAD можно использовать для познакоместной загрузки экрана, в духе спектрумовского BOMB JACKа.


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 04 ноя 2012, 15:03 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Сделал простенький пример познакоместной загрузки.
Как его посмотреть в Emu:
1. Загружаем XBASIC 3.2 (для удобства положил в архив)
2. Когда он стартует, задаем палитру OUT193,32 (конечно, это не обязательно, но желательно)
3. Набираем SLOAD и жмем Enter. Появится диалог открытия LVT-файла - жмем кнопку "Отмена". Теперь на тулбаре жмем кнопку Play/Stop и выбираем DIZSLO.WAV. Через 11-12 секунд начнет рисовать при загрузке.


Вложения:
SLOAD_example.ZIP [90.61 КБ]
208 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 05 ноя 2012, 00:22 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
Предполагаю, что для загружаемых по SLOAD спрайтов должен существовать редактор.
Кстати, SLOAD можно использовать для познакоместной загрузки экрана, в духе спектрумовского BOMB JACKа.
Может быть. Существовала программа "Оформитель/OFORM", позволявшая добавить к программе заставку, но я с ней никогда не сталкивался, поэтому о принципах ее работы ничего не скажу. А вот заставки с познакоместной загрузкой я видел, одна из таких игр даже сохранилась, это версия "Popcorn" с ликом Сталлоне.

Надеюсь, что когда я займусь ревизией уцелевшего системного ПО, то можно будет еще что-то добавить по этой теме.

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 08 июн 2016, 12:47 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2016, 13:21
Сообщения: 11
Откуда: Львів, Україна
Помню расширенный Бейсик, там еще был улучшенный оператор заливки (PAINT), обладавший большей скоростью и поддержкой шаблонов заливки!
Изображение
По моей информации, автором расширенного Бейсика для ПК-01 "Львов" был Валерий Карпов, доцент кафедры Прикладной математики (теперь "Информационных систем") факультета Прикладной математики (теперь "Прикладной математики и информатики") Львовского (теперь Национального) университета им. И.Франко. Он же вел занятия Малой Академии Наук в классе КУВТ Yamaha MSX.
В 1993 году эмигрировал в США, т.к. специалист был очень толковый, а з/п в сфере высшего образования стали сами знаете какие. Так что связь с той поры утеряна.
Мне кажется, там же была написана программа (вроде на Бейсике?), которая рисует красивого львенка из мультфильма.
Кто-нибудь видел/имеет ту программу?

_________________
Ми - хлопці з Бандерштадту


Последний раз редактировалось nick 25 фев 2020, 15:25, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 08 июн 2016, 12:59 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщения: 1029
Оно?

Изображение


Вернуться к началу
 Заголовок сообщения: Re: Расширенный Basic для ПК-01 "Львов"
СообщениеДобавлено: 08 июн 2016, 13:01 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2016, 13:21
Сообщения: 11
Откуда: Львів, Україна
Цитата:
Оно?
Нет, однозначно. Там львенок был очень красиво нарисован, как из мультфильма.

_________________
Ми - хлопці з Бандерштадту


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 32 сообщения ]  На страницу Пред. 1 2 3 След.

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB