$MACRO LEN string ?? 2 mov #@{1},r0 #@2=. tstb (r0)+ bne #@2 sub #@{1},r0 dec r0 $ENDM $MACRO WRITE-LINE fdb input-buffer size .mcall put$ put$ #@1 #@2 #@3 $ENDM / PROGRAM put ; AUTO buf[102.] ;FUNCTION main[argc,argv] ; PRINTF "%d" fopen[#inr,.argv[#2],"read"] ; PRINTF "%d" fopen[#outr,.argv[#1],"write"] ; DO FOREVER ; IF get[#inr,&buf,#100.] LT #0 ; BREAK ; FI ; . put[#outr,&buf] ; OD ; RET FUNCTION put[fdb,string] LEN string mov r0,r3 LET r0 = fdb LET r4 = string WRITE-LINE r0 r4 r3 movb f.err(r0),r0 RET .end