ПК-01 ЛЬВОВ

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

Forum Games WEB Tape Loader Twitter RSS

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




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

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Известно, что некоторые игрушки для "Львова" были написаны на расширенном Бэйсике, в котором были реализованы уже упоминавшиеся операторы работы со спрайтами get и put. Кто-нибудь внимательно изучал это расширение? Что там и как там? (Мой опыт в этом вопросе крайней скуден, поскольку я единожды пользовался этой штукенцией).

upd.
Связанная тема "Стандартный Basic 2.0".

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 30 ноя 2011, 15:54 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщения: 1029
Только что не удалось запустить Сокобан на бейские. Наверное, как раз из-за этого! Прийдется дизассемблировать и изучать.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 02 дек 2011, 22:18 
Не в сети

Зарегистрирован: 07 дек 2010, 16:54
Сообщения: 227
там грузится бинарная программа (сам бейсик), патчит таблицу операторов, правит системные переменные (адресов размещения программы и буферов), после этого бейсик программа грузится по смещённым адресам (в формате CSAVE можно увидеть реальные адреса загрузки, т.к. тут сохраняют на ленте всю область ОЗУ в бинарном виде и в том поле как раз адреса "для связи" строк). сам бейсик есть в моём эмуляторе, программы к нему тоже, расширение файлов .lvr (но такая предосторожность с моей стороны в принципе была избыточна, детектить их можно по полю связи).


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 21 дек 2011, 15:28 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
там грузится бинарная программа (сам бейсик), патчит таблицу операторов, правит системные переменные (адресов размещения программы и буферов)
А какие операторы добавляются/изменяются?

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 23 дек 2011, 20:27 
Не в сети

Зарегистрирован: 07 дек 2010, 16:54
Сообщения: 227
Цитата:
А какие операторы добавляются/изменяются?
уже не помню, скорее всего уже имеющиеся, но неиспользванные ключевые слова (вроде draw/get/put или @@).

надо дизассемблировать
просмотр LV_VIEW.EXE ALMAZY.LVR >ALMAZY.LST

даёт примерно такие подозрительные места:
10 CLS:CLS0,0,255,256,15:DRAW"@BR10BD10C240"
...
950 CLS:PRINT@@(10,7,2)"ВРЕМЯ ИСТЕКЛО."
960 PRINT@@(0,10,0)"ВЫ СОБРАЛИ"S"БРИЛЛИАНТОВ."
...

в принципе, имеющиеся тоже могли быть переопределены (CLS тут подозрителен).
..... подводит память :-(

вот эти бейсики, если ничего не путаю: RASHIR.LVT RASHIR2.LVT

и стандартный список токенов:
private static String toks[] = {
// 0x80
"END", "FOR", "NEXT", "DATA", "INPUT", "DIM", "READ", "LET",
"GOTO", "RUN", "IF", "RESTORE", "GOSUB", "RETURN", "REM", "STOP",
// 0x90
"CLS", "ON", "PLOT", "DRAW", "POKE", "PRINT", "DEF", "CONT",
"LIST", "CLEAR", "CLOAD", "CSAVE", "NEW", "LOAD", "MERGE", "SAVE",
// 0xA0
"OUT", "WAIT", "SLOAD", "BSAVE", "BLOAD", "BAUD", "LOCATE", "COLOR",
"LINE", "PSET", "PRESET", "CIRCLE", "PAINT", "GET", "PUT", "BEEP",
// 0xB0
"SOUND", "DELETE", "RENUM", "EDIT", "VPOKE", "@@", "@@", "@@",
"@@", "@@", "@@", "@@", "TAB(", "TO", "SPC(", "FN",
// 0xC0
"THEN", "NOT", "STEP", "+", "-", "*", "/", "^",
"AND", "OR", ">", "=", "<", "@@", "@@", "@@",
// 0xD0
"SGN", "INT", "ABS", "USR", "FRE", "INP", "POS", "SQR",
"RND", "LOG", "EXP", "COS", "SIN", "TAN", "ATN", "PEEK",
// 0xE0
"LEN", "STR$", "VAL", "ASC", "CHR$", "LEFT$", "RIGHT$", "MID$",
"INKEY$", "HEX$", "POINT", "VARPTR", "CSRLIN", "VPEEK", "@@", "@@",
// 0xF0
"@@", "@@", "@@", "@@", "@@", "@@", "@@", "@@",
"@@", "@@", "@@", "@@", "@@", "@@", "@@", "@@"
};

p.s. Таблица подпрограмм


Последний раз редактировалось sadfsdfsdaf 14 ноя 2012, 21:41, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 24 дек 2011, 20:44 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Когда-нибудь, сугубо из спортивного интереса, можно будет попробовать реконструировать Basic ПК-01, но с работой над ошибками, оптимизацией и парочкой приколов - а что, кто сказал, что на "Львове" невозможны замыкания, генераторы или даже ООП? :D

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 02 янв 2012, 05:14 
Не в сети

Зарегистрирован: 07 дек 2010, 16:54
Сообщения: 227
Цитата:
Когда-нибудь, сугубо из спортивного интереса, можно будет попробовать реконструировать Basic ПК-01, но с работой над ошибками, оптимизацией и парочкой приколов - а что, кто сказал, что на "Львове" невозможны замыкания, генераторы или даже ООП? :D
ООП - это самое простое, а вот замыкания, генераторы.... в классическом виде для таких машин это Форт, а в неклассическом.... предлагаешь Haskell портировать ? :-)
а вот ПЗУ конечно неплохо бы декомпилировать с подробными комментариями...


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 02 янв 2012, 11:56 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
ООП - это самое простое, а вот замыкания, генераторы.... в классическом виде для таких машин это Форт, а в неклассическом.... предлагаешь Haskell портировать ? :-)
А чего мелочиться - сразу JavaScript. :D
Цитата:
а вот ПЗУ конечно неплохо бы декомпилировать с подробными комментариями...
Хорошо, даже очень хорошо. Какую бы форму для этого выбрать? Мож, что-то типа Wiki стоит развернуть (я слабо ориентируюсь в подобных средствах представления информации)?

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 02 янв 2012, 12:00 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
На форуме nedoPC отыскалась тема "откуда растут уши у советских бейсиков", где выдвинута смелая гипотеза, что почти все сов. Бейсики ведут свое происхождение от альтаировского. Можно почитать при случае.

_________________
Carthago delenda est, Carthaginem delendam esse


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

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Реплики про дизассемблирование стандартного ПЗУ переехали в отдельную тему.

_________________
Carthago delenda est, Carthaginem delendam esse


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

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Пара копеек про EXTENDED BASIC (XBASIC) 3.2
Изменяет (в некоторых случаях, типа PUT - определяет) операторы:
PUT и CLS; GET и LET; PRINT; DRAW; CLOAD; BEEP; SLOAD; STOP; CONT; BAUD
и функцию TAN


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

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
Пара копеек про EXTENDED BASIC (XBASIC) 3.2
Изменяет (в некоторых случаях, типа PUT - определяет) операторы:
PUT и CLS; GET и LET; PRINT; DRAW; CLOAD; BEEP; SLOAD; STOP; CONT; BAUD
и функцию TAN
А подробнее можно, что именно изменяется? Потому как набор операторов выглядит неожиданно - тут и SLOAD, тут и LET, и BAUD, да еще и TAN напоследок...

UPD.
А от какой проги взят этот XBASIC?

_________________
Carthago delenda est, Carthaginem delendam esse


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

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Цитата:
А подробнее можно, что именно изменяется? Потому как набор операторов выглядит неожиданно - тут и SLOAD, тут и LET, и BAUD, да еще и TAN напоследок...
Что именно изменяется, т.е. описание расширенного бейсика :) ?
Подробно я смотрел BEEP, т.к. он бипит из ОЗУ и я предположил, что возможно в руководстве по XBASIC есть табличка, где расписаны соответствия аргументов и нот - можно было бы попытаться оценить торможение при выполнении из ОЗУ. Описание XBASICа я хотел спросить на форуме, но, как я понимаю, оно недоступно. Кроме того, даже если была бы пресловутая табличка, полного доверия у меня к ней после ознакомления с BEEP нет. Там и ошибка есть, и зачем-то ei/di, в общем как-то не особо.
Цитата:
UPD.
А от какой проги взят этот XBASIC?
v3.2 из каталога игрушки TAIPEI. В сборнике SYSTEM еще есть версия 3.1


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

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
Что именно изменяется, т.е. описание расширенного бейсика :) ?
Как изменяется поведение вышеперечисленных операторов, какой функционал они реализовывают. :wink:
Цитата:
Подробно я смотрел BEEP, т.к. он бипит из ОЗУ и я предположил, что возможно в руководстве по XBASIC есть табличка, где расписаны соответствия аргументов и нот - можно было бы попытаться оценить торможение при выполнении из ОЗУ. Описание XBASICа я хотел спросить на форуме, но, как я понимаю, оно недоступно.
Описание XBASIC действительно недоступно, поскольку его никогда не существовало. Если Вы читали воспоминания Текотева, то могли заметить, что для программистов поначалу вообще никакой документации не предполагалось, и так было аж до 91-го года:
Цитата:
А с 1991 года руководство по эксплуатации было дополнено «Руководством программиста» и в комплект программ было включено системное ПО для ПК.
Такой вот юзепфрендли подход. :D
Цитата:
Там и ошибка есть, и зачем-то ei/di, в общем как-то не особо.
Да, остается только догадываться, на каких именно машинках писалось ПО для серийного ПК-01. То ли это были таинственные прототипы, то ли последующие разработки (ПК-01М, к примеру).
Цитата:
v3.2 из каталога игрушки TAIPEI. В сборнике SYSTEM еще есть версия 3.1
У меня есть ничем не подкрепленное подозрение, что расширений стандартного Бейсика было больше. Но это пока догадки, нужно внимательно пересмотреть наследие ПК-01 на этом языке.

_________________
Carthago delenda est, Carthaginem delendam esse


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

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Цитата:
Как изменяется поведение вышеперечисленных операторов, какой функционал они реализовывают. :wink:
ОК, я напишу про BEEP и про TAN, а кто-нибудь про другие.
BEEPпериод_колебаний_канала1,период_колебаний_канала2,длительность[;аналогично и т.д.] - звучит IMHO довольно неприятно.
числовая_переменная=TAN() - опрос курсора без буферизации, можно отслеживать одновременное нажатие клавиш.
Цитата:
Описание XBASIC действительно недоступно, поскольку его никогда не существовало.
Тогда игрушки в каталоге XBS написали авторы XBASICа или их знакомые? Или те, кто покопался в XBASICе и вдруг решил на нем что-то сделать? Или еще вариант - авторы для затравки сделали пару игрушек, их (эти игрушки) кто-то посмотрел и по аналогии сделал свои.
Цитата:
У меня есть ничем не подкрепленное подозрение, что расширений стандартного Бейсика было больше.
В архиве SYSTEM папка DEVELOP\FORBASIC еще есть чего-то.


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

Forum Games WEB Tape Loader Twitter RSS

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


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

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


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

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