UltraMacros, meet AppleScript

Starting in build 109, I’ve added a new external command:

.ExtCall "applescript","script name"

Will run the AppleScript named “script name” located in the folder:

~/Library/Applications Support/Deja IIx/AppleScripts/

For fun, I wrote some scripts to play various songs in iTunes and then wrote a set of macros that would call them.

There are more productive uses for it and I hope to demonstrate at least one of those shortly.

Display, Speed, Bonuses

Spent several hours this weekend working on some new stuff for D2.

1. Display

I’ve been experimenting with OpenGL as the display engine. Unfortunately, that didn’t pan out (worked for 1x & 2x magnification, but 1.5x looked horrible).

However, I did manage to eek out some more improvements to the existing display code. It should be about 2x as fast at the larger magnifications.

When testing scroll speed, use a macro loop like this:

j:<all: oa-1:
.ExtCall "timer","start":
x=1 : ba-j:
$2=.ExtStr "timer","stop":
msg "Scroll down took: " + $2>!

2. More Speed

There is a new preference called “Speed”. Your options are Normal and Faster. Faster simply performs more 65c02 operations per cycle. What does that mean? It means if you have cpu intense operations, they’ll go much faster.

Why provide an option at all? One of the side-effects of this change is that operations can happen so fast that the screen never updates. For example, if you have a small to medium-sized word processor document and your press oa-S to save it. Under the Faster option, the save is so fast that the screen doesn’t change on you at all. That can be disconcerting.

3. External Commands

Many moons ago, when Randy & I were working on the dot-commands for UltraMacros related to Deja ][ 1.0, we added three commands:

.ExtCall $, $
$ = .ExtStr $, $
# = .ExtNum $, $

In the course of doing Deja IIx (ie 2.0), these commands were disabled. Well, they’re back. While I haven’t setup the plugin architecture yet, the new mechanism is in place to make it easy (for me) to add commands to UltraMacros.

The first string is the command name, the second string contains any parameters. If the command has a result, you can use either .ExtStr or .ExtNum to get a string or numeric result as appropriate for the command. Commands are set up to be case-insensitive. If you call .ExtStr or .ExtNum on a command that doesn’t have any results, you’ll get an empty string or zero respectively.

So, here is a simple example of a new command:

.ExtCall "http","www.dejaIIx.com"

This command goes to the given URL in your default browser.

.ExtCall "timer","start"

This command starts a timer for a timed event.

$ = .ExtStr "timer","mark"

$ = .ExtStr "timer","stop"

This command marks the end of a timer event and returns the # of minutes or seconds since the last .ExtCall “timer”, “start” was called.

You can use “timer”,”mark” as an intermediate timer calculation.

Future command ideas:

“applescript” – run an AppleScript

Post your ideas for other possible commands.

Shaking off the Winter Blues

OK, so a few changes since the end of last year:

1. Deja IIx has changed homes. Formerly under the Puppy Dog Software banner, it is now part of unmarkedLabs.

2. The version numbering has changed. Rather than “b” this and “b” that, I’m using build numbers.

3. You can now print to RTF and specify the monospaced font and size to use.

4. Fixed a bug in reading directories where an entry could be left out, causing all sorts of havock.

5. Finally, Deja IIx compensates for some file typing issues that can occur when moving files between Apple II / Mac environment. Specifically, sometimes files are not given the correct auxtype.

This can be a huge problem in the case of TimeOut apps and AW Inits. Starting with build 106, Deja IIx now sets the auxtype (if not already set) if the name starts with a “TO.” or “I.” to insure they are recognized.

Deja IIx 2.0 (106)

End of Year Cleanup

As mentioned on the mailing list, I’m doing some cleanup at the end of the year. The files are moving to a place on the unmarked.com server.

Along with that change, I’m moving Deja IIx from Puppy Dog Software to unmarked labs. Someone else has been pushing the PDS name and since it doesn’t bring me any real income, I’m giving it up.

Instead, unmarked labs (the experimental department of unmarked software) will adopt it. There is one significant change that comes with this.

Your Preferences (~/Library/Preferences) with the older version were located in the file:


Starting with b10, the file will be:


To keep your old preferences, just make sure you quit D2, then rename the older file to the newer file.

You can use the check for updates feature or download the new version:

Deja IIx b10

New Google Group: Deja IIx

I’ve been trying to figure out how to improve the communication between folks. The blog seems very waited towards one-way communication. Comments help, but there is no real open discussion.

To help in this area, I’m trying a new experiment. I’ve created a Google Group for a more interactive discussion on Deja IIx. The group allows for both a web-based experience (if that is your thing), or email-based.

Join up and lets open up the discussion.



TextSoap 6 is finally out the door and with the exception of a few ancillary issues, things are starting to settle down.

I’m working on a couple site changes for Deja IIx and hope to get the builds started again just in time for the holidays.

Stay tuned.

Still not done

It’s been a while since I posted any progress on Deja IIx.

The reason is that all my time has been focused on getting TextSoap 6 finished. It has seen a number of major changes based on feedback from testers and users. That’s good for the product, but it has also contributed to that delay.

Unfortunately, that has left Deja IIx sitting on the back burner for some time. And it’s likely to continue for a while longer.

TextSoap 6 hits beta

What does this have to do with Deja IIx?

Well, TextSoap 6 has been one of the key projects that has prevented me from spending much time on Deja IIx to finish it off. TextSoap 6 entering beta push me one step closer.