Envision title screen
Envision character editor Envision map editor

Story Program Extras Source Code (NEW!) Docs Memorabilia

On February 2, 2016 I was interviewed by Kevin Savetz for AtariPodcast.com. Since they're quite keen on archiving source code and other miscellaneous doo-dads from years gone by, I decided to give them the source code for Envision. Consequently, I figured I might as well slap it up on this site as well.

They've got a lot of really great interviews on that site with some big names from the Atari glory days: Chris Crawford (The Man!), Adam Billyard (ElectraGlide!), Russ Wetmore (Preppie!), Cathryn (William) Matega (Shamus!), Ed Rotberg (Ed Rotberg!), just to name a few. You really should check it out. I hope they can snag an interview with Steve Hales (of Fort Apocalypse fame). (Update: they interviewed Steve Hales eee!)

Many years ago (1984-1986), I wrote a program for the 8-bit Atari computer called Envision. It was my first published program, and my first assembly language project of any significant scope.

In the years that have passed, I've kept my Atari 130XE and I still have all my old disks. For a long (long) time now I've been trying to acquire a functioning SIO2PC cable so that I could get all my personal work transferred to my PC from the slowly deteriorating 5 1/4 inch disks that have sat in a box gathering dust and disk errors for many years. Now that I finally have an SIO2PC cable that works, I've been able to salvage most of my work, including Envision.

It always struck me as odd that, in this age of emulators and enthusiasm for classic computer systems, I've never been able to find Envision anywhere on the Internet.

So here it is, in all its classic classic-ness. Read the background behind both Envision and its wacky author. Play with the program. Blind yourself by gazing in horror at the original documentation.

Interestingly enough, I have yet to find an 8-bit Atari emulator that correctly duplicates the behaviour of the 130XE's banked memory register. While they seem to deal with the CPU bank select properly, they all seem to fail when it comes to working out what memory the Antic chip is supposed to be seeing. For this reason, the XE version of Envision is not terribly functional on just about every emulator I've tried, which is really a shame. The XL version works fine, though.

Below, you will find a couple of games that I've written for the 8-bit Atari in the last few years. Both of them were written "stream of consciousness" style in one sitting. That is, I sat down, booted up SynAssembler, and just started coding until I was done. I used Envision to create the graphics for both programs. Neither program has any sound - I never liked implementing sound, for some reason.

The earlier of the two programs is a two-deck solitaire card game which my mother taught me years ago. I had written it in Atari BASIC before I wrote Envision, but it was a bit buggy; sometimes you'd end up with three queens of hearts. This version is written in assembly, and appears to work fine, though I've yet to beat the darn thing. Could never beat that game in real life either. This game doesn't seem to work very well with XFormer, but Atari800Win v2.7b works amazingly well, though it still erroneously cancels artifacting when there's a sprite involved. This just means that the hearts and diamonds are rather "stripy" instead of red. You'll hate the keyboard interface.

The second program is a yahtzee game, which I wrote solely because I wanted to play around with display lists. I realised I'd never really explored the JUMP display list command, so I thought I'd write a game to explore it. The keyboard interface is a little easier to digest than the other game. This one also doesn't work very well with XFormer. Use Atari800Win. It's awesome. Or even better, use a real Atari computer.

The source code for both games is also provided below. If, for some crazy reason, you wish to attempt to rebuild the games from the source, you will need to use SynAssembler, which means you must run OS-B and DOS 2.0. For both games, simply load the respective "MAIN.SRC" file into SynAssembler and type "ASM". Once yahtzee is done, you can type "RUN START" to run the game. If you want to save it as a binary file, the program start can be obtained by typing "VAL PROGSTART", and the end can be obtained by typing "VAL PROGEND". Once you have assembled the solitaire game, you can type "RUN START" to run it. To save solitaire as a binary file, the start of the code is at $3C00 and the end can be determined by typing "VAL PROGEND". Have fun!

If you have any comments, you can email me by deciphering dschebek8gmail,com. Enjoy!

Solitaire game
Solitaire game
Yahtzee game
Yahtzee game
Solitaire source code Yahtzee source code

This page debuted on the Internet at 9:40pm, Tuesday, July 31, 2001, fifteen years after Envision's original release. Took me long enough.