Hello,
I have just had a look at the source code and I think I have found the list of supported codes and I will post them here soon.
Apart from that, I have just found the place, where inches are handled:
; =============== S U B	R O U T	I N E =======================================
; Attributes: bp-based frame
ParserGGroup6				; CODE XREF: FindProgramBlock:loc_43FF4p
					; ParserProgramBlock+A54p ...
var_20		= -0x20
		MOV		R12, SP
		STMFD		SP!, {R4-R7,R11,R12,LR,PC}
		SUB		R11, R12, #4
		SUB		SP, SP,	#8
		LDR		R3, =bakNcBlock
		LDR		R3, [R3,#(dword_1279BC - 0x1279A4)]
		CMP		R3, #0x14
		BNE		loc_3C570
		MOV		R3, #0
		STR		R3, [R11,#var_20]
		B		loc_3C54C
; ---------------------------------------------------------------------------
loc_3C470				; CODE XREF: ParserGGroup6+110j
		LDR		R7, [R11,#var_20]
		LDR		R3, [R11,#var_20]
		ADD		R3, R3,	#0x22
		LDR		R1, =systemVarTable
		MOV		R3, R3,LSL#2
		MOV		R2, R3,LSL#2
		ADD		R3, R3,	R2
		MOV		R2, R3,LSL#4
		ADD		R3, R3,	R2
		ADD		R3, R3,	R1
		LDR		R3, [R3]
		MOV		R0, R3
		BL		__extendsfdf2
		MOV		R3, R0
		MOV		R4, R1
		MOV		R0, R3
		MOV		R1, R4
		MOV		R2, #0
		MOV		R3, #0x40190000
		BL		__muldf3
		MOV		R3, R0
		MOV		R4, R1
		MOV		R5, R3
		MOV		R6, R4
		LDR		R3, [R11,#var_20]
		ADD		R3, R3,	#0xC
		LDR		R1, =systemVarTable
		MOV		R3, R3,LSL#2
		MOV		R2, R3,LSL#2
		ADD		R3, R3,	R2
		MOV		R2, R3,LSL#4
		ADD		R3, R3,	R2
		ADD		R3, R3,	R1
		LDR		R3, [R3]
		MOV		R0, R3
		BL		__extendsfdf2
		MOV		R3, R0
		MOV		R4, R1
		MOV		R0, R5
		MOV		R1, R6
		MOV		R2, R3
		MOV		R3, R4
		BL		__muldf3
		MOV		R3, R0
		MOV		R4, R1
		MOV		R0, R3
		MOV		R1, R4
		BL		__truncdfsf2
		MOV		R2, R0
		LDR		R3, =perUnitToPulse
		STR		R2, [R3,R7,LSL#2]
		LDR		R3, [R11,#var_20]
		ADD		R3, R3,	#1
		STR		R3, [R11,#var_20]
loc_3C54C				; CODE XREF: ParserGGroup6+28j
		LDR		R3, [R11,#var_20]
		CMP		R3, #2
		BLE		loc_3C470
		LDR		R2, =systemVarTable
		LDR		R3, =0x3124
		LDR		R2, [R2,R3]
		LDR		R3, =perUnitToPulse
		STR		R2, [R3,#(dword_127C08 - 0x127BFC)]
		B		loc_3C614
; ---------------------------------------------------------------------------
loc_3C570				; CODE XREF: ParserGGroup6+1Cj
		MOV		R3, #0
		STR		R3, [R11,#var_20]
		B		loc_3C5F4
; ---------------------------------------------------------------------------
loc_3C57C				; CODE XREF: ParserGGroup6+1B8j
		LDR		R4, [R11,#var_20]
		LDR		R3, [R11,#var_20]
		ADD		R3, R3,	#0x22
		LDR		R1, =systemVarTable
		MOV		R3, R3,LSL#2
		MOV		R2, R3,LSL#2
		ADD		R3, R3,	R2
		MOV		R2, R3,LSL#4
		ADD		R3, R3,	R2
		ADD		R3, R3,	R1
		LDR		R0, [R3]
		LDR		R3, [R11,#var_20]
		ADD		R3, R3,	#0xC
		LDR		R1, =systemVarTable
		MOV		R3, R3,LSL#2
		MOV		R2, R3,LSL#2
		ADD		R3, R3,	R2
		MOV		R2, R3,LSL#4
		ADD		R3, R3,	R2
		ADD		R3, R3,	R1
		LDR		R3, [R3]
		MOV		R1, R3
		BL		__mulsf3
		MOV		R3, R0
		MOV		R2, R3
		LDR		R3, =perUnitToPulse
		STR		R2, [R3,R4,LSL#2]
		LDR		R3, [R11,#var_20]
		ADD		R3, R3,	#1
		STR		R3, [R11,#var_20]
loc_3C5F4				; CODE XREF: ParserGGroup6+134j
		LDR		R3, [R11,#var_20]
		CMP		R3, #2
		BLE		loc_3C57C
		LDR		R2, =systemVarTable
		LDR		R3, =0x3124
		LDR		R2, [R2,R3]
		LDR		R3, =perUnitToPulse
		STR		R2, [R3,#(dword_127C08 - 0x127BFC)]
loc_3C614				; CODE XREF: ParserGGroup6+128j
		SUB		SP, R11, #0x1C
		LDMFD		SP, {R4-R7,R11,SP,PC}
; End of function ParserGGroup6
; ---------------------------------------------------------------------------
off_3C61C	DCD bakNcBlock		; DATA XREF: ParserGGroup6+10r
off_3C620	DCD systemVarTable	; DATA XREF: ParserGGroup6+38r
					; ParserGGroup6+98r ...
off_3C624	DCD perUnitToPulse	; DATA XREF: ParserGGroup6+F4r
					; ParserGGroup6+120r ...
dword_3C628	DCD 0x3124		; DATA XREF: ParserGGroup6+118r
					; ParserGGroup6+1C0r
TLDR:
This function changes the PulseToUnit once it hits a G20.
It recalculates the PulseToUnit 3 times (for the X, Y and Z axis) and when in inch mode, multiplies it by 2.390625.
The calculation appears to take the steps per mm from the configuration params #34 (X-axis pulses per mm), #35 (Y-axis pulses per mm), #36 (Z-axis pulses per mm) into account when recalculating.
I have just had a brief look over it and I may have overseen something important.
I can easily change this multiplication constant to some other one (2.54 = 0x40228f5c for example), if this will increase the accuracy.
These were G/(M?)-Codes I found by quickly searching through the huge code listing. It may not be correct and is certainly incomplete, but it is a start:
0
1
12
13
28
29
17
18
19
20
21
43 ?
44 ?
49 ?
53
54
55
56
57
58
59
90
91
98 ?
99 ?
BR,
Benedikt