GDMike Posted December 22, 2022 Author Share Posted December 22, 2022 path here Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted December 22, 2022 Share Posted December 22, 2022 31 minutes ago, GDMike said: Received an error using xdt99 Cross compiler. Source or -l not correct/found... I was thinking I'm supposed to call the compiler from within my work source files. Not sure. But that's where I received the error. Am I supposed to enter a complete path? Not sure. I read the online GitHub docs and see that the call for "ASHELLO.ASM" doesn't look for the source subfolder, "example". So I'm a bit confused. I'm wondering if the TI source files path has to be specified in windows? “Cross compiler”??? Perhaps you mean “Cross assembler”, which would be xas99. You assemble source files with a command line—not from within a source file (unless that source file is a batch file containing the assembler command). This command line is issued within a Command-prompt window and, typically, in the directory/folder where the source files are so you don’t need to proliferate complete paths all over the place. You can certainly include paths to your files, but it gets complicated really fast. You can, of course, use relative paths for any files. ...lee 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 22, 2022 Author Share Posted December 22, 2022 (edited) 3 minutes ago, Lee Stewart said: “Cross compiler”??? Perhaps you mean “Cross assembler”, which would be xas99. You assemble source files with a command line—not from within a source file (unless that source file is a batch file containing the assembler command). This command line is issued within a Command-prompt window and, typically, in the directory/folder where the source files are so you don’t need to proliferate complete paths all over the place. You can certainly include paths to your files, but it gets complicated really fast. You can, of course, use relative paths for any files. ...lee this is my error from the command line batch Edited December 22, 2022 by GDMike Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 22, 2022 Author Share Posted December 22, 2022 maybe the source arent formatted to the correct format as you mentioned yesterday? but have the correct extension? Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 22, 2022 Author Share Posted December 22, 2022 Lee And I are still working this issue. Seems to be a windows path problem...?? Quote Link to comment Share on other sites More sharing options...
+TheBF Posted December 22, 2022 Share Posted December 22, 2022 3 hours ago, GDMike said: Lee And I are still working this issue. Seems to be a windows path problem...?? The path of Windows righteousness is hard to follow my son. 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 23, 2022 Author Share Posted December 23, 2022 (edited) my 1st listing using XAS99! whohoo! Big thanks to Lee!!!! Edited December 23, 2022 by GDMike 3 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 29, 2022 Author Share Posted December 29, 2022 Made some corrections for SNP today using xas99, notepad and classic 99. It's going to take some getting used to but it's tremendously faster, neater and cleaner to work from. 3 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 30, 2022 Author Share Posted December 30, 2022 Making headway on my New page insert routine. It took 10 seconds to move page 2 to page 3, page 3 to page 4.. up to page 400, about 800K of data. Of course my routine works from page 400 downward. I've still got another section of code to add, so it's going to affect the time. But I was thrilled to see it working somewhat. Lol 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted December 30, 2022 Share Posted December 30, 2022 Something to think about... What if you didn't have to copy all that data? If you have room for an array of 400 page numbers, you could keep the list of pages in that array in any order that you want and never need to move that actual data. Array elements marked with 0 are empty. Getting a page would be just one lookup using indexed addressing. User would still reference page 1,2,3 but they would be the index of the array. You would need code for: find the next empty page (search array for zero) mark page as erased. (set array element to zero) Just a thought. 3 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted December 30, 2022 Share Posted December 30, 2022 That's a very common approach, since it's much more effective. 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 30, 2022 Author Share Posted December 30, 2022 I see what you're saying. But I think the code would be enormous because I have other elements in the program that access the addresses of the two pages of each bank. If I were to look at a pointer to a specific address then the actual address data would be wrong for the other routines.. unless I changed that too. The routine I just made is very short and uses subs that are already made in order to complete it's task. Oh, and btw. Each page, whether showing empty or not do have additional info in the page headers for screen colors and something else..I can't remember at the moment.. so there not really empty..so to speak. I mean, a user can set any page to a color like a marker, and not include text. BUT...I'll keep this idea on hand and try working in that direction as it's pretty powerful to have. Thx Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 30, 2022 Author Share Posted December 30, 2022 (edited) Oh..btw. that 10 seconds also include a compare for figuring out if we are equal to the page that we first started out on. So in other words it's not just moving data. So the time is eaten. Edited December 30, 2022 by GDMike Quote Link to comment Share on other sites More sharing options...
apersson850 Posted December 30, 2022 Share Posted December 30, 2022 8 minutes ago, GDMike said: I see what you're saying. But I think the code would be enormous because I have other elements in the program that access the addresses of the two pages of each bank. If I were to look at a pointer to a specific address then the actual address data would be wrong for the other routines.. You don't. You look at a pointer to a specific page. So it's just a way of getting to the page via a list, not directly. 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 30, 2022 Author Share Posted December 30, 2022 I know. I think I said that.. Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 30, 2022 Author Share Posted December 30, 2022 But.. what your saying..under your breath, and I agree, is I should of taken that approach earlier on. I know, now. Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 30, 2022 Author Share Posted December 30, 2022 But my question regarding that is this. Would it matter? Would it benefit me in this case? Because I treat each page as a complete page regardless of containing text or not. That's what I'd like to know as well. Thx Quote Link to comment Share on other sites More sharing options...
apersson850 Posted December 30, 2022 Share Posted December 30, 2022 You can change the order of the pages, or insert or delete pages just by moving around data in a list of integers instead of pages with a thousand bytes or so. Several hundred times more efficient. 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 30, 2022 Author Share Posted December 30, 2022 (edited) Right. But 2 things happen.. maybe 3. 1. I have a GOTO page that processes in a split second. Moving between any page 1 to 400. So I saw no value in a change. 2. I didn't make an index early on because everything was performing. And 3. This latest routine is faster when the page requesting change is closer to the high bank of S.A.M.S. memory because I start my changes at high sam's. now with that said. Im still going to review this process. But I want to get the insert/delete page function completed in this form because it's going to be a big change in converting to an indexed array. And I have to answer the question, is it worth making the changes for just the performance of 1-2 routines? I do know that the function would be used more often than not by a user but nothing like the comparison of a delete line or insert line function use. I'll finish these up and ask lee for his take since he's seen the code up to this point already and go from there. I understand, it's probably how I should of started out beforehand. Again, I saw absolutely no response loss until now.. Thx for your input and thoughts. Edited December 30, 2022 by GDMike Quote Link to comment Share on other sites More sharing options...
+TheBF Posted December 30, 2022 Share Posted December 30, 2022 9 minutes ago, GDMike said: But I want to get the insert/delete page function completed in this form because it's going to be a big change in converting to an indexed array. And I have to answer the question, is it worth making the changes for just the performance of 1-2 routines? I think you just answered the question since inserting a page at page 1, by copying 399 blocks of data, could take 10's of seconds. Inserting a SAMS page into a list of page numbers will be < 1 second. It's not too tricky: - block move all the page numbers 1 cell to the right, to open up a space in the table. (you probably have a MOVE/COPY sub-routine already) Then something like this: - MOV @INDEX,R1 * page # goes to R1 - MOV @SAMSPG,@TABLE(R1) * put the new SAMS page into the table 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 30, 2022 Author Share Posted December 30, 2022 (edited) I'll look at reworking the relevant areas As suggested. Thx But you're missing the mapping function. And you're missing the data. This example just moves the index. I guess what I failed to mention. It's my mapper that's taking the time, switching, and moving a bank of data then switching again for 400 times( depending on which page gets an insert). I have to move the data in order for the rest of the program to function. Rt now, I can move any page to another in less than a second. That's already happening with the mapper operation. What would have to happen, is to set an index between 1-400. Any new page created would take index 1. Any next created page would take index 2,3,4 etc...as new pages are created and no matter what bank or page # (1 or 2) of a Bank. The difference though would be that it would not matter what actual page that data was occupying, as it would remain in order on the index as the page was created? I'm assuming here, or like you said, just move the index to the right and insert the page. But.. I'd have to track ACTUAL page and index page both AND the mapper. Rt now I'm tracking bank and page in bank. And then call the mapper depending on which bank I need to pull up. Info. There's 2 ea 1764 bytes of screen data per bank. Defined as addr1 and addr2 And something like 213 banks in total. Oh, and I forgot to mention. If I did use an index then I'd have to change my page up/down routines to match the new construction. And my copy/paste routines as well as as my GOTO routine. Hehe...it goes on..I'd also have to change my filing methods too. All of those BTW are pretty fast. I guess what I'm saying is that I'm not sure I can set an index for 1 section of the program without major side affects. It's always sumpin' I've been stuck in bed for most of the day with a bad back so I've had time to use my phone here. So maybe tomorrow I can get more done. LoL Edited December 31, 2022 by GDMike 1 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted December 31, 2022 Share Posted December 31, 2022 Nothing is really missing. Instead of now using the logical page number to access a physical page, you will get physical_page_number := index_table(logical_page_number) Not too much of a change to achieve the performance you need for some of the functions. 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 31, 2022 Author Share Posted December 31, 2022 (edited) Right. I was just trying to overcome my issue that the rest of the program has good performance, and to justify the changes at this stage. BUT...it would be beneficial indexed because I'll probably want a search routine and rework the filling for speed along with correcting the new / delete page option. I'm out of my comfort zone with how much rework might have to occur. We'll see. Thx Edited December 31, 2022 by GDMike 1 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted December 31, 2022 Share Posted December 31, 2022 (edited) Yes, planning for everything before you start is always a good thing. On pages 6-7 of this magazine scan from Programbiten you can see a simple phone register, where all access to the different records go via an index array called PEK. "Pek" means "point" in Swedish. Look at lines 1330 and 1350 hos simple an exchange of position of two records is. I thought you could calculate the memory bank number from your page number, so you didn't have to keep a record of the bank number separately? Edited December 31, 2022 by apersson850 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 31, 2022 Author Share Posted December 31, 2022 50 minutes ago, apersson850 said: I thought you could calculate the memory bank number from your page number, so you didn't have to keep a record of the bank number separately? Sure can. But knowing it and adding a 1 or -1 for page movement is quicker and easier when writing the code. I never said the code didn't need a makeover. 🤪 1 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.