Jump to content
IGNORED

Assembly on unexpanded TI-99/4A?


Eric Lafortune

Recommended Posts

Has anyone ever found a way to run assembly code on an unexpanded TI-99/4A?

 

This is largely a theoretical question, but it would be an interesting hack. As you all know, the unexpanded computer only offers interpreted TI BASIC, with programs stored in video memory. The computer only has 256 bytes of CPU memory, so one would need a way to swap assembly code segments in from the 16K of video memory. Alternatively, one might be able to run GPL code from video memory. I only ever got TI BASIC to perform unintended erratic operations by randomly playing with the tape recorder while loading a program. The interpreter seems pretty solid to me, but surely there must be some way.

 

In modern-day terminology this would be like rooting or jailbreaking from a locked down environment. Today, it's out of curiosity. At the time, I think the restrictions put the TI at a significant disadvantage compared to computers like the C64, which had a plethora of quality assembly games from third parties. On the TI, you could only develop or even run assembly programs if you invested in additional equipment (PEB+32K+XB module, or at least a Mini Memory module).

Link to comment
Share on other sites

http://www.atariage.com/forums/topic/170548-hacking-your-way-out-of-the-ti-basic-sandbox

 

:)

 

At the time, I think the restrictions put the TI at a significant disadvantage compared to computers like the C64, which had a plethora of quality assembly games from third parties. On the TI, you could only develop or even run assembly programs if you invested in additional equipment (PEB+32K+XB module, or at least a Mini Memory module).

 

True. Wasn't Commodore VIC-20 its real rival in the US ? And was it ZX Spectrum in Europe ?

Edited by sometimes99er
Link to comment
Share on other sites

ok, guess this does not really count. But you could write a memory editor that runs from cartridge space >6000, with that you can then poke some machine code into scratchpad and run it.

 

 

I started working on a memory viewer/editor a while ago but lost interest.

In that case you are adding just some ROM, no RAM.

 

Well anyway, check it out here:

 

http://www.atariage.com/forums/topic/185509-cpu-memory-viewer/

Link to comment
Share on other sites

Thanks for the reference, sometimes99er, this was what I meant (I really should read up more on old threads). If I understand correctly, there's no general solution yet.

 

You're right that the VIC-20 and the ZX Spectrum were the real rivals. They weren't locked down either and probably had more software too.

Link to comment
Share on other sites

Has anyone ever found a way to run assembly code on an unexpanded TI-99/4A?

 

This is largely a theoretical question, but it would be an interesting hack. As you all know, the unexpanded computer only offers interpreted TI BASIC, with programs stored in video memory. The computer only has 256 bytes of CPU memory, so one would need a way to swap assembly code segments in from the 16K of video memory. Alternatively, one might be able to run GPL code from video memory. I only ever got TI BASIC to perform unintended erratic operations by randomly playing with the tape recorder while loading a program. The interpreter seems pretty solid to me, but surely there must be some way.

 

In modern-day terminology this would be like rooting or jailbreaking from a locked down environment. Today, it's out of curiosity. At the time, I think the restrictions put the TI at a significant disadvantage compared to computers like the C64, which had a plethora of quality assembly games from third parties. On the TI, you could only develop or even run assembly programs if you invested in additional equipment (PEB+32K+XB module, or at least a Mini Memory module).

 

Actually a guy had the old RXB POP cart from OPA and with only that ran XB Assembly but all the code running from XB Variables. Variables can be up to 255 bytes long and by putting the opcodes in them then using MOVES and EXECUTE in RXB to run them.

 

The MOVE command put them in the Scratch pad >8314 and EXECUTE ran them. He copied Scratch PAD from >8314 to >8349 and used the 52 byte area to run very small Assembly programs. He also used all of FAC and ARG area.

 

It was a guy in Canada that sent me a BBS email about it many years ago.

 

Here is the EXEUTE in RXB:

 

*******************************************************

<0722> * CPU PROGRAM FOR >8300 SCATCH PAD SUBROUTINE EXECUTE *

<0723> *******************************************************

<0724> * AORG >8300

<0725> BCAF 83,02 CPUPGM DATA >8302 * CPUPGM DATA >8302 First address. *

<0726> BCB1 04,20 DATA >0420 * BLWP >834A Switch contex *

<0727> BCB3 83,4A DATA >834A * FAC not used *

<0728> BCB5 04,E0 DATA >04E0 * CLR @>837C Clear for GPL *

<0729> BCB7 83,7C DATA >837C * *

<0730> BCB9 04,5B DATA >045B * RT Return to GPL. *

<0731> * END *

<0732> *******************************************************

<0733> BCBB BC,EB LINK1B DATA LINK1C

<0734> BCBD 07,45,58 STRI 'EXECUTE' EXECUTE

BCC0 45,43,55

BCC3 54,45

<0735> BCC5 BC,C7 DATA $+2

<0736> BCC7 06,B0,42 CALL SPNUM1

<0737> BCCA 06,B6,4D EXAGN CALL SUBLP3

<0738> BCCD 35,00,0C MOVE 12,@>8300,V@>03C0

BCD0 A3,C0,00

<0739> BCD3 31,00,0C MOVE 12,G@CPUPGM,@>8300

BCD6 00,BC,AF

<0740> BCD9 BD,04,4A DST @FAC,@>8304

<0741> BCDC 0F,F0 XML >F0

<0742> BCDE 35,00,0C MOVE 12,V@>03C0,@>8300

BCE1 00,A3,C0

<0743> BCE4 D6,42,B3 CEQ >B3,@CHAT

<0744> BCE7 7C,CA BS EXAGN

<0745> BCE9 4A,E7 BR LNKRTN

<0746> ***********************************************************

Edited by RXB
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...