	title	'gocpm86 - Transfer control to cp/m-86'
;
; Processor: CompuPro 8085/8088 dual processor
; Author: Bruce R. Ratoff
; Modified: 05/02/81
;
; Note:  This routine is to be merged with a copy of CPM86.SYS
;	 which has been moved up to its execution address of 0400H.
;	 It sets the reset vector in high memory and then swaps
;	 processors.
;
vector	equ	0fff0h		; 8088 reset vector address
voffset	equ	2500h		; cp/m-86 bios offset
vsegmnt	equ	0040h		; segment 40=address 00400=base of cp/m-86
jumpf	equ	0eah		; 8086 long jump opcode
cpuport	equ	0fdh		; cpu control port (in cpuport swaps cpu's)
;
	org	0100h
gocpm86:
	mvi	a,jumpf		; store intra-segment jump opcode
	sta	vector
	lxi	h,voffset	; store offset address
	shld	vector+1
	lxi	h,vsegmnt	; store segment address
	shld	vector+3
	in	cpuport		; this should turn on 8088
	jmp	0		; just in case it fails
;
	ds	37fh-$		; fill up to start of CPM.SYS
	db	0		; so we can get right setup from PIP
;
	end	gocpm86
