Про этот компьютер я встретил упоминание в книге Стивена Леви "Хакеры - герои компьютерной революции" и вот решил посмотреть, что он из себя представляет.
Эмулятор на JS существует давно, он представляет из себя смесь инглиша с японским.Есть несколько программ, которые можно запустить и посмотреть на работу. Взял отладчик огнелиса и выгрузил память программы, чтобы посмотреть на код. Познакомиться с опкодами можно тут.
И тут google подложил свинью ссылку на эмулятор MAME 0.236, в котором упоминается эмуляция компьютера. Стал искать версию, везде попалась x64, так называемая win32 эта свалка мусора без программ. Нашел MAME 0.253b и стал играть с ней. Запустид эмулятор: mame tx0_8kw -debug. Чтение хэшей подсказало, что нужен файл bin_munchingSquares.bin, но где его взять? поиски merged ROMs ничего не дали, но все же файл нашелся . Отдельный квест для MAME - запустить программу.- mame tx0_8kw munching -debug. После чехарды с файлами обнаружилось, что эмулятор успокоился, когда файл расположен в roms\tx0_ptp\munching\bin_munchingSquares.bin
Дальше - тупик, я так и не нашел, как загрузить .rim-подобный файлик, отладчик виснет на выборах пункта меню Media.
Остался simh, как я ни пытался, но так и не смог скомпилировать эмуляторы. Вспомнил про архив, который валялся в папке PDP-1 и нашел файлик TX-0.exe. Сегодня с утра нашел другую свалку.
Создал файл simh.ini
; TX-0 Loader Routine, pp20 of TX0_funcDescr.pdf
set dpy enable
att petr bin_munchingSquares.bin
boot petr
и запустил программу, введя в консоли g 20. Появился экран с диагональной линией. Облом-с.
Посмотрел на программу, введя e -m 2-60
TX-0 simulator V4.0-0 Current git commit id: 0912a927
HALT instruction, PC: 017777 (trx 00000 (Transfer Indexed))
sim> e -m 20-60
20: opr cll (Clear left half of AC to zero)
21: add 00052 (Add)
22: trn 00042 (Transfer Negative)
23: opr alr (Place accumulator contents in live register)
24: opr cyl (Cycle AC left one place)
25: opr cyl (Cycle AC left one place)
26: opr cyl (Cycle AC left one place)
27: opr cyl (Cycle AC left one place)
30: opr cyl (Cycle AC left one place)
31: opr cyl (Cycle AC left one place)
32: opr cyl (Cycle AC left one place)
33: opr cyl (Cycle AC left one place)
34: opr cyl (Cycle AC left one place)
35: opr orl (Logical or of AC and LR is placed in LR)
36: lda 00051 (Load AC)
37: opr --- (CLR+PAD+LMB)
40: opr dis (Display point on CRT corresponding to contents of AC)
41: tra 00020 (Transfer)
42: opr cll (Clear left half of AC to zero)
43: opr alr (Place accumulator contents in live register)
44: opr tac (Contents of test accumulator are placed in AC)
45: add 00051 (Add)
46: sto 00051 (Store AC)
47: opr lac (Place LR in AC)
50: tra 00024 (Transfer)
51: sto 00000 (Store AC)
52:
53: sto 00000 (Store AC)
54: sto 00000 (Store AC)
55: sto 00000 (Store AC)
56: sto 00000 (Store AC)
57: sto 00000 (Store AC)
60: sto 00000 (Store AC)
Мало понятно, что это такое. Вспомнил другую версию на PDP-1, в которой картинка менялась в зависимости от статуса слова, который устанавливался тумблерами. Начал нажимать клавиши, и картинка ожила. По ощущениям "Сначала не понял, а потом кааак понял":
Хорошо бы написать свою программу, но кодировать 18-битные опкоды выше моих сил, да и кросс-ассемблер не нашелся
В заключение оставлю
ссылку с файлами и несколько фоток.
Дополнение. Первый блин - комом
Комментарии
Отправить комментарий