Cat's Eye Technologies is a user on You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

Cat's Eye Technologies

Pinned toot

Cat's Eye Technologies has been foisting weird programming languages & other objectionable abstractions on the world since 1995. You can find them all at

And now, you can follow this account on Mastodon to hear about our latest developments!

(At least, that's the theory...)

...btw, if you want a trippy optical illusion, stare at the center of the image on for about 60 seconds, then look at something else in the room.

Don't worry, I'm sure it doesn't damage your eyes.

Pretty sure, anyway.

City Connection (Jaleco, coin-op, 1985)

being one of the few hybrid platformer-driving games I'm aware of, and the only one I'm aware of in which the player must avoid a flag-holding cat and can jump to collect balloons to warp to other levels.


We've finally removed jQuery from the website.

(It was only being used for making Ajax requests which are no longer necessary b/c it turns out JSONP is a better solution for these cases.)

subtooting recent article about Mastodon Show more

Alphaman (Jeffrey Olson, MS-DOS, 1995)

in which the protagonist must use their mutant powers to survive in a post-apocalyptic hellscape, figuring out mysterious gadgets and
eating mutated berries while they battle monstrosities such as Venetian Blinds.

Entry at RogueBasin:

Also, it's shareware! Download 💾 and run it in DOSBox.

evergreen subtoot Show more

Things You Can Do While Waiting for Windows Update to Start, Part 3919:

Find and fix a bug in a VBScript WSH script you wrote 5.5 years ago as part of a vague plan to write a that could be played by just downloading it and double-clicking it.

Windows update Show more

OK, decision made: SixtyPical will get a `for` loop. Like,

for x in 0..15 {
// here, we cannot write to x
// and we know x's range
// is 0 to 15 exactly

Nothing fancy, but as a starting point, it'll do the trick.

...A better approach is to have the analyzer track how indexes change, esp. in loops, and determine the min/max values they take on. In general, this is hard.

There seem to be two ways to reduce the difficulty: provide language constructs which cater to it (e.g. `for` loop), or, look for known patterns in code (stereotyped ways that such loops are written), and reject 'arbitrary' loops as "can't tell".

A general lesson from SixtyPical has been that the former is much easier than the latter.

SixtyPical note: implementing basic range-checking during is not hard; for example, if you LDA #15 you know the A reg is in the range 15 to 15. Making it work well in practice is what's hard.

ANDing a value with N ensures the value is no greater than N. You could use this method generally, but the 6502 can only AND the A reg, while a table index is usually in the X or Y reg. So you end up adding several extra instructions (TXA, AND , TAX) each time you want to do this.

Was trying to figure out why I think of as having a garbage collector and I think it's because my most vivid memories of it are from when I first tried it out, which was when it was version 0.4 and the docs were like

"Managed boxes are pointers to heap-allocated, garbage collected memory. ... [They are reclaimed] through reference counting and a cycle collector, but we will switch to a tracing garbage collector eventually."

I do realize it has changed a lot.

Lost Tomb (Dan Lee/Stern Electronics, coin-op, 1982)

In which the protagonist is armed with an unlimited supply of bullets, but a limited number of whips.

But whips can take out walls!

And every so often the player is offered the opportunity to get 50 more whips for the low, low price of 1 additional credit.