PC-01 Lviv

It is currently 18 Apr 2024, 20:55

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 12 posts ] 
Author Message
 Post subject: Оператор SLOAD
PostPosted: 06 Nov 2012, 14:39 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Реплика вынесена из темы "ПК-I (прототип ПК-01 "Львов")".
Quote:
Получил комментарий от С. Текотеева по поводу ранних версий ПК-01. Сначала о совместимости с Радио-86РК:
Quote:
Похоже, что первоначальный формат записи на МЛ, сохранившийся в команде SLOAD, совместим с форматом Радио-86РК. Можно предположить, что и BASIC-программы были совместимы.
Если изменить константу чтения (адрес BE41) на 4A (в некоторых пределах +- можно поварьировать относительно 4A и все же будет грузить, но константа по умолчанию в два с лишним раза больше чем нужно), то SLOAD будет грузить бейсиковские проги РК-подобных бейсиков.

UPD: Константу 4A я пересчитал из константы векторовского бейсика, который может грузить РКшные проги. Если пересчитать из задержки в оригинальной РКшной процедуре, то получится константа 57h. Но это не особо критично, т.к. SLOAD грузит РКшные проги и при 4Ah и при 57h.

UPD2: Можно не заморачиваться с загрузкой из WAV, а добавить в конфиг Львова для EMU перехват загрузки rk. В секции
cas : tape-recorder {
нужно добавить строчку
biproc[E5A0-E5F7]=rk

Для удобства можно еще заменить строчку с фильтром:
filter="Lvov files (*.lvt;*.l??)|*.lvt;*.l??|RK86 files (*.rk?)|*.rk;*.rk?"

UPD.
Связанная тема "ПК-I (прототип ПК-01 "Львов")".


Top
   
PostPosted: 06 Nov 2012, 23:26 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
SLOAD будет грузить бейсиковские проги РК-подобных бейсиков.
Отличное исследование! А как с запуском РК'шных программ на Бейсике на "Львове"? Никаких экспериментов?

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 07 Nov 2012, 09:39 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Quote:
А как с запуском РК'шных программ на Бейсике на "Львове"? Никаких экспериментов?
Очень простенькие программы пойдут без переделок, одну такую я попробовал. Но подавляющее большинство нужно дорабатывать. Проблем несколько:
1. Коды токенов совпадают не на 100%
2. Размеры экрана не совпадают ни по символам ни по графике.
3. В РКшных игрушках можно встретить вызовы процедур в кодах.


Top
   
PostPosted: 14 Nov 2012, 20:33 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
Судя по всему, нужно будет разобрать "по винтикам" пресловутый SLOAD, чтобы получить дополнительную информацию.
он использует фазовую модуляцию для байта, как и РК, а вот логический формат потока я не изучал...
Quote:
Если изменить константу чтения (адрес BE41) на 4A
а "автоподстройки по пилоту" там нет?


Top
   
PostPosted: 15 Nov 2012, 14:33 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Quote:
а "автоподстройки по пилоту" там нет?
Нет, только инициализация при старте. Мне не хватает эрудиции, чтобы вспомнить примеры реализации автоподстройки для РКшного формата.

UPD: Слона я не сразу заметил. Неожиданно (для меня, не для матерых любителей ПК-01) BE41 оказалась многофункциональной ячейкой и судя по руководству программиста - http://lvovpc.ho.ua/files/program.html) ее основной функцией считается признак инвертирования при выводе на принтер.
Или сэкономили один байт или просто забыли, когда делали версию 2.0, что эта ячейка уже используется как константа чтения для SLOAD. Если отключить инверсию при выводе на принтер, записав 0 в BE41, то это будет соответствовать константе чтения (десятичной) 256, при этом удастся загрузить только файлы со скоростью почти в 3 раза медленнее стандартной РКшной.


Top
   
PostPosted: 15 Nov 2012, 15:43 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Или сэкономили один байт или просто забыли, когда делали версию 2.0, что эта ячейка уже используется как константа чтения для SLOAD.
Рискну предположить, что разработчики версии 2.0 могли просто-напросто не знать о функциональном назначении ячейки BE41. Или SLOAD добавили уже после того, как разобрались с поддержкой принтера.

А с какого адреса располагается в ПЗУ подпрограмма SLOAD? Велика ли она по размеру?

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 15 Nov 2012, 16:59 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Quote:
Quote:
Или сэкономили один байт или просто забыли, когда делали версию 2.0, что эта ячейка уже используется как константа чтения для SLOAD.
Рискну предположить, что разработчики версии 2.0 могли просто-напросто не знать о функциональном назначении ячейки BE41. Или SLOAD добавили уже после того, как разобрались с поддержкой принтера.
Известно, что в предыдущей версии был или
1) SLOAD в виде аналогичном 2.0
или
2) его функциональный аналог (возможно расположенный по другим адресам и использующий другие ячейки для хранения служебных данных)
Была ли в предыдущей версии поддержка принтера?
Если со SLOAD вариант 1) и принтера (поддержки принтера) раньше не было, то "забыли про SLOAD", если со SLOAD вариант 2) и принтер был и раньше, то "забыли про принтер" :)
Интересные, но маловероятные комбинации 1) и "принтер был" а также 2) и "принтера не было". В этих случаях можно было бы предположить, что процедурами обмена с магнитофоном и принтером занимались разные люди/команды, которые не общались между собой, и в итоге использовали одну и ту же ячейку для разных целей.

В принципе можно было сделать так - использовать для признака инверсии выдачи на принтер только младший бит соответствующего байта. Размер и время работы процедуры вывода символа на принтер при этом бы не изменилось (надо только поменять ora a на сдвиг), а для константы чтения разница в единицу совершенно не принципиальна (кроме единственной пары 00 и 01).

Вобще разработчики прошивки ПЗУ Львова меня удивляют. В 2.0 есть две разных процедуры рисования точки - "старая" для PLOT/DRAW и "новая". Я бы лично сделал одну, но использовал "препроцессинг" координат.
Quote:
А с какого адреса располагается в ПЗУ подпрограмма SLOAD? Велика ли она по размеру?
С какого это легко, а что касается размера - это как считать.
Обработка оператора начинается с D873 и, в том что касается чтения с магнитофона, заканчивается на D8C4. Потом идет переход на процедуру "адаптации". Тут есть некоторая неаккуратность - SLOAD корректно читает бейсик программу начиная с адреса заданного ячейками 0243-0244, а вот "адаптация" всегда идет с жестко записанного в самой процедуре (в ПЗУ) адреса. Хотя при значениях 243-244 по умолчанию все будет нормально.
В процессе работы SLOAD вызываются и другие процедуры, их размеры мне лень считать. Упомяну только процедуру чтения байта с фазовой модуляцией E5A0-E5F7.


Top
   
PostPosted: 15 Nov 2012, 17:28 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
В этих случаях можно было бы предположить, что процедурами обмена с магнитофоном и принтером занимались разные люди/команды, которые не общались между собой, и в итоге использовали одну и ту же ячейку для разных целей.
Вот-вот. Подозреваю, что этот оператор попал из прошивки ПЗУ неведомой ЭВМ, на основе которой разрабатывали "Львов". Отсюда, кстати, возникают два новых вопроса. Форма оператора загрузки SLOAD довольна специфична, что-то я не могу припомнить, чтобы где-то подобное написание встречал. Попытался погуглить - ноль, никаких зацепок. Использовалась ли еще где-нибудь подобная форма оператора загрузки? И еще вопрос. Интересно, где-нибудь на зарубежных ЭВМ использовался схожий принцип записи инфы на ленту? Надо бы устроить инспекцию ЭВМ бывшего соц.лагеря.
Quote:
Вобще разработчики прошивки ПЗУ Львова меня удивляют. В 2.0 есть две разных процедуры рисования точки - "старая" для PLOT/DRAW и "новая". Я бы лично сделал одну, но использовал "препроцессинг" координат.
Ну, это как раз просто понять. Золотой принцип соблюден: "Работает - не трогай!" :D

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 15 Nov 2012, 18:29 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Quote:
Форма оператора загрузки SLOAD довольна специфична, что-то я не могу припомнить, чтобы где-то подобное написание встречал. Попытался погуглить - ноль, никаких зацепок. Использовалась ли еще где-нибудь подобная форма оператора загрузки?
Сам я придерживаюсь версии о происхождении большинства бейсиков советских 8биток на КР580ВМ80 от бейсика Микро-80, который, в свою очередь, является производной от майкрософтовского альтаирского бейсика. Там и в последователях (первые версии бейсиков для РК86, Специалиста, Вектора, ...) соответствующий оператор - MLOAD. К слову, у почти всех остальных "советских 8биток на КР580ВМ80" тоже бейсик на основе майкрософтовского, но более поздней версии :)
Quote:
Quote:
Вобще разработчики прошивки ПЗУ Львова меня удивляют. В 2.0 есть две разных процедуры рисования точки - "старая" для PLOT/DRAW и "новая". Я бы лично сделал одну, но использовал "препроцессинг" координат.
Ну, это как раз просто понять. Золотой принцип соблюден: "Работает - не трогай!" :D
Шутки шутками, но IMHO это странное разбазаривание ресурсов. Если нормально подойти (в целом к наполнению ПЗУ, не только к рисованию точек), то можно было или сократить число ПЗУшек или добавить функциональности.


Top
   
PostPosted: 15 Nov 2012, 18:44 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Сам я придерживаюсь версии о происхождении большинства бейсиков советских 8биток на КР580ВМ80 от бейсика Микро-80, который, в свою очередь, является производной от майкрософтовского альтаирского бейсика. Там и в последователях (первые версии бейсиков для РК86, Специалиста, Вектора, ...) соответствующий оператор - MLOAD. К слову, у почти всех остальных "советских 8биток на КР580ВМ80" тоже бейсик на основе майкрософтовского, но более поздней версии :)
У Бейсика ПК-01 особенная стать, о чем есть прямое свидетельство разработчика:
Quote:
8. Помните ли Вы, кто разрабатывал встроенное программное обеспечение для "Львова" (BIOS, интерпретатор Бейсика)? Интересно было бы знать, чем они компилировались, как тестировались. Сохранились ли где исходники?

Базу Монитора (тогда определением BIOS редко пользовались) и Бейсика я скопировал с габаритной системы мирного назначения, что выпускалась в одной из стран соцлагеря (распечатал память на принтере, а затем вручную набирал). Поэтому работу проводил в машинных кодах (искал нужные точки входа и подставлял свои программы написанные в машинных кодах). Позже таким же образом адаптировал компилятор АССЕМБЛЕР и работа пошла повеселее. В основном работал вечерами после окончания рабочего дня и в субботу и воскресенье (в те времена работа в субботу и воскресенье на режимных объектах допускалась по специальному разрешению). Тогда отношение к работе было несколько иным, чем сейчас. Было много энтузиазма, руководство поддерживало инициативу. Уже после создания отдельной лаборатории к работам по совершенствованию ПО были подключены еще люди (я называл их в первом интервью), в частности, доработкой БЕЙСИК занимался Опир Юрий Мирославович (в частности, было добавлена возможность редактирования операторов в пределах одной строки, проводились работы по редактированию в пределах экрана и т.д.). В ПК-01М и ПК-02 "Мукачево" Монитор был несколько переписан и дополнен, да и БЕЙСИК также. После появления на карте мира независимой Украины активно начались работы по созданию собственных новых вариантов ПК, а затем было резко приостановлено финансирование, приборостроительные заводы Львова и микроэлектронные заводы Украины начали «разваливаться» и ... .. имеем результат.
UPD.
Интересно, что такое "габаритная система"?

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 15 Nov 2012, 19:09 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Quote:
Quote:
8. Помните ли Вы, кто разрабатывал встроенное программное обеспечение для "Львова" (BIOS, интерпретатор Бейсика)? Интересно было бы знать, чем они компилировались, как тестировались. Сохранились ли где исходники?

Базу Монитора (тогда определением BIOS редко пользовались) и Бейсика я скопировал с габаритной системы мирного назначения, что выпускалась в одной из стран соцлагеря
UPD.
Интересно, что такое "габаритная система"?
Да, габаритная система, еще и с бейсиком - это загадочно. Неужели из этой оперы - http://www.korabli.eu/galleries/oboi/vo ... ya-sistema?
Еще, кажется у "Квартета И" было - "в одной из - что за секретность?"
Пусть бейсик без транзита с микро-80, а из страны соцлагеря, но все же майкрософтовский альтаировский. Без MS никуда, даже в 80х.


Top
   
PostPosted: 15 Nov 2012, 19:18 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Пусть бейсик без транзита с микро-80, а из страны соцлагеря, но все же майкрософтовский альтаировский. Без MS никуда, даже в 80х.
Против MS у меня при себе возражений нет. :D

А если серьезно, то хотелось бы точнее установить происхождение ПК-01. Вроде бы "усё ясно", но не хватает деталей, без которых пазл не складывается. Плохо, что у нас почти ничего неизвестно о разработках "братушек" из соц.лагеря. На слуху только "Правец" и "Роботрон". Но были же там и собственные бытовые ПЭВМ, уверен.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 12 posts ] 

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