Jump to content
IGNORED

Classic99 Updates


Tursi

Recommended Posts

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

  • 2 weeks later...

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.

Link to comment
Share on other sites

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 by RXB
Link to comment
Share on other sites

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. :)

 

  • Like 6
Link to comment
Share on other sites

  • 5 weeks later...

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

 

  • Like 12
  • Thanks 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...

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. ;)

 

  • Like 6
Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

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

 

  • Like 3
Link to comment
Share on other sites

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!

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

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

 

  • Like 10
  • Thanks 3
Link to comment
Share on other sites

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() ;)

 

  • Like 1
Link to comment
Share on other sites

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 by Tursi
  • Like 2
Link to comment
Share on other sites

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.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

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. ;)

 

  • Like 5
  • Thanks 2
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...