ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/uae_cpu/memory.cpp
(Generate patch)

Comparing BasiliskII/src/uae_cpu/memory.cpp (file contents):
Revision 1.2 by cebix, 1999-11-03T10:56:43Z vs.
Revision 1.6 by gbeauche, 2002-09-01T16:32:02Z

# Line 12 | Line 12
12   #include "sysdeps.h"
13  
14   #include "cpu_emulation.h"
15 + #include "main.h"
16 + #include "video.h"
17 +
18   #include "m68k.h"
19   #include "memory.h"
20   #include "readcpu.h"
21   #include "newcpu.h"
22 < #include "main.h"
23 < #include "video.h"
22 >
23 > #if !REAL_ADDRESSING && !DIRECT_ADDRESSING
24  
25   static bool illegal_mem = false;
26  
# Line 27 | Line 30 | addrbank *mem_banks[65536];
30   addrbank mem_banks[65536];
31   #endif
32  
33 + #ifdef WORDS_BIGENDIAN
34 + # define swap_words(X) (X)
35 + #else
36 + # define swap_words(X) (((X) >> 16) | ((X) << 16))
37 + #endif
38 +
39   #ifdef NO_INLINE_MEMORY_ACCESS
40   __inline__ uae_u32 longget (uaecptr addr)
41   {
# Line 399 | Line 408 | uae_u32 REGPARAM2 frame_host_555_lget(ua
408      uae_u32 *m, l;
409      m = (uae_u32 *)(FrameBaseDiff + addr);
410      l = *m;
411 <    return (l >> 16) | (l << 16);
411 >        return swap_words(l);
412   }
413  
414   uae_u32 REGPARAM2 frame_host_555_wget(uaecptr addr)
# Line 413 | Line 422 | void REGPARAM2 frame_host_555_lput(uaecp
422   {
423      uae_u32 *m;
424      m = (uae_u32 *)(FrameBaseDiff + addr);
425 <    *m = (l >> 16) | (l << 16);
425 >    *m = swap_words(l);
426   }
427  
428   void REGPARAM2 frame_host_555_wput(uaecptr addr, uae_u32 w)
# Line 429 | Line 438 | uae_u32 REGPARAM2 frame_host_565_lget(ua
438      m = (uae_u32 *)(FrameBaseDiff + addr);
439      l = *m;
440      l = (l & 0x001f001f) | ((l >> 1) & 0x7fe07fe0);
441 <    return (l >> 16) | (l << 16);
441 >    return swap_words(l);
442   }
443  
444   uae_u32 REGPARAM2 frame_host_565_wget(uaecptr addr)
# Line 445 | Line 454 | void REGPARAM2 frame_host_565_lput(uaecp
454      uae_u32 *m;
455      m = (uae_u32 *)(FrameBaseDiff + addr);
456      l = (l & 0x001f001f) | ((l << 1) & 0xffc0ffc0);
457 <    *m = (l >> 16) | (l << 16);
457 >    *m = swap_words(l);
458   }
459  
460   void REGPARAM2 frame_host_565_wput(uaecptr addr, uae_u32 w)
# Line 550 | Line 559 | addrbank frame_host_888_bank = {
559  
560   void memory_init(void)
561   {
562 <        char buffer[4096];
554 <        char *nam;
555 <        int i, fd;
556 <
557 <        for(i=0; i<65536; i++)
562 >        for(long i=0; i<65536; i++)
563                  put_mem_bank(i<<16, &dummy_bank);
564  
565          // Limit RAM size to not overlap ROM
561 #if REAL_ADDRESSING
562        uint32 ram_size = RAMSize;
563 #else
566          uint32 ram_size = RAMSize > ROMBaseMac ? ROMBaseMac : RAMSize;
565 #endif
567  
568          RAMBaseDiff = (uae_u32)RAMBaseHost - (uae_u32)RAMBaseMac;
569          ROMBaseDiff = (uae_u32)ROMBaseHost - (uae_u32)ROMBaseMac;
# Line 609 | Line 610 | void map_banks(addrbank *bank, int start
610          for (bnr = start; bnr < start+size; bnr++)
611              put_mem_bank((bnr + hioffs) << 16, bank);
612   }
613 +
614 + #endif /* !REAL_ADDRESSING && !DIRECT_ADDRESSING */
615 +

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines