-[ From Seattle's 'downspout' - 206-325-1325 ]-

This code documents a method of modifing ZCPR3 to recognise that it has
loaded a ZCPR3 installable utility and "auto-install" it by loading the
environment address at the correct place in the TPA.

Search the ZCPR3 source file for the label "EXECADR:" and insert the code
shewn below.  Note that all additional code is commented thus ";+ "...

		; RUN LOADED TRANSIENT PROGRAM
		CALL	DEFDMA		; SET DMA TO 0080

		; 
		; attempt to install z3env utilities...
		ld	hl,0100h	;+ point to position of z3env id.
		ld	de,idstring	;+ point to z3env descriptor string.
		ld	b,idlength	;+ reg b will count bytes
z3test:		ld	a,(de)		;+ get a byte for compare...
		cp	(hl)		;+ ...match against code...
		jr	nz,noz3env	;+ ...branch if not installable.
		inc	hl		;+ bump pointers...
		inc	de		;+ ...
		djnz	z3test		;+ branch until all bytes match.
		; tpa contains an installable utility...
		ld	(hl),low z3env	;+ load environment address...
		inc	hl		;+ ...
		ld	(hl),high z3env	;+ ...		
		; 
		; EXECUTION (CALL) OF PROGRAM (SUBROUTINE) OCCOURS HERE
EXECADR:	EQU	$+1		; CHANGE ADDRESS FOR IN-LINE CODE MODIFICATION
noz3env:	CALL	0100H		; CALL TRANSIENT
		; zcpr3 code continues....


		; Insert z3 environment id string in any convenient place.
idstring:	defb	"Z3ENV",01	;+ z3 environment id.
idlength	equ	$-idstring	;+ 

<eof>