Иногда в интернетах вспоминают о древнем компьютере "Микро-80", после очередного поста я решил посмотреть на него. Чаще всего публикуют только это фото - один из авторов компьютеров "Микро-80" Сергей Николаевич Попов с первым экземпляром "Микро-80".
Эмуляторов нашлось два - Башкирия-2М и Emu80. Документации тоже есть немношк.
Скачал эмуль и застрял на вечер - выгрузка блока из монитора дает файл формата .rk8 нулевой длины. Переключился на версию с монитором Радио-86РК - выгрузил файл, чтобы разобраться с этим форматом. Эмулятор "Башкирия-2М" тоже выгружает .rk другого формата.
Заодно на сайте Emu80 нашлась давняя утилита bin2tape с исходниками. Ей я и занялся.Подготовил бинарь:
Я долго копался с подсчетом контрольной суммы, но в конце концов разобрался в исходниках и пазл сложился, осталось подготовить данные: device zxspectrum48
prgstart equ $8000
MACRO swapw wo
dw ((wo&255)<<8)|((wo>>8)&255)
ENDM
ORG prgstart-4
swapw begin
swapw end
begin
ld hl,$E800 ; characters
mu:
ld (hl),l
inc l
jp nz,mu
ret
end
;header
db 0,0,0,$E6
endrk8:
savebin "outchar.rk",prgstart-4,endrk8-(prgstart-4)
;precalc check sum - for example must be BB,B8
LUA ;allpass
local checksum
local fp
checksum=0
for i=sj.get_label("begin"),sj.get_label("end"),1 do
checksum=checksum+sj.get_byte(i)*257
end
print(string.format("%02x",checksum))
fp = assert(io.open("outchar.rk", "ab"))
fp:write(string.char(math.floor((checksum %65536)/256)))
fp:write(string.char(checksum % 256))
assert(fp:close())
ENDLUA
Результат работы программы
После всей этой возни с форматом мне расхотелось что-то еще изучать, вернусь позже.



Комментарии
Отправить комментарий