Commit Graph

74 Commits

Author SHA1 Message Date
CharlesJS
ed28705ee3 Patch for copying and pasting styled text in Basilisk II / SheepShaver
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
2012-06-30 22:20:55 -04:00
asvitkine
bc6d6caec6 fix PrefsInit on amiga 2009-10-18 16:21:19 +00:00
asvitkine
3856561935 Fix builds on platforms that may have gotten broken due to my vmdir changes. 2009-09-21 03:34:14 +00:00
gbeauche
c8cb4879a4 Happy New Year! 2008-01-01 09:40:36 +00:00
gbeauche
52ff4b209b Implement dummy idle suspend/resume routines for AmigOS 2006-04-30 21:13:21 +00:00
gbeauche
30632aed4f Happy New Year! 2005-01-30 21:42:16 +00:00
gbeauche
e85f4397c8 Backport copy-paste of 'TEXT' from SheepShaver 2004-11-15 23:27:43 +00:00
cebix
9e7932abf0 Happy New Year! :) 2004-01-12 15:29:31 +00:00
cebix
4f8d06b671 - implemented direct SCSI transfers (bypassing the buffer)
- minor fixes
2002-09-01 12:01:46 +00:00
jlachmann
abcf74039d Adapted to OO video scheme; Audio volume/muting/sample rate now settable 2002-06-23 08:27:05 +00:00
cebix
491d75a9aa minor cleanups 2002-03-10 20:17:14 +00:00
cebix
628533940d - documentation updates
- 2001 -> 2002
- version 0.9 -> 1.0
2002-01-15 14:58:43 +00:00
jlachmann
e3e86a68a9 AmigaOS: Improved video mode switching - more strict error checking 2001-10-16 17:27:52 +00:00
jlachmann
583f0cdbbf AmigaOS: added Video depth/resolution switching 2001-10-14 18:00:44 +00:00
cebix
b36675d9c2 prepared XPRAM code for PowerMac emulation (8192 bytes NVRAM) 2001-10-07 19:50:21 +00:00
cebix
08cbd41f78 fixed indentation 2001-07-15 02:34:23 +00:00
cebix
78c97c3f20 - outgoing packet source address is set in ether.cpp
- UDP tunnelling sends packets to Ethernet broadcast address as IP broadcasts
2001-07-13 18:49:29 +00:00
cebix
72c7f0db7a - updated the TECH document
- EtherReset() clears the UDP protocol list
- audio_oss_esd.cpp: AudioExit() calls close_audio()
- ether_unix.cpp: uses map<> for protocol handlers
- updated audio_dummy.cpp and ether_dummy.cpp
2001-07-13 15:39:25 +00:00
cebix
6c35c2a9e8 - Implemented AppleTalk-over-UDP tunnelling, activated by setting "udptunnel"
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.
2001-07-12 19:48:28 +00:00
cebix
e7a13421df replaced TIME_OFFSET constant by portable TimeToMacTime() function 2001-07-06 17:36:09 +00:00
cebix
7eb6ed2b86 - supported audio formats are now kept in STL vectors
- added run-time audio parameter switching for OSS/ESD audio output
- setting ESPEAKER env variable causes B2 to try ESD before OSS
2001-07-05 20:30:54 +00:00
cebix
680ff996eb fixed typo and added VideoQuitFullScreen() 2001-07-03 19:26:51 +00:00
cebix
d0a4b3e5fc - improved compatibility of multiple depth/resolution handling with versions
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
2001-07-03 19:20:47 +00:00
cebix
cf22cb032a - added support for platform-independant mutexes, currently only properly
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)
2001-07-03 15:59:49 +00:00
cebix
5bd08dac88 - video_set_palette() gets passed the number of used palette entries
- video_x.cpp supports 2- and 4-bit modes on truecolor screens
2001-07-01 21:09:30 +00:00
cebix
b0b21f7fe6 - experimental gamma table support
- restructured video_x.cpp: uses classes for display types
2001-06-30 17:21:56 +00:00
cebix
f17b9006d6 - fixed compilation problems under AmigaOS
- fsave/frestore on AmigaOS and NetBSD/m68k always use a 68882/68040-style
  FPU frame, eliminating the need for 68060 FPU patches
2001-06-30 12:58:08 +00:00
cebix
0fe2584d92 depth/resolution switching infrastructure should be complete now; slot ROM
contains all supported depths, default mode is stored in XPRAM upon startup,
and added video_switch_to_mode() call (currently unimplemented in all drivers)
2001-06-27 20:05:31 +00:00
cebix
1be8a821a8 added infrastructure for resolution/depth switching (currently, all video
drivers only support one mode, the one selected by the user)
2001-06-27 19:03:38 +00:00
cebix
68310129fe - AmigaOS: SCSI buffer memory type can be selected via prefs 2001-05-24 14:31:07 +00:00
cebix
e0307117d2 - added help for command line options
- PrefsInit() removes all processed options
2001-04-01 12:11:45 +00:00
cebix
5ffe6505dc - fixed bugs in the BeOS extfs file types handling 2001-03-31 14:32:01 +00:00
cebix
c23567ab14 - bumped version number to 0.9
- updated copyright dates
2001-02-02 20:53:00 +00:00
cebix
81f357c42c - AmigaOS: implemented XPRAM watchdog thread
- AmigaOS: disabled 68060 Super Bypass mode because of CPU bug triggered
  by MacOS 8
- minor documentation updates
2001-01-25 22:24:36 +00:00
cebix
6b92e785c7 - removed the INT16 prefs item type; use INT32 instead
- AmigaOS/Unix: it's now possible to specify preferences items on the
  command line
- Unix: command line options now take "--"-prefix, e.g. "--rominfo"
2001-01-04 19:50:23 +00:00
cebix
0df6c7e19c - FPU is now available under NetBSD/m68k
- main_unix.cpp: added more emulated privileged instructions
2000-10-17 12:24:59 +00:00
cebix
1158d091da fixed compilation problems 2000-10-16 17:37:58 +00:00
cebix
10f4035c6e - updated for latest version of mon 2000-10-15 15:08:24 +00:00
cebix
a1097b080d - added a few more emulated privileged instructions to NetBSD/m68k
- tried to make VOSF run under NetBSD/m68k, little success (shows stripes and
  sometimes crashes)
2000-10-11 17:55:06 +00:00
cebix
efc60c7f60 works again under NetBSD/m68k 2000-10-09 17:05:17 +00:00
gbeauche
69c5aab2b3 - changed type of ScratchMem from uint32 to uint8 * 2000-09-22 17:22:40 +00:00
cebix
d4a1463279 - some cleanups in the AmigaOS code 2000-09-04 16:30:48 +00:00
jlachmann
46612d3008 added MacsBug Support -jl- 2000-08-20 14:08:44 +00:00
cebix
38e68144b2 - more cleanups
- splitted prefs.cpp into prefs.cpp and prefs_items.cpp to make prefs.cpp
  reusable for other projects
2000-07-25 15:19:43 +00:00
cebix
0e6bdfdce5 - Amiga mouse pointer is hidden inside windowed displays 2000-07-22 18:25:48 +00:00
cebix
f79edf9e90 - removed obsolete file 2000-07-22 16:55:15 +00:00
cebix
ae4a8d0439 - fixed compilation problems with CyberGraphX code 2000-07-22 16:20:55 +00:00
cebix
675c5f1d7b - new FOURCC() macro in macos_util.h 2000-07-22 16:07:23 +00:00
cebix
6fa6776184 - small fixes for NetBSD and AmigaOS 2000-07-22 16:00:36 +00:00
cebix
006472eb44 - extfs: replaced get/set_finder_*() functions by get/set_finfo(), helper
files now store complete FInfo/FXInfo
2000-07-21 18:01:07 +00:00