Pull to refresh

Comments 30

Из-за отличающихся от опубликованной в "Моделисте-конструкторе" смещений адресов прошивки ПЗУ с O0C0 на 00F0, часть моего детства была потрачена на перевод опубликованных в том же журнале листингов кода программ для "Специалиста" из 16-ричного вида в двоичный (в клетчатой школьной тетрадке), а далее из двоичной — в читабельный ассемблер с помощью тонкой оранжевой книжки "Система команд процессора КР580ВМ80" в попытке отличить код от данных и заменить адреса обращений к подпрограммам ПЗУ. Потом вбивать с помощью "Монитора" измененный код в память, записывать на пару-тройку кассет (защита от зажевывания пленки), запускать и дебажить, дебажить, дебажить, после каждого бага перезапуская, загружая, выискивания блох и снова записывая на стопку кассет… Всего лишь один байт, а жизнь могла бы сложиться совсем иначе… В свете этого опыта достаточно забавно сейчас читать нытьё "разработчиков", которым не те фреймворки для своего Майнкрафта завезли...

Вопрос бифуркации жизни не раскрыт. Вы сожалеете о потраченном на выявление и исправление ошибки время, или благодарны ей за полученный опыт и вектор движения?
С товарищем в своё время собирались перенести в тетрадке бинарный код понравившейся игрушки (всего-то 48 кБ), уж очень она хороша была. На исходной машинке (Yamaha) не было дисковода. В данном случае хорошо, что не собрались — позже узнали, что процессор у неё другой системы [команд].

Спасибо автору за интересную статью.
Мне тоже нравится это слово)
Однозначно ответить сложно: история не терпит сослагательных наклонений.
Но вектор был определён однозначно, и по сей день.
Фраза про единственный байт — скорее проявление эмоций на волне временно нахлынувшей ностальгии, и может послужить максимум почвой для философских допущений.
Статья да, выше всяких похвал.
Был период, когда у одного человека была подшивка журналов Радио, которые он никому не давал, прикрываясь «Это батино, нельзя, но тут читать можете». Я с другом напрашивался к нему в гости, приносил магнитофон с микрофоном и сидел читал дампы голосом в магнитофон. При этим пытался выработать относительно быстрый темп, чтобы экономить длительность кассеты. А потом дома ночами сидя в наушниках переносил это дело уже в цифру. За несколько заходов удалось «вынести» из «хранилища» приличный объём данных. Были разные казусы: и «замыливался» глаз, и «заговаривался». Что-то вычислял на месте, уже на тот момент зная систему команд и таблицу опкодов, что-то было восстановлено только после отдельного похода в «хранилище» с блокнотиком, где были помечены конкретные места. Весёлое время без интернетов, выживали как могли. :)

Дампы. Голосом. В магнитофон!

Это за пределами кинестетики, мне кажется)

Но в целом, кстати, ничего особенного. Со временем вырабатывается некоторая скорость чтения, которая даже немного выше той скорости, которой ты мог набирать этот дамп. Поэтому даже пользовался паузой. В наушниках набиралось особенно кайфово. Проблема была только в закрадывающихся ошибках, исправить которые возможно только следующим походом к первоисточнику.
С товарищем хотели перенести понравившуюся игрушку в 32 кБ с Yamaha (КУВТ) на Искру-1030 через бумажный блокнот — у Ямахи был картридж и не было дисковода.
Вовремя узнали, что в компьютерах используются несовместимые процессоры.

Сначала надо было вбить дамп, подсчитать контрольные суммы правильным способом (микрошевский вроде ни с чем не был совместим), а уж потом менять в нём адреса, сохранив конечно оригинал

То ли для РК, то ли для Специалиста, а может и для ЮТ был то ли отладчик, то ли спец лоадер, который перемещал программы в памяти пользуясь битовой картой, генерируемой по результатам двух ассемблирований с разными ORG. Я портировал его для Микроши и перезаписал почти все программы имеющиеся. Бэйсик не осилил и пару игрушек. А так держал несколько программ в памяти, которые изначально пересекались по адресам.

Это было в журнале Радио:
1. «Перемещающийся загрузчик», №3'88, стр. 32 и 33
2. «О переносимости программ», №5'88, стр. 29 и 30
3. «О перемещении программ в машинных кодах», №3'89, стр. 51-54
  1. «О перемещении программ в машинных кодах», №3'89, стр. 51-54

Вот оно, да. Я как раз в 89-м начал Радио выписывать.


А вы наизусть это всё помните?

Увы нет. У меня какие-то флэшбэки на какие-то особые темы. Если я на 80% уверен, что оно там есть, то начинаю шерстить «путеводитель». И если нахожу — выписываю всё.

Конкретно по перемещаемости программ я помнил потому, что сам этой темой в середине 90х но уже на Орионе занимался. Но учитывая, что и Специалист и Радио-86РК на одном процессоре, то сути это не меняет и тема в принципе общая.

Ну и я не был уверен, про какую конкретно идёт речь поэтому записал все 3. Но лично я пользовался «Перемещающийся загрузчик». Ковырял его и использовал его идею но уже по-своему.
Надо было volkov commander на дискету. И копировать утилиты на рамдиск перед запуском.
Надо было volkov commander на дискету.

В этом буке нет дисковода. Только CD-ROM.
Кроме того, я обошелся простым ДОСом, как и писал.
volkov commander — это клон nc под простой дос с размером vc.com в 64к, на диск пишет только если явно указать. Ну и рамдиск — таки в простом досе тоже есть соответствующие утилиты. Правда, он тут смысла не имеет — задача скорее одноразовая.
Да, помню эту оболочку. Еще из клонов был ДОС-Навигатор.
Этот уже не для дискет — сам по себе на дискетку не влазил…
Точно!
Как давно все это было…

Вроде можно было почистить, убрать игры, cd-player и на 1.44 влезало вместе с минимальным DOS

Да, можно было.
Я в те времена, когда были PC XT, писал свои оболочки с графикой CGA…
Можно, но… это надо чистить и таки понимать, что требуется для работы урезанного. В случае vc — достаточно просто скопировать vc.com и, может быть, vc.ini
В конце концов, дискетка — это уже лет этак 25 не полноценная система, а нечто ремонтное.
Я бы не стал менять резисторы на диоды. Вполне может оказаться, что с диодами возникает какая-то бяка. Поэтому поставили резисторы, а в схему не внесли изменения. Еще помню была ошибка в разводке печатной платы. Разъем параллельного интерфайса. Уже точно не помню, но один из выводов ВВ55 на схеме указан в одну дырочку, а на плате разведен в другую. Я из-за этого, когда к своему Микроше подключал принтер МС6313 неделю ловил причину, почему печатает не то, что нужно.
Вполне может оказаться, что с диодами возникает какая-то бяка.

Какая, например?

Развязка там сделана, чтобы не возникало замыкания на ВВ55.
Когда происходит цикл сканирования клавы, то сначала выставляется лог.0 на PB0, а на всех остальных PB — лог.1. И считывается состояние входов PA0-PA7. Потом лог.0 выставляется на PB1, и снова считывается PA0-PA7. И т.д. Таким образом за 8 считываний по 8 бит получается
64 бита, это и есть 64 клавиши. Диоды поставлены, чтобы при одновременном нажатии двух клавиш 2 одной строке, не замкнуть друг с другом 2 столбца, на одном из которых лог.1, а на другом лог.0. Когда стоят диоды, такого замыкания не происходит. Когда стоят резисторы, то все зависит от номинала. Наверное 300 Ом достаточно для развязки.
Есть нюанс, при нажатии одновременно двух клавиш, диодная развязка позволяет корректно понять какие и сколько клавиш нажато. А резистивная не позволяет, поскольку получается делитель, и на строке образуется половинное напряжение — 2.5 в.
Насчет отсутствия распознания конкретной клавиши в случае нажатия двух и более Вы правы. Помню такую особенность.
Я бы поставил в ноутбук DVD-привод. В нулевых так проапгрейдил успешно один ноутбук. Драйвер SHSUCDX полностью его поддерживал, читал DVD.

Также можно с DVD загрузить Plop Boot Manager, а он уже загрузит DOS с USB.
Я бы поставил в ноутбук DVD-привод.
Ну что Вы? Вы недопоняли. Этот ноутбук нафиг никому не нужен. В том числе, чтобы еще его апгрейдить. Его просто припер мне брат, как самое простое из средств, чтобы прошить ПЗУ однократно.
В обычное время у меня на работе есть приличный комп с LPT, а может я бы хороший программатор под современный порт купил бы. Все из-за самоизоленты… Временное средство, нужное, чтобы я уже ДОС писал и еще Диспетчер Игр дописываю…

… загрузить Plop Boot Manager, а он уже загрузит DOS с USB.
В этом ноутбуке 166MMX пентиум, и нет ни одного USB, и еще было очень далеко до первого USB…
У меня к Микроше есть родная ПЗУ с программами. Если нужно, то могу слить дампы и сделать хорошие фотографии топологии платы с двух сторон.
Если Вам модуль интересен. Можно не клонируя сам модуль, слив дампы и дизасемблировав их, заново перекодировать в адресное поле ОЗУ. Если не ошибаюсь, то адресация ПЗУ начинается с адреса 6000. А ОЗУ с 0000. У меня есть кассеты с программами (родная, выпуск 10 и 13) и еще самописные программы на ассемблере (игры, служебные, драйвер принтера МС 6313). Но не уверен, что они нормально считаются. Кстати, принтер МС 6313 был клоном кокого-то Эпсона. И в принципе, возможно к микроше прилепить матричный Эпсон. К Микроше были и дисководы 5 дюймовых дискет с контроллерами. Но их я видел только на фотографиях в журнале Радио.
Если Вам модуль интересен.
Пока не знаю. Честно говоря, я все в кучу собираю, любой софт для Микроши пригодится.
Можно не клонируя сам модуль, слив дампы и дизасемблировав их, заново перекодировать в адресное поле ОЗУ.
Так, наверное, лучше. Чтобы можно было с SD карты загрузить.
Если не ошибаюсь, то адресация ПЗУ начинается с адреса 6000. А ОЗУ с 0000.
Да, ОЗУ начинается с 0000, а заканчивается 7FFF (32кБ). Но 76D0-7FFF это видеобуфер.
ПЗУ может попадать в любое адресное пространство из свободных участков. А именно 8000-BFFF, E000-EFFF, F000-F7FF.
К Микроше были и дисководы 5 дюймовых дискет с контроллерами. Но их я видел только на фотографиях в журнале Радио.
У меня такой контроллер был… Где он сейчас — не знаю. Но попользоваться им я успел. Ничего не могу сказать плохого, нормальный был контроллер. Но сейчас с дискетами, как и с дисководами трудно, поэтому и сделал SD.

Sign up to leave a comment.

Articles