;
;		ish file converter for MS-DOS  Ver 2.00 (90/3/27)
;
;
;		Copyright (c) 1986, 1987, 1989, 1990  by  M. ishizuka
;		All rights reserved.
;



;-----------------------------------------------;
;						;
;	macro  masm.h				;
;						;
;	macro for using MASM instead of OPTASM	;
;						;
;-----------------------------------------------;

ifdef	@Version

if1
masmjmp1	macro	para1, para2, para3, para4
		ifnb	<para2>
para2		macro	label1, label2, label3
		local	skip, flag
		ifnb	<label3>
			.err
		endif
		ifnb	<label2>
			ifdifi	<label1>, <short>
				.err
			endif
			para2	label2
			exitm
		elseif1
			ifdef label1
				if (((offset label1 - $ - 2) lt 80h) and \
				   ((offset label1 - $ - 2) ge -80h))
					flag = 1
					dw	?
					exitm
				endif
			endif
			flag = 0
			dw	?
			jmp	label1
skip:
		elseif2
			if flag
				db	para1
				db	offset label1 - $ - 1
			else
				db	para1 xor 1
				db	offset skip - $ - 1
				jmp	label1
skip:
			endif
		endif
		endm
		masmjmp1	para1, para3,para4
		endif
		endm

		masmjmp1	70h, jo
		masmjmp1	71h, jno
		masmjmp1	72h, jb,   jnae, jc
		masmjmp1	73h, jnb,  jae,  jnc
		masmjmp1	74h, jz,   je
		masmjmp1	75h, jnz,  jne
		masmjmp1	76h, jbe,  jna
		masmjmp1	77h, jnbe, ja
		masmjmp1	78h, js
		masmjmp1	79h, jns
		masmjmp1	7ah, jp,   jpe
		masmjmp1	7bh, jnp,  jpo
		masmjmp1	7ch, jl,   jnge
		masmjmp1	7dh, jnl,  jge
		masmjmp1	7eh, jle,  jng
		masmjmp1	7fh, jnle, jg


masmjmp2	macro	para1, para2, para3, para4
		ifnb	<para2>
para2		macro	label1, label2, label3
		local	skip, flag
		ifnb	<label3>
			.err
		endif
		ifnb	<label2>
			ifdifi	<label1>, <short>
				.err
			endif
			para2	label2
			exitm
		elseif1
			ifdef label1
				if (((offset label1 - $ - 2) lt 80h) and \
				   ((offset label1 - $ - 2) ge -80h))
					flag = 1
					dw	?
					exitm
				endif
			endif
			flag = 0
			dw	?, ?
			jmp	label1
skip:
		elseif2
			if flag
				db	para1
				db	offset label1 - $ - 1
			else
				db	para1
				db	2
				jmp	short skip
				jmp	label1
skip:
			endif
		endif
		endm
		masmjmp2	para1, para3,para4
		endif
		endm

		masmjmp2	0e0h,	loopnz, loopne
		masmjmp2	0e1h,	loopz,	loope
		masmjmp2	0e2h,	loop
		masmjmp2	0e3h,	jcxz
endif

endif
