senior_falcon Posted June 20, 2018 Share Posted June 20, 2018 What XB (or RXB) needs is a single XB ROM routine that will do like GPL MOVE and any memory to any memory. Why? A routine that does it all has to make decisions and that takes more time than dedicated routines. Quote Link to comment Share on other sites More sharing options...
RXB Posted June 20, 2018 Share Posted June 20, 2018 (edited) Why? A routine that does it all has to make decisions and that takes more time than dedicated routines. Well one routine that always uses the same registers and same 3 variables is much more efficient then 7 routines that all use 10 different registers and 9 different variables. It is not like you could use 3 of them at same time and need to maintain these values? Routine to use 1 to 7 routines = R0 Number of bites variable = R1 Source Variable = R2 Destination Variable = R3 To me I always try to make programs more efficient and not waste space or memory. Edited June 20, 2018 by RXB Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 21, 2018 Share Posted June 21, 2018 To me I always try to make programs more efficient and not waste space or memory. There is efficient use of space and efficient use of time. The two are not necessarily the same. An example is "unrolling" a loop. This takes less time but costs more memory. Quote Link to comment Share on other sites More sharing options...
RXB Posted June 21, 2018 Share Posted June 21, 2018 Hmm how long would it take to use a single Register like R0 to decide one of seven routines? Versus loading 3 new word values from GPL and then loading 3 new Registers with those values never to be used again? Example is like GVWITE that uses @FFF, @EEE, @DDD and no other routines ever use these address? Which means every time called these have to be loaded and never used again, does this sound efficient? (Basically 3 words wasted in GPL and 3 Registers that are dumped and reloaded for something else, but have to be saved thus wasting even more memory!) Register R0 to R5 never are retained in the XB ROMs but for some insane reason they use R7 and R9, which has to be copied and restored each call? Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 21, 2018 Share Posted June 21, 2018 Which means every time called these have to be loaded and never used again, does this sound efficient? Doesn't sound efficient the way you put it. I showed above how the loop in the machine language routine had way fewer istructions than the GPL version and so would be faster. I haven't looked at the assembly code to see if it can be improved and have no desire to do so. If you can come up with something that runs faster and is smaller then go for it. Quote Link to comment Share on other sites More sharing options...
RXB Posted June 21, 2018 Share Posted June 21, 2018 Yea wish I had a Assembly Garu to help on this one. Quote Link to comment Share on other sites More sharing options...
Asmusr Posted June 22, 2018 Share Posted June 22, 2018 Why? A routine that does it all has to make decisions and that takes more time than dedicated routines. There would be very little overhead if you use a jump table. But unless the loops are very short the only thing that really matters is the inside of the loops. Unrolling is much more important for performance than how you get to the loops. Quote Link to comment Share on other sites More sharing options...
RXB Posted June 22, 2018 Share Posted June 22, 2018 There would be very little overhead if you use a jump table. But unless the loops are very short the only thing that really matters is the inside of the loops. Unrolling is much more important for performance than how you get to the loops. XML's are GPL jumps. *********************************************************** * Equates for XMLs SYNCHK EQU >00 SYNCHK XML selector SEETWO EQU >03 SEETWO XML selector COMPCT EQU >70 PREFORM A GARBAGE COLLECTION MEMCHK EQU >72 MEMORY check routine: VDP PARSE EQU >74 Parse a value VPUSH EQU >77 Push on value stack VPOP EQU >78 Pop off value stack PGMCHR EQU >79 GET PROGRAM CHARACTER SYM EQU >7A Find Symbol entry SMB EQU >7B Find Symbol table entry SCHSYM EQU >7D Search symbol table SPEED EQU >7E SPEED UP XML CRUNCH EQU >7F Crunch an input line CONTIN EQU >81 Continue after a break SCROLL EQU >83 SCROLL THE SCREEN IO EQU >84 IO utility (KW table search) GREAD EQU >85 READ DATA FROM ERAM GWRITE EQU >86 WRITE DATA TO ERAM DELREP EQU >87 REMOVE CONTENT FROM VDP/ERAM MVDN EQU >88 MOVE DATA IN VDP/ERAM MVUP EQU >89 MOVE DATA IN VDP/ERAM VGWITE EQU >8A MOVE DATA FROM VDP TO ERAM GVWITE EQU >8B WRITE DATA FROM GRAM TO VRAM GDTECT EQU >8E ERAM DETECT&ROM PAGE 1 ENABLE SCNSMT EQU >8F SCAN STATEMENT FOR PRESCAN This the list of only GROM 3, there are many more in XB ROMs not shown here. My main complaints the insane waste of using so many variables in GPL and Assembly ROMs that do exactly the same thing. Any time you have to dump a variable then restore it and not use a unused one instead seems pretty stupid to me. This is like digging 2 holes only to fill a third hole with the dirt from the second one. The more you keep digging the more stupid it becomes. Quote Link to comment Share on other sites More sharing options...
RXB Posted June 24, 2018 Share Posted June 24, 2018 RXB 2018 CALL FILES(0) Works great and demo shows difference between XB and RXB 2018 Quote Link to comment Share on other sites More sharing options...
atrax27407 Posted June 24, 2018 Share Posted June 24, 2018 Rich, Is the new iteration of RXB going to be released in the relatively near future or is it still a "moving target"? Quote Link to comment Share on other sites More sharing options...
RXB Posted June 24, 2018 Share Posted June 24, 2018 Rich, Is the new iteration of RXB going to be released in the relatively near future or is it still a "moving target"? I think I will release RXB 2018 a couple of months around September. Unlikely to be any later than that. 2 Quote Link to comment Share on other sites More sharing options...
RXB Posted June 25, 2018 Share Posted June 25, 2018 Got a IDEA! New option on RXB Menu Screen either SHIFT KEYS: DRIVE TO LOAD SAMS CARD: ? When you put in that drive it would load a file named: @0000000000 Would load SAMS card memory pages 2,3,A,B,C,D,E,F according to a single file then start XB as that would be loaded also. File format would be Internal Fixed 136 as no one has ever used that size and format before. First byte is memory address to be loaded. i.e. 2 or 3 or A or B or C or D or E or F Second byte is bank of 1Meg pages of SAMS. i.e. >00 (normal 1Meg SAMS) up to >FF (255 page of a 16Meg SAMS) Third byte is 4K number >00 to >FF i.e. >00 page zero and >FF would be page 255 like in a 1Meg SAMS After SAMS is loaded it would execute XB program in upper 24K or EA program in memory. Is this a cool idea? 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted June 26, 2018 Share Posted June 26, 2018 Changes file format to Display/Fixed 255 so first byte in where to load load page. i.e. 2, 3, A, B, C, D, E, or F Current testing saves all RAM to DISK in 130 sectors as DF255. Next is SAMS version. 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted June 30, 2018 Share Posted June 30, 2018 UPDATE RXB 2018 SAMS SAVE ROUTINE: CALL SAMS("SAVE","PATH.FILENAME",#32K BANKS) This saves a file the number of 32K banks in SAMS to DISK or HARD DRIVE, from 1 to 31 BANKS. (32K to 992K) (NOTE: 32K of SAMS is reserved for Future expansions) We are looking at RXB 2018 be able to load multiple programs ASSEMBLY/XB and switching them INSTANTLY all in SAMS memory. Some changes to what was previously announced exist, but overall this is a brand new development in the TI world. 2 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted June 30, 2018 Share Posted June 30, 2018 Rich, Your new RXB 2018 is looking to be pretty sweet. Are you going to include an accompanying manual in PDF format for features/commands not in regular Extended BASIC? 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted July 1, 2018 Share Posted July 1, 2018 Rich, Your new RXB 2018 is looking to be pretty sweet. Are you going to include an accompanying manual in PDF format for features/commands not in regular Extended BASIC? Of course I always do that. 2 Quote Link to comment Share on other sites More sharing options...
RXB Posted July 3, 2018 Share Posted July 3, 2018 (edited) Have to change how the SAMS save and load routines works. Need to allow oddball pages to be used, saving the entire 1Meg not a viable option, as unlikely 31 BANKs of 32K would be needed. So need to allow variable sections and loader has to be as friendly. EXAMPLE TO SAVE: CALL SAMS("SAVE","DSK4.SAMSFILE",4) ! This would save four 32K banks to disk. EXAMPLE TO LOAD: CALL SAMS("DSK4.SAMFILE",address) ! This would load four 32K banks to SAMS with tag bytes at end of file >994A,>994A,>994A ending loader. Also how do you know which 32K bank to switch to say in another 32K bank? CALL SAMS("32K",BANK,address) ! BANK would be from 1 to 31 switching SAMS memory to that bank then execution of that memory address. Now how does RXB get away with this and not lock up? RXB 2018 uses the VDP CRUNCH BUFFER so from program mode or edit mode this works........cool huh? Of course anything in current memory is not lost and you can return the same way. CURRENT FORMATS FOR CALL SAMS: ******************************************************************* * CALL SAMS(lowbank#,highbank#,...) * CALL SAMS("PASS",...) * CALL SAMS("MAP",...) * CALL SAMS("OFF",...) * CALL SAMS("ON",...) * CALL SAMS("SAVE","PATH.FILENAME",#32BANKS) * CALL SAMS("LOAD","PATH.FILENAME",ADDRESSS) * CALL SAMS("LOAD","PATH.FILENAME","LINKNAME") * CALL SAMS("32K",BANK#,ADDRESS) * CALL SAMS("32k",BANK3,"LINKNAME") ******************************************************************* Edited July 3, 2018 by RXB Quote Link to comment Share on other sites More sharing options...
RXB Posted July 5, 2018 Share Posted July 5, 2018 (edited) Using Tursi Clock built into Classic99 I ran this program for new RXB command CALL SAMS("SAVE","DSK4.TEST",31) 10 OPEN #1:"CLOCK" 20 INPUT #1:A$,B$,C$ 30 CALL SAMS("SAVE","DSK4.TEST",31) 40 INPUT #1:X$,Y$,Z$ 50 PRINT A$:B$:C$ 60 PRINT 70 PRINT X$:Y$:Z$ Results: 4 07/05/18 12:36:00 4 07/05/18 12:41:25 So took 5 minutes 25 seconds to save a DF255 file of 10387 sectors. That means it will take that amount of time to load a SAMS with 992K of saved memory. WOW is going to fit on a Quad Density Floppy? On the plus side you can switch to one of 31 Assembly or XB programs instantly like FW or DM2000 or anything else. BONUS: Quit and go to RXB and switch again as long as you do not turn off P-Box, thus no reload needed. Edited July 5, 2018 by RXB 1 Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted July 6, 2018 Share Posted July 6, 2018 A "Quad Density" floppy will only hold 720K (or 2880 sectors). That looks to be about a quarter of your file, Rich. . . 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted July 6, 2018 Share Posted July 6, 2018 DOUBLE POSTING THIS AS SO EXCITED TO SHOW IT OFF.... Just so you guys know RXB new routine CALL SAMS("LOAD","DSK#.FILENAME") will load SAMS 1Meg takes 5 minutes. (Classic99 or RAMDISK speeds, SCSI slightly slower at just under 6 minutes.) Once done you have 31 (32K banks) memory loaded and can switch with CALL SAMS("32K",BANK#,ADDRESS) EVEN IF FORTH IS IN ONE OF THOSE BANKS. CARTS are great but they do not SAVE WHAT WAS DONE!!!!! Run your 32K memory exit to another 32K memory program or another.... But save it all to disk with CALL SAMS("SAVE","DSK#.FILENAME",#of banks to save) ! you can save from 1 (32K) to 31 (32K) banks. Tell me this is not a new idea in the TI99/4A world????? 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted July 6, 2018 Share Posted July 6, 2018 A "Quad Density" floppy will only hold 720K (or 2880 sectors). That looks to be about a quarter of your file, Rich. . . Yea using SAMS or even the new F18 MK2 will present problems in storage space limits as Floppy just doesn't cut it anymore. Going to have to go Hard Drive or USB storage or something new...... Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted July 6, 2018 Share Posted July 6, 2018 Yea using SAMS or even the new F18 MK2 will present problems in storage space limits as Floppy just doesn't cut it anymore. Going to have to go Hard Drive or USB storage or something new...... TIPI? Quote Link to comment Share on other sites More sharing options...
RXB Posted July 6, 2018 Share Posted July 6, 2018 TIPI? TIPI ? Hmmm as far as I know is it designed for storage like a Hard Drive? Can you make a Display Variable 255 file of over 10K sectors on TIPI? EXAMPLE: CALL SAMS("SAVE","TIPI.VOLUME.FILENAME",31) Quote Link to comment Share on other sites More sharing options...
Asmusr Posted July 7, 2018 Share Posted July 7, 2018 I don't quite understand how this works. Is there a command to load an E/A#5 file directly into SAMS, or do you load it normally first and then copy it to SAMS? Are you only saving and restoring the 32K or do you also save and restore the scratchpad? Have you considered data compression? It could probably reduce the file size a lot. 1 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted July 7, 2018 Share Posted July 7, 2018 TIPI ? Hmmm as far as I know is it designed for storage like a Hard Drive? Can you make a Display Variable 255 file of over 10K sectors on TIPI? EXAMPLE: CALL SAMS("SAVE","TIPI.VOLUME.FILENAME",31) Dunno, never tried it. TIPI uses FIAD, so if the program can handle the file, I don't suppose it would be an issue. Also there is no 127 file limit per folder either. While the TIPI does use some overhead, a modern 64 Gigabyte SD card in a TIPI probably still gives you as much space, maybe even more, than many of those older SCSI drives. I would also hazard to guess an RPI 3 and the P-Box TIPI will still cost less than an old used and rare SCSI card setup. Plus it gives you BBS/Internet access and mouse capability with TI-Artist too. Also, since it's actively supported and new, there is a reasonable expectation of added capabilities as well. 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.