симуляторы PEP/7 и PEP/8

 

Случайно наткнулся на список различных симуляторов процессоров и стал искать. PEP/7 нашел по старой странице. PEP/8 нашел через окольные пути, попалась только старая версия. 8 и 9 в новой версии доступны только в 64-битной версии.

Занялся PEP/7 и долго тупил, где найти документацию. Оказалось, что доки и примеры доступны в формате .odc, открыть можно в симуляторе. Написал пробную программу - вывод 16-битного числа в двоичном виде( prbin.odc )

LOADA h#AA55,i
JSR prb
STOP
ch: .BLOCK d#1
prb: LOADX d#16,i
prlp: ASLA
STOREA d#-2,s
LOADA h#31,i
BRC putd
LOADA h#30,i
putd: STBYTA ch,d
CHARO ch,d
LOADA d#-2,s
SUBX d#1,i
BRNE prlp
RTS
.END

Решение второй задачи немного затянулось

LOADA h#AAF7,i
JSR prb
CHARO   c#/-/,i
;mirror
LOADA d#0,i
STOREA ch,d
LOADA h#AAF7,i
LOADX d#16,i
mlp: ASRA 
STOREA d#-2,s
LOADA d#0,i
BRC pub
BR skp
pub: LOADA d#1,i
skp: STOREA bw,d
LOADA ch,d
ASLA
ORA bw,d
STOREA ch,d
LOADA d#-2,s
SUBX d#1,i
BRNE mlp
LOADA ch,d
JSR prb
STOP
bw: .BLOCK d#2
ch: .BLOCK d#2
prb: LOADX d#16,i
prlp: ASLA
STOREA d#-2,s
LOADA h#31,i
BRC putd
LOADA h#30,i
putd: STBYTA ch,d
CHARO ch,d
LOADA d#-2,s
SUBX d#1,i
BRNE prlp
RTS
.END

При использовании кривоватого трассировщика узнаешь много нового - например сдвиг ASRA это деление на 2 со знаком. Ассемблер в симуляторе не подарок, чуть что истерит при отсутствии табуляции или при строке с меткой без операнда.

На этом мое терпение кончилось, как будет настроение, вернусь к PEP/9

Архивы тут.


Комментарии