?

Log in

No account? Create an account

Previous Entry | Next Entry

DSC_8219На прошедшем в эти выходные Chaos Constructions'2012 кто-то принёс на выставку Агат  - советский неполный аналог Apple II. С ним была одна дискета, с которой он ничего не хотел грузить. То есть писал "АГАТ" и единственное что можно было сделать - выйти во встроенный монитор, который позволял смотреть память по адресам, менять её, ну и еще дизассемблировать.

DSC_8287Мы (я, tnt23, Oxyd, Meteo и еще один человек) никогда с Apple II и Агатами дела не имели, но предположили, что там ну просто обязан быть Бейсик в ПЗУ. И пытались его самыми разными способами извлечь. Похоже, Бейсика там в помине не было, но в какой-то момент сам процесс стал интереснее цели. Сначала методом тыка мы нашли, какие примерно команды монитор понимает. Просматривая память обнаружили, где примерно начинается ПЗУ (с Fx00) и где ОЗУ, в которое можно писать (с 0100). Поскольку я когда-то начинал с Commodore 64, по крайней мере процессор (6502/6510) был знаком. Так что, просматривая листинг ПЗУ, быстро удалось найти подпрограмму вывода на экран символа (во-первых, она часто вызывалась, во-вторых перед вызовом всегда загружался только аккумулятор: что-то типа LDA ... и затем JSR FDD4). В итоге за несколько минут в кодах была написана суперпрограмма:

DSC_8243DSC_8239INX             ; о том, что нельзя увеличивать напрямую значение аккумулятора я уже и забыл
TXA            ; так что увеличиваем индексный регистр, а потом переносим значение в аккумулятор
JSR FDD4 ; вызываем ROM подпрограмму вывода символа на экран
JMP 0100   ; и по новой..

ассемблировать монитор не умел (или мы не нашли как), поэтому пришлось писать в машинных кодах.
Запущенная программа сходу вывела все символы и даже стала чистить экран и пищать (видимо там есть и управляющие коды). Видео.

Приятно было вспомнить системы, которые можно изучать такими простыми способами :-)

P.S. Заодно, ссылки на фотографии с CC'12. Первый день, Второй день.

Tags:

Comments

( 8 comments — Leave a comment )
sfrolov
Aug. 20th, 2012 04:22 am (UTC)
Бейсика в ПЗУ нет, а монитор начинается с $F800. :)
tnt23
Aug. 20th, 2012 07:52 am (UTC)
Есть вопрос практического свойства по дозиметрам :)
sfrolov
Aug. 20th, 2012 07:56 am (UTC)
Попробую ответить
tnt23
Aug. 20th, 2012 08:15 am (UTC)
Одолжи на пару недель какой-нибудь толковый дозиметр, привозимый на участок грунт контролировать. Вот и весь вопрос :)
sfrolov
Aug. 20th, 2012 08:20 am (UTC)
Могу дать Мастер-1.
cr_it
Aug. 20th, 2012 10:04 am (UTC)
Вычитал тут, что и у Apple бейсик в ПЗУ возник только в Apple II Plus (а для предыдущих моделей существовал некий апгрейд).
sfrolov
Aug. 20th, 2012 10:51 am (UTC)
Наверно в нашем случае разработчики посчитали, что иметь Бейсик на дискете удешевит конструкцию в целом. Большого объема РФки были в дефиците.
nivanych
Aug. 20th, 2012 05:18 am (UTC)
Обалденно!
Хотя и помню эти машинки из школы, но год-два мне не хватило, чтобы до них начали меня допускать.
( 8 comments — Leave a comment )