Я так и не понял, в чём вопрос -- каким должно было быть ПЗУ? Или что туда можно положить, сохрнави совместимость с БК? Поломав совместимость с БК?
Ну ладно. Лично я, если бы писал ПЗУ для БК с нуля, то у меня было бы примерно так:
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 КБ должно влезть даже с некоторым запасом.
В БК0010 вывод на ч/б всегда 512, переход на 256 - програмно.
Так максимальная скорость чтения зависит от скорости ЦП и может быть в разы быстрее 1200 бод - обычно в магнитофон ставили тумблер "2х" скорость ленты.
Со сменой формата макс. скорость могла быть до 3 Кбод или больше - были специальные программы для записи/чтения в быстром формате.
Обращаю внимание, что у 1801ВМ1А 3 мгц быстродействие в ПЗУ 300 т.рег-рег, а у Z80 3.5 мгц - в районе 900 т. рег-рег.
Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения MMTEMA@MAIL.RU
Я знаю. И именно это я считаю ошибкой. На обоих выходах должно быть одно и то же. Либо на обоих 512, либо на обоих 256. С помощью битика в порту. Цена вопроса -- заменили половинку мелочи на полтора корпуса. Ну или не заменили, если буферизовать ч/б биты. А, блин, их же всё равно инвертировать надо. Ну, значит, не заменили. Просто добавили полтора корпуса.
В смысле? Скорость ЦП тут в любом случае избыточна. На плёнку более 5КГц примерно уже уверенно не запишешь. Даже в худшем случае у БК есть где-то 100К оп/сек, этого достаточно более чем.
Сам писал. И помню, что со стандартным форматом БК при более, чем 2x скорости начинали лезть ошибки постоянно.
Ну, сейчас, наверное, хватило бы наличия только функции загрузчика блока информации в ОЗУ, и спецсимволов с цифрами для Просмотра-изменения ОЗУ
А в 80-90-е и векторное рисование из Фокала и Бейсика было достижением
- - - Добавлено - - -
И нельзя было в те годы сделать драйвер ТВ без поддержки ИНДСУ и БлокРед - без них никак на экране самого БК не рассказать начинающему пользователю какие кнопки для чего нажимать.
Не волнуйтесь, моя бабушка водила трактор и пожарную машину (С)
Не волнуйтесь, моя бабушка водила трактор и пожарную машину (С)
Проще всего не делать из функции печати символа эмулятор терминала. Кому надо -- пусть сам пишет себе эмулятор.
Какой вообще Бейсик, при чём тут он? Речь идёт о минимально необходимом и максимально полезном мониторе(+БИОС). Зачем тратить драгоценное пространство ПЗУ на редко нужные вещи?
Sandro, вот в 80-е и решили, что ежеле кому такой монитор не нужен, пусть свой напишет и прошьёт в ПЗУ, и заменит им 017- ую. А школьникам нужны стрелочки и чебурашки, и символы карточных мастей всехЧтобы с помощью Фокала и Бейсика, и режима ГРАФ, интерес к компьютерам у школьников зародить
А это было не просто даже в конце 80-х. Из двух 10-х классов, наверное, только 2% учеников потянулись писать программы вне школьной программы
- - - Добавлено - - -
Так блок ИРПС или С2 не входил в стандартную поставку БК0010. Может логичнее было бы блок МСТД+С2 иметь вместо МСТД, да с квази ПЗУ на адресах Фокала. Код МСТД+С2 имел бы загрузчик сетевой, а в квази ПЗУ можно было-бы хоть Mirage расположить, хоть Фокал или Бейсик, с поддержкой печати на принтеры по С2.
Не волнуйтесь, моя бабушка водила трактор и пожарную машину (С)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)