No sé cuánto tiempo llevo peleándome con las codificaciones, pero hasta día de hoy no me había puesto a intentar resolverlo.
La solución es muy simple: 
- Para el código fuente utilizad la codificación Windows-1252 
- Para archivos con fopen y demás: CP 850
Aquí os dejo un código para que lo comprobéis por vosotros mismos. Recordad guardar el PRG en formato ANSI o CP850.
import "mod_file";
import "mod_key";
import "mod_text";
import "mod_say";
Private
	int fp;
	string tildes="áéíóúñ¡";
Begin
	write(0,0,0,0,"PRG: "+tildes);
	say("PRG: "+tildes);
	fp=fopen("lee_tildes.txt",o_write);
	fputs(fp,tildes);
	fclose(fp);
	
	fp=fopen("lee_tildes.txt",o_read);
	tildes=fgets(fp);
	fclose(fp);
	write(0,0,20,0,"FGETS: "+tildes);
	say("FGETS: "+tildes);
	while(!key(_esc)) frame; end
End
Pd: Los ASCII en decimal de los diferentes caracteres son los siguientes:
Quoteá = 160
é = 130
í = 161
ó = 162
ú = 163
¡ = 173
¿ = 168
Á = 181
É = 144
Í = 214
Ó = 224
Ú = 233
El único problema que queda pendiente son las funciones de ucase y lcase: No funcionan correctamente con los caracteres especiales. Yo he hecho mi versión para ucase:
Function string my_ucase(string texto);
Private
	string texto2;
Begin
	from x=0 to len(texto);
		y=asc(texto[x]);
		if(y>96 and y<123) //letras estándar
			y-=32;
		end
		if(y==160) y=181; end //á
		if(y==130) y=144; end //é
		if(y==161) y=214; end //í
		if(y==162) y=224; end //ó
		if(y==163) y=233; end //ú
		texto2+=chr(y);
	end
	return texto2;
End
			 
			
			
				Genial.
Sí, la wiki pide que esté eso ya!