Ver Fonte

+ m68k-atari: fixed bogus TOS program flags passed to VLink. added -WF argument to allow the user to specify their own flags if needed

Karoly Balogh há 3 anos atrás
pai
commit
b3cbf07f27
4 ficheiros alterados com 19 adições e 1 exclusões
  1. 3 0
      compiler/globals.pas
  2. 1 0
      compiler/msg/errore.msg
  3. 14 0
      compiler/options.pas
  4. 1 1
      compiler/systems/t_atari.pas

+ 3 - 0
compiler/globals.pas

@@ -416,6 +416,9 @@ interface
        palmos_applicationid : string[4] = 'FPCA';
 {$endif defined(m68k) or defined(arm)}
 {$if defined(m68k)}
+       { Atari Specific }
+       ataritos_exe_flags: dword = 7;
+
        { Sinclair QL specific }
        sinclairql_metadata_format: string[4] = 'QHDR';
        sinclairql_vlink_experimental: boolean = true; { temporary }

+ 1 - 0
compiler/msg/errore.msg

@@ -4327,6 +4327,7 @@ A*2We_Use external resources (Darwin)
 P*2We_Use external resources (Darwin)
 p*2We_Use external resources (Darwin)
 3*2WF_Specify full-screen type application (EMX, OS/2)
+6*2WF<x>_Set TOS program flags to <x> (Atari)
 3*2WG_Specify graphic type application (EMX, OS/2, Windows)
 4*2WG_Specify graphic type application (Windows)
 A*2WG_Specify graphic type application (Windows)

+ 14 - 0
compiler/options.pas

@@ -2810,6 +2810,20 @@ begin
                       end;
                     'F':
                       begin
+{$if defined(m68k)}
+                        if target_info.system in [system_m68k_atari] then
+                          begin
+                            if (length(More)>j) then
+                              begin
+                                val(Copy(More,j+1,255),ataritos_exe_flags,code);
+                                if code<>0 then
+                                  IllegalPara(opt);
+                              end
+                            else
+                              IllegalPara(opt);
+                            break;
+                          end;
+{$endif defined(m68k)}
                         if target_info.system in systems_os2 then
                           begin
                             if UnsetBool(More, j, opt, false) then

+ 1 - 1
compiler/systems/t_atari.pas

@@ -224,7 +224,7 @@ begin
   GCSectionsStr:='';
   DynLinkStr:='';
   MapStr:='';
-  FlagsStr:='-tos-flags fastload,fastram';
+  FlagsStr:='-tos-flags '+tostr(ataritos_exe_flags);
 
   if UseVlink and (cs_link_map in current_settings.globalswitches) then
     MapStr:='-M'+maybequoted(ScriptFixFileName(current_module.mapfilename));