PC-01 Lviv http://pc01.lviv.ua/forum/ |
|
Расширенный Basic для ПК-01 "Львов" http://pc01.lviv.ua/forum/viewtopic.php?f=22&t=65 |
Page 1 of 3 |
Author: | liberation [ 30 Nov 2011, 15:44 ] |
Post subject: | Расширенный Basic для ПК-01 "Львов" |
Известно, что некоторые игрушки для "Львова" были написаны на расширенном Бэйсике, в котором были реализованы уже упоминавшиеся операторы работы со спрайтами get и put. Кто-нибудь внимательно изучал это расширение? Что там и как там? (Мой опыт в этом вопросе крайней скуден, поскольку я единожды пользовался этой штукенцией). upd. Связанная тема "Стандартный Basic 2.0". |
Author: | Zelya [ 30 Nov 2011, 15:54 ] |
Post subject: | |
Только что не удалось запустить Сокобан на бейские. Наверное, как раз из-за этого! Прийдется дизассемблировать и изучать. |
Author: | sadfsdfsdaf [ 02 Dec 2011, 22:18 ] |
Post subject: | |
там грузится бинарная программа (сам бейсик), патчит таблицу операторов, правит системные переменные (адресов размещения программы и буферов), после этого бейсик программа грузится по смещённым адресам (в формате CSAVE можно увидеть реальные адреса загрузки, т.к. тут сохраняют на ленте всю область ОЗУ в бинарном виде и в том поле как раз адреса "для связи" строк). сам бейсик есть в моём эмуляторе, программы к нему тоже, расширение файлов .lvr (но такая предосторожность с моей стороны в принципе была избыточна, детектить их можно по полю связи). |
Author: | liberation [ 21 Dec 2011, 15:28 ] |
Post subject: | |
Quote: там грузится бинарная программа (сам бейсик), патчит таблицу операторов, правит системные переменные (адресов размещения программы и буферов)
А какие операторы добавляются/изменяются?
|
Author: | sadfsdfsdaf [ 23 Dec 2011, 20:27 ] |
Post subject: | |
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. Таблица подпрограмм |
Author: | liberation [ 24 Dec 2011, 20:44 ] |
Post subject: | |
Когда-нибудь, сугубо из спортивного интереса, можно будет попробовать реконструировать Basic ПК-01, но с работой над ошибками, оптимизацией и парочкой приколов - а что, кто сказал, что на "Львове" невозможны замыкания, генераторы или даже ООП? |
Author: | sadfsdfsdaf [ 02 Jan 2012, 05:14 ] |
Post subject: | |
Quote: Когда-нибудь, сугубо из спортивного интереса, можно будет попробовать реконструировать Basic ПК-01, но с работой над ошибками, оптимизацией и парочкой приколов - а что, кто сказал, что на "Львове" невозможны замыкания, генераторы или даже ООП?
ООП - это самое простое, а вот замыкания, генераторы.... в классическом виде для таких машин это Форт, а в неклассическом.... предлагаешь Haskell портировать ? а вот ПЗУ конечно неплохо бы декомпилировать с подробными комментариями... |
Author: | liberation [ 02 Jan 2012, 11:56 ] |
Post subject: | |
Quote: ООП - это самое простое, а вот замыкания, генераторы.... в классическом виде для таких машин это Форт, а в неклассическом.... предлагаешь Haskell портировать ?
А чего мелочиться - сразу JavaScript.
Quote: а вот ПЗУ конечно неплохо бы декомпилировать с подробными комментариями...
Хорошо, даже очень хорошо. Какую бы форму для этого выбрать? Мож, что-то типа Wiki стоит развернуть (я слабо ориентируюсь в подобных средствах представления информации)?
|
Author: | liberation [ 02 Jan 2012, 12:00 ] |
Post subject: | |
На форуме nedoPC отыскалась тема "откуда растут уши у советских бейсиков", где выдвинута смелая гипотеза, что почти все сов. Бейсики ведут свое происхождение от альтаировского. Можно почитать при случае. |
Author: | liberation [ 03 Sep 2012, 13:13 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Реплики про дизассемблирование стандартного ПЗУ переехали в отдельную тему. |
Author: | ivagor [ 26 Oct 2012, 17:36 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Пара копеек про EXTENDED BASIC (XBASIC) 3.2 Изменяет (в некоторых случаях, типа PUT - определяет) операторы: PUT и CLS; GET и LET; PRINT; DRAW; CLOAD; BEEP; SLOAD; STOP; CONT; BAUD и функцию TAN |
Author: | liberation [ 26 Oct 2012, 17:50 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Quote: Пара копеек про EXTENDED BASIC (XBASIC) 3.2
А подробнее можно, что именно изменяется? Потому как набор операторов выглядит неожиданно - тут и SLOAD, тут и LET, и BAUD, да еще и TAN напоследок...Изменяет (в некоторых случаях, типа PUT - определяет) операторы: PUT и CLS; GET и LET; PRINT; DRAW; CLOAD; BEEP; SLOAD; STOP; CONT; BAUD и функцию TAN UPD. А от какой проги взят этот XBASIC? |
Author: | ivagor [ 26 Oct 2012, 18:24 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Quote: А подробнее можно, что именно изменяется? Потому как набор операторов выглядит неожиданно - тут и SLOAD, тут и LET, и BAUD, да еще и TAN напоследок...
Что именно изменяется, т.е. описание расширенного бейсика ?Подробно я смотрел BEEP, т.к. он бипит из ОЗУ и я предположил, что возможно в руководстве по XBASIC есть табличка, где расписаны соответствия аргументов и нот - можно было бы попытаться оценить торможение при выполнении из ОЗУ. Описание XBASICа я хотел спросить на форуме, но, как я понимаю, оно недоступно. Кроме того, даже если была бы пресловутая табличка, полного доверия у меня к ней после ознакомления с BEEP нет. Там и ошибка есть, и зачем-то ei/di, в общем как-то не особо. Quote:
UPD.
v3.2 из каталога игрушки TAIPEI. В сборнике SYSTEM еще есть версия 3.1
А от какой проги взят этот XBASIC? |
Author: | liberation [ 26 Oct 2012, 22:20 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Quote: Что именно изменяется, т.е. описание расширенного бейсика ?
Как изменяется поведение вышеперечисленных операторов, какой функционал они реализовывают. Quote: Подробно я смотрел BEEP, т.к. он бипит из ОЗУ и я предположил, что возможно в руководстве по XBASIC есть табличка, где расписаны соответствия аргументов и нот - можно было бы попытаться оценить торможение при выполнении из ОЗУ. Описание XBASICа я хотел спросить на форуме, но, как я понимаю, оно недоступно.
Описание XBASIC действительно недоступно, поскольку его никогда не существовало. Если Вы читали воспоминания Текотева, то могли заметить, что для программистов поначалу вообще никакой документации не предполагалось, и так было аж до 91-го года:
Quote: А с 1991 года руководство по эксплуатации было дополнено «Руководством программиста» и в комплект программ было включено системное ПО для ПК.
Такой вот юзепфрендли подход. Quote: Там и ошибка есть, и зачем-то ei/di, в общем как-то не особо.
Да, остается только догадываться, на каких именно машинках писалось ПО для серийного ПК-01. То ли это были таинственные прототипы, то ли последующие разработки (ПК-01М, к примеру).Quote: v3.2 из каталога игрушки TAIPEI. В сборнике SYSTEM еще есть версия 3.1
У меня есть ничем не подкрепленное подозрение, что расширений стандартного Бейсика было больше. Но это пока догадки, нужно внимательно пересмотреть наследие ПК-01 на этом языке.
|
Author: | ivagor [ 27 Oct 2012, 11:01 ] |
Post subject: | Re: Расширенный Basic для ПК-01 "Львов" |
Quote: Как изменяется поведение вышеперечисленных операторов, какой функционал они реализовывают.
ОК, я напишу про BEEP и про TAN, а кто-нибудь про другие.BEEPпериод_колебаний_канала1,период_колебаний_канала2,длительность[;аналогично и т.д.] - звучит IMHO довольно неприятно. числовая_переменная=TAN() - опрос курсора без буферизации, можно отслеживать одновременное нажатие клавиш. Quote: Описание XBASIC действительно недоступно, поскольку его никогда не существовало.
Тогда игрушки в каталоге XBS написали авторы XBASICа или их знакомые? Или те, кто покопался в XBASICе и вдруг решил на нем что-то сделать? Или еще вариант - авторы для затравки сделали пару игрушек, их (эти игрушки) кто-то посмотрел и по аналогии сделал свои.Quote: У меня есть ничем не подкрепленное подозрение, что расширений стандартного Бейсика было больше.
В архиве SYSTEM папка DEVELOP\FORBASIC еще есть чего-то.
|
Page 1 of 3 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |