proc collate local 0,001000,s1 local 1,001000,s2 local 2,000020,length local 3,000020,ltemp local 4,000020,rtemp local 5,000040,llabels local 6,000040,rlabels local 7,000040,clabels local 8,000040,blabels local 9,000040,half local 10,000000,left local 11,000000,right local 12,000000,collate local 13,000000,string local 14,000000,map con 0,010000,2,141,142 con 1,010000,2,143,144 con 2,010000,4,141,143,142,144 con 3,002000,2 filen [-.source]collate.icn declend line 12 init L1 mark L1 mark L2 pnull var 5 str 0 line 16 asgn unmark lab L2 mark L3 pnull var 6 str 1 line 17 asgn unmark lab L3 mark L4 pnull var 8 pnull var 5 var 6 line 18 cat asgn unmark lab L4 mark L5 pnull var 7 str 2 line 19 asgn unmark lab L5 mark L6 pnull var 9 int 3 line 20 asgn unmark lab L6 mark L7 pnull var 3 var 10 line 21 keywd 3 pnull pnull keywd 3 size int 3 div invoke 2 asgn unmark lab L7 mark L8 pnull var 4 var 11 line 22 keywd 3 pnull pnull keywd 3 size int 3 div invoke 2 asgn unmark lab L8 mark L9 pnull var 7 var 12 var 3 var 4 line 23 invoke 2 asgn unmark lab L9 mark L10 pnull var 5 var 3 line 24 asgn unmark lab L10 mark L11 pnull var 6 var 4 line 25 asgn unmark lab L11 mark L12 pnull var 8 var 13 line 26 keywd 3 invoke 1 asgn unmark lab L12 pnull var 9 pnull var 5 line 27 size asgn unmark lab L1 mark L13 pnull var 2 pnull var 0 line 29 size asgn unmark lab L13 mark L14 mark L15 pnull var 2 var 9 line 30 numle unmark mark L17 var 14 var 10 var 7 pnull int 3 var 2 line 31 mult invoke 2 pnull var 10 var 5 var 2 invoke 2 var 10 var 6 var 2 line 32 invoke 2 line 31 cat pnull var 0 var 1 line 32 cat line 31 invoke 3 pret lab L17 line 31 pfail goto L16 lab L15 mark L18 pnull var 14 var 7 var 8 pnull var 10 var 0 var 9 line 33 invoke 2 var 10 var 1 var 9 invoke 2 cat invoke 3 var 12 var 11 var 0 pnull var 2 var 9 line 34 minus invoke 2 var 11 var 1 pnull var 2 var 9 minus invoke 2 invoke 2 line 33 cat pret lab L18 line 33 pfail lab L16 unmark lab L14 pnull line 35 pfail end proc decollate local 0,001000,s local 1,001000,i local 2,000040,dsize local 3,000040,image local 4,000040,object local 5,000020,ssize local 6,000000,collate local 7,000000,left local 8,000000,map local 9,000000,decollate con 0,002000,2 con 1,002000,1 con 2,002000,0 filen [-.source]collate.icn declend line 39 init L1 mark L1 mark L2 pnull var 3 var 6 var 7 line 43 keywd 3 pnull pnull keywd 3 size int 0 div invoke 2 var 7 keywd 3 pnull pnull keywd 3 size int 0 div invoke 2 invoke 2 asgn unmark lab L2 mark L3 pnull var 4 var 7 line 44 keywd 3 pnull pnull keywd 3 size int 0 div invoke 2 asgn unmark lab L3 pnull var 2 pnull var 3 line 45 size asgn unmark lab L1 mark L4 pnull var 1 dup int 0 line 47 mod asgn unmark lab L4 mark L5 pnull var 5 pnull var 0 line 48 size asgn unmark lab L5 mark L6 mark L7 pnull pnull var 5 var 1 line 49 plus var 2 numle unmark mark L9 var 8 pnull var 4 int 1 dup pnull pnull var 5 var 1 line 50 plus int 0 div plus sect pnull var 3 pnull var 1 int 1 plus dup var 5 plus sect var 0 invoke 3 pret lab L9 line 50 pfail goto L8 lab L7 mark L10 pnull var 8 pnull var 4 int 1 dup pnull pnull var 2 int 0 line 51 minus int 0 div plus sect pnull var 3 pnull var 1 int 1 plus dup pnull var 2 int 0 minus plus sect pnull var 0 int 1 dup pnull var 2 int 0 line 52 minus plus sect line 51 invoke 3 var 9 pnull var 0 pnull var 2 int 1 line 52 minus int 2 sect var 1 invoke 2 cat line 51 pret lab L10 line 51 pfail lab L8 unmark lab L6 pnull line 53 pfail end