по идее так
вызов этой подрограммы должен выглядеть как-то так
Код:
jsr pc,_COPY
dw _FROM
dw _TO
dw _SIZE (в словах?)
next_cmd:
кратнокое описание
сохранили регистры,
вытянули параметры,
переместили адрес возврата в правильное место
скопировали
восстановили регистры
выход
весь смысл в строчках
[code]
016 332: MOV (R1)+,(R2)+
016 334: SOB R3,016 332 ; R3 = R3-1; если R3 не равно 0, то перейти к 016 332
[code]
а коментарий не верный,
не " ; R2 = R1, R1 = R1+2, R2 = R2+2;"
это взять слово по адресу на который указывает R1, поместить его по адресу на который указывает R2
после чтения/записи увеличиваем значение регистров на 2 (по словам).
собственно т.к. C писался как "супер макро для DEC"
то в сишной нотации это
*(R2++)=*(R1++)
в вашем роме это так
Код:
RAM:001016 ; ---------------------------------------------------------------------------
RAM:001020 word_1020: .word 12 ; DATA XREF: sub_1030+4o
RAM:001022 .word 15
RAM:001024 .word 0
RAM:001026 .word 40
RAM:001030
RAM:001030 ; =============== S U B R O U T I N E =======================================
RAM:001030
RAM:001030
RAM:001030 sub_1030: ; CODE XREF: RAM:loc_444P
RAM:001030 ; RAM:000466P
RAM:001030 call @#_COPY ; DW _From,_TO,_Size
RAM:001030 ; ---------------------------------------------------------------------------
RAM:001034 .word word_1020
RAM:001036 .word word_114740
RAM:001040 .word 4
RAM:001042 ; ---------------------------------------------------------------------------
RAM:001042 mov #-63012, R3
RAM:001046 clr -(R3)
p.s. давненько с PDP11 асм не возился, все больше с Intel
но вроде порядок операндов не напутал