PC-01 Lviv

It is currently 28 Mar 2024, 16:53

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 32 posts ]  Go to page Previous 1 2 3 Next
Author Message
PostPosted: 27 Oct 2012, 13:42 
Offline
User avatar

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

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 27 Oct 2012, 14:58 
Offline

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


Top
   
PostPosted: 28 Oct 2012, 14:54 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 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 еще какие-то возможности есть.


Top
   
PostPosted: 03 Nov 2012, 17:22 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 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


Attachments:
DRAW_XBAS_example.ZIP [222 Bytes]
Downloaded 421 times
Top
   
PostPosted: 03 Nov 2012, 18:58 
Offline

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


Top
   
PostPosted: 03 Nov 2012, 20:15 
Offline

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


Top
   
PostPosted: 03 Nov 2012, 20:41 
Offline

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


Top
   
PostPosted: 03 Nov 2012, 21:00 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Вывод символа с заданным кодом в определенную позицию экрана:
CONTx,y,[цвет],код_символа

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

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


Top
   
PostPosted: 04 Nov 2012, 01:38 
Offline
User avatar

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

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 04 Nov 2012, 06:04 
Offline

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

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


Top
   
PostPosted: 04 Nov 2012, 15:03 
Offline

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


Attachments:
SLOAD_example.ZIP [90.61 KiB]
Downloaded 427 times
Top
   
PostPosted: 05 Nov 2012, 00:22 
Offline
User avatar

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

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 08 Jun 2016, 12:47 
Offline
User avatar

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

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


Last edited by nick on 25 Feb 2020, 15:25, edited 1 time in total.

Top
   
PostPosted: 08 Jun 2016, 12:59 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Оно?

Image


Top
   
PostPosted: 08 Jun 2016, 13:01 
Offline
User avatar

Joined: 06 Jun 2016, 13:21
Posts: 11
Location: Львів, Україна
Quote:
Оно?
Нет, однозначно. Там львенок был очень красиво нарисован, как из мультфильма.

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 32 posts ]  Go to page Previous 1 2 3 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