Jump to content
Savetz

Atari PILOT source code

Recommended Posts

I have scanned* the source code printouts for the Atari PILOT cartridge:

 

https://archive.org/details/AtariPILOTSourceCode

I've included the first page here to whet your appetite, but you'll have to download the full ZIP files from archive.org to see the whole things.
*By scanned, I mean: photographed, because I promised the person who lent me the printouts that I would not separate the pages. The pictures are, I believe, good enough. Readable enough to be entered by hand if anyone is inclined to do so.
more good stuff to come.
post-803-0-39812500-1476388033_thumb.jpgpost-803-0-75427900-1476388070_thumb.jpg
  • Like 16

Share this post


Link to post
Share on other sites

Thanks very much for photographing these pages!

 

I bet we can get these transcribed if we divide up the pages among ourselves. Having an extra pair of eyes to proofread the transcribed copy would also be helpful.

Share this post


Link to post
Share on other sites

Thanks very much for photographing these pages!

 

I bet we can get these transcribed if we divide up the pages among ourselves. Having an extra pair of eyes to proofread the transcribed copy would also be helpful.

 

I have a disassembly I've been working on and off again for PILOT and Logo, so I plan on generating a transcription like I did for the calculator source code. I find that you can OCR it and then pump it through an assembler to catch most of the typos.

  • Like 6

Share this post


Link to post
Share on other sites

Here's the transcription of the scan, along with a script I used to massage it to MADS format for validation. I verified the object code output is byte for byte identical to the cartridge image I originally disassembled, so I believe the transcription errors should be mostly minor.

pilot1.zip

  • Like 9

Share this post


Link to post
Share on other sites

@Atari_Ace, you are magical.

 

I'll work on getting the next batch of pictures to ya'll soon.

 

—Kevin

  • Like 4

Share this post


Link to post
Share on other sites

I expanded the transcription validation to the hex codes on the left hand side of the listing, which found a number of typos which I've now fixed.

 

I'm going to apply the same approach to the Colleen floating point routines transcription I did later this week, and the DUP.SYS listing at some point as well.

pilot2.zip

  • Like 4

Share this post


Link to post
Share on other sites

Here's the source code to the unreleased PILOT II. This was marketed as Atari Super PILOT. Harry knew it as Summer Camp PILOT. (Atari Computer Camps were the only place where this programming language was used.) The source code is more than 300 pages!

 

https://archive.org/details/AtariPILOTIISourceCode

 

I previously discovered and released the application itself and the manual. Now the source code!

 

-Kevin

 

post-803-0-57838200-1478471505_thumb.jpg

post-803-0-30077500-1478471533_thumb.jpg

 

  • Like 5

Share this post


Link to post
Share on other sites

Initially I wasn't going to transcribe PILOT II but something must have come over me, since here it is.

 

I include some of the validation tools I used to verify the listing is accurate modulo typos in the comments.

  • p2check.pl converts the source code to MADS format. It's chatty to STDERR where it detects discontinuities in the listing (since the listing only outputs five bytes per lines and some lines have more) or when it looks like a comment is a space off from where it should be. I've looked through these warnings and they can be ignored.
  • p2x.pl takes the p2list.txt (the source listing) and the listing from MADS -l to compare the output hex codes on the left side of the listing. This caught the typos on the left hand side of the listing.
  • obx.pl generates a memory dump from an obx/xex file. I used this to find the remaining typos, independent of the obx layout, since pilot46.obx is made of lots of small segments (presumably a quirk of the assembler used), whereas MADS generated a couple of segments.

Enjoy!

 

sp2_1.zip

  • Like 8

Share this post


Link to post
Share on other sites

Thanks, Atari_Ace, for doing this.

 

Do you think that this could be converted to a ROM file.

 

Allan

Share this post


Link to post
Share on other sites

Thanks, Atari_Ace, for doing this.

 

Do you think that this could be converted to a ROM file.

 

Allan

 

 

Not without some work. It's covers about 18K of space as currently assembled from 7800 to BFFF, and I don't think you can have a flat ROM greater than 16K.

 

In truth it's less than 700 bytes over 16K, so it could get optimized/have a few features removed to squeeze it into a standard 16K rom.

Share this post


Link to post
Share on other sites

Amazing work. Thank you!

 

Initially I wasn't going to transcribe PILOT II but something must have come over me, since here it is.

 

 

Share this post


Link to post
Share on other sites

Great job! Could you include the MADS version of the source here? I don't have a perl environment nor experience with perl.
>Do you think that this could be converted to a ROM file.
Since it can be compressed to around 13k that's possible. But since it is designed to run with/from DOS, the question is why you'd want to do that (part from startup time).

Share this post


Link to post
Share on other sites

Great job! Could you include the MADS version of the source here? I don't have a perl environment nor experience with perl.

>Do you think that this could be converted to a ROM file.

Since it can be compressed to around 13k that's possible. But since it is designed to run with/from DOS, the question is why you'd want to do that (part from startup time).

 

I'm including it, but it hacks PROC blocks by incrementing a counter for every time a new block occurs and the prefixes local labels with L<index>_. I couldn't figure out how to make MADS work in a similar fashion, so although this assembles, it's not the cleanest translation.

 

The other adjustments were minor in comparison.

p2mads.zip

Share this post


Link to post
Share on other sites

Placing PROCs correctly is must easier manually afterwards. Code like this often uses implicit procedure ends using branches etc.

As a human you can just read the comment and see what it means.

 

Interesting to see the compile time flags for the different features and that light pen and disk don't compile together.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...