.ident /23MAR1/ ; 23-MAR-81 23:24:03 .iif ndf $temp$ $temp$=0 $top$=. $auto$=$temp$ .enabl lc ; Mp version as of: 28-jan-81 .title rocpy $auto$=$auto$-<2> inaddr= $auto$ $auto$=$auto$-<2> outaddr= $auto$ $auto$=$auto$-<2> infile= $auto$ $auto$=$auto$-<2> outfile= $auto$ argc=10. argv=12. main:: jsr r0,$$csav add #$auto$,sp $auto.=$auto$ $auto$=$temp$ cmp argc(r5),#4. BGT roc1 BR roc5 roc4=. .ASCIZ _usage: rocpy infile outfile @inaddr outaddr _ .EVEN roc5=. mov r0,-(sp) mov r1,-(sp) mov #roc4,-(SP) mov #$buf$,-(SP) jsr pc,sprint cmp (sp)+,(sp)+ mov #$buf$,-(sp) jsr pc,$type$ mov (sp)+,r1 mov (sp)+,r0 BR roc7 roc6=. .ASCIZ _ The current value for @inaddr should be 364_ .EVEN roc7=. mov r0,-(sp) mov r1,-(sp) mov #roc6,-(SP) mov #$buf$,-(SP) jsr pc,sprint cmp (sp)+,(sp)+ mov #$buf$,-(sp) jsr pc,$type$ mov (sp)+,r1 mov (sp)+,r0 mov #4.,r0 jmp $$cret roc1=. ; roc3=. BR roc9 roc8=. .ASCIZ _read_ .EVEN roc9=. BR roc11 roc10=. .ASCIZ _u_ .EVEN roc11=. mov #roc10,-(SP) mov #roc8,-(SP) mov #1.,r1 asl r1 add argv(r5),r1 mov (r1),r0 mov r0,-2.(r5) mov -2.(r5),-(SP) jsr pc,fopen add #006,sp mov r0,infile(r5) tst infile(r5) BNE roc12 mov #4.,r0 jmp $$cret roc12=. ; roc14=. BR roc16 roc15=. .ASCIZ _Update_ .EVEN roc16=. BR roc18 roc17=. .ASCIZ _u_ .EVEN roc18=. mov #roc17,-(SP) mov #roc15,-(SP) mov #2.,r1 asl r1 add argv(r5),r1 mov (r1),r0 mov r0,-2.(r5) mov -2.(r5),-(SP) jsr pc,fopen add #006,sp mov r0,outfile(r5) tst infile(r5) BNE roc19 mov #4.,r0 jmp $$cret roc19=. ; roc21=. mov #8.,-(SP) mov #3.,r1 asl r1 add argv(r5),r1 mov (r1),r0 mov r0,-2.(r5) mov -2.(r5),-(SP) jsr pc,val cmp (sp)+,(sp)+ mov r0,inaddr(r5) mov #8.,-(SP) mov #4.,r1 asl r1 add argv(r5),r1 mov (r1),r0 mov r0,-2.(r5) mov -2.(r5),-(SP) jsr pc,val cmp (sp)+,(sp)+ mov r0,outaddr(r5) mov inaddr(r5),-(SP) clr -(SP) mov infile(r5),-(SP) jsr pc,seekl add #006,sp mov infile(r5),-(SP) jsr pc,getc tst (sp)+ mov r0,r4 mov r4,inaddr(r5) DEC inaddr(r5) mov #512.,r1 mul inaddr(r5),r1 mov r1,inaddr(r5) mov inaddr(r5),-(SP) clr -(SP) mov infile(r5),-(SP) jsr pc,seekl add #006,sp BR roc23 roc22=. .ASCIZ _outaddr=%o inaddr=%o_ .EVEN roc23=. mov r0,-(sp) mov r1,-(sp) mov inaddr(r5),-(SP) mov outaddr(r5),-(SP) mov #roc22,-(SP) mov #$buf$,-(SP) jsr pc,sprint add #010,sp mov #$buf$,-(sp) jsr pc,$type$ mov (sp)+,r1 mov (sp)+,r0 mov outaddr(r5),-(SP) clr -(SP) mov outfile(r5),-(SP) jsr pc,seekl add #006,sp roc24=. mov infile(r5),-(SP) jsr pc,getc tst (sp)+ mov r0,r3 cmp r3,#-10. BNE roc26 mov #1.,-(SP) jsr pc,exit tst (sp)+ roc26=. ; roc28=. tst r3 BGE roc29 BR roc33 roc32=. .ASCIZ _error or eof on input file code=%d_ .EVEN roc33=. mov r0,-(sp) mov r1,-(sp) mov r3,-(SP) mov #roc32,-(SP) mov #$buf$,-(SP) jsr pc,sprint add #006,sp mov #$buf$,-(sp) jsr pc,$type$ mov (sp)+,r1 mov (sp)+,r0 mov #1.,-(SP) jsr pc,exit tst (sp)+ roc29=. ; roc31=. mov outfile(r5),-(SP) mov r3,-(SP) jsr pc,putc cmp (sp)+,(sp)+ JMP roc24 ;Repeat loop roc25=. mov #1.,-(SP) jsr pc,exit tst (sp)+ $temp$=-4. .END