54 |
|
functions (do_get_mem_long() etc.) that translate addresses. This slows |
55 |
|
down the emulator, of course. |
56 |
|
|
57 |
< |
2. Emulated CPU, "real" addressing (EMULATED_68K = 1, REAL_ADDRESSING = 0): |
57 |
> |
2. Emulated CPU, "real" addressing (EMULATED_68K = 1, REAL_ADDRESSING = 1): |
58 |
|
This mode is intended for big-endian non-68k systems that do allow access to |
59 |
|
RAM at 0x0000..0x1fff. As in the virtual addressing mode, the 68k processor |
60 |
|
is emulated with the UAE CPU engine and two areas are set up for RAM and ROM |
105 |
|
priviledged instructions, mostly for interrupt control). So either |
106 |
|
the whole emulator has to be run in supervisor mode (which usually is |
107 |
|
not possible on multitasking systems) or priviledged instructions have |
108 |
< |
to be trapped and emulated. The Amiga version of Basilisk II uses the |
109 |
< |
latter approach (it is possible to run supervisor mode tasks under |
110 |
< |
the AmigaOS multitasking kernel (ShapeShifter does this) but it |
111 |
< |
requires modifying the task switcher and makes the emulator more |
112 |
< |
unstable). |
108 |
> |
to be trapped and emulated. The Amiga and NetBSD/m68k versions of |
109 |
> |
Basilisk II use the latter approach (it is possible to run supervisor |
110 |
> |
mode tasks under the AmigaOS multitasking kernel (ShapeShifter does |
111 |
> |
this) but it requires modifying the Exec task switcher and makes the |
112 |
> |
emulator more unstable). |
113 |
|
c) On multitasking systems, interrupts can usually not be handled as on |
114 |
|
a real Mac (or with the UAE CPU). The interrupt levels of the host |
115 |
|
will not be the same as on a Mac, and the operating systems might not |