I write scripts for use in the SheepShaver emulator running OS 8.6 and 9.0.4, and have always been frustrated with the old Script Editor, which doesn’t even have a Find command.
Prompted by a message by Shane about old versions, I found a copy of Script Debugger 3.0.9 on a site that has mostly abandonware (questionably legal or worse). The site includes a license code which it says is “Courtesy of the developer” (Courtesy is misspelled on the page, but no matter.) Is this true? By using that license code for 3.0.9, am I using a code that really is “courtesy of the developer”?
I’m a paid-up user of the current version, so I suppose it’s all right for me use that older version, just as it seems to be OK to use current license codes to download versions 4 and 5, but I thought it might be best to check.
Thanks! (I built my Hypercard stack for years, constantly adding features and adapting it to changing requirements, and I just don’t have the time to redo it with a modern database/interface. Plus it still works great, I just have to update it from time to time.)
I realize that the time has passed for SD 3.0.9 support under OS 9.0.4 running in SheepShaver, but here’s an oddity that I came across, and I wonder if anyone remembers a workaround.
In the SD 3.0.9 editing window, I can paste text from text editors, and I can paste scripts from the Script Editor. But I can’t paste any code that I’ve copied from another SD window (or the same SD window). The problem seems to be that SD doesn’t actually copy anything from itself to the clipboard. The Clipboard viewer says that the contents of the clipboard after a copy are “styled text” but there’s no actual text in the clipboard viewer and nothing can be copied to any other application either.
If this is a known problem with a known workaround, I’ll be glad to hear about it. But, again, this question is probably about fifteen years too late.
EDIT: I see that one workaround is to use the Edit with BBEdit menu item (which I suppose may be different if you have a different text editor installed). But I wonder if I’m missing something obvious, or if something is wrong with SheepShaver that isn’t wrong on a real Mac.
I can report the same behavior. I can copy to SD. In an SD window, selecting text and doing a copy results in an empty clipboard in SD. If I paste, I get nothing. The Edit menu gives me an “Undo Paste” option. Sometimes if I copy from an SD document the Paste menu choice goes away.
I can paste that into another application. If I copy from another application I can paste into an SD document.
As Mark said, it’s a SheepShaver oddity. I fired up the (very slow) Qemu emulator running OS 9.2, installed 3.0.9, and copy and paste worked perfectly. I can’t imagine why they don’t work in SheepShaver.
SheepShaver has other oddities. For example, under some OS versions, the license and readme don’t display when installing 3.0.9; on at least version (I forget which), they do display.
I’ll file a bug report with SS, but it doesn’t get updated that often.
I’ve also filed a feature request, that they add AppleScript to the application, so we could send an appleScript command to SheepShaver and it would send the command to an application in OS9. That would be nifty.
No one is actually maintaining SheepShaver, and it may be a lost cause. It seems that the way it handles memory (writing to specific addresses) may not be possible in future versions of macOS, and current builds won’t run in 64-bit mode, so they may not run at all in future versions. For better or worse, the future is with Qemu, but Qemu is impossibly slow and has no useful way of communicating between the emulator and the host. The latest news is at emaculation.com, and it isn’t encouraging.
But I’m very glad to have SD running in it anyway!
I posted this message at the emactulation.com forum about this issue:
It turns out that this is a problem with any application running under SheepShaver that tries to copy “styled text” to the clipboard. If you format some text in ClarisWorks, for example, and copy it to the clipboard, you get an empty clipboard.
So it’s a SheepShaver but that will presumably never be fixed, alas.
There’s a patch here for copying styled text to the HOST clipboard from SheepShaver/BasiliskII under BEOS, but it doesn’t seem to apply to this issue.
EDIT: It turns out that the relevant-looking bits of that patch are already in the code that I used to build SheepShaver, and presumably in other current builds also.
Thanks to Ronald Regensburg at www.emaculation.com, there’s now a workaround for this problem of the apparently empty clipboard when copying from SD in SheepShaver:
If you keep a SimpleText window open, you can copy from SD and then paste the copied text into SimpleText. If you then select the text in SimpleText and copy it again (or, more efficiently, cut it from SimpleText), you can then paste it into SD (or anywhere else). The pasted text won’t be styled, but it’s better than nothing.
Presumably an AppleScript could perform the task of copying from SD, pasting into SimpleText, and then cutting the text from SimpleText, so that it could be pasted again. (I haven’t checked whether SimpleText is scriptable, but any scriptable text editor should do the job.)
Also, this problem does not occur under SheepShaver for Windows. So perhaps those of us who write scripts for OS 8/9 should do our scripting under Windows…?
I’ve been trying to write an AppleScript (running under OS 9.0.4) that will copy selected text from Script Debugger 3.0.9 to the clipboard, paste it into Tex-Edit, and do more things with the selected text.
But I can’t record or write a script tells Script Debugger to copy the selected text. I keep getting “Can’t continue copy” messages. Is this a SheepShaver-only problem, or am I missing something obvious? Thanks for any enlightenment.
To answer my own question, this script will get the current selection in SD 3.0.9 into the clipboard in pastable form under SheepShaver for OS X. It will be obvious that I don’t know what I’m doing, but it seems to work.
if first window exists then
set theDocument to first document
set theText to selection of theDocument as string
if theText is not "" then set the clipboard to theText
end if