* The code was hardwired for 8-bit mode, unplug that and set it up for
32bit mode (much simpler).
* You need a ROM that supports 32bit mode for now
* Mode switching not supported yet.
Added code to parse the Classic Mac OS 'styl' resources, allowing formatted text to be copied and pasted out of SheepShaver, not just plain text. In order to do this, I made some changes to the emul_op mechanism, patching ZeroScrap() in addition to the scrap methods that were already being patched. The reason for this is that since we need to read data from multiple items that are on the clipboard at once, we cannot simply assume a zero at the beginning of each PutScrap() operation.
This patch uses RTF to store styled text on the host side; unfortunately, since the APIs to convert to and from RTF data are in Cocoa but not in CoreFoundation, I had to write the new portions in Objective-C rather than C, and changed the extension from .cpp to .mm accordingly. In the future, if we are confident that this file will only be used on Mac OS X 10.6 and up, we can rewrite the Pasteboard Manager code to use NSPasteboardReading/Writing instead. This would allow us to read and write NSAttributedString objects directly to and from the pasteboard, which would make sure we were always using the OS's preferred rich text format internally instead of hard-coding it specifically to RTF as in the current implementation.
I believe that this patch should also fix the problem Ronald reported with copying accented characters.
Since I am new to 68k assembly and the emul_op mechanism, I would appreciate if someone could double-check all my changes to make sure that I have done everything correctly.
Thanks,
Charles
them. So, if someone has BeOS and wants to give it a try, please change and
test this new code. Corner case could be a resume_thread() when emul_thread
is not suspended.
Fixlet to powerrom_cpu: call idle_resume() from TriggerInterrupt().
to "true". This uses the BSD socket API, so it's fairly portable (currently
only imeplemented under Unix, though). This works by sending raw Ethernet
packets as UDP packets to a fixed port number ("udpport", default is 6066),
using IP broadcasts to simulate Ethernet broad- and multicasts. Currently
only tested with AppleTalk.
of MacOS before 7.6:
- Apple mode IDs are now allocated contiguously from 0x80 (the video_*.cpp
module must call video_init_depth_list() after adding all modes)
- if the video driver didn't receive a GetVideoParameters call, it patches
ScrnBase and the main GDevice upon a video mode switch (otherwise MacOS
will continue to use the old frame buffer base)
- the rowBytes values in the video parameters slot resources are correct
for all bit depths
implemented under Unix
- adb.cpp uses mutexes for thread-safe mouse handling
- video_x.cpp: pressing Ctrl-F5 in windowed mode switches to a "grabbed"
relative mouse mode, useful for some games
- video_x.cpp: fixed some bugs relating to the hotkeys (key releases are no
longer treated as hotkeys)
contains all supported depths, default mode is stored in XPRAM upon startup,
and added video_switch_to_mode() call (currently unimplemented in all drivers)