Jump to content


Atari_Ace's Blog

Beneath Apple Manor

Posted by Atari_Ace, 12 March 2019 · 57 views
Virtual Machine
I was reading Dungeon Hacks , by David L. Craddock, the other day and found a short reference to the Atari 8-bit in the chapter on the first Rogue-like, Beneath Apple Manor :
For Beneath Apple Manor Special Edition , I reverse engineered the 6502 runtime environment for the Galfo Integer BASIC compiler and ported it to 8086 machines (IBM PC). Bob C...

APX Pascal Architecture, part four

Posted by Atari_Ace, 09 March 2019 · 53 views
The last blog entry introduced the tools I'm using to explore the Pascal runtime, and included a preliminary (i.e. rough) disassembly.  Now we'll start refining that disassembly and start discussing more of the opcodes.
Firstly, the last listing was erroneous around $B959 to $B991.  There are strings there I somehow missed when spot check...

APX Pascal architecture, part three

Posted by Atari_Ace, 07 March 2019 · 50 views
In the last couple of posts we explored some of the APX Pascal architecture, showing bits of disassembly of the runtime, but I neglected to include the tools I used to extract those bits.  This post aims to remedy that, and produce a first draft listing of the APX Pascal runtime.
The runtime disassembly was done using similar perl code as I de...

APX Pascal Architecture, part two

Posted by Atari_Ace, 03 March 2019 · 55 views
In the last post, we worked through layers of the APX Pascal runtime to find the main interpreter loop, which in fact resides entirely in page zero.  In this post, we're going to dig into some of the opcodes to get a flavor for the runtime implementation.
As we discussed last time, the each opcode is represented by a JMP value in a 512-byte ta...

APX Pascal Architecture, part one

Posted by Atari_Ace, 02 March 2019 · 125 views
Bill Lange has been blogging about Atari Pascal since early February at https://insideatarip...l.blogspot.com/ , so here's my own small contribution after spending an afternoon poking around in APX Pascal and looking for the core interpreter.
If we look at the PASCAL runtime on the APX Pascal disk, it's a simple enough image.  It loads itself...

An Early Atari Computer Technical Demo

Posted by Atari_Ace, 22 December 2018 · 222 views

As originally conceived, Atari computers were going to be a platform where the technical secrets were held closely, allowing Atari to reap easy profits by providing software that third parties would be hard to match.  At least, that was the theory.  But the technical secrets were not going to remain secret forever, and as Atari was slow to provi...

Dealer Demo, part 11: One Assembler to Rule them All

Posted by Atari_Ace, 14 September 2018 · 187 views
We've now reached a compact bit of code in the Dealer Demo that provides an assembler to Forth.  And the assembler in Forth is a thing of beauty indeed.  Written by Bill Ragsdale (as was most of the Forth kernel), it provides an assembler that can produce surprisingly readable code without the use of labels.  In essence it implements high-...

Dealer Demo, part 10: A complete kernel

Posted by Atari_Ace, 14 September 2018 · 175 views

OK, let's finish off the kernel of Dealer Demo .
The next chunk is the COLD start routine, starting at $1C84, which is implemented as a primitive.  Following that are a variety of standard Forth words dealing with mathematical operations and buffer and screen management.  This leads up to TCIOV, a Dealer Demo primitive to invoke CIO rout...

Dealer Demo, part 9: Strings are things

Posted by Atari_Ace, 12 September 2018 · 155 views
We continue with decompiling Dealer Demo at $ 175D, seeing -TRAILING, (.") (PDOTQ), and then a handful of words leading to the word ERROR which decompiles incorrectly.
Looking closely, we see that the .WORD PDOTQ precedes strings in the listing, which are represented as a count, followed by the string contents.  The code to decompile such a st...

Dealer Demo, part 8: Who compiles the compiler?

Posted by Atari_Ace, 08 September 2018 · 139 views

We pick up decompiling again at $148C, where we find 1+ (ONEP).  It is followed by 2+ (TWOP), HERE, ALLOT, , (COMMA), C, (CCOMM), - (SUB), = (EQUAL), > (GREAT), ROT, SPACE and -DUP (DDUP).  All of these are identical to the fig-Forth listing, which implements these as colon-definitions, which is expected.  Although SUB, EQUAL and ROT ar...

March 2019

171819 20 212223