RXB Posted September 15, 2020 Share Posted September 15, 2020 10 hours ago, Tursi said: Hmmm... that's probable. TIDIR will cache information from a disk image, so if Classic99 changes it underneath (due to a write), TIDIR will not know about the change and will perform its next operation based on the cached data. (Classic99 doesn't cache anything on purpose, to minimize that risk -- but that doesn't mean the TI software you are running doesn't!) This tends to be less of an issue with files than disk images, but I think in the end your advice is fair - be careful if multiple programs are accessing the same files. I do not run with Disk Images just FIAD, well for years I have used SCSI or Classic99 or PC99 with WSD to read DSK2. Source, Objact output and List output but in last year it has been buggy now. Quote Link to comment Share on other sites More sharing options...
RXB Posted September 16, 2020 Share Posted September 16, 2020 Hmmm need help here. I have 3 computers and all 3 have Classic99 and Windows 10, but not a single version of Classic99 does not crash in RXB or XB or XB 2.7 when I do this: >OLD DSK1.TEST >MERGE DSK1.TEST2 * I/O Error 02 This is TEST RXB program: 1 REM Test 3 PRINT "THIS IS A TEST PROGRAM" 5 CALL BEEP 7 END This is TEST1 RXB program: 100 ! REMARK HERE 105 REM Test 110 ! SHOW IT 115 PRINT "THIS IS A TEST PROGRAM" 120 ! LET THEM KNOW IT 125 CALL BEEP 130 ! DONE 135 END Now this should load and merge in XB fine as I am not running the program, anyone know what is going on? Quote Link to comment Share on other sites More sharing options...
atrax27407 Posted September 16, 2020 Share Posted September 16, 2020 Is TEST2 saved as a D/V163 file? Quote Link to comment Share on other sites More sharing options...
RXB Posted September 17, 2020 Share Posted September 17, 2020 5 hours ago, atrax27407 said: Is TEST2 saved as a D/V163 file? OMG I am staying up to late!!!! 2 Quote Link to comment Share on other sites More sharing options...
atrax27407 Posted September 17, 2020 Share Posted September 17, 2020 It could be "bad air". 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted September 23, 2020 Share Posted September 23, 2020 New problem Tursi. I have modified XB ROMs with a change but unknown now I would write to XB ROMs to put in changes? * Determine if and how much ERAM is present GDTECT MOVB R11,@PAGE1 First enable page 1 ROM *-----------------------------------------------------------* * Replace following line 6/16/81 * * (Extended Basic must be made to leave enough space at * * top of RAM expansion for the "hooks" left by the 99/4A * * for TIBUG.) * * SETO R0 Start at >FFFF * * with * * LI R0,>FFE7 Start at >FFE7 * <<<<<<<<<<<<<<<<<<<< OLD CODE IN XB ROMS ************************************************************* * RXB 2020 change for PRAM command * MOV @RAMTOP,R0 PRAM sets RAMTOP value <<<<<<<<<<<<<<<<<<<<<<<<<<<<< THIS IS THE CHANGE FOR RXB *-----------------------------------------------------------* MOVB R11,*R0 Write a byte of data CB R11,*R0 Read and compare the data JEQ DTECT2 If matches-found ERAM top *-----------------------------------------------------------* * Change the following line 6/16/81 * * AI R0,->2000 Else drop down 8K * LI R0,>DFFF Else drop down 8K *-----------------------------------------------------------* MOVB R11,*R0 Write a byte of data CB R11,*R0 Read and compare the data JEQ DTECT2 If matches-found ERAM top CLR R0 No match so no ERAM DTECT2 MOV R0,@RAMTOP Set the ERAM top RT And return to GPL Of course with out GPL loaded to set RAMTOP to >FFE7 RXB will crash instantly but how do I make changes to XB ROMs? As far as I know they are hard coded and you can not LOAD them from EA Cart? Quote Link to comment Share on other sites More sharing options...
Tursi Posted September 23, 2020 Author Share Posted September 23, 2020 You have to create your own user XB cartridge and select that, don't use the built-in one. 1 Quote Link to comment Share on other sites More sharing options...
oddemann Posted October 2, 2020 Share Posted October 2, 2020 Can you copy program file OUT of C99? I want to re-number a program (don't have tools outside the TI to do that). Want to add my program lines to a program, then put it into C99, re-number it and take it out to continue to add lines. Can you do that in C99 or do you know a way around that? I use LibreOffice to write and fix code. Quote Link to comment Share on other sites More sharing options...
RXB Posted October 2, 2020 Share Posted October 2, 2020 (edited) 7 minutes ago, oddemann said: Can you copy program file OUT of C99? I want to re-number a program (don't have tools outside the TI to do that). Want to add my program lines to a program, then put it into C99, re-number it and take it out to continue to add lines. Can you do that in C99 or do you know a way around that? I use LibreOffice to write and fix code. Yea as far as I know. Edited October 2, 2020 by RXB Quote Link to comment Share on other sites More sharing options...
Tursi Posted October 2, 2020 Author Share Posted October 2, 2020 1 hour ago, oddemann said: Can you copy program file OUT of C99? I want to re-number a program (don't have tools outside the TI to do that). Want to add my program lines to a program, then put it into C99, re-number it and take it out to continue to add lines. Can you do that in C99 or do you know a way around that? I use LibreOffice to write and fix code. You can renumber your program in BASIC or XB with the "RES" command. With no arguments, it will start at 100 and increment by 10, or you can specify it as "RES start,increment" (like RES 50,5) But to get it out of Classic99, just use the LIST command to a device. LIST "CLIP" will list it to the Windows clipboard, and then you can paste it into your favorite text editor. If DSK1 is a file folder, as shipped, you can list to a Windows text file with LIST "DSK1.?W.FILE.TXT" (there are shorter ways but "?W" will make it work regardless of configuration.) If you have a different drive set as files you can select it instead of DSK1. If you are using disk images, obviously this won't work. 6 Quote Link to comment Share on other sites More sharing options...
Tursi Posted November 2, 2020 Author Share Posted November 2, 2020 Version 399.032 - minor tweaks to make it build in 64-bit, but the 64 bit build is not going to be released - move the check for "pause when window inactive" to reduce slowdown - popcart CRU emulation - set VDP interrupt and alpha lock CRU in 9901 - 60fps in all places (found a place still set to 62hz) - set audio buffer to DAC level rather than assume 0 - more disk DSR sanity checks http://harmlesslion.com/software/classic99 12 1 Quote Link to comment Share on other sites More sharing options...
Omega-TI Posted November 11, 2020 Share Posted November 11, 2020 2 Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted November 25, 2020 Share Posted November 25, 2020 fyi this is happening in the latest release..confirmed ..something with minimemory Quote Link to comment Share on other sites More sharing options...
Tursi Posted November 26, 2020 Author Share Posted November 26, 2020 Nothing to do with Minimemory - the game doesn't use Minimemory. The problem is the disk tracking emulation that was put in writes temporary disk data to VRAM so programs like the Dino Demo can find the last disk access and work, but it was doing it even when CALL FILES(0) was active, thus corrupting the program. Fixed now. 399.033. Usual places. 6 Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted November 26, 2020 Share Posted November 26, 2020 Nothing to do with Minimemory - the game doesn't use Minimemory. The problem is the disk tracking emulation that was put in writes temporary disk data to VRAM so programs like the Dino Demo can find the last disk access and work, but it was doing it even when CALL FILES(0) was active, thus corrupting the program. Fixed now. 399.033. Usual places. [emoji6] Thank you!Sent from my LM-V600 using Tapatalk 1 Quote Link to comment Share on other sites More sharing options...
GDMike Posted November 26, 2020 Share Posted November 26, 2020 Everytime I wanted to blame classic99 for my issues when things didn't go well, like last week during a high speed assembly of my code and I kept getting errors... and I'm like, but it's not doing this when I assemble on real hardware... And I find out in my code I needed an EVEN statement... Or the other time when... It's never been cl99...it's always been..ME 3 Quote Link to comment Share on other sites More sharing options...
Tursi Posted November 27, 2020 Author Share Posted November 27, 2020 Read the debug log more often... issues like that usually trigger a warning which is there specifically for the programmer to understand why it's not working. 3 Quote Link to comment Share on other sites More sharing options...
Ed in SoDak Posted November 27, 2020 Share Posted November 27, 2020 18 hours ago, Tursi said: Nothing to do with Minimemory - the game doesn't use Minimemory. The problem is the disk tracking emulation that was put in writes temporary disk data to VRAM so programs like the Dino Demo can find the last disk access and work, but it was doing it even when CALL FILES(0) was active, thus corrupting the program. Fixed now. 399.033. Usual places. I took a different tack and fixed the Atlantis program to run from disk under XB, it ran just fine using Classic99 399.027, no CALL FILES needed! 2 Quote Link to comment Share on other sites More sharing options...
Tursi Posted January 2, 2021 Author Share Posted January 2, 2021 Classic99 version 399.034 - Fix post-increment bug in the CPU code, self-referencing indirect post-increment now works correctly I suppose it's a good thing just how specific the CPU bug reports are now, but I'm also amused to still be learning new things about the CPU... https://harmlesslion.com/software/classic99 10 3 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted January 2, 2021 Share Posted January 2, 2021 That was fast ?. I will try to copy what you did. 3 Quote Link to comment Share on other sites More sharing options...
Tursi Posted January 3, 2021 Author Share Posted January 3, 2021 7 hours ago, Asmusr said: That was fast ?. I will try to copy what you did. I meant to email you, sorry. Let me know if the diff is unclear - basically, remove all the existing code for post-increment, then all the new code is in fixS() and fixD() 1 Quote Link to comment Share on other sites More sharing options...
Tursi Posted January 3, 2021 Author Share Posted January 3, 2021 (edited) and just to confuse things... Classic99 399.036 - added SBR_FILEOUT to disk images to better support Realms of Antiquity - (edit) Then immediately fixed bug in same - .035 does not set the bytes in last sector correctly However - please wait for Adamantyr to bless it before running it on your game disk images (which you SHOULD have backups of anyway!). I was able to test it with DM2K and ARC303 successfully, and while I got an early beta of RoA to go through the motions, I don't have a good way of knowing if the resulting data was correct. https://harmlesslion.com/software/classic99 Edited January 3, 2021 by Tursi 2 Quote Link to comment Share on other sites More sharing options...
+adamantyr Posted January 3, 2021 Share Posted January 3, 2021 1 hour ago, Tursi said: and just to confuse things... Classic99 399.036 - added SBR_FILEOUT to disk images to better support Realms of Antiquity - (edit) Then immediately fixed bug in same - .035 does not set the bytes in last sector correctly However - please wait for Adamantyr to bless it before running it on your game disk images (which you SHOULD have backups of anyway!). I was able to test it with DM2K and ARC303 successfully, and while I got an early beta of RoA to go through the motions, I don't have a good way of knowing if the resulting data was correct. https://harmlesslion.com/software/classic99 I tested it, it looks like it's working fine. There was another app-related issue that if you forget to change the disk configuration it automatically thinks all the files are on DSK1. I've updated the SAV image on the disk images to a more reasonable DSK2 and DSK3 for world disks, respectively, since anyone using the disk images is probably going to be doing something with multiple drives. 2 1 Quote Link to comment Share on other sites More sharing options...
+dhe Posted January 3, 2021 Share Posted January 3, 2021 For those that don't know, what is SBR_FILEOUT? >- added SBR_FILEOUT to disk images to better support Realms of Antiquity 1 Quote Link to comment Share on other sites More sharing options...
Tursi Posted January 4, 2021 Author Share Posted January 4, 2021 13 hours ago, dhe said: For those that don't know, what is SBR_FILEOUT? >- added SBR_FILEOUT to disk images to better support Realms of Antiquity Not sure if it will mean much to programmers, but the TI disk controller has three ways to write a file -- modern disk systems don't have all these modes (per sae), but on the TI a file is normally written either with "SAVE", which only creates PROGRAM type files, or "WRITE", which writes lines to a record-based file. When you need finer control than this, there is a lower level set of interfaces called the SBR functions, and "FILEOUT" is the one that writes files. This mode writes files a pre-defined sector at a time, ignoring details like the file type and assuming the programmer knows what they were doing. Because Classic99 was written to deal with entire files at a time, this piecemeal, type-ignoring "per sector" write was quite difficult to integrate. I implemented it for FIAD files, because that is my first-class interface and I needed it for Archiver to work. But I left it out of disk images because it's even harder there, since I need to write the sector allocation, etc, etc, instead of just updating the file. But, finally, it was needed, so now it's there. But that's why disk images are harder than just files -- for a file, I just read in the file, manipulate it, and write it back, and Windows deals with the nitty gritty. For disk images, I need to manage the sector allocation, track where files are on the disk, and deal appropriately with partial files. 5 2 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.