.title cvtlog ; .show meb rec_size=512 rhb_size=2 .psect data,long infab: $fab fnm= inrab: $rab fab=infab,- rhb=rec_header,- ubf=rec_buffer+1,- usz=rec_size-1 outfab: $fab fnm=,- rfm=var,- mrs=512,- rat=ftn outrab: $rab fab=outfab,- rbf=rec_buffer ;outfab1: $fab fnm=,- ; rfm=fix,- ; mrs=2,- ; rat=cr ;outrab1: $rab fab=outfab1,- ; rsz=2,- ; rbf=rec_header rec_header: .blkb rhb_size rec_buffer: .blkb rec_size .psect code,nowrt start: .word 0 $open fab=infab blbs r0,1$ jmp exit 1$: $create fab=outfab blbs r0,2$ jmp exit 2$: ; $create fab=outfab1 ; blbs r0,3$ ; jmp exit ;3$: $connect rab=inrab blbs r0,4$ jmp exit 4$: $connect rab=outrab blbs r0,5$ jmp exit 5$: ; $connect rab=outrab1 ; blbs r0,6$ ;6$: read: $get rab=inrab blbs r0,5$ jmp exit1 5$: ; set prefix bbc #7,rec_header,10$ ; when the bit is set, we have a control character bicb3 #^xe0,rec_header,rec_buffer cmpb #12,rec_buffer bneq 20$ movb #^a'1',rec_buffer brb 20$ 10$: caseb rec_header,#0,#2 11$: .word 12$-11$ .word 13$-11$ .word 14$-11$ 12$: movb #^a'+',rec_buffer ; no forms advance brb 20$ 13$: movb #^a' ',rec_buffer ; normal forms advance brb 20$ 14$: movb #^a'0',rec_buffer ; double forms advance 20$: ; set suffix ; movzwl inrab+rab$w_rsz,r0 ; bbc #7,rec_header+1,30$ ; when the bit is set, there is a control character ; bicb3 #^xe0,rec_header+1,rec_buffer+1[r0] ; brb 40$ ;30$: clrb rec_buffer+1[r0] ;40$: addw3 #1,inrab+rab$w_rsz,outrab+rab$w_rsz ; $put rab=outrab1 ; blbs r0,50$ ; jump exit ;50$: $put rab=outrab blbc r0,exit jmp read exit1: cmpl r0,#rms$_eof bneq exit done: $close fab=infab $close fab=outfab exit: $exit_s r0 .end start