PDA

Просмотр полной версии : Каким должен был быть БИОС БК0010 (017 ПЗУ), с сегодняшних позиций.



MM
15.04.2019, 16:22
Предлагаю уважаемым БКшникам высказать свои идеи и предположения на тему - какой ( по функционалу ) должен был бы быть БИОС ( ПЗУ 017 ) в БК0010 ?
Адрес - 100000, длина - 20000 ( 8 Кбайт ).
Например, почему бы не пристроить туда небольшой пульт с возможностью работать с ОЗУ и регистрами ?
Да повыкинуть всякие там ИндСУ, БлокРед, линейку экранных Табов и т.п. ?
И пристроить туда загрузчик с ТЛГ 176560 , как в ДВК ?

Manwe
16.04.2019, 09:12
Не знаю зачем загрузка с телеграфа, а вот в 10 раз ускоренная загрузка с магнитофона (https://zx-pk.ru/threads/30298-zagruzka-s-magnitofona-na-bk-0011(m).html?p=1007768&viewfull=1#post1007768) пригодилась бы.

Простейший отладчик типа как в Мониторе БК0011 тоже полезен. Просмотр и запись содержимого ячейки, а также регистров. Может быть даже установка точек прерывания для отладки.

ИндСУ, конечно, не нужен. Можно сильно ускорить вывод символа через EMT.
Верхняя служебная строка (где РУС/ЛАТ) только мешает, можно убрать и её.

Самое сложное - сохранить совместимость со старым Монитором. Надо как-то пригвоздить к месту подпрограммы сохранения регистров, вывода звука, текстовое сообщение об ошибке и прочие часто используемые вещи.

Ещё я не понимаю зачем Монитор хранит адрес и длину загружаемого с магнитофона файла аж в трёх местах. Хочется оптимизировать такие вещи, но вдруг потеряется совместимость?

gid
16.04.2019, 10:05
ИндСУ, конечно, не нужен.

Верхняя служебная строка (где РУС/ЛАТ) только мешает, можно убрать и её.
Если всё это выкинуть, то перестанет работать бейсик.
Или предполагается, что это будет совсем другой компьютер, опять не совместимый ни с чем из существующего?
Если сдвинуть со своих мест подпрограммы из ПЗУ перестанет работать множество игр для БК10. Обычно используются п/п выдачи звукового сигнала, приёма и обработки кода с клавиатуры, сохранение/восстановление регистров. и ещё всякое - кто что нашёл себе полезное из игрописателей.

MM
16.04.2019, 11:47
Да, разумеется, ни о какой совместимости 2-го варианта БИОСа с именно 017 ПЗУ речь не идет.
Даже по номерам ЕМТ - как это пытались сделать в БК11 без "М".

Не проще ли изначально было задать хотя бы базовую совместимость с RT-11 ?
*
Похожий вопрос - а нахрена второе ПЗУ БИОСа БК11 ?

Manwe
16.04.2019, 12:35
Да, разумеется, ни о какой совместимости 2-го варианта БИОСа с именно 017 ПЗУ речь не идет.В чём тогда смысл размещать его по тем же адресам? Не лучше ли со 120000 вместо Бейсика?

gid
16.04.2019, 13:24
а нахрена второе ПЗУ БИОСа БК11 ?
А потому что всё в одно ПЗУ не влазит.
На счёт БК11 утверждать не берусь, но в БК11М, например, большую часть второго ПЗУ занимает клавиатурный монитор - это та штука, которая обрабатывает команды пользователя. А так же функции EMT, которые не влезли в первое ПЗУ. Это в основном внутрисистемные, инициализирующие и пр. не очень часто нужные.
А про ПЗУ БК11 у меня сложилось впечатление, что его писали не на ассемблере, а на чём-то высокоуровневом, там код очень нерационально память использует, какие-то таблицы смещений, структуры непонятные, злоупотребление макросами вместо подпрограмм, из-за чего он сильно распухший, и в одно ПЗУ никак не влазит.
У меня силы воли не хватило, чтобы хоть как-то его дизассемблировать.


Не лучше ли со 120000 вместо Бейсика?
Не лучше. Зачем опять в середину адресного пространства втыкать? Тогда уж с 140000

Manwe
16.04.2019, 13:28
Тогда уж с 140000с 120000 по 140000 пропадёт зря

MM
16.04.2019, 15:27
Почему начал обсуждение 017 ПЗУ - потому как буквально с первого взгляда на экран БК0010 ( 1985 г. ) появились вопросы типа "а нахрена полоса с метками ?".
Потом расспросил конструкторов БКшки, они посетовали , что для "серьезных дел есть ДВК", а сама суть БК0010 - в буковке "М" перед децималом платы - "оснастка", т.е. чистейшее ЧПУ. И подход к написанию 017 ПЗУ был "сделать несовместимым с RT-11, что бы заводы покупали ДВК за 15-20 т.р., а всякие балбесы типа студней и ремонтников - БКшки".
Хотели сделать замену НЦ-31 на DECовском машкоде, вероятно.
*
По общей архитектуре БК0010 ( 1982 г. ) проектировалась как экстремально дешовая М-ЭВМ, на порядок дешевле др. готовых решений, от сюда и такие "навороты". Была даже экспериментальная плата ДВК с ВП1-030 на адресах 100000-157777, и ОЗУ на ВП1-037 на адресах 000000-077777, пуск был на адрес 160000 с 000 ПЗУ ( 573РФ3 ), для отладки софта. Плата в серию не пошла, всего видел пару шт., примерно 1983 г. На плате было 2 свободные колодки под ПЗУ, и небыло порта принтера ВП1-033+034 и ГМД-70 ( ВП1-033 ), вместо неё был разведен разъем клавы от ВП1-014 и разъем моника.
*
По БК11 - БИОС в 017 влез, когда писали вменяемые господа в Зеленограде, а когда запрягли бухарика и какую-то бабель на Э. - только в 2 ПЗУ влезло :v2_dizzy_vodka3:

Manwe
16.04.2019, 16:19
По общей архитектуре БК0010 ( 1982 г. ) проектировалась Небось, тогда она называлась БК0001 ?

MM
16.04.2019, 16:50
БК0001
Нет точных данных, но я писал именно о БК0010. Вся разработка была окончена летом 1983 г. в Зеленограде, на Э. только запускали в серию ( по очень стремным грязным чертежам ).
Серия началась в 1983 г, ближе к НГ. Традиционно, никаких таких рекламных постеров и звона по СМИ - всё-таки ЧПУ, а не игрушка для быта.
Очень кстати пришлось распоряжение правительства о компьютеризации школ - в 1984-1985 г. был подготовлен комплект КУВТ-86 и выпущена 084 ПЗУ Фокал с ВП1-35 на адресах 176560.
Оно же поставлялось на производства как комплекс для ГАП.

По БК0001 - тоже была, типа концепт-модель, и имела обозначение как НЦххуу. А перед всей линейкой DEC БКшек была двухпроцессорная М-ЭВМ для министра МЭП Шокина, 1979 г, на 1801ВЕ1.

svinka
17.04.2019, 08:13
Не знаю зачем загрузка с телеграфа, а вот в 10 раз ускоренная загрузка с магнитофона пригодилась бы.
так как в физике последовательно порта присутствует постоянная составляющая - скорость передачи теоретически в 2 раза выше чем с каналом передачи где ее нет. На практике в 3-4 раза

Последовательный кабель USB-TTL не проблема. Компьютер всегда под рукой

- - - Добавлено - - -

По поводу нового системного ПЗУ. Нужна нормальная диагностика всех компонентов платы БК при старте как это сделано у "конкурентов" PC/XT/AT. даже номер неисправной микросхемы ОЗУ можно отморзячить на громкоговоритель. Не используя стек в неоттестированном ОЗУ все умеют код писать?

- - - Добавлено - - -


Если всё это выкинуть, то перестанет работать бейсик. И бейсик переписать...

gid
17.04.2019, 10:03
Однако, все эти пожелания, нивелируются простым фактом: всё, желаемое всеми, просто не влезет в ПЗУ 8Кб.
Неспроста ведь в БК11 уже 2 ПЗУ, кстати, в БК11М БОС написана гораздо профессиональней, чем в БК10, не говоря уже про БК11, нормальный, где-то даже изящный код. Вовсю используются биты 10 и 11 PSW. Там вообще, как мне кажется, пытались сделать псевдопультовый режим, как в настоящих компьютерах.
Да и в БК10 тоже используется 2 ПЗУ, если считать ПЗУ МСТД, где кроме тестов находится клавиатурный монитор/отладчик, который не вмещается в основное ПЗУ.
Сама архитектура БК10 не позволяет сделать там что-то серьёзное с точки зрения сегодняшних позиций. Можно только косметические изменения с осовременниванием алгоритмов. Или менять архитектуру, делать пульт, теневые ПЗУ, чтобы на этапе запуска и диагностики - было одно, а на этапе работы - другое.

hobot
17.04.2019, 19:49
Каким должен был быть БИОС БК0010 (017 ПЗУ), с сегодняшних позиций
1. вот в БИОСе и должна быть настройка режима работы : в плане классика (http://archive.pdp-11.org.ru/gamgal.html) или с какого по какой адрес
2. проверка какого-то порта на <>0 и автоответ ?

MM
18.04.2019, 21:23
А вот следующий вопрос - можно ли впихнуть серьезно сокращенный БИОС в 5 кбайт ( адреса 164000-176777 ) ?
Остается : набор графики
ЕМТ6 и ЕМТ16 переводятся в режим эмуляции дисплея 15-ИЭ-00-013, включая позиционирование курсора.
Добавляется режим 80 кодов в строке символов и некотрый отладчик машкодов.
Выкидывается всё лишнее - черчение линий и точек, режимы "Граф"-"ИСУ"-"БРед", подчеркивание и инверсия символов, переключение в "РП" ( ОЗУ в адресах 0-67777 ), программируемые ключи ( на цифровых кнопках ).

gid
20.04.2019, 10:35
Если я отвечу, что можно, а потом, на практике окажется, что нельзя, то что будет? Ну, т.е. всё нужное никак не уместится, буквально 20 байтов лишнего будет и никак уже не соптимизируешь, некуда дальше. У меня такое часто на БК бывало.
Не попробуешь - не узнаешь.
Я, как практик, на такие вопросы отвечать не умею, а другие товарищи, знакомые с программированием, отвечать что-то не спешат.

MM
16.12.2020, 19:00
Практический вопрос - предположим, есть потребность приспособить БК11М для управления некотрым железком ( внешним ).
Соответственно, что бы исключить всякие там навороты типа блоков КНГМД с дисководами, целесообразно сделать специализированное ППЗУ, да и заменить им ПЗУ на плате БКшки.
Модули для недорогой замены 1801РР1 - см. в разделе о БКшке, на дешовых УФ ППЗУ.

Собственно вопрос - какова может быть стоимость работ по написанию БИОСа по ТЗ ( в блок-схемах ) размером 8 Кбайт для MACRO.SAV на ОС RT-11 SJ V5.00 ?
Необходимо будет провести оптимизацию по быстродействию, т.к. с ним на БКшке "не фонтан" ( что бы не вышло, как в БИОСе на БК11 без "М" ).
Основное назначение - управление подключаемым к БКшке железком.

zx_
16.12.2020, 19:57
MM, даешь ПрофПЗУ for БК0010 !

https://zx-pk.ru/threads/1360-smuc-na-diskretakh-i-plis.html?p=32108#post32108

в этих файлах есть описание )
синклеристы давно этот вопрос утрясли)

MM
16.12.2020, 20:17
ПрофПЗУ
Аппаратный вопрос здесь вторичен, и теоретически решен - см. модули замены 1801РР1.
Больший ( чем 8 или макс. 16 Кбайт ) объем не требуется - его проще подгружать в ОЗУ БКшки с носителей информации, чем модифицировать БИОС.

Основной вопрос в наличии писателей текста программы, и размера оплаты.
Точные параметры будут в ТЗ.

MM
25.12.2020, 16:42
Основной вопрос в наличии писателей текста программы, и размера оплаты.

Пока никаких предложений и оценок не поступало. Даже приблизительных.

Raydac
25.12.2020, 16:56
всё, желаемое всеми, просто не влезет в ПЗУ 8Кб
форт и свернуто-шитый код в помощь

kolk
26.12.2020, 20:55
так как в физике последовательно порта присутствует постоянная составляющая - скорость передачи теоретически в 2 раза выше чем с каналом передачи где ее нет. На практике в 3-4 раза

Есть коды без постоянной составляющей поплотне PM/FM ;)

Manwe
27.12.2020, 18:54
форт и свернуто-шитый код в помощьКстати, да

Sandro
24.01.2021, 14:34
Предлагаю уважаемым БКшникам высказать свои идеи и предположения на тему - какой ( по функционалу ) должен был бы быть БИОС ( ПЗУ 017 ) в БК0010 ?
Адрес - 100000, длина - 20000 ( 8 Кбайт ).
Например, почему бы не пристроить туда небольшой пульт с возможностью работать с ОЗУ и регистрами ?
Да повыкинуть всякие там ИндСУ, БлокРед, линейку экранных Табов и т.п. ?
И пристроить туда загрузчик с ТЛГ 176560 , как в ДВК ?

Я так и не понял, в чём вопрос -- каким должно было быть ПЗУ? Или что туда можно положить, сохрнави совместимость с БК? Поломав совместимость с БК?

Ну ладно. Лично я, если бы писал ПЗУ для БК с нуля, то у меня было бы примерно так:

0) Адреса.
1.1) 160000..176776, без вариантов.
1.2) Поддержка точек входа HALT, пусть даже если регистры сохранения PC и PSW будут отдельным аппаратным расширением.
1) Клавиатура
1.1) Чтение одиночного символа. С автоповтор есть/нет, бибиканье есть/нет. С нормальным звуком а не вот этим чвяком. Буфер символов на 8, этого хватит.
1.2) Ввод строки с редактированием. С нормальным редактированием. То есть, с ходьбой стрелками и вставкой символа вместо забивки. Кстати, вообще не понимаю, зачем вместо редактирования со вставкой сделана клавиша вставки пробела. Что за бред?
2) Экран.
2.1) Вывод символа. Нда, таблица символов занимает 2240. байт, четверть ПЗУ. Ну что поделать... 64 символа, 32 символа (нормальным кодом, а не как в ПЗУ), инверсия, цвета, подчёркивание, курсор. Расширенный экран. Этого довольно. Хотя 80/40 символов тоже не помешали бы.
2.2) Ну хотя бы битом в 177716 сделать аппаратное переключение 512/256 точек. Что, жалко 1шт 155КП2 и половинку 155ТМ2 на переключатель? Кстати, мы при этом ещё и половинку 155ЛА8 (?) экономим (переключатель битов в режиме 512 точек).
2.3) Вывод строки. Без наворотов, максимум -- встроенные коды переключения цветов, подчёркивания, и т.д. Эмуляция терминала не нужна. Кто хочет -- пусть сам пишет эмулятор. Все эти ИНДСУ, БЛР и прочая недочерепашья графика -- просто не нужны. Ими вообще хоть кто-нибудь пользовался?
2.4) Процедуры вывода точки и линии всё же нужны. Машина-то с графикой.
3) Магнитофон.
3.1) Выкинуть дурацкие эти "синхроимпульсы" и сделать автоподстройку скорости чтения в процессе. Плёнка у нас того-с, тянулась. Впрочем у спектрумистов вообще автоподстройки штатно нет ...
3.2) Ну и лучше всё-таки читать с накоплением битов, а не ловлей переходов. Код ненамного длиннее, но устойчивость к ложным переходам через 0 дорогого стоит.
3.3) Поправить подсчёт КС. КС блока нулей не должна быть равна нулю!
3.4) Подмена адреса загрузки при записи. Мелочь, а приятно.
3.5) Штатный автозапуск и чтение без проверки имени.
4) Прочее.
4.1) Кадровое прерывание ОБЯЗАТЕЛЬНО. См. схему от 11М, сделать так же, даже аппаратного разрешения прерывания не надо.
4.2) Точки входа с фиксированными адресами для memset(), memcpy(), strcpy(), strchr() хотя бы. Из ПЗУ-то быстрее.
4.3) Запись блока памяти на магнитофон.
4.4) Хоть какой-нибудь просмотрщик/редактор памяти. Как в МСТД вполне бы устроил.
4.5) Если влезет, то эмулятор EIS. Хотя бы mul и div, без сдвигов можно пережить.
4.6) Ну можно и автозагрузку с телеграфа, это байт 50 или около того при прямых руках программиста.

В принципе, этого более-менее достаточно. В 7,5 КБ должно влезть даже с некоторым запасом.

MM
24.01.2021, 15:14
2.2) Ну хотя бы битом в 177716 сделать аппаратное переключение 512/256 точек. Что, жалко 1шт 155КП2 и половинку 155ТМ2 на переключатель? Кстати, мы при этом ещё и половинку 155ЛА8 (?) экономим (переключатель битов в режиме 512 точек).
В БК0010 вывод на ч/б всегда 512, переход на 256 - програмно.


3.1) Выкинуть дурацкие эти "синхроимпульсы" и сделать автоподстройку скорости чтения в процессе. Плёнка у нас того-с, тянулась. Впрочем у спектрумистов вообще автоподстройки штатно нет ...
Так максимальная скорость чтения зависит от скорости ЦП и может быть в разы быстрее 1200 бод - обычно в магнитофон ставили тумблер "2х" скорость ленты.

Со сменой формата макс. скорость могла быть до 3 Кбод или больше - были специальные программы для записи/чтения в быстром формате.
Обращаю внимание, что у 1801ВМ1А 3 мгц быстродействие в ПЗУ 300 т.рег-рег, а у Z80 3.5 мгц - в районе 900 т. рег-рег.

Sandro
24.01.2021, 17:13
В БК0010 вывод на ч/б всегда 512, переход на 256 - програмно.

Я знаю. И именно это я считаю ошибкой. На обоих выходах должно быть одно и то же. Либо на обоих 512, либо на обоих 256. С помощью битика в порту. Цена вопроса -- заменили половинку мелочи на полтора корпуса. Ну или не заменили, если буферизовать ч/б биты. А, блин, их же всё равно инвертировать надо. Ну, значит, не заменили. Просто добавили полтора корпуса.


Так максимальная скорость чтения зависит от скорости ЦП и может быть в разы быстрее 1200 бод

В смысле? Скорость ЦП тут в любом случае избыточна. На плёнку более 5КГц примерно уже уверенно не запишешь. Даже в худшем случае у БК есть где-то 100К оп/сек, этого достаточно более чем.


Со сменой формата макс. скорость могла быть до 3 Кбод или больше - были специальные программы для записи/чтения в быстром формате.

Сам писал. И помню, что со стандартным форматом БК при более, чем 2x скорости начинали лезть ошибки постоянно.

TheGWBV
24.01.2021, 18:53
Ну, сейчас, наверное, хватило бы наличия только функции загрузчика блока информации в ОЗУ, и спецсимволов с цифрами для Просмотра-изменения ОЗУ :)
А в 80-90-е и векторное рисование из Фокала и Бейсика было достижением :)

- - - Добавлено - - -

И нельзя было в те годы сделать драйвер ТВ без поддержки ИНДСУ и БлокРед - без них никак на экране самого БК не рассказать начинающему пользователю какие кнопки для чего нажимать.

Sandro
24.01.2021, 19:01
Ну, сейчас, наверное, хватило бы наличия только функции загрузчика блока информации в ОЗУ, и спецсимволов с цифрами для Просмотра-изменения ОЗУ :)
И нельзя было в те годы сделать драйвер ТВ без поддержки ИНДСУ и БлокРед - без них никак на экране самого БК не рассказать начинающему пользователю какие кнопки для чего нажимать.

Это ещё почему? БК же не терминал с фиксированной системой команд (наподобие 15ИЭ), а полноценный автономный компьютер. Можно писать и рисовать на экране абсолютно всё, что угодно.

TheGWBV
24.01.2021, 19:16
Это ещё почему? БК же не терминал с фиксированной системой команд (наподобие 15ИЭ), а полноценный автономный компьютер. Можно писать и рисовать на экране абсолютно всё, что угодно.

Проще с помощью кода ИНДСУ включить отображение знаков со стрелочками, чтобы пользователю объяснить какие манипуляции он может производить с помощью клавиатуры в программе, чем их рисовать операторами Бейсика вроде Line.

Sandro
24.01.2021, 19:26
Проще с помощью кода ИНДСУ включить отображение знаков со стрелочками,

Проще всего не делать из функции печати символа эмулятор терминала. Кому надо -- пусть сам пишет себе эмулятор.


чтобы пользователю объяснить какие манипуляции он может производить с помощью клавиатуры в программе, чем их рисовать операторами Бейсика вроде Line.

Какой вообще Бейсик, при чём тут он? Речь идёт о минимально необходимом и максимально полезном мониторе(+БИОС). Зачем тратить драгоценное пространство ПЗУ на редко нужные вещи?

TheGWBV
24.01.2021, 20:00
Sandro, вот в 80-е и решили, что ежеле кому такой монитор не нужен, пусть свой напишет и прошьёт в ПЗУ, и заменит им 017- ую. А школьникам нужны стрелочки и чебурашки, и символы карточных мастей всех :) Чтобы с помощью Фокала и Бейсика, и режима ГРАФ, интерес к компьютерам у школьников зародить :) А это было не просто даже в конце 80-х. Из двух 10-х классов, наверное, только 2% учеников потянулись писать программы вне школьной программы :)

- - - Добавлено - - -



И пристроить туда загрузчик с ТЛГ 176560 , как в ДВК ?
Так блок ИРПС или С2 не входил в стандартную поставку БК0010. Может логичнее было бы блок МСТД+С2 иметь вместо МСТД, да с квази ПЗУ на адресах Фокала. Код МСТД+С2 имел бы загрузчик сетевой, а в квази ПЗУ можно было-бы хоть Mirage расположить, хоть Фокал или Бейсик, с поддержкой печати на принтеры по С2.

Sandro
24.01.2021, 20:25
Sandro, вот в 80-е и решили, что ежеле кому такой монитор не нужен, пусть свой напишет и прошьёт в ПЗУ, и заменит им 017- ую.

Намертво запаянную 17-ю?


А школьникам нужны стрелочки и чебурашки, и символы карточных мастей всех :) Чтобы с помощью Фокала и Бейсика, и режима ГРАФ,

Стрелочки и чебурашки вместе с мастями находятся в наборе псевдографики, и для их вывода режим ИНД СУ не нужен вовсе, они прекрасно печатаются и так. Более того, шрифт в мониторе БК-0010 не содержит изображений для символов с кодами менее 040(32.), поэтому для управляющих кодов режим ИНД СУ выводит инверсные латинские буквы, а не стрелочки и пр. Ну и зачем это надо? Смысл режима БЛР вообще не ясен.

По поводу режима ГРАФ: вот пусть он и будет реализован в Бейсике или Фокале, если так уж надо. Но в мониторе-то зачем?



интерес к компьютерам у школьников зародить :) А это было не просто даже в конце 80-х. Из двух 10-х классов, наверное, только 2% учеников потянулись писать программы вне школьной программы :)


Причём тут ПЗУ 017? Надо делать программы для детей -- делайте. Но зачем их запихивать в стандартное ПЗУ машины? Это же типичные пользовательские приложения, они должны быть загружаемыми. В ПЗУ должен быть системный функционал.



Так блок ИРПС или С2 не входил в стандартную поставку БК0010. Может логичнее было бы блок МСТД+С2 иметь вместо МСТД, да с квази ПЗУ на адресах Фокала. Код МСТД+С2 имел бы загрузчик сетевой, а в квази ПЗУ можно было-бы хоть Mirage расположить, хоть Фокал или Бейсик, с поддержкой печати на принтеры по С2.

Много чего можно было. Так тоже имело бы определённый смысл, да. Но речь же идёт про базовое системное ПЗУ. В нём должны быть только самые необходимые вещи. У нас же по условиям задачи всего 8К.

PS: В ИРПС же вроде есть место под одну ПЗУ? Впаять туда Фокал или даже дочку Фокал + МСТД, вот нечто похожее и получится.

TheGWBV
24.01.2021, 22:02
Sandro, а откуда тогда в режиме БЛ Ред берёт монитор изображения диагональных стрелок? :)

- - - Добавлено - - -

Для минимального Монитора хватило бы и символов с кодами 32-63... и для отладчика, и для первичного загрузчика...

nzeemin
10.02.2021, 13:01
В копилку идей "чего хотелось бы в BIOS" - код распаковки для какого-нибудь популярного LZ-сжатия.

Manwe
13.02.2021, 01:33
В копилку идей "чего хотелось бы в BIOS" - код распаковки для какого-нибудь популярного LZ-сжатия.1. LZSA2
2. Эмулятор EIS (расширенной арифметики)
3. Драйвер ускоренной загрузки с магнитофона
4. Отладчик
5. Процедуру ввода и редактирования строки символов с автоповтором