Jump to content
IGNORED

Why does TI basic shift name table values?


jedimatt42

Recommended Posts

So I'm playing around in assembly launched from a CALL in a DSR. In the TI BASIC environment, there is some sort of offset for character names. To display the correct character on the screen I have to add 0x60 to the character value.

 

This doesn't seem to be directly tied to a VDP register. And, it impacts KSCAN as well.

 

What is this feature? Where is it controlled? And when is it valuable? I can only imagine it helps save vdp ram by overlapping tables...

 

-M@

Link to comment
Share on other sites

jedimatt42, on 03 Oct 2016 - 3:22 PM, said:

I can only imagine it helps save vdp ram by overlapping tables...

 

 

That's exactly it as far as I recall. One of the VDP tables overlaps the character definition table, so all the character definitions have been shifted up in the table, so to display the pattern for character "A" you need to print the character ASC("A")+>60 (or whatever the offset is).

Link to comment
Share on other sites

This offset must be stored somewhere in scratchpad too, because after i reset all of the vdp registers, some rom programs display fine, but keyboard input expects the offset: I cannot get it to respond to keypress 1, but if in classic99, I double click the '1' on the screen, it responds.

 

I swear I have read about this before, just cannot remember where. I want to clear out this behavior.

 

-M@

 

Sent from my Nexus 6 using Tapatalk

Link to comment
Share on other sites

I've never seen KSCAN return different values due to the screen offset (you'll also see it called "bias")... the only non-GPL thing I've seen care about it are DSRs (and THAT only used in the cassette DSR).

 

Your KSCAN effect is being caused by something else. Classic99 sometimes has an issue with not releasing the Alt key when you alt-tab away, could it be that? (Tap alt with focus to clear it).

 

The character offset is not a function of the VDP at all, it's pure software. Also remember that VDP registers are write-only, therefore NOTHING outside of the VDP can be using the data stored in them for behavior.

 

The offset isn't configurable in BASIC, either, it's hard-coded. If you have TI Intern you can find it in the GPL disassembly at >239F (for example) being stored to a temporary location in scratchpad to call a print function. It's in many other places (>242f,>2b7d,>2cb4,etcetc). I can't see that it has a fixed scratchpad location. (I thought it did too, but I can't find anything to back that up). Anyway, it's a pure GPL function.

  • Like 1
Link to comment
Share on other sites

Both TI Basic and TI Extended Basic have the overlap, but handle it differently. See Thierry's VDP RAM page for a pretty good explanation of this.

 

...lee

Hmm Thierry page does not mention this offset is built into GPL and all the TI BASIC, XB, EA cart, Mini Memory cart, GROM 0 and all other carts that use GPL have this built into them.

 

It is in the GPL manual and EA Manual also mentions it. Just pointing out a fact that has always existed in GPL even in the TI99 before the TI99/4A.

Link to comment
Share on other sites

  • 1 year later...

You know I am working on making a XB/EA cart hybrid that just moves the Color table and resets 2 VDP Registers then jumps into EA cart.

 

I have no idea why the screen bias even exists in TI Basic and XB?

(It does save some VDP memory but not enough to warrant the sacrifice that results.)

 

Really the Screen Bias creates many more problems than it helps just for a very small amount of VDP space used.

 

It would make a better XB and faster if the Bias was just not used, so much GPL is used to always deal with this problem.

 

Not to mention the number of XB programs slowed down and crippled by having to add or minus 96 from every character.

(I think it is one really stupid thing done by Texas Instruments that makes little sense.)

  • Like 1
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...