/ / / f22 -- allocate common .globl calloc .globl entry .globl declimpl .globl size .globl getc .globl getw .globl xbuf .globl code .globl typ calloc: clr r3 1: cmp r3,symtp bhis 1f mov symtab(r3),r0 bic $!70,r0 / class cmp r0,$40 / common block bne 3f mov r3,-(sp) mov symtab+2(r3),r3 clr r2 / byte offset 2: tst r3 beq 2f jsr r5,declimpl mov symtab+4(r3),-(sp) mov 2(sp),symtab+4(r3) mov r2,symtab+6(r3) jsr r5,size add r0,r2 mov (sp)+,r3 br 2b 2: mov (sp)+,r3 clr symtab+2(r3) mov r2,symtab+6(r3) / common block size 3: add $8,r3 br 1b 1: rts r5 entry: mov progt,r0 jmp *1f(r0) 1: main subr funct blocd main: jsr r5,code ; .even rts r5 subr: funct: jsr r5,code <%n.: %n_\n\0>; .even 8 8 clr r3 1: cmp r3,symtp bhis 1f mov symtab+2(r3),r0 beq 2f mov (r0)+,r1 / num dims asl r1 add r0,r1 / ptr to last dim mov r3,-(sp) mov (r1),-(sp) / dope id clr r2 / dope offset 3: add $2,r2 mov -(r1),r3 cmp r0,r1 bhi 3f neg r3 / adjustable dimension ble 3b mov r0,-(sp) jsr r5,declimpl mov symtab(r3),r0 clrb r0 swab r0 jsr r5,code < rval%dp; %n_\n\0>; .even r0 r3 mov symtab(r3),r3 bic $![377\<8+7],r3 cmp r3,$2\<8+1 / is it i*2 beq 4f bic $!7,r3 movb typ(r3),r3 jsr r5,code < %c%di2\n\0>; .even r3 r0 4: mov 2(sp),r0 jsr r5,code < stst; d%d+%d.\n\0>; .even r0 r2 mov (sp)+,r0 br 3b 3: tst (sp)+ mov (sp)+,r3 2: add $8,r3 br 1b 1: blocd: rts r5