;
;  PUT CONTENTS OF THE DATA BUFFER INTO THE OBJECT FILE
;
DATOBJ	LDY	PASSNO
	BNE	NOOBJG
	JSR	OBJSET
DOLOOP	LDA	DATBUF,X
	JSR	WRTBYTE		;PUT EACH BYTE INTO THE BUFFER
	INX
	CPX	LEN		;DONE?
	BNE	DOLOOP
	STY	OBJPTR
NOOBJG	RTS
;
;  PUT THE CONTENTS OF THE MACHINE CODE BUFFER INTO THE OBJECT FILE
;
CODOBJ	LDY	PASSNO
	BNE	NOOBJG
	JSR	OBJSET
CODELP	LDA	OPCODE,X
	JSR	WRTBYTE
	INX
	CPX	LEN
	BNE	CODELP
	STY	OBJPTR
	RTS
;
;  INSURE THE PC AGREES WITH THE LOCATION BEING LOADED
;
OBJSET	LDY	OBJPTR
	BEQ	NEWSET		;IF NOTHING IN BUFFER
	TYA
	CLC
	ADC	OBJBUF
	LDX	OBJBUF+1	;ELSE COMPARE BUF ADDR AND PC
	BCC	NOBX
	INX
NOBX	CMP	PC
	BNE	NOTSET
	CPX	PC+1
	BEQ	SETXIT		;IF NEXT BYTE ADDR MATCHES PC
NOTSET	JSR	WRTOBJ
;
NEWSET	LDA	PC
	STA	OBJBUF
	LDA	PC+1
	STA	OBJBUF+1
SETXIT	LDX	#0
WRTXIT	RTS
;
;  WRITE A BYTE TO THE OBJECT FILE BUFFER
;
WRTBYTE	STA	OBJBUF+4,Y
	INY
	BNE	WRTXIT		;IF NOT THE END OF THE BUFFER
;
;  WRITE A BLOCK OF OBJECT TEXT IN OBJBUF
;
WRTOBJ	STX	LOWP+1
	DEY
	TYA
	PHA
	LDX	OBJBUF+1
	CLC
	ADC	OBJBUF
	STA	OBJBUF+2
	BCC	WRTEQL
	INX
WRTEQL	STX	OBJBUF+3
	LDX	#OBUNIT
	SEC
	PLA
	ADC	#4
	STA	ILEN,X
	LDA	#1
	BCS	ZEROPB
	LDA	#0
ZEROPB	STA	ILEN+1,X
	JSR	CIOV
	BMI	OBJERR
	LDA	OBJBUF+3
	STA	OBJBUF+1
	LDY	OBJBUF+2
	INY
	STY	OBJBUF
	BNE	WRTOUT
	INC	OBJBUF+1
WRTOUT	LDX	LOWP+1
	LDY	#0
	RTS
;
OBJERR	BRK
	NOP
	JMP	($000A)
