Subject: TI Invaders Source Code

From: "Stuart" <[email-masked]>
Date: Fri, 27 Jan 2012 14:42:45 -0000

I've found a scanned PDF of the source code for TI Invaders on one of the TI sites. Does anyone have a copy in the form of a text file?

Stuart.

---

From: "hexbus" <[email-masked]>
Date: Fri, 27 Jan 2012 15:23:05 -0000

Yep, that's from my John Phillips collection.

Didn't TI Invaders get released on one of the EA disks at one point?  I know Tombstone City did as well, but I thought I saw TI Invaders at one point.

Jon

---

From: "Ksarul" <[email-masked]>
Date: Fri, 27 Jan 2012 11:06:48 -0500

TI Invaders and Munchman were both released as EA disks. . .I have both.
They don't include the source code though.

Jim

From: [email-masked] [mailto:[email-masked]] On Behalf Of
hexbus
Sent: Friday, January 27, 2012 10:23 AM
To: [email-masked]
Subject: [TI994A] Re: TI Invaders Source Code

Didn't TI Invaders get released on one of the EA disks at one point? I know
Tombstone City did as well, but I thought I saw TI Invaders at one point.

Jon

--- In [email-masked] <mailto:TI994A%40yahoogroups.com> , "Stuart"
<ti99@...> wrote:
>
> I've found a scanned PDF of the source code for TI Invaders on one of the
TI sites. Does anyone have a copy in the form of a text file?

---

From: "Stuart" <[email-masked]>
Date: Sun, 05 Feb 2012 17:47:51 -0000

So I've OCR'd and corrected the listing, and am running it through the Asm99a assembler to catch the typos I've missed.

Now, I assume the listing is one that at one time did assemble correctly, but I'm finding *lots* of lines that seem incorrect. For example:

LI RLOC,@VLINE (@VLINE isn't a valid immediate value)
CB KEY,H09 (where KEY and H09 are both addresses in RAM, not register numbers, so should be CB @KEY,@H09)

Were there/are there assemblers that would happily ignore such errors and correctly assemble the source?

Stuart.

---

From: "hexbus" <[email-masked]>
Date: Mon, 06 Feb 2012 14:34:14 -0000

This source might have been for the 990 assembler that TI used. 

I think the MunchMan source is the same way.

Jon

--- In [email-masked], "Stuart" <ti99@...> wrote:
> --- In [email-masked], "Stuart" <ti99@> wrote:
> >

---

From: "Paolo Bagnaresi" <[email-masked]>
Date: Thu, 9 Feb 2012 09:40:09 +0100

An interesting question... :-)

I've never used a TMS9900 assembler other than the original TI99/4A 
assembler (and its incarnations).

That said, and if memory doesn't fail me, the code is indeed strange for 
the old good TI99/4A assembler .

LI RLOC,@VLINE

A LI (Load Immediate) instruction needs an immediate value as its second 
operand.

Being the second operand preceded by a '@' sign, that rules out a truly 
immediate operand value, because, in TI99/4A assembler parlance, '@' sign 
implies that the value is stored in a memory location, defined by the 
value of VLINE. In other words, VLINE can't be an immediate value.

Now,out of curiosity, I checked the "Model 990/12 Computer Assembly 
Language Programmer's Guide", 15 May 1979. I have a PDF of the original TI 
Manual. Even there, the LI instruction doesn't accept the '@' sign.

That leaves the question unanswered, surely to me, at the very least.

As to the rest of the code, there might be a missing file with all the 
EQUates, that would easily resolve all the errors that now pop up at 
assembling time.

For instance, Stuart said:
"CB KEY,H09 (where KEY and H09 are both addresses in RAM, not register 
numbers, so should be CB @KEY,@H09)"

But if you write, in the code above,
KEY EQU 7
H09 EQU 9

the CB instruction will assemble as is without any problem.

Where does that source code come from?

Paolo Bagnaresi

----- Original Message ----- 
From: "hexbus" <[email-masked]>
To: <[email-masked]>
Sent: Monday, February 06, 2012 3:34 PM
Subject: [TI994A] Re: TI Invaders Source Code

Jon

--- In [email-masked], "Stuart" <ti99@...> wrote:
>
> So I've OCR'd and corrected the listing, and am running it through the 
> Asm99a assembler to catch the typos I've missed.
>
> Now, I assume the listing is one that at one time did assemble 
> correctly, but I'm finding *lots* of lines that seem incorrect. For 
> example:
>
> > I've found a scanned PDF of the source code for TI Invaders on one of 
> > the TI sites. Does anyone have a copy in the form of a text file?
> >
> > Stuart.
> >
>

---

From: "Stuart" <[email-masked]>
Date: Thu, 09 Feb 2012 09:31:08 -0000

No missing file Paolo (but good thinking!), and everything is correctly defined. So in the example CB @KEY,@H09 we already have in the file:

...
KEY  BYTE >12   (or somesuch value)
H09  BYTE >09
...

... so the values are in CPU RAM.

Another example I came across:

MOV @HERE(INDEX)+2,@THERE

In this case INDEX has been defined as a register number so that's OK, but it will only assemble if the "+2" is moved to between "@HERE" and "(INDEX)".

Strange indeed.

Stuart.

--- In [email-masked], "Paolo Bagnaresi" <paul.bagnaresi@...> wrote:
> From: "hexbus" <jon@...>

---

From: Jeff White <[email-masked]>
Date: Thu, 9 Feb 2012 10:14:25 -0500

What is interesting is that JEDI (Jim Dramis) is adding this odd syntax.  On some keyboards, the at-sign is in an odd position, so maybe he had a special assembler to ignore it.

Note the line of code:

   MOVB H00,CHEAT JEDI -

followed by:

NOSET1 MOVB @H00,@STOPSC CLEAR STOP SCREEN FLAG

Garth Dollahite (or is that Darth Gollahite? ...nah) is main coder.  If Paul Urbanus is lurking, maybe he can add details to the coding style of JEDI.

Or maybe someone wants to contact Garth in Huntington Beach, CA.

Jeff White

> In this case INDEX has been defined as a register number so that's OK, but it will only assemble if the "+2" is moved to between "@HERE" and "(INDEX)".
<snip>