Перебирая свои запасы компьютерного «железа», я неожиданно обнаружил внешний модем ACORP-M56EMSF в полной исправности с кабелем и блоком питания. Использовать его по назначению уже не имело смысла, выбрасывать жалко, поэтому решил посмотреть, не найдётся ли внутри что-нибудь полезное. Вскрыв модем, обнаружил микропроцессор L2800. микросхему MODEM DATA PUMP (MDP) и, конечно, перепрограммируемое ПЗУ.Отыскал в Интернете описание микропроцессора и рекомендации по записи информации в ПЗУ. Нашлись также дизассемблер и дополнительные утилиты. Стало ясно, что этот модем вполне можно использовать как программатор микросхем памяти. А может быть, попробовать писать для него программы? Жаль, что ассемблера нет …
Но здесь помог универсальный ассемблер TASM, в котором можно самому описывать любые нужные машинные команды. На базе команд процессора 6502 и сведений о микропроцессорах L2800 и R65C29 был подготовлен и включен в библиотеку ассемблера TASM276 файл TASM39.TAB. После трансляции исходного текста программы и обработки OBJ-файла утилитой BIN2S37.EXE получаем файл формата S37, почти готовый к загрузке в модем.
Дело в том, что в память модема программа заносится с адреса 0x8000 и, видимо, может занимать область объёмом 8 Кбайт. Ниже и выше этой области записывать ничего не стоит. По этой причине из S37-файла с помощью текстового редактора необходимо удалить нулевые строки до строки с адресом 0x8000:
L50000800078A2FF9AA200BO1780F0085F3CPD853874 Отредактированный файл можно загружать в модем.
Для примера были разработаны неувядаемая программа «Hello world» и программа управления светодиодом ON (снятие трубки) с помощью клавиатуры терминала. Надеюсь, что собранная мной информация о модеме ACORP-M56EMSF поможет читателям, желающим поэкспериментировать с ним.
Учтите, что в программе RE39.EXE имеется ошибка — оператор STA с кодом 0x9d занимает не три, а два байта памяти. Необходима ручная корректировка. Неправильно работает оператор RBA в файле TASM39 TAB.
Автор: С. ЖУРАВЛЁВ, г. Сафоново Смоленской обл.