PC-01 Lviv
http://pc01.lviv.ua/forum/

Оператор SLOAD
http://pc01.lviv.ua/forum/viewtopic.php?f=22&t=207
Page 1 of 1

Author:  ivagor [ 06 Nov 2012, 14:39 ]
Post subject:  Оператор SLOAD

Реплика вынесена из темы "ПК-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 "Львов")".

Author:  liberation [ 06 Nov 2012, 23:26 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

Quote:
SLOAD будет грузить бейсиковские проги РК-подобных бейсиков.
Отличное исследование! А как с запуском РК'шных программ на Бейсике на "Львове"? Никаких экспериментов?

Author:  ivagor [ 07 Nov 2012, 09:39 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

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

Author:  sadfsdfsdaf [ 14 Nov 2012, 20:33 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

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

Author:  ivagor [ 15 Nov 2012, 14:33 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

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

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

Author:  liberation [ 15 Nov 2012, 15:43 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

Quote:
Или сэкономили один байт или просто забыли, когда делали версию 2.0, что эта ячейка уже используется как константа чтения для SLOAD.
Рискну предположить, что разработчики версии 2.0 могли просто-напросто не знать о функциональном назначении ячейки BE41. Или SLOAD добавили уже после того, как разобрались с поддержкой принтера.

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

Author:  ivagor [ 15 Nov 2012, 16:59 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

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.

Author:  liberation [ 15 Nov 2012, 17:28 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

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

Author:  ivagor [ 15 Nov 2012, 18:29 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

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

Author:  liberation [ 15 Nov 2012, 18:44 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

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

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

Author:  ivagor [ 15 Nov 2012, 19:09 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

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

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

Author:  liberation [ 15 Nov 2012, 19:18 ]
Post subject:  Re: ПК-I (прототип ПК-01 "Львов")

Quote:
Пусть бейсик без транзита с микро-80, а из страны соцлагеря, но все же майкрософтовский альтаировский. Без MS никуда, даже в 80х.
Против MS у меня при себе возражений нет. :D

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

Page 1 of 1 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/