G6:		CALL NORF
		OR BYTE PTR [SI], 0
		JZ G6F8
		CMP AL, 3
		JZ G6F
		CMP AL, 4
		JZ G6L
		CMP AL, 5
		JZ G6S
G6L:		CALL RA
		MOV AX, [ARGS]
		CMP AL, 4
		JZ G6I
		CMP AL, 1
		JZ G6RM
		CMP AL, 2
		JNZ G6F0
G6RM:		MOV AL, [ARGS+2]
		OR AL, AL
		JZ G6RN
		CMP AL, 2
		JZ G6RN
		CMP AL, 3
		JZ G6RF
		MOV AL, 6
		JMP FAIL
G6S:		CMP BYTE PTR [OPCODE], 20H
		JNZ G6F0
		MOV AL, 0EBH
		MOV [OPCODE], AL
		JMP G5
G6F:		OR BYTE PTR [OPCODE], 8
		JMP SHORT G6L
G6RF:		OR BYTE PTR [OPCODE], 8
G6RN:		MOV AL, 0FFH
		XCHG AL, [OPCODE]
		OR [MODRM], AL
		JMP MMODRM
G6F8:		MOV AL, 8
		JMP FAIL
G6F0:		XOR AL, AL
		JMP FAIL
G6I:		CMP WORD PTR [SI], 3A01H
		JZ G6IF
		MOV AL, [OPCODE]
		TEST AL, 8
		JNZ G6F8
		ROL AL, 1
		ROL AL, 1
		ROL AL, 1
		AND AL, 1
		OR AL, 0E8H
		MOV [OPCODE], AL
		MOV DX, [IMM]
		OR AH, AH
		JZ G6I0
		CMP AH, 1
		JZ G6I1
		CMP AH, 2
		JNZ G6F0
G6I1:		SUB DX, [PC]
		SUB DX, [VORG]
		SUB DX, 3
		MOV [IMM], DX
G6I0:		OR BYTE PTR [FLAGS], 3
		RET
G6IF:		INC SI
		INC SI
		OR BYTE PTR [SI], 0
		JZ G6F0
		CALL VAL
		JC G6F0
		MOV [DISP], AX
		OR BYTE PTR [FLAGS], 0FH
		XOR AL, AL
		XCHG AL, [OPCODE]
		CMP AL, 20H
		JC G6IOP
		ADD BYTE PTR [OPCODE], 50H
G6IOP:		ADD BYTE PTR [OPCODE], 9AH
		RET
