;
;       opV20
;
;	V20 instructions
;
;       For disassembly in 16 bit mode
;
code2seg	segment
farroutine	proc	far
		mov	ax,4c00H
		int	21H	; if this file is executed, just terminate
farroutine	endp	
;
code2seg	ends
;
dataseg		segment
alpha		dw	0
nearindirect	dw	beta
farindirect	dd	farroutine
dataseg	ends
;
codeseg	segment
;
	assume ds:dataseg
	assume es:nothing
	assume ss:nothing
	assume cs:codeseg
;
beta	proc	near
	ret
	ret	3
beta	endp
;
;	ensure disassembler synchronization
;
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
	nop
;
;	80186 & V20 instructions
;
	db	62h,0			;bound
	db	0c8h,33h,44h,5		;enter procedure
	db	69h,0,33h,44h		;imul immediate
	db	69h,0c0h,33h,44h	;imul immediate
	db	6bh,0,33h		;imul immediate
	db	6bh,0c0h,33h		;imul immediate
	db	6ch			;ins dx
	db	0f2h,6ch		;ins dx repeated by count in cx
	db	0c9h			;leave procedure
	db	6eh			;outs dx
	db	0f2h,6eh		;outs dx repeated by count in cx
	db	61h			;popa
	db	68h,33h,44h		;push immediate
	db	6ah,33h			;push immediate
	db	60h			;pusha
	db	0c0h,00h,3		;ROL memory by count
	db	0c0h,08h,3		;ROR memory by count
	db	0c0h,10h,3		;RCL memory by count
	db	0c0h,18h,3		;RCR memory by count
	db	0c0h,20h,3		;SHL/SAL memory by count
	db	0c0h,28h,3		;SHR memory by count
	db	0c0h,38h,3		;SAR memory by count
;
	db 90H,90H,90H,90H,90H,90H,90H,90H,90H		; alignment

;
;	V20 unique instructions
;
	db	0fh,20h			;add4s
	db	0fh,12h,0c0h		;clr1 reg8,cl
	db	0fh,12h,000h		;clr1 mem8,cl
	db	0fh,13h,0c0h		;clr1 reg16,cl
	db	0fh,13h,000h		;clr1 mem16,cl
	db	0fh,1ah,0c0h,3		;clr1 reg8,imm3
	db	0fh,1ah,000h,3		;clr1 mem8,imm3
	db	0fh,1bh,0c0h,3		;clr1 reg16,imm4
	db	0fh,1bh,000h,3		;clr1 mem16,imm4
	db	0fh,26h			;cmp4s
	db	0fh,33h,0c0h		;ext bit field
	db	0fh,3bh,0c0h,3		;ext bit field immediate
	db	66h,0c0h		;fp02
	db	66h,000h		;fp02
	db	0fh,31h,0c0h		;insert bit field
	db	0fh,39h,0c0h,3		;insert bit field immediate
	db	0fh,16h,0c0h		;not1 reg8,cl
	db	0fh,16h,000h		;not1 mem8,cl
	db	0fh,17h,0c0h		;not1 reg16,cl
	db	0fh,17h,000h		;not1 mem16,cl
	db	0fh,1eh,0c0h,3		;not1 reg8,imm3
	db	0fh,1eh,000h,3		;not1 mem8,imm3
	db	0fh,1fh,0c0h,3		;not1 reg16,imm4
	db	0fh,1fh,000h,3		;not1 mem16,imm4
	db	65h			;repc
	db	64h			;repnc
	db	0fh,28h,0c0h		;rol4
	db	0fh,28h,000h		;rol4
	db	0fh,2ah,0c0h		;ror4
	db	0fh,2ah,000h		;ror4
	db	0fh,14h,0c0h		;set1 reg8,cl
	db	0fh,14h,000h		;set1 mem8,cl
	db	0fh,15h,0c0h		;set1 reg16,cl
	db	0fh,15h,000h		;set1 mem16,cl
	db	0fh,1ch,0c0h,3		;set1 reg8,imm3
	db	0fh,1ch,000h,3		;set1 mem8,imm3
	db	0fh,1dh,0c0h,3		;set1 reg16,imm4
	db	0fh,1dh,000h,3		;set1 mem16,imm4
	db	0fh,22h			;sub4s
	db	0fh,10h,0c0h		;test1 reg8,cl
	db	0fh,10h,000h		;test1 mem8,cl
	db	0fh,11h,0c0h		;test1 reg16,cl
	db	0fh,11h,000h		;test1 mem16,cl
	db	0fh,18h,0c0h,3		;test1 reg8,imm3
	db	0fh,18h,000h,3		;test1 mem8,imm3
	db	0fh,19h,0c0h,3		;test1 reg16,imm4
	db	0fh,19h,000h,3		;test1 mem16,imm4
;
codeseg	ends
;

	end
