<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">;		SWAP.ASM ver. 1.0
;	    by Keith Petersen, W8SDZ
;		  Oct. 3, 1982
;
;The purpose of this program is to temporarily swap
;CP/M's CONSOLE and LIST outputs so that programs
;which normally cannot output to the list device may
;be made to do so.  The function is a "flip-flop" so
;to "un-do" the swap simply execute SWAP.COM again.
;
	ORG	100H
;
	LHLD	1	;GET POINTER TO CBIOS JMP TABLE
	LXI	D,10	;READY TO ADD 10
	DAD	D	;HL=ADRS OF LSB OF JMP ADRS
	PUSH	H	;SAVE ADRS
	MOV	E,M	;SAVE LSB OF JMP IN E
	INX	H	;HL=ADRS OF MSB OF JMP ADRS
	MOV	D,M	;SAVE MSB IN D
	INX	H	;SKIP OVER JMP INSTRUCTION
	INX	H	;HL=ADRS OF LSB OF JMP ADRS
	MOV	C,M	;SAVE LSB IN C
	MOV	M,E	;PUT NEW LSB THERE
	INX	H	;HL=ADRS OF MSB OF JMP ADRS
	MOV	B,M	;SAVE MSB IN B
	MOV	M,D	;PUT NEW MSB THERE
	POP	H	;HL=ADRS OF LSB OF CONOUT JMP
	MOV	M,C	;PUT NEW LSB THERE
	INX	H	;HL=ADRS OF MSB OF CONOUT JMP
	MOV	M,B	;PUT NEW MSB THERE
	RET		;RETURN TO CCP
;
	END
</pre></body></html>