senior_falcon Posted November 5, 2013 Share Posted November 5, 2013 Does anyone know what scratchpad addresses >837D to >837F are for? The MG Explorer manual says: >837D CHARACTER BUFFER BYTE to VDP RAM screen table >837E POINTS TO THE CURRENT ROW on the screen >837F POINTS TO THE CURRENT COLUMN on the screen But this description doesn't really tell me anything about what they do. Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted November 5, 2013 Share Posted November 5, 2013 That's basically what the E/A Manual says on page 405. Thierry's site says the byte at >837D is the character at the screen positions held in >837E (row) and >837F (column). I thought KSCAN would be the console routine using those bytes; but, they don't change when KSCAN is processing characters. Page 404 of the E/A Manual lists those bytes as part of the GPL status block (>8370–>837F), but is vague about the console routines using the bytes you listed. ...lee Quote Link to comment Share on other sites More sharing options...
lucien2 Posted November 5, 2013 Share Posted November 5, 2013 In GPL, if you write row and column values to >837E and >837F and then write a character at >837D, it's displayed. I guess this is also working with assembly and interrupts enabled. >837E and >837F are also used by the FMT subinterpreter as position parameters for all the commands. Quote Link to comment Share on other sites More sharing options...
RXB Posted November 5, 2013 Share Posted November 5, 2013 Ok two attachments: XB and EA for you. Rich XB.txt EA.txt Quote Link to comment Share on other sites More sharing options...
Tursi Posted November 7, 2013 Share Posted November 7, 2013 In GPL, if you write row and column values to >837E and >837F and then write a character at >837D, it's displayed. I guess this is also working with assembly and interrupts enabled. >837E and >837F are also used by the FMT subinterpreter as position parameters for all the commands. It only works from GPL, from assembly they are just memory addresses, it's been a while since I tested but ISTR writing them doesn't do anything. GPL has specific hooks in the write functions to see if those are the addresses you are writing to. Quote Link to comment Share on other sites More sharing options...
Willsy Posted November 7, 2013 Share Posted November 7, 2013 It only works from GPL, from assembly they are just memory addresses, it's been a while since I tested but ISTR writing them doesn't do anything. GPL has specific hooks in the write functions to see if those are the addresses you are writing to. Oh. My. God. Really? Talk about performance penalty. <face palm>! Quote Link to comment Share on other sites More sharing options...
RXB Posted November 7, 2013 Share Posted November 7, 2013 Willsy is right. If like KSCAN you would access them using Assembly BL or BLWP would be a real memory saver for programs. TST LI >3000,R1 LI >0903,R2 MOV R2,@>837E MOVB R1,@>838D BL @ROM0 address No VDP routines to load and just works buy writing or reading that VDP address and putting it in >837D Strange that this never occurred to TI? 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.