+Lee Stewart Posted October 25, 2020 Share Posted October 25, 2020 (edited) 12 hours ago, GDMike said: I have a scenario that doesn't know what the path+filename would be as it's generated by the user, and is contained in the following. FNM BSS 16 COUNT DATA 0 And I gather from the user, the path+filename into FNM and the length of the filename into COUNT. How would I setup my PAB with this information instead of using the TEXT of a defined path? How much space you allow for the filename (probably should think “pathname”) depends on the DSR. The TI disk controller’s DSR only allows 10-character filenames, but other controllers allow longer paths that include subdirectory names. Even with the TI DSR, your PAB should allow for 25 characters because one way to specify a pathname is DSK.<diskname>.<filename>. Since the diskname can also be 10 characters, that is 3 characters for the devicename (DSK), 10 characters for diskname, 10 characters for filename and 2 characters for the ‘.’ separators. Remember that the namelength in the PAB is a single byte (byte 9). In your scenario, you would need to copy the LSB of COUNT to byte 9 of your PAB in VRAM. If your VRAM address of your PAB is VPAB, say, then something like the following would copy the namelength and the pathname for the file to your PAB: VPAB EQU >1200 VRAM location of PAB * * Copy namelength byte to VRAM location of PAB LI R0,VPAB+9 VRAM address of PAB's namelength byte to R0 MOVB @COUNT+1,R1 namelength byte to R1 BLWP @VSBW write the namelength byte to PAB * * Copy filename (pathname) to VRAM location of PAB LI R0,VPAB+10 VRAM address of PAB's filename to R0 LI R1,FNM RAM address of filename to R1 LI R2,COUNT namelength to R2 BLWP @VMBW write the filename to PAB ...lee Edited October 26, 2020 by Lee Stewart clearer comment for “LI R0,VPAB+10” 1 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted October 26, 2020 Author Share Posted October 26, 2020 Thanks Lee. I think you've covered this way back when, but I'll confirm that it's probably best that I intentionally do a DF128 read/write type of operation. I'll lose 28 bytes since I'm saving 1k per SNP page. How much data again can I get into a DSSD disk, 720k? If that's the case, I'll use less Sam's than I originally thought. Quote Link to comment Share on other sites More sharing options...
HOME AUTOMATION Posted October 26, 2020 Share Posted October 26, 2020 14 minutes ago, GDMike said: DSSD 180K 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted October 26, 2020 Author Share Posted October 26, 2020 Sorry my math sucks around midnight Quote Link to comment Share on other sites More sharing options...
+mizapf Posted October 26, 2020 Share Posted October 26, 2020 720K is what you can achieve with a DSDD 3.5" (80 track) floppy disk (2880 sectors). 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted October 26, 2020 Author Share Posted October 26, 2020 Well, if I only support tipi, I'd be fine. But I can't do that. Quote Link to comment Share on other sites More sharing options...
apersson850 Posted October 26, 2020 Share Posted October 26, 2020 9 hours ago, GDMike said: ... but I'll confirm that it's probably best that I intentionally do a DF128 read/write type of operation. I'll lose 28 bytes since I'm saving 1k per SNP page.... Is this some midnight math too, or what do you mean here? If we are talking real disk sectors, then they are 256 bytes. Each can hold exactly two records that are 128 bytes long. A 1 K page will fill exactly four sectors. Now assuming you are talking kilobyte, not 1000 characters. But since a kilobyte is 1024 bytes, the difference isn't 28 there either. Quote Link to comment Share on other sites More sharing options...
GDMike Posted October 26, 2020 Author Share Posted October 26, 2020 I'm only moving 1000 bytes.. but I'll come back to this after my chores Quote Link to comment Share on other sites More sharing options...
GDMike Posted November 21, 2020 Author Share Posted November 21, 2020 The latest release (early, and no LOAD\SAVE options yet) SNP with bugs removed its a Disp Fixed 80 with program name = SNP and start name = SNP SNP Quote Link to comment Share on other sites More sharing options...
GDMike Posted November 23, 2020 Author Share Posted November 23, 2020 (edited) here is a NEW menu for the SNE cart. Its just a little more colorful MENU VID_20201122_225940706.mp4 Edited November 23, 2020 by GDMike Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 4, 2020 Author Share Posted December 4, 2020 (edited) Here ya go. SuperNotes Pro latest program with fixes.. NO DISK SAVE functions Added functions are: insert clock text and insert date text into document at cursor location by using the Control "T" and Control "D" keys. NOTE: CTRL "Q" MUST have been set first prior. (Clock must be running). Also note, Inserting the cLock/date text will overwrite ANY text sitting at cursor position, in other words there is no INSERT to push characters to the right. Another added feature is Control "M" key. CTRL M. This will allow IMPORTING text from the Classic99 EDIT menu. Example: Press CTRL M and PRESS ENTER and using windows notepad, highlight TEXT in document and copy, Choose Classic99 EDIT menu, select PASTE. The SNE import window using CTRL M will just wait for TEXT to be imported, otherwise PRESSING Function 9 will escape out. NOTE: After import press FUNCTION 9. Currently ONLY 1 page can be imported. And I updated the help menu SNP Edited December 4, 2020 by GDMike Updated file. Have fun 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 8, 2020 Author Share Posted December 8, 2020 (edited) I've got 2 ea. SNE 32K supercarts ready to put in cases. (Tested) I use those clear cassette cases. Selling each cart $75 a piece. These run the SNE programs and include editor assembler GROM. And 1ea 8K supercart for $55 (tested) (No switches because it's just 1 bank). This will help pay for my geneve work that Chris is doing. Thx Edited December 8, 2020 by GDMike 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 9, 2020 Author Share Posted December 9, 2020 I'm thinking about using forth, fbforth, and move SNE pages(1-9) into blocks as a way to save those pages. There should be an address to correspond with a given block in Forth. This way the user has a way of saving SNE pages. My short term fix Quote Link to comment Share on other sites More sharing options...
apersson850 Posted December 9, 2020 Share Posted December 9, 2020 I thought your plans for including disk save/retrieve were pretty far in the being. Just needed some organizing of the process, it seemed. Quote Link to comment Share on other sites More sharing options...
+TheBF Posted December 9, 2020 Share Posted December 9, 2020 5 hours ago, GDMike said: I'm thinking about using forth, fbforth, and move SNE pages(1-9) into blocks as a way to save those pages. There should be an address to correspond with a given block in Forth. This way the user has a way of saving SNE pages. My short term fix There is an address for each buffer. Each time you call BLOCK, you get a disk block but the buffer where it goes into memory is chosen by Forth. You would need FbForth running along side your editor or you have to code up a virtual memory system that does that kind of thing. Not sure those options get you what you are looking for. ?? Or am I missing something important. 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 9, 2020 Author Share Posted December 9, 2020 No, that's fine. I think I'm better to wait. Since lee has an idea that he's working on for SNP that would benefit SNE in the long run. I was just thinking out loud of how to possibly solve my DSR issue, but lee suggested offline that he might be able to implement a strategy that could layout saving SNP pages,(SNP has a feature for importing SNE pages 1-9), as FBFORTH does with BLOCKS since SNP doesn't allow for jumping in and out of any other pages except for the page above or below the current page. So it probably makes better sense to use that technique and flushing changed sectors as SNP pages are changing. Instead of the one-off file save I originally planned. Well, it seems quite cumbersome to try and gather pages that changed and save them out especially if the data is extremely large. I don't know another way, unless breaking out into multiple files to save data, even empty pages. Seems time consuming. 1 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted December 10, 2020 Share Posted December 10, 2020 How are your notes organized? By name, date, number? Or is it just a long line of pages, and you need to remember what you put where? 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 10, 2020 Author Share Posted December 10, 2020 The user would be responsible for creation of a table of index. This just provides a platform and paging up or down gets you a sequential page to another. Quote Link to comment Share on other sites More sharing options...
+9640News Posted December 10, 2020 Share Posted December 10, 2020 Just a thought here. How about a function keypress that pops up a window that displays a list of available sequential pages you can go to, possibly a list with only those pages with contained text. Or, what TI-Writer does, it allows you to go to any line in a file. Much quicker than paging, especially if like some source files I am working on have 1000 plus lines of code. Paging 20+ lines during each page down to go to line 1000 means about 50 page down keypresses and 50 re-writes of the whole screen. Or, another route I would suggest some "tags" to create hyperlinks to other points in the file, however, that would require some major coding if you were inserting text and text in subsequent pages moved around. Or, maybe some kind of "bookmark" tag that after text insert, or upon first loading of the file, it rescans the files and builds a special bookmark page. Just throwing ideas out there for something to think about. Beery 1 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted December 10, 2020 Share Posted December 10, 2020 The UCSD p-system's text editor uses the marker principle. You can jump directly to the beginning and end of a file, or page up and down. Apart from that, you can set a marker at any location and give it a name. Then, by using the command Jump Marker, you can type in the name and it will take you to where the marker was set. The program does keep track of where the markers are, regardless of what you insert and delete. They even survive the text being deleted where the markers are set. They "inherit" a position near where they were. So if you set the marker called ORIGIN at the beginning of the word originally, you get it like shown in this line. This is the text we originally typed in to the file. If you now delete some of the line, then you get this instead This is the text in to the file. Although the marker is now at the beginning of the word in, it's still called ORIGIN. In the Supernotes program, I've understood that the text is stored in pages. How is inserting and deleting text managed? If you insert a character, do you push everything forward? How do you handle that if you have many pages behind the inserted text? Or do you only insert locally in a page? How are pages linked? Is it just in numerical order, or do you allow a logical sequence of pages to be in an out-of-order physical sequence? In the latter case, it's possiible to handle text insert by letting text from a page spill into any unused page, and then link that into the logical sequnce. Either you have to deal with moving a large amount of data, or handle fragmentation between pages. Or not allow text insert at all, at least not outside a page. 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 10, 2020 Author Share Posted December 10, 2020 (edited) 2 hours ago, apersson850 said: In the Supernotes program, I've understood that the text is stored in pages. How is inserting and deleting text managed? If you insert a character, do you push everything forward? Last question, yes. To a point. Each page has a boundary. EOP and BOP within each page. The user can either go to the page previous or go to the page next from the page they're currently on. At this point in time there is no jump around that. But I did make the command line and it's simple to add it to the command line to jump to whatever page number. Page numbers are not numbered in stone but the program does give you the page number as it's presented to the user when key pressed page up or pressed page down because of 2 variables. BANK# and PAGE. The way I have it set up is Page the variable can be a number between 1 and 4 and Bank#,a variable can be a number between 11 and 247 but represents 4096 bytes per bank#. But mathematically I can jump to any page that a user gives me if I wanted to implement that function. But the issue at hand is how to save and scroll through the data and also retrieve the data I also thought of something like making a file for every page wow that would be a thousand 1k files...yikes.. or give or take a hundred.lol But Lee has a plan he he's all over it I think he's going to implement it the way forth works in his fbforth. Where there's just one big file and then the user can page up and down through the file I guess four pages can be in ram and then if a page gets updated it can be flushed. Which sounds okay to me. Beery, I was going to implement a hypertext and maybe I can still do it. I had a lot of the workings already in place and still do we'll either have to delete it or I'll have to finish it but I don't want to touch it until we have the DSR completed. That way I know whether I can include it or not because it's like something like 736 bytes of data for every one Bank which is 4096 bytes but I would have 736 bytes to do something with. But I'm going to hold off until Lee gets this result because I'm making it harder by adding stuff in rt now. Edited December 10, 2020 by GDMike Quote Link to comment Share on other sites More sharing options...
+9640News Posted December 10, 2020 Share Posted December 10, 2020 23 minutes ago, GDMike said: Beery, I was going to implement a hypertext and maybe I can still do it. I had a lot of the workings already in place and still do we'll either have to delete it or I'll have to finish it but I don't want to touch it until we have the DSR completed. That way I know whether I can include it or not because it's like something like 736 bytes of data for every one Bank which is 4096 bytes but I would have 736 bytes to do something with. But I'm going to hold off until Lee gets this result because I'm making it harder by adding stuff in rt now. Mike, Just for the record, I applaud your assembly efforts and I know I was able take a routine Lee wrote for the string search that worked to my benefit. I do want to say though that things I am suggesting are that, suggestions, on what you could implement to solve some issues that are presented. Myself, I am a Geneve user and will pretty much work "writing text, aka source code" with MyWord and it's 80 column editor and do not have any need for anything else for writing text/code for either the Geneve or TI-99/4A. While I have a TI/Sams/TIPI setup, it is highly unlikely I would use the program myself as I rarely turn the TI on outside of any BBS testing. So what I am saying is, take my comments as suggestions, not a wish list for something I would like to have for myself. Beery 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 10, 2020 Author Share Posted December 10, 2020 (edited) Right on. It's all good. It's my first assy program, like that first ford comet I had to learn how to drive. I'm all over the place with code and wishing for exotic places to go. But round the block is cooler in a comet. Edited December 10, 2020 by GDMike 2 Quote Link to comment Share on other sites More sharing options...
GDMike Posted December 11, 2020 Author Share Posted December 11, 2020 Mr. Miller, I sure hope your healed before going under surgery ?, but regardless, I sure hope for the best of outcomes for you and we'll all be here waiting for you when it's time for you to enjoy the hobby again. 2 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted December 11, 2020 Share Posted December 11, 2020 9 hours ago, GDMike said: But Lee has a plan he he's all over it I think he's going to implement it the way forth works in his fbforth. Where there's just one big file and then the user can page up and down through the file I guess four pages can be in ram and then if a page gets updated it can be flushed. Which sounds okay to me. What is the point of the memory module then? Implement a window into a large text block file you can do on any TI. Or do you intend one more layer? A buffer into the Supercart which then dumps everything to disk? 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.