Jump to content
Sign in to follow this  
RedBaron

ReDefine Cursor

Recommended Posts

I used to have a TI994a Extended Basic program that would redefine the cursor with any pattern I wanted.  Does anyone remember how this was done?  I think that it used pokes or peeks.  Thank you

Share this post


Link to post
Share on other sites

I don't have the program you recall, but here's a clip from Gary Cox's Weather Forecaster program where he redefined the cursor in the shape of Texas. "Tigercub" Jim Peterson is another programmer who made his cursor into a tiger face.

 

290 ! CURSOR CHANGE
300 CALL INIT
310 CALL LOAD(8196,63,248)
320 CALL LOAD(16376,67,85,82,83,79,82,48,8)
330 CALL LOAD(12288,48,48,63,255,254,124,24,12)
340 CALL LOAD(12296,2,0,3,240,2,1,48,0,2,2,0,8,4,32,32,36,4,91)
350 CALL LINK("CURSOR")

 

  • Like 3

Share this post


Link to post
Share on other sites
15 hours ago, RedBaron said:

I used to have a TI994a Extended Basic program that would redefine the cursor with any pattern I wanted.  Does anyone remember how this was done?  I think that it used pokes or peeks.  Thank you

RXB allows you to change the Cursor with CALL CHAR(30,X$) and X$= the string is definition of that character

  • Like 1

Share this post


Link to post
Share on other sites

I think the CALL CHAR method works in standard TI Extended BASIC also?   (Just during program run - it resets to a block when the program ends, right?)

Share this post


Link to post
Share on other sites
13 hours ago, Ed in SoDak said:

I don't have the program you recall, but here's a clip from Gary Cox's Weather Forecaster program where he redefined the cursor in the shape of Texas. "Tigercub" Jim Peterson is another programmer who made his cursor into a tiger face.

 

290 ! CURSOR CHANGE
300 CALL INIT
310 CALL LOAD(8196,63,248)
320 CALL LOAD(16376,67,85,82,83,79,82,48,8)
330 CALL LOAD(12288,48,48,63,255,254,124,24,12)
340 CALL LOAD(12296,2,0,3,240,2,1,48,0,2,2,0,8,4,32,32,36,4,91)
350 CALL LINK("CURSOR")

 

320 - adds "CURSOR" to the DEF table with a pointer to the code so CALL LINK knows where to go

330 - 8 bytes of cursor definition (Note that this is decimal, not the usual hexadecimal patterns)

340 - sets R0=>03F0 (address of the cursor in VDP), R1=>3000 (the cursor definition poked there by 320), R2=8 and does a VDP multiple byte write, then returns to XB

 

Change line 330 to use a different cursor pattern.

 

I can't remember if the cursor is reset when a program breaks, but it is easy enough to find out.

 

Both RXB and XB 2.8 G.E.M. let you change the cursor definition.

Share this post


Link to post
Share on other sites
Posted (edited)

If you take a look at page 25 in this issue of the newsletter Programbiten, then you can find a routine which gives Extended BASIC an adaptable cursor. The cursor will get the shape of an inversion of the character it's covering.

Edited by apersson850
  • Like 2

Share this post


Link to post
Share on other sites

Thanks for the routine's explanation and additional info. The cursor definition is retained on break and in subsequent program loads until the console is reset to the title screen.

 

The inverse character trick is neat! Might have to try that one!

-Ed

Share this post


Link to post
Share on other sites
1 hour ago, Casey said:

I think the CALL CHAR method works in standard TI Extended BASIC also?   (Just during program run - it resets to a block when the program ends, right?)

Normal TI XB only allows CALL CHAR from 32 to 143, RXB allows CALL CHAR from 30 to 159.

Share this post


Link to post
Share on other sites
Posted (edited)

To complete the @Ed in SoDak infos, hoping it could help in someway, I also attach here this description I have found among my docs:


"

********************************************************************************
*  CHANGE THE CURSOR TO ANY DESIGN WITH THIS EASY TO LEARN  TUTORAL BY        *
*  R.JIMENEZ COMPUSERVE USER 70426,766 HOPE YOU ENJOY                         *
*******************************************************************************.
.
.
IN A MICROPENDIUM ISSUE THERE WAS A PROGRAM TO CHANGE THE APPEARENCE OF THE
CURSOR. THIS PROGRAM IS AS FOLLOWS..
.
1 CALL INIT
2 CALL LOAD(8196,63,248)
3 CALL LOAD(16376,67,85,82,83,79,82,48,8)
4 CALL LOAD(12288,0,0,0,0,0,0,0,60)
5 CALL LOAD(12296,2,0,3,240,2,1,48,0,2,2,0,8,4,32,32,36,4,91)
6 CALL LINK("CURSOR")
.
ENTERING THIS PROGRAM, WILL TURN THE CURSOR TO A SMALL UNDERLINE. .
.
NOTICE LINE #4, THIS LINE IS THE LINE WE PLAY WITH TO CHANGE THE APPEARENCE OF
THE CURSOR. AS WE SEE THIS LINE IT READS CALL LOAD(12288,0,0,0,0,0,0,0,60).
WE CHANGE THE 7 0'S AND THE 60. HOW DO WE DO THIS?..
.
.
OK WHEN YOU FIRST LEARNED GRAPHICS YOU WHERE SHOWED A CHARACTER DEFINATION
SHEET. THIS SHEET WILL BE USED TO DESIGN THE CURSOR. THE CURSOR IS NOTHING MORE
THAN A CHARACTER. WE SEE THAT A CHARACTER HAS AN 8x8 GRID . 8 ROWS, AND 8
COLUMNS. LETS SEE AN EXAMPLE.
.
             COLUMNS.
         1 2 3 4 5 6 7 8 .
       1 X X X X X X X X.
       2 X X X X X X X X.
   R   3 X X X X X X X X.
   O   4 X X X X X X X X.
   W   5 X X X X X X X X.
   S   6 X X X X X X X X.
       7 X X X X X X X X.
       8 X X X X X X X X.
.
EACH OF THESE 8 NUMBERS IN THIS LINE REPRESENT A ROW IN NUMERICAL ORDER .
. SINCE EACH LINE IS DEFINED THE SAME WE WILL EXPLAIN HOW TO GET THE NUMBER FOR
ONE ROW,AND THEN WE WILL CHANGE THE CURSOR AND SHOW YOU HOW WE GOT THE CODE FOR
THIS DESIGN.
.
LOOK AT ROW 1, THIS ROW HAS 8 BLOCKS OR COLUMNS.
THINK OF THESE 8 BLOCKS AS A BINARY BLOCK..
LETS LOOK AT A BINARY BLOCK.
   X    X    X    X    X    X    X    X.
   1    6    3    1    8    4    2    1.
   2    4    2    6.
   8.
  .
 A BINARY BLOCK HAS 8 REGISTERS EACH REGISTER FROM RIGHT TO LEFT IS A VALUE OF
TWICE THE ONE BEFORE AS ABOVE..
A BINARY HAS TO STATES 0=OFF  1=ON SO EACH REGESTER CAN BE CONSIDERED A SWITCH
AND EACH SWITCH CAN BE ON, OR OFF. OK LETS TAKE A GOOD LOOK AT THIS EXAMPLE,
THIS IS HOW WE FIND THE VALUE FOR THE ROW SAY ON OUR FIRST ROW WE WANT THE
FIRST 3 BLOCKS ON AND THE LAST 1 ON ALL OTHERS ARE OFF..
    1   1   1   0   0   0   0   1.
----------------------------------.
    1   6   3   1   8   4   2   1.
    2   4   2   6   .
    8.
WE SET THE PATERN AND THEN ADD THE TOTALS OF EACH COLUMN TOGETHER..
SO THIS EXAMPLE WOULD TOTAL  128.
                              64.
                              32.
                             + 1.
                            -----.
                             225 .
 .
THERE FOR OUR FIRST ROW WOULD BE 225..
! NOW ILL SO YOU ONE MORE EXAMPLE WE WILL SHOW HOW TO CHANGE THE CURSOR INTO MY
INITIALS RJ. .
.
REMEMBER 0=OFF, 1=ON THIS WOULD BE THE ACTUAL CURSOR..
 
 
 
 
.
       00000000.
       01100000.
       01010111.
       01100010.
       01010010.
       01010010.
       00001010.
       00001100.
 .
PUT THIS EXAMPLE ON YOUR TI GRAPHIC SHEET..
NOW ON THE BOTTOM OF EACH COLUMN. START ING FROM THE RIGHT,.
FROM RIGHT TO LEFT WRITE 1,2,8,16,32,64,128..
NOW FOR EACH ROW ADD THE TOTALS FOR EACH COLUMN THAT HAS A 1. .
.
AFTER DOING THIS WE GET OUR CODE FOR LINE #4..
 SO NOW LINE 4 WOULD READ CALL LOAD(12288,0,96,87,98,82,82,14,12).
.
.
GOOD LUCK AND HAPPY CURSOR CREATING.    R.JIMENEZ .
.
.
.
.
.
 
......................



"

CURSOR.EXB

Edited by ti99iuc

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...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...