/*
 *	write end record into object file
 */
void obj_end(void)
{
	switch (out_form) {
	case OUTBIN:
		break;
	case OUTMOS:
		break;
	case OUTHEX:
		flush_hex();
		fprintf(objfp, ":00000001FF\n");
		break;
	}
}
/*
 *	write <count> bytes 0xff into object file
 */
void obj_fill(int count)
{
	switch (out_form) {
	case OUTBIN:
		while (count--)
			putc(0xff, objfp);
		break;
	case OUTMOS:
		while (count--)
			putc(0xff, objfp);
		break;
	case OUTHEX:
		flush_hex();
		hex_adr += count;
		break;
	}
}
示例#3
0
/*
 *	write <count> bytes 0xff into object file
 */
void obj_fill(int count, int value)
{
	switch (out_form) {
	case OUTBIN:
		while (count--)
			putc(value, objfp); // 0xff -> 0x0
		break;
	case OUTMOS:
		while (count--)
			putc(value, objfp);
		break;
	case OUTHEX:
		flush_hex();
		hex_adr += count;
		break;
	}
}
/*
 *	write opcodes in ops[] into object file
 */
void obj_writeb(int opanz)
{
	register int i;

	switch (out_form) {
	case OUTBIN:
		fwrite(ops, 1, opanz, objfp);
		break;
	case OUTMOS:
		fwrite(ops, 1, opanz, objfp);
		break;
	case OUTHEX:
		for (i = 0; opanz; opanz--) {
			if (hex_cnt >= MAXHEX)
				flush_hex();
			hex_buf[hex_cnt++] = ops[i++];
		}
		break;
	}
}