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.4 by cebix, 2001-06-28T21:20:02Z

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines