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

Comparing BasiliskII/src/uae_cpu/cpu_emulation.h (file contents):
Revision 1.1 by cebix, 1999-10-03T14:16:26Z vs.
Revision 1.9 by cebix, 2001-06-28T21:20:02Z

# Line 1 | Line 1
1   /*
2 < *  cpu_emulation.h - Definitions for Basilisk II CPU emulation module (UAE 0.8.8 version)
2 > *  cpu_emulation.h - Definitions for Basilisk II CPU emulation module (UAE 0.8.10 version)
3   *
4 < *  Basilisk II (C) 1997-1999 Christian Bauer
4 > *  Basilisk II (C) 1997-2001 Christian Bauer
5   *
6   *  This program is free software; you can redistribute it and/or modify
7   *  it under the terms of the GNU General Public License as published by
# Line 21 | Line 21
21   #ifndef CPU_EMULATION_H
22   #define CPU_EMULATION_H
23  
24 + #include <string.h>
25 +
26  
27   /*
28   *  Memory system
# Line 35 | Line 37 | extern uint32 ROMBaseMac;              // ROM base (
37   extern uint8 *ROMBaseHost;              // ROM base (host address space)
38   extern uint32 ROMSize;                  // Size of ROM
39  
40 < #if !REAL_ADDRESSING
41 < // If we are not using real addressing, the Mac frame buffer gets mapped to this location
42 < // The memory must be allocated by VideoInit(). If multiple monitors are used, they must
43 < // share the frame buffer
40 > #if !REAL_ADDRESSING && !DIRECT_ADDRESSING
41 > // If we are not using real or direct addressing, the Mac frame buffer gets
42 > // mapped to this location. The memory must be allocated by VideoInit().
43 > // If multiple monitors are used, they must share the frame buffer
44   const uint32 MacFrameBaseMac = 0xa0000000;
45   extern uint8 *MacFrameBaseHost; // Frame buffer base (host address space)
46   extern uint32 MacFrameSize;             // Size of frame buffer
45 extern int MacFrameLayout;              // Frame buffer layout (see defines below)
47   #endif
48 + extern int MacFrameLayout;              // Frame buffer layout (see defines below)
49  
50   // Possible frame buffer layouts
51   enum {
# Line 55 | Line 57 | enum {
57   };
58  
59   // Mac memory access functions
58 #if REAL_ADDRESSING
59 static inline uint32 ReadMacInt32(uint32 addr) {return ntohl(*(uint32 *)addr);}
60 static inline uint32 ReadMacInt16(uint32 addr) {return ntohs(*(uint16 *)addr);}
61 static inline uint32 ReadMacInt8(uint32 addr) {return *(uint8 *)addr;}
62 static inline void WriteMacInt32(uint32 addr, uint32 l) {*(uint32 *)addr = htonl(l);}
63 static inline void WriteMacInt16(uint32 addr, uint32 w) {*(uint16 *)addr = htons(w);}
64 static inline void WriteMacInt8(uint32 addr, uint32 b) {*(uint8 *)addr = b;}
65 static inline uint8 *Mac2HostAddr(uint32 addr) {return (uint8 *)addr;}
66 #else
60   #include "memory.h"
61   static inline uint32 ReadMacInt32(uint32 addr) {return get_long(addr);}
62   static inline uint32 ReadMacInt16(uint32 addr) {return get_word(addr);}
# Line 72 | Line 65 | static inline void WriteMacInt32(uint32
65   static inline void WriteMacInt16(uint32 addr, uint32 w) {put_word(addr, w);}
66   static inline void WriteMacInt8(uint32 addr, uint32 b) {put_byte(addr, b);}
67   static inline uint8 *Mac2HostAddr(uint32 addr) {return get_real_address(addr);}
68 < #endif
68 > static inline uint32 Host2MacAddr(uint8 *addr) {return get_virtual_address(addr);}
69 >
70 > static inline void *Mac_memset(uint32 addr, int c, size_t n) {return memset(Mac2HostAddr(addr), c, n);}
71 > static inline void *Mac2Host_memcpy(void *dest, uint32 src, size_t n) {return memcpy(dest, Mac2HostAddr(src), n);}
72 > static inline void *Host2Mac_memcpy(uint32 dest, const void *src, size_t n) {return memcpy(Mac2HostAddr(dest), src, n);}
73 > static inline void *Mac2Mac_memcpy(uint32 dest, uint32 src, size_t n) {return memcpy(Mac2HostAddr(dest), Mac2HostAddr(src), n);}
74  
75  
76   /*
# Line 82 | Line 80 | static inline uint8 *Mac2HostAddr(uint32
80   // Initialization
81   extern bool Init680x0(void);    // This routine may want to look at CPUType/FPUType to set up the apropriate emulation
82   extern void Exit680x0(void);
83 + extern void InitFrameBufferMapping(void);
84  
85   // 680x0 emulation functions
86   struct M68kRegisters;
# Line 91 | Line 90 | extern "C" void Execute68kTrap(uint16 tr
90  
91   // Interrupt functions
92   extern void TriggerInterrupt(void);                                                             // Trigger interrupt level 1 (InterruptFlag must be set first)
93 + extern void TriggerNMI(void);                                                                   // Trigger interrupt level 7
94  
95   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines