PC-01 Lviv

It is currently 28 Mar 2024, 20:51

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 32 posts ]  Go to page 1 2 3 Next
Author Message
PostPosted: 30 Nov 2011, 15:44 
Offline
User avatar

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

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject:
PostPosted: 30 Nov 2011, 15:54 
Offline
Site Admin
User avatar

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


Top
   
 Post subject:
PostPosted: 02 Dec 2011, 22:18 
Offline

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


Top
   
 Post subject:
PostPosted: 21 Dec 2011, 15:28 
Offline
User avatar

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject:
PostPosted: 23 Dec 2011, 20:27 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
А какие операторы добавляются/изменяются?
уже не помню, скорее всего уже имеющиеся, но неиспользванные ключевые слова (вроде 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. Таблица подпрограмм


Last edited by sadfsdfsdaf on 14 Nov 2012, 21:41, edited 1 time in total.

Top
   
 Post subject:
PostPosted: 24 Dec 2011, 20:44 
Offline
User avatar

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject:
PostPosted: 02 Jan 2012, 05:14 
Offline

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


Top
   
 Post subject:
PostPosted: 02 Jan 2012, 11:56 
Offline
User avatar

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject:
PostPosted: 02 Jan 2012, 12:00 
Offline
User avatar

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 03 Sep 2012, 13:13 
Offline
User avatar

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 26 Oct 2012, 17:36 
Offline

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


Top
   
PostPosted: 26 Oct 2012, 17:50 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Пара копеек про 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


Top
   
PostPosted: 26 Oct 2012, 18:24 
Offline

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


Top
   
PostPosted: 26 Oct 2012, 22:20 
Offline
User avatar

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 27 Oct 2012, 11:01 
Offline

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


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