RedBaron Posted March 30, 2021 Share Posted March 30, 2021 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 Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted March 30, 2021 Share Posted March 30, 2021 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") 3 Quote Link to comment Share on other sites More sharing options...
RXB Posted March 30, 2021 Share Posted March 30, 2021 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 2 Quote Link to comment Share on other sites More sharing options...
Casey Posted March 30, 2021 Share Posted March 30, 2021 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?) 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted March 30, 2021 Share Posted March 30, 2021 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. 2 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted March 30, 2021 Share Posted March 30, 2021 (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 March 30, 2021 by apersson850 2 Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted March 30, 2021 Share Posted March 30, 2021 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 Quote Link to comment Share on other sites More sharing options...
RXB Posted March 30, 2021 Share Posted March 30, 2021 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. Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted March 30, 2021 Share Posted March 30, 2021 (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 March 30, 2021 by ti99iuc 1 Quote Link to comment Share on other sites More sharing options...
RedBaron Posted April 24, 2021 Author Share Posted April 24, 2021 I would like thank everyone for this info. I think that this is what I was looking for. 1 Quote Link to comment Share on other sites More sharing options...
rgjt Posted May 6, 2021 Share Posted May 6, 2021 Has anyone been able to redefine the cursor in c99rel4? I've tried using inline assembly within my c99 code and no luck. It appears that the cursor definition pattern is never read or at least no read where it is saved in the VDP ram. BTW, I've been compiling the c99 code into a EA option 5 program file using the EA modules provided on FinalGrom99. When I compile the assembly code by itself without any c99 code, the cursor re-definition works. It appears there's some issue with the way c99 is compiled and assembled into a EA option 5 program file. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.