Hello,6301!

 Увидел в интернетах упоминание о компьютере Epson HX-20 и стал читать инфу. Эмуляторов этого компа нашлось немного, остановился на одном. Очевидно, что у автора не только руки растут из жопы, но этот погромизд ебобо на всю голову. Сначала он вывалил список ROMs с контрольными суммами, в ответ на вопрос "А где они?" невнятно пробормотал про Гугл. Этот долбоёб не только пытался искать, но и использовать консоль под венду.

Образы rom нашлись, я  переименовал файлы в соответствии со списком:

hx20_v10.12e 8.00KiB ed7482c6 8fba63037f2418aee9e933a353b052a5ed816ead monitor.rom 1.0 ed7482c6 a110e9d42af302fa36fbb2c2edb5fe88

hx20_v10.13e 8.00KiB f5cc8868 3248a1ddf0d8df7e9f2fe96955385218d760c4ad utility.rom 1.0 f5cc8868 2e8a5acce5208341f7200277c8d398a5

hx20_v10.14e 8.00KiB 27d743ed ebae367b0fa5f42ac78424df2534312296fd6fdc basic2.rom 1.0 27d743ed ee29f72df2b55f21cfe8dd7fcc4e2e92

hx20_v10.15e 8.00KiB 33fbb1ab 292ace94b4dad267aa7786dc64e68ac6f3c98aa7 basic1.rom 1.0 33fbb1ab 6b7541f35820ce50cc375e1fda39dfd9

hx20_v11.12e 8.00KiB 4de0b4b6 f15c537824b7effde9d9b9a21e92a081fb089371 basic1.rom 1.1 4de0b4b6 0853e1c34c1183b6c8e0be63a6ed189e

hx20_v11.13e 8.00KiB 10d6ae76 3163954ed9981f70f590ee98bcc8e19e4be6527a basic2.rom 1.1 10d6ae76 3e1a2d2db6e41f15cb1f65b475f7c05c

hx20_v11.14e 8.00KiB 26c203a1 b282d7233b2689820fcf718dbe1e93d623b67e4f utility.rom 1.1 26c203a1 3d46c1cd4bc95ebf3d486499aadfd009

hx20_v11.15e 8.00KiB 101cb3e8 e0b5cf107a9387e34a0e46f54328b89696c0bdc5 monitor.rom 1.1 101cb3e8 cd18aca262fdb4fa1f5d145e6039c141

hd6301v1.6d 4.00KiB b36f5b99 c6b54163bb268e4f4f5c79aa2e83ec51f775b16a slave.rom N/A b36f5b99 51053c9c726edeef95d2debba8649f0c


кстати, MAME 2.71 тоже не запустилась, выдав сообщение, что не будет работать. Короче, вернулся к hex20.Запуск:
rem mode con: cols=100 lines=30
start /max hex20.exe -s hlw.hex

Встроенный отладчик просто ублюдский, он и помешал мне понять, в чем причина. Нашел документацию, ассемблер, и написал код:
; compilea09 -shlw.HEX hlw.asm
org $1000
;clear screen
    ldaa    #$0C
    jsr    $FF4F;    (DSPSCH) Display one character to virtual screen

    ldaa    #$41
    jsr    $FF4F
WW: bra WW

Как ни странно, но сработало. Я решил упростить печать текста, накидал код, и получил сообщение об ошибке в долбагере. Было потрачено много времени, но я так и не нашел причину.
Нашел другой симулятор с опросом клавиатуры и с выводом текста на экран.

С эмулятором вышла одна засада - сначала можно загрузить готовый код монитора, но позже непонятно, как загрузить еще одну программу. В документации толком ничего не написано.
Подглядел на код печати, и написал программу, которая перестала работать. Глянул в мониторе на код и офигел - совсем не то, что должно было быть. Где-то я ступил, но для ассемблера A09 нужно было указать, что код для 6301! Указал, проверил - теперь работает нормально

OPT H01
; compilea09 -shlw.HEX hlw.asm
org $6000
;    ldaa    #$43 ;C
;    staa $013
ldx #msg ;ce
prl:
ldaa 0,x
staa $013
; fcb 8 
inx
clra
cmpa 0,X
bne prl
ww:  bra ww
msg: fcb "Hola 6301!",0

Вернулся к эмулятору hex20, переписал код снова, работает:
OPT H01
; compile a09 -shlw.HEX hlw.asm
org $1000
ldx #msg
prl:
ldaa 0,x
pshx
    jsr    $FF4F
    pulx
inx
clra
cmpa 0,X
bne prl
ww:  bra ww
msg: fcb $0C,"Hola NedoPC!",0

Если бы в отладчике были функции, как в sim68xx, то я бы понял, в чем причина ошибки. Файлы тут. Некоторые опции командной строки hex20 можно увидеть, запустив hex20.exe -h.

Комментарии