Jump to content
IGNORED

Classic99 Updates


Tursi

Recommended Posts

Ah, I see the problem with the file append... you were trying to create a new file using append, and Classic99 didn't pass back correctly that the file didn't exist. That was an important datapoint. ;) The file didn't exist, so the program for some reason fell into the "PC file" mode and considered it DF128. ;)

 

Apparently you're either the first person to create a file in Classic99 with APPEND or nobody has ever told me. ;)

 

That happened to me when I was working on Forth words to append Forth code to a file. It failed if the file did not exist. I did not test it on real iron—just assumed that opening a non-existent file in APPEND mode was illegal since opening such a file in OUTPUT mode is essentially the same as APPEND mode. I will try to find the thread that demonstrates this.

 

...lee

Link to comment
Share on other sites

 

That happened to me when I was working on Forth words to append Forth code to a file. It failed if the file did not exist. I did not test it on real iron—just assumed that opening a non-existent file in APPEND mode was illegal since opening such a file in OUTPUT mode is essentially the same as APPEND mode. I will try to find the thread that demonstrates this.

 

...lee

 

Here in post #1175 from fbForth—TI Forth with File-based Block I/O (almost 3 years ago) is where, in Classic99, I worked around trying to open a non-existent file in APPEND mode.

 

...lee

  • Like 2
Link to comment
Share on other sites

 

Please do not change that. That would break the “forward-word-tab” function of the TI Forth and fbForth block editors.

 

...lee

I would not suggest breaking things permanently. I prefer it to be settable in Options (like many Win32 programs have an Options page for mapping hotkeys to functions.)

  • Like 2
Link to comment
Share on other sites

Ah, I see the problem with the file append... you were trying to create a new file using append, and Classic99 didn't pass back correctly that the file didn't exist. That was an important datapoint. ;) The file didn't exist, so the program for some reason fell into the "PC file" mode and considered it DF128. ;)

 

Apparently you're either the first person to create a file in Classic99 with APPEND or nobody has ever told me. ;)

Thanks for looking into it!

Link to comment
Share on other sites

I would not suggest breaking things permanently. I prefer it to be settable in Options (like many Win32 programs have an Options page for mapping hotkeys to functions.)

I would probably instead use a meaningless-to-the-TI key combination... like control-F1 ;)

  • Like 2
Link to comment
Share on other sites

Incidentally, that's one of the programs that eventually crashes Classic99 in Overdrive mode after a few hours of running. On the other hand, I have ran it for a couple of days straight in normal mode with no issues. The file issue is a new addition so I can save the neural net error rate to disk for later review.

I've been trying to reproduce this under the debugger without luck so far. I got about 24 hours into the run in debug mode (got up to record 2840), but it filled up the disk image (cause I forgot I was making disk images to test something else ;) ). I switched to a release build and it's been running for about six hours so far (record 1644), with luck it'll crash by morning. ;)

Link to comment
Share on other sites

I've been trying to reproduce this under the debugger without luck so far. I got about 24 hours into the run in debug mode (got up to record 2840), but it filled up the disk image (cause I forgot I was making disk images to test something else ;) ). I switched to a release build and it's been running for about six hours so far (record 1644), with luck it'll crash by morning. ;)

 

Weird... What are your system specs? I have tried it on my aging Win 7:

post-25753-0-56375700-1527254157.jpg

 

Same issue with my recent Microsoft Surface Book.

I have to mention that I have noticed that it happens more often if I have Overdrive on while I'm doing a lot of pasting and editing before making a long run.

I'm going to try my Lyapunov space chaos program and see what happens: it takes approximately 36 days on a stock TI to come up with an image :evil: --> Up and running: 0825 CST start. Updates forthcoming...

Link to comment
Share on other sites

Well, remember that debugging changes the profile - timing bugs sometimes can't be found under a debugger. :/

 

My machine's Windows 10 dual Xeon, a bit slower but more cores. One question - are you definitely using CPU Overdrive and not "System Maximum"? The latter is less stable in my experience.

 

The neuron test is up to record 4251 now.

 

One thing you could try is to capture a crash dump as described here: https://blogs.msdn.microsoft.com/chaun/2013/11/12/steps-to-catch-a-simple-crash-dump-of-a-crashing-process/

 

That would let me analyze the problem, but there's a caveat in that I'd have to give you a new build, because I didn't save off the PDB of the one I released.

 

classic99_intermediate.zip

Link to comment
Share on other sites

  • 1 month later...

REQUEST FEATURE IN DEBUGGER:

 

On pull down menu of VIEW add SCREEN OFFSET FOR BASIC & XB please.

 

I know I am not alone on wishing to not have to figure out what is on screen by the HEX VALUES!!!!

  • Like 1
Link to comment
Share on other sites

Question on call sound.

 

Running the newest version of classic99, call sound is no longer pausing the execution of the next command.

It is acting like I put in a negative value for duration.

 

sample:

1715 call POSITION(#SP,YB,XB) :: iF YB>200 THEN 1725 ELSE 1700
1725 CALL DELSPRITE(#SP)
1726 CALL SPRITE(#25,38,16,192,XB,-12,-8,#26,38,16,192,XB,-12,8)
1727 CALL SPRITE(#27,38,16,192,XB,-16,0)
1728 CALL SOUND(800,110,0)
1729 CALL DELSPRITE(#25,#26,#27)

 

The sprites are deleted line 1729 before I here the tone of 1728... very strange.

Link to comment
Share on other sites

Question on call sound.

 

Running the newest version of classic99, call sound is no longer pausing the execution of the next command.

It is acting like I put in a negative value for duration.

 

sample:

1715 call POSITION(#SP,YB,XB) :: iF YB>200 THEN 1725 ELSE 1700

1725 CALL DELSPRITE(#SP)

1726 CALL SPRITE(#25,38,16,192,XB,-12,-8,#26,38,16,192,XB,-12, 8)

1727 CALL SPRITE(#27,38,16,192,XB,-16,0)

1728 CALL SOUND(800,110,0)

1729 CALL DELSPRITE(#25,#26,#27)

 

The sprites are deleted line 1729 before I here the tone of 1728... very strange.

CALL SOUND only delays if there is a previous sound that needs to complete before starting the new one, it doesn't pause execution on its own.

 

Add a second CALL SOUND if you want it to wait. This is outside the realm of the emulation - the emulator only emulates the hardware. The behaviour of CALL SOUND is all software. :)

Link to comment
Share on other sites

  • 4 weeks later...

OK just to make sure I was not mistaken I went and downloaded again the current versions of Classic99 to confirm this ERROR:

 

1. Why are my GRAM checkmarks disappearing?

2. Why is GRAM >0000 the only check mark when I never even clicked GRAM >0000 but clicked on GROM >E000

3. I could not figure out why I was getting totally random crashes from Classic99 GRAM attempting to load places I did not load into GRAM????

 

Anyway watch the video and test it yourself to see, I downloaded and reloaded Classic99 three times to confirm this problem.

Link to comment
Share on other sites

Yep, I noticed this too when I checked GRAM at >6000. The check mark goes away, but at least the gram is still enabled and I can change what I want. I suspect this will be an easy fix for Tursi.

That's why I hate making changes. You fix one thing and something else that has worked for years gets messed up.

Link to comment
Share on other sites

Yea since I updated Classic99 I thought it was just Windows 10 acting up again from updates.

But a new thing cropped up with code that worked fine, crashing a second time loaded????

Or would get ERROR NO GRAM FOUND using the GPL@LOADER, after I just checked the boxes for GRAM?

Or after I loaded code that worked with no changes 15 minutes ago would crash????

 

Good thing I keep a Windows 10 Desktop

BU folder with every change I make time stamped so I never lose code or changes made that worked or failed.

Edited by RXB
Link to comment
Share on other sites

The checkboxes were never persistent that I remember, but it's just a GUI effect. Remember that was just a quick hack I threw in there for you, Rich! :)

 

I'll have to dig to see why it's broken, but I don't have any more free time than I did six months ago... give me a couple weeks (MIGHT have time this weekend...). I haven't changed anything in the memory or GRAM subsystem that I can think of - you can see all my changes at Github ;)

  • Like 1
Link to comment
Share on other sites

I've confirmed that the checkmarks on the GRAM dialog are broken, but as far as I can tell they have ALWAYS been broken. (They only set >0000 on load, to whatever >E000 was set to). However, this has no effect on the actual banks emulating GRAM - as long as they were correct when you hit OK, they should be good. However, if you checked them, then loaded the dialog to look, then closed the dialog again, then you would change the state. Anyway, easy fix. I'll post a new build shortly... to solve my numbering concern I will now go to hex! Muhaha!

  • Like 4
Link to comment
Share on other sites

I went back through this thread for recent comments and hit the ones I could before sleep overtook me. Also the tape stuff was meant to try that fast-loader but I'm too tired to test anymore. ;)

 

Classic99 v399.2 (I just can't bring myself to go 400 before the rewrite, and hex just looked like "39A", so older. ;) )

 

-Added 'invert' option to cartridge builder and made default non-inverted
-Changed automatic extensions from "3.BIN" to "_8.BIN" and "_9.BIN"
-added delayed breakpoint on F1 when running GPU and CPU but only debugging one of them
-change speech write timing
-change GROM write timing
-change timing scheduler (timeBeginPeriod)
-add debug if the waitable timer fails
-wait timer no longer relies on timeout for timing
-change default clock speed to remove certain rounding errors
-improve VDP loop during blit events
-added measured timing information for sound, GROM, speech
-Added hotkeys for Paste (control-F1), Debugger (control-Home), and copy screen (Control-F2)
-added copy screen function (hold SHIFT for BASIC offset)
-added Tape menu and added STOP and PLAY functions (sorry, not tested)
-debugger adds view->ASCII Add Screen Offset for BASIC checkbox (not saved)
-fix display of active GRAM pages when opening dialog
-32MB AMS implemented - enabled it for now (we already used to reserve 16MB as it was)
-re-arranged VDP gettables to be more convenient and less redundant
-added NOCR or NOLF options to clipboard - if you open it as "CLIP.NOLF" or "CLIP.NOCR", automatic line endings will NOT be appended,
you must add them yourself. NOCR and NOLF are identical, only one may be specified, and you can use either CR (13) or LF (10) when you write.
-fix opening new files in APPEND mode for image disks and FIAD disks - should work okay now

 

https://github.com/tursilion/classic99/blob/master/readme.md

Edited by Tursi
  • Like 7
Link to comment
Share on other sites

I want to warn that this new version may use more CPU - I can't remember when I let the last release out and now that I think about it, I forgot to check Github history so I know there's more in there - in particular the speed of accessing hardware has been updated and the timing system changed to be more accurate (that may cause the CPU increase). I'll check that later and post if there's more to track. ;) (Edit: okay, I did the list now...)

Edited by Tursi
Link to comment
Share on other sites

I went back through this thread for recent comments and hit the ones I could before sleep overtook me. Also the tape stuff was meant to try that fast-loader but I'm too tired to test anymore. ;)

 

Classic99 v399.2 (I just can't bring myself to go 400 before the rewrite, and hex just looked like "39A", so older. ;) )

 

-Added 'invert' option to cartridge builder and made default non-inverted
-Changed automatic extensions from "3.BIN" to "_8.BIN" and "_9.BIN"
-added delayed breakpoint on F1 when running GPU and CPU but only debugging one of them
-change speech write timing
-change GROM write timing
-change timing scheduler (timeBeginPeriod)
-add debug if the waitable timer fails
-wait timer no longer relies on timeout for timing
-change default clock speed to remove certain rounding errors
-improve VDP loop during blit events
-added measured timing information for sound, GROM, speech
-Added hotkeys for Paste (control-F1), Debugger (control-Home), and copy screen (Control-F2)
-added copy screen function (hold SHIFT for BASIC offset)
-added Tape menu and added STOP and PLAY functions (sorry, not tested)
-debugger adds view->ASCII Add Screen Offset for BASIC checkbox (not saved)
-fix display of active GRAM pages when opening dialog
-32MB AMS implemented - enabled it for now (we already used to reserve 16MB as it was)
-re-arranged VDP gettables to be more convenient and less redundant
-added NOCR or NOLF options to clipboard - if you open it as "CLIP.NOLF" or "CLIP.NOCR", automatic line endings will NOT be appended,
you must add them yourself. NOCR and NOLF are identical, only one may be specified, and you can use either CR (13) or LF (10) when you write.
-fix opening new files in APPEND mode for image disks and FIAD disks - should work okay now

 

https://github.com/tursilion/classic99/blob/master/readme.md

You did all that in one day??

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