con_part(sz,w) register sz; word w; { while (part_size % sz) part_size++; if (part_size == EM_WSIZE) part_flush(); if (sz == 1) { w &= 0xFF; if (part_size) w <<= 8; part_word |= w; } else { assert(sz == 2); part_word = w; } part_size += sz; } con_mult(sz) word sz; { long l; if (sz != 4) fatal("bad icon/ucon size"); l = atol(str); fprintf(codefile,".short\t%d\n",(int) l); fprintf(codefile,".short\t%d\n",(int) (l >> 16)); } con_float() { fatal("no reals"); } prolog(nlocals) full nlocals; { fprintf(codefile,"\tjsr Pro\n"); if (nlocals == 0) return; else fprintf(codefile, "\tldx #[%d].h\n\tlda #[%d].l\n\tjsr Lcs\n", nlocals, nlocals); } mes(type) word type; { int argt ; switch ( (int)type ) { case ms_ext : for (;;) { switch ( argt=getarg( ptyp(sp_cend)|ptyp(sp_pnam)|sym_ptyp) ) { case sp_cend : return ; default: strarg(argt) ; fprintf(codefile,".define %s\n",argstr) ; break ; } } default : while ( getarg(any_ptyp) != sp_cend ) ; break ; } } char *segname[] = { ".text", /* SEGTXT */ ".data", /* SEGCON */ ".data", /* SEGROM */ ".bss" /* SEGBSS */ };