GDMike Posted August 14, 2019 Share Posted August 14, 2019 I've worked out a counter that, at the moment places 2 hex numbers on the screen - side by side that if they were in the MSB of R1 would allow me to display the char value to the display. My prob is, how can I get the two side by side numbers that are on my screen to live in MSB? Ex: >41 But I need to collect this"41" into MSb of R1 Thx.. Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted August 14, 2019 Share Posted August 14, 2019 Hmm. wondering how you got the numbers there to start with? If you know the screen location of the chars. in question. Use VSBR: set R0 with the screen table read addr.. R1 should return the value in the MSB. Then SWPB and subtract >30. first result... 4 hmm, dont know if I've done this before... shift left 4 bit positions... save result... repeat for second VDP byte... w/o shifting result... 1 add the two results. Swap back to MSB. ... hope I'm "together" in my reasoning! Sound good... it's still early in the morning here... 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 14, 2019 Author Share Posted August 14, 2019 Thx .yeah, I have a routine that reads ram, places the value on the screen in hex, but another part of my prog needs to place the char value under the hex value... R0 changes. But I have a way to insert code before it's pos change. Ok ..I knew itd be some kinda bit rotate kinda thing..I'm not good at that.. I can't wait to try your math!! Thx!! I'll let ya know.. hopefully with a video. Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 14, 2019 Author Share Posted August 14, 2019 I ended up trying to convert the >41, 42, 43 and 44 on the screen. I ended up putting 1 2 3 4 on the screen in the correct positions. I'll have to go over the code again to see why. Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted August 14, 2019 Share Posted August 14, 2019 3 hours ago, GDMike said: I've worked out a counter that, at the moment places 2 hex numbers on the screen - side by side that if they were in the MSB of R1 would allow me to display the char value to the display. My prob is, how can I get the two side by side numbers that are on my screen to live in MSB? Ex: >41 But I need to collect this"41" into MSb of R1 Thx.. Not too sure what you are doing here. You say “2 hex numbers on the screen - side by side”. “Two numbers” implies two independent numbers, containing any number of digits each. I am thinking you intend “2 hex digits” of the same number? ...lee 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 14, 2019 Author Share Posted August 14, 2019 Im compiling my latest change... I'll see what it does afterwards.. I'll send a screenshot and my code up in a minute.. Thx Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 14, 2019 Author Share Posted August 14, 2019 Here's what I got.. VID_20190814_115427053.mp4 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 14, 2019 Author Share Posted August 14, 2019 I tried a SB R1,R4 prior because I'm pretty sure if I do a SB R4,R1 that my results should go to MSB of R1? Or I thought so..but swapping that around didn't help me.. Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 14, 2019 Author Share Posted August 14, 2019 Wonder if I could add >20 to the first value, then add the value of the byte in the next right position to it? Quote Link to comment Share on other sites More sharing options...
Stuart Posted August 14, 2019 Share Posted August 14, 2019 What you might want to consider is displaying both hex data and ASCII on the same screen, something like below. Very useful for spotting text strings within the data. (Noticed a little typo in your video - HEXIDECIMAL should be HEXADECIMAL) 1 Quote Link to comment Share on other sites More sharing options...
Stuart Posted August 14, 2019 Share Posted August 14, 2019 6 hours ago, GDMike said: I tried a SB R1,R4 prior because I'm pretty sure if I do a SB R4,R1 that my results should go to MSB of R1? Or I thought so..but swapping that around didn't help me.. If SB uses the MSB of both R1 and R4, your LI R4,>30 needs to be LI R4,>3000 to put the >30 into the MSB? 1 Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted August 14, 2019 Share Posted August 14, 2019 (edited) Hi, I'm back! SB operates on the wrong byte after the swap, you could use S instead. AI can't handle 2 registers, you could use A(add) instead, also the second operand is the destination of the result. (untested) BLWP @VSBR SWPB R1 AI R1,->30 AI can be used to subtract... this evaluates to adding >FFDO to >R1... causing a rollover past >FFFF SLA R1,4 MOV R1,R4 *now we have handled the "4" but still need to concatenate the "1" *here I dont know where the digit is on screen, I assume to the right of the "4" so... INC R0... if to the left... DEC R0 INC R0 BLWP @VSBR SWPB R1 AI R1,->30 A R4,R1 SWPB R1 Edited August 14, 2019 by HOME AUTOMATION some errors 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 14, 2019 Author Share Posted August 14, 2019 (edited) I'm actually hacking it out in explorer... (Too bad it doesn't do spell check) joke Im running it through explorer.. Yeah, a lot I do understand regarding MSB vs LSB in subtracting and adding/moving etc ..so that's a good thing..I just get confused during the SLA...let me see what we have here.. compiling Edited August 14, 2019 by GDMike Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted August 14, 2019 Share Posted August 14, 2019 I've been assuming you have "41" on screen and want to get that into the MSB of R1. I think Stuart is thinking you have "34" and "31" on screen and want to get "41" into the MSB of R1. 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 14, 2019 Author Share Posted August 14, 2019 Sorry bout the confusion.. But I think you got it..I'll do a compilation and video Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 15, 2019 Author Share Posted August 15, 2019 (edited) I should have mentioned I need R1 to equal >2A00 Of course values will change on what is being read in.. I'm still analyzing the code. VID_20190814_190656278.mp4 Edited August 15, 2019 by GDMike Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 15, 2019 Author Share Posted August 15, 2019 (edited) BTW, it doesn't matter on what hex value is on the screen as I aim to read the 2 values and be able to place the ASCII value into R1. This test gave me ASCII letter "S" Edited August 15, 2019 by GDMike Missing the info Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 15, 2019 Author Share Posted August 15, 2019 BTW, it doesn't matter on what hex value is on the screen as I aim to read the 2 values located on the screen. Then be able to place the ASCII value into R1. This test gave me ASCII letter "S" it should have given ASCII "*" after I made sure AI R1,>3000 instead of >30 was in place, as I just went with the text provided..(I changed it after the video). Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 15, 2019 Author Share Posted August 15, 2019 BTW, it doesn't matter on what hex value is on the screen as I aim to read the 2 values located on the screen. Then be able to place the ASCII value into R1. This test gave me ASCII letter "S" it should have given ASCII "*" after I made sure AI R1,>3000 instead of >30 was in place, as I just went with the text provided..(I changed it after the video). Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted August 15, 2019 Share Posted August 15, 2019 (edited) I analyzed your vid.... very difficult as I'm on an older laptop and your vid. is way too HQ. The only issue is that you are adding instead of subtracting... AI ->32 (negative >32) Edited August 15, 2019 by HOME AUTOMATION 1 Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted August 15, 2019 Share Posted August 15, 2019 4 hours ago, HOME AUTOMATION said: I analyzed your vid.... very difficult as I'm on an older laptop and your vid. is way too HQ. The only issue is that you are adding instead of subtracting... AI ->32 (negative >32) AI >30 (positive >30) adding >30 AI ->30 (negative >30) subtracting >30 hmm, correct the above from "32" to "30" ...why did I do that. 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 15, 2019 Author Share Posted August 15, 2019 Ok..thanks..I got confused (I do that), I initially was subtracting, but for some reason I thought I was supposed to be adding? Duh..I'll run it back though explorer.. and see if it will nail down. It's tough for me to use this platform for Trouble shooting like this. And my phone keeps going nuts on this site..as it was fine on here a couple weeks ago and lately its not allowing me to edit, select picture or video files..etc...so I'm usually rushed to get a subject up then to find out I didn't explain my situation well. Thx for the assistance!! Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted August 15, 2019 Share Posted August 15, 2019 I notice that you have the following code: MOV R11,@SAVRTN some code... MOV @SAVRTN,R11 RT *R11 A couple of points: RT is a "pseudo instruction." When assembled, RT becomes B *R11. The additional *R11 is treated as a comment - if you wrote RT *R4 it would still assemble as B *R11 You only need to save R11 if you will be doing a BL instruction which puts the return address into R11 Depending on your register usage, you can MOV R11,R10 and then B *R10 to return. I have always used B *R11 instead of RT - for me that helps avoid confusion 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 15, 2019 Author Share Posted August 15, 2019 Ahhhh...great tip of the day. Ya know, as you can probably tell, I just started learning assy. After learning a lot about TF. There is still a lot to lean here. Especially SLA,R,and around and around.. And Lee always points out my spelling errors, I think last time he caught my DATA >FC46 >DE34 ahhh no comma.. And again the spelling of The word HexIdecimal. Lol... where is QA when ya need em... right! I do appreciate the help, really..I hope Lee isn't pissed off at me for making these stupid mistakes.... yikes... Thanks so much again!!! Quote Link to comment Share on other sites More sharing options...
GDMike Posted August 15, 2019 Author Share Posted August 15, 2019 Ahhhh...great tip of the day. Ya know, as you can probably tell, I just started learning assy. After learning a lot about TF. There is still a lot to lean here. Especially SLA,R,and around and around.. And Lee always points out my spelling errors, I think last time he caught my DATA >FC46 >DE34 ahhh no comma.. And again the spelling of The word HexIdecimal. Lol... where is QA when ya need em... right! I do appreciate the help, really..I hope Lee isn't pissed off at me for making these stupid mistakes.... yikes... Thanks so much again!!! 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.