rts r0 2: mov (r5)+,(r1)+ / read new i-node into "inode" area of core dec r3 bgt 2b rts r0 itrunc: jsr r0,iget mov $i.dskp,r2 / address of block pointers in r2 1: mov (r2)+,r1 / move physical block number into r1 beq 5f mov r2,-(sp) bit $10000,i.flgs / test large file bit? beq 4f / if clear, branch mov r1,-(sp) / save block number of indirect block jsr r0,dskrd / read in block, 1st data word pointed to by r5 mov $256.,r3 / move word count into r3 2: mov (r5)+,r1 / put 1st data word in r1; physical block number beq 3f / branch if zero mov r3,-(sp) / save r3, r5 on stack mov r5,-(sp) jsr r0,free / free block in free storage map mov (sp)+,r5 mov (sp)+,r3 3: dec r3 / decrement word count bgt 2b / branch if positive mov (sp)+,r1 / put physical block number of indirect block 4: jsr r0,free / free indirect block mov (sp)+,r2 5: cmp r2,$i.dskp+16. bne 1b / branch until all i.dskp entries check bic $10000,i.flgs / clear large file bit clr i.size / zero file size jsr r0,copyz; i.dskp; i.dskp+16. / zero block pointers jsr r0,setimod / set i-node modified flag mov ii,r1 rts r0