Comments 30
Из-за отличающихся от опубликованной в "Моделисте-конструкторе" смещений адресов прошивки ПЗУ с O0C0 на 00F0, часть моего детства была потрачена на перевод опубликованных в том же журнале листингов кода программ для "Специалиста" из 16-ричного вида в двоичный (в клетчатой школьной тетрадке), а далее из двоичной — в читабельный ассемблер с помощью тонкой оранжевой книжки "Система команд процессора КР580ВМ80" в попытке отличить код от данных и заменить адреса обращений к подпрограммам ПЗУ. Потом вбивать с помощью "Монитора" измененный код в память, записывать на пару-тройку кассет (защита от зажевывания пленки), запускать и дебажить, дебажить, дебажить, после каждого бага перезапуская, загружая, выискивания блох и снова записывая на стопку кассет… Всего лишь один байт, а жизнь могла бы сложиться совсем иначе… В свете этого опыта достаточно забавно сейчас читать нытьё "разработчиков", которым не те фреймворки для своего Майнкрафта завезли...
С товарищем в своё время собирались перенести в тетрадке бинарный код понравившейся игрушки (всего-то 48 кБ), уж очень она хороша была. На исходной машинке (Yamaha) не было дисковода. В данном случае хорошо, что не собрались — позже узнали, что процессор у неё другой системы [команд].
Спасибо автору за интересную статью.
Однозначно ответить сложно: история не терпит сослагательных наклонений.
Но вектор был определён однозначно, и по сей день.
Фраза про единственный байт — скорее проявление эмоций на волне временно нахлынувшей ностальгии, и может послужить максимум почвой для философских допущений.
Статья да, выше всяких похвал.
Дампы. Голосом. В магнитофон!
Это за пределами кинестетики, мне кажется)
Сначала надо было вбить дамп, подсчитать контрольные суммы правильным способом (микрошевский вроде ни с чем не был совместим), а уж потом менять в нём адреса, сохранив конечно оригинал
То ли для РК, то ли для Специалиста, а может и для ЮТ был то ли отладчик, то ли спец лоадер, который перемещал программы в памяти пользуясь битовой картой, генерируемой по результатам двух ассемблирований с разными ORG. Я портировал его для Микроши и перезаписал почти все программы имеющиеся. Бэйсик не осилил и пару игрушек. А так держал несколько программ в памяти, которые изначально пересекались по адресам.
1. «Перемещающийся загрузчик», №3'88, стр. 32 и 33
2. «О переносимости программ», №5'88, стр. 29 и 30
3. «О перемещении программ в машинных кодах», №3'89, стр. 51-54
- «О перемещении программ в машинных кодах», №3'89, стр. 51-54
Вот оно, да. Я как раз в 89-м начал Радио выписывать.
А вы наизусть это всё помните?
Конкретно по перемещаемости программ я помнил потому, что сам этой темой в середине 90х но уже на Орионе занимался. Но учитывая, что и Специалист и Радио-86РК на одном процессоре, то сути это не меняет и тема в принципе общая.
Ну и я не был уверен, про какую конкретно идёт речь поэтому записал все 3. Но лично я пользовался «Перемещающийся загрузчик». Ковырял его и использовал его идею но уже по-своему.
Надо было volkov commander на дискету.
В этом буке нет дисковода. Только CD-ROM.
Кроме того, я обошелся простым ДОСом, как и писал.
Как давно все это было…
Вроде можно было почистить, убрать игры, cd-player и на 1.44 влезало вместе с минимальным DOS
Я в те времена, когда были PC XT, писал свои оболочки с графикой CGA…
В конце концов, дискетка — это уже лет этак 25 не полноценная система, а нечто ремонтное.
Вполне может оказаться, что с диодами возникает какая-то бяка.
Какая, например?
Развязка там сделана, чтобы не возникало замыкания на ВВ55.
Когда происходит цикл сканирования клавы, то сначала выставляется лог.0 на PB0, а на всех остальных PB — лог.1. И считывается состояние входов PA0-PA7. Потом лог.0 выставляется на PB1, и снова считывается PA0-PA7. И т.д. Таким образом за 8 считываний по 8 бит получается
64 бита, это и есть 64 клавиши. Диоды поставлены, чтобы при одновременном нажатии двух клавиш 2 одной строке, не замкнуть друг с другом 2 столбца, на одном из которых лог.1, а на другом лог.0. Когда стоят диоды, такого замыкания не происходит. Когда стоят резисторы, то все зависит от номинала. Наверное 300 Ом достаточно для развязки.
Есть нюанс, при нажатии одновременно двух клавиш, диодная развязка позволяет корректно понять какие и сколько клавиш нажато. А резистивная не позволяет, поскольку получается делитель, и на строке образуется половинное напряжение — 2.5 в.
Также можно с DVD загрузить Plop Boot Manager, а он уже загрузит DOS с USB.
Я бы поставил в ноутбук DVD-привод.Ну что Вы? Вы недопоняли. Этот ноутбук нафиг никому не нужен. В том числе, чтобы еще его апгрейдить. Его просто припер мне брат, как самое простое из средств, чтобы прошить ПЗУ однократно.
В обычное время у меня на работе есть приличный комп с LPT, а может я бы хороший программатор под современный порт купил бы. Все из-за самоизоленты… Временное средство, нужное, чтобы я уже ДОС писал и еще Диспетчер Игр дописываю…
… загрузить Plop Boot Manager, а он уже загрузит DOS с USB.В этом ноутбуке 166MMX пентиум, и нет ни одного USB, и еще было очень далеко до первого USB…
Если Вам модуль интересен.Пока не знаю. Честно говоря, я все в кучу собираю, любой софт для Микроши пригодится.
Можно не клонируя сам модуль, слив дампы и дизасемблировав их, заново перекодировать в адресное поле ОЗУ.Так, наверное, лучше. Чтобы можно было с SD карты загрузить.
Если не ошибаюсь, то адресация ПЗУ начинается с адреса 6000. А ОЗУ с 0000.Да, ОЗУ начинается с 0000, а заканчивается 7FFF (32кБ). Но 76D0-7FFF это видеобуфер.
ПЗУ может попадать в любое адресное пространство из свободных участков. А именно 8000-BFFF, E000-EFFF, F000-F7FF.
К Микроше были и дисководы 5 дюймовых дискет с контроллерами. Но их я видел только на фотографиях в журнале Радио.У меня такой контроллер был… Где он сейчас — не знаю. Но попользоваться им я успел. Ничего не могу сказать плохого, нормальный был контроллер. Но сейчас с дискетами, как и с дисководами трудно, поэтому и сделал SD.
Микроша. Глава вторая. ПЗУ и БСВВ