; generated by Norcroft RISC OS ARM C vsn 3.00 [Jul 12 1989]
a1	RN	0
a2	RN	1
a3	RN	2
a4	RN	3
RV1	RN	3
RPC	RN	4
v2	RN	5
v3	RN	6
v4	RN	7
OffRead RN	7
Glb	RN	7
v5	RN	8
ACode	RN	8
v6	RN	9
sl	RN	10
fp	RN	11
ip	RN	12
sp	RN	13
lr	RN	14
pc	RN	15

	GET	s.GenInc

	AREA	|C$$code|, CODE, READONLY

	IMPORT	|__main|
|x$codeseg|
	B	|__main|

	DCB	&46,&65,&74,&63
	DCB	&68,&00,&00,&00
	DCD	&ff000008

	IMPORT	EmuReadCx
;;&&	IMPORT	EmuReadCF

	EXPORT	Fetch
Fetch
	MOV	ip, sp
	STMFD	sp!, {RPC,v2,v3,v4,v5,v6,fp,ip,lr,pc}
	SUB	fp, ip, #4
	SUB	sp, sp, #8
	LDR	OffRead, [pc, #L000270-.-8]
	LDR	a1, [pc, #L00027c-.-8]
	LDR	ACode, [a1, #0]
	LDR	a1, [pc, #L000274-.-8]
	STR	a1, [sp, #4]
	LDR	RPC, [pc, #L000278-.-8]
	LDR	RPC, [RPC, #0]
|L00003c.J5.Fetch|
; NEXTPC;
	ADD	RPC, RPC, #1
	BIC	RPC, RPC, #65536
; if(EmuOp[fsa3=(fsa2=Reg_PC+offread[Reg_PC>>8])>>8])
	MOV	a3, RPC, LSR #8
	LDR	a3, [OffRead, a3, ASL #2]
	ADD	v6, a3, RPC ;;
	MOV	v2, v6, LSR #8
	LDR	a2, [sp, #4]
	LDR	a2, [a2, v2, ASL #2]
	TEQ	a2, #0
	BNE	LBS00
|L000094.J8.Fetch|
	LDRB	a1, [ACode, v6]
	LDR	a2, [pc, #L000280-.-8]
	LDRB	a2, [a2, a1] ;;
	TEQ	a2, #255 ;;
	BEQ	|L00003c.J5.Fetch|
	LDR	ip, [pc, #L000284-.-8]
	LDRB	v2, [ip, a1] ;;
	LDR	a1, [pc, #L000288-.-8]
	LDR	a1, [a1, a2, ASL #2]
	MOV	lr, pc
	MOV	pc, a1
	LDR	v6, [pc, #L00028c-.-8]
	STR	a1, [v6, #0]
; if(CarLec[code])
	LDR	a2, [pc, #L000290-.-8]
	LDRB	a2, [a2, v2]
	TEQ	a2, #0
	BEQ	|L000128.J15.Fetch|
;	{
;	bgv1= AppleCode->bytes[fsa2=fsa1+offread[fsa1>>8]];
	MOV	ip, a1, LSR #8
	LDR	a4, [OffRead, ip, ASL #2]
	ADD	a4, a4, a1
;	if((fsa1>>8) == 0xc0) bgv1= EmuReadCx(fsa1 & 0xff);
	CMPS	ip, #192 ;;
;;&&	CMPNES	ip, #207
	LDRB	RV1, [ACode, a4]
	BEQ	LBS01
|L000128.J15.Fetch|
; (*ModOp[code])();
	LDR	a1, [pc, #L000298-.-8]
	LDR	a1, [a1, v2, ASL #2]
	MOV	lr, pc
	MOV	pc, a1
	B	|L00003c.J5.Fetch|
LBS00
;	if((*EmuOp[fsa3])(Reg_PC & 0xff)) continue;
	LDR	a1, [pc, #L000278-.-8]
	STR	RPC, [a1, #0]
	AND	a1, RPC, #255
	MOV	lr, pc
	MOV	pc, a2
	TEQ	a1, #0
	LDR	a1, [pc, #L000278-.-8]
	LDR	RPC, [a1, #0]
	BNE	|L00003c.J5.Fetch|
	BEQ	|L000094.J8.Fetch|

LBS01
	AND	a1, a1, #255
	LDR	a2, [pc, #L000294-.-8]
	STRB	RV1, [a2, #0]
;;&&	CMPS	ip, #192
	BLEQ	EmuReadCx
;;&&	BLNE	EmuReadCF
	MOV	RV1, a1 ;bgv1 en retour
	B	|L000128.J15.Fetch|

L000270
	DCD	Glob+oR
L000274
	IMPORT	EmulOp
	DCD	EmulOp
L000278
	IMPORT	Reg_PC
	DCD	Reg_PC
L00027c
	IMPORT	AppleCode
	DCD	AppleCode
L000284
	DCD	CodOp
L000280
	DCD	CodOp+&100
L000288
	IMPORT	ModAd
	DCD	ModAd
L00028c
	IMPORT	fsa1
	DCD	fsa1
L000294
	IMPORT	bgv1
	DCD	bgv1
L000298
	IMPORT	ModOp
	DCD	ModOp
L000290
	DCD	|x$dataseg|
	GET	s.FetchInc

	END
