Jump to content
IGNORED

Classic99 Updates


Tursi

Recommended Posts

Why is this so hard to do with Classic99? This program worked like a charm on a real TI.

 

Don't be silly, of course it does. Classic99 doesn't change how XB works, it only does what the TI tells it to do.

 

My results differ. File #2 ends up as a 1 sector file consisting of a file descriptor record and no data sectors.

ERROR IN 110.

Tested on a stock TI.

 

:)

 

I tested it with the MESS emulator, with XB and RXB 2001.

 

Same results as Tony, but it works if I type BYE.

Link to comment
Share on other sites

Why is this so hard to do with Classic99? This program worked like a charm on a real TI.

 

Don't be silly, of course it does. Classic99 doesn't change how XB works, it only does what the TI tells it to do.

 

My results differ. File #2 ends up as a 1 sector file consisting of a file descriptor record and no data sectors.

ERROR IN 110.

Tested on a stock TI.

 

:)

 

 

I tested it with the MESS emulator, with XB and RXB 2001.

 

Same results as Tony, but it works if I type BYE.

 

 

 

 

Did you watch the video I posted? Everyone seems confused as to what I was saying, the video shows what is going on and what I was talking about.

Edited by RXB
Link to comment
Share on other sites

Okay, so the difference in behaviour is /not/ due to Extended BASIC, but rather the disk controller DSR.

 

Classic99 does NOT emulate any existing disk controller card, and there is nothing in the file system specification which says that a file must be flushed to disk while it is still open, but that is the behaviour that you are expecting. Classic99's file system flushes the file when CLOSE happens, and not before.

 

I'm not really interested in supporting that behaviour. It's sloppy programming not to close your files, and I wouldn't be surprised if there are some devices that have trouble with that concept. It will definately be a problem when network file systems are added. When I implement support for the real disk DSR it will behave the way you expect if you use that.

Edited by Tursi
Link to comment
Share on other sites

Just to explain what's going on under the hood, when you open the file for output, the Classic99 DSR creates a new file containing just the TIFILES FDR, that's the 1 sector you see. The file operation happens entirely in RAM buffers, until instructed to flush by a CLOSE. This is mostly a performance optimization, but it also makes it much easier to support all file operations regardless of the file type underneath it.

 

When Extended BASIC runs a program, it automatically closes all open files when it is finished UNLESS an error occurs. In that case, files are left open. They are automatically closed when you edit a line of the program, which is what my misquoted 'don't be silly' above is referring to. Your program deliberately ends with an error, which is fine, all you have to do is type CLOSE #2, BYE, NEW, or edit a line of the program to make the file close. This may be different than the TI Disk Controller, but I don't emulate the TI Disk Controller.

 

You can watch this happening step by step in the debug log, too. :)

Edited by Tursi
Link to comment
Share on other sites

Just to explain what's going on under the hood, when you open the file for output, the Classic99 DSR creates a new file containing just the TIFILES FDR, that's the 1 sector you see. The file operation happens entirely in RAM buffers, until instructed to flush by a CLOSE. This is mostly a performance optimization, but it also makes it much easier to support all file operations regardless of the file type underneath it.

 

When Extended BASIC runs a program, it automatically closes all open files when it is finished UNLESS an error occurs. In that case, files are left open. They are automatically closed when you edit a line of the program, which is what my misquoted 'don't be silly' above is referring to. Your program deliberately ends with an error, which is fine, all you have to do is type CLOSE #2, BYE, NEW, or edit a line of the program to make the file close. This may be different than the TI Disk Controller, but I don't emulate the TI Disk Controller.

 

You can watch this happening step by step in the debug log, too. :)

 

 

Yep you just explained it better then I did. I had to make a video just to show what was going on. And like I said, it is not a problem just surprised me.

Link to comment
Share on other sites

Hi Tursi, can you re-enable the sid in audio options for the latest version of Classic99?

 

Marc Hull has kindly let us download and use his sidplay software to use and would be good to see development on Classic99 - http://www.atariage.com/forums/topic/183215-sidplay-99/

 

http://www.dsapsc.com/free-sid-music.html

Edited by OX.
Link to comment
Share on other sites

Hi Tursi, can you re-enable the sid in audio options for the latest version of Classic99?

 

I don't see this happening in the near future. Marc made it clear he was unhappy with the quality of the emulation and uninterested in being associated with it, so it was removed. There has been no question about it in the last four weeks, and the SID emulation causes severe performance penalties that I was never happy about.

 

I have left the hooks in place. You should be able to use the old version of the sid dll by dropping it into the Classic99 folder. I don't think I've tested that, though.

 

SIDDll.zip

 

Should someone create a DLL that meets Marc's standards for quality and my standards for performance, I'll be happy to re-integrate it, but I doubt I'll have time myself. Note that none of the existing public domain SID emulation code may be integrated directly into Classic99 due to conflicting licensing terms.

Link to comment
Share on other sites

Hi Tursi, can you re-enable the sid in audio options for the latest version of Classic99?

 

I have left the hooks in place. You should be able to use the old version of the sid dll by dropping it into the Classic99 folder. I don't think I've tested that, though.

 

OK, Iv'e dropped the dll file into Classic99 but not getting any playback of sids, I take it the sid engine isn't activated by default and there's no toggle entry in the latest Classic99 :(

 

Edit: I switched it on in the .ini and it now works :)

 

[audio]

sid_blaster=1

Edited by OX.
Link to comment
Share on other sites

Should someone create a DLL that meets Marc's standards for quality and my standards for performance, I'll be happy to re-integrate it, but I doubt I'll have time myself. Note that none of the existing public domain SID emulation code may be integrated directly into Classic99 due to conflicting licensing terms.

 

There are a number of SID libraries out there, or at least a few. IIRC, the SIDplay library is freely available, and does a pretty damn good job of it. Is your SID custom?

Link to comment
Share on other sites

Hi Tursi, can you re-enable the sid in audio options for the latest version of Classic99?

 

I don't see this happening in the near future. Marc made it clear he was unhappy with the quality of the emulation and uninterested in being associated with it, so it was removed. There has been no question about it in the last four weeks, and the SID emulation causes severe performance penalties that I was never happy about.

 

I have left the hooks in place. You should be able to use the old version of the sid dll by dropping it into the Classic99 folder. I don't think I've tested that, though.

 

SIDDll.zip

 

Should someone create a DLL that meets Marc's standards for quality and my standards for performance, I'll be happy to re-integrate it, but I doubt I'll have time myself. Note that none of the existing public domain SID emulation code may be integrated directly into Classic99 due to conflicting licensing terms.

 

Mike.... I never asked you to include it in your emulator and I never asked you to take it out. Your decisions so leave my name out of it.

Link to comment
Share on other sites

ok, I have a feature request related to the classic99 debugger :)

 

Any chance a "halt on illegal opcode"-option could be added to the debugger? Today a message is written to the debug window, but it would be great if we could halt the CPU if we run in such situation.At least while you are debugging your assembly code anyway, so a menu option would be great :D

 

EDIT: Just checked the source, my option would be to modify the "op_bad()" function in cpu9900.ccp and add a TriggerBreakPoint() to it ?

Link to comment
Share on other sites

There are a number of SID libraries out there, or at least a few. IIRC, the SIDplay library is freely available, and does a pretty damn good job of it. Is your SID custom?

 

SIDPlay is GPL, so it can't be put into Classic99. I believe that's the library that I originally used, though (that's why it's in a DLL.)

Link to comment
Share on other sites

I don't see this happening in the near future. Marc made it clear he was unhappy with the quality of the emulation and uninterested in being associated with it, so it was removed. There has been no question about it in the last four weeks, and the SID emulation causes severe performance penalties that I was never happy about.

 

Mike.... I never asked you to include it in your emulator and I never asked you to take it out. Your decisions so leave my name out of it.

 

Always my decision. Suggest you re-read what I actually said. (Although you've just reinforced the second half of my statement.)

Link to comment
Share on other sites

ok, I have a feature request related to the classic99 debugger :)

 

Any chance a "halt on illegal opcode"-option could be added to the debugger? Today a message is written to the debug window, but it would be great if we could halt the CPU if we run in such situation.At least while you are debugging your assembly code anyway, so a menu option would be great :D

 

EDIT: Just checked the source, my option would be to modify the "op_bad()" function in cpu9900.ccp and add a TriggerBreakPoint() to it ?

 

Yep, that will work. I'll see about adding it too.

Link to comment
Share on other sites

While we're talking about features, I have one that I think/assume would be fairly trivial to add?

 

Can we have a 'warm reset'? I.e Reboots the TI but does *not* zero the RAM in the TI. In other words, it would mirror the behaviour of turning off the console, but leaving the PEB switched on? This would make post-mortem crash investigation easier in some circumstances (i.e. buffers would still be present in memory for inspection etc).

 

So, I would propose to rename the current Reset entry in the File menu to Cold Reset, and add a Warm Reset menu entry as well.

 

Just to be clear: Clearly *some* memory would be changed in RAM (mostly in pad) even during a warm reboot - there's nothing that can be done about that, that's just the TI running it's ROM ;) - I'm just talking about skipping the initialisation of memory to 0 during start-up.

 

As a total aside, not associated with Classic99, it's interesting the note the different behaviour of the TI 32K memory card and the SAMS card. When I power up my system with the TI card in (from power off) memory is mostly 0, with the odd FF in there. However, the SAMS memory is almost completely randomised! It's all over the place!

 

Thanks

Link to comment
Share on other sites

As a total aside, not associated with Classic99, it's interesting the note the different behaviour of the TI 32K memory card and the SAMS card. When I power up my system with the TI card in (from power off) memory is mostly 0, with the odd FF in there. However, the SAMS memory is almost completely randomised! It's all over the place!

 

Probably just a difference between DRAM and SRAM?

 

Sometimes99er has a point on the memory inspection bit. I had just blindly added it to my todo list, but now I'm curious what circumstance you are trying to resolve.

 

Also, you can manually do what you're after in the debugger (I've done this a couple of times myself, although I can't remember why). Assuming you are using any of the standard TI ROMs (GROM type irrelevant, just the boot ROM at >0000):

 

1. Breakpoint the emulator

2. Change the WP to 83E0 by entering WP=83E0 and clicking Apply

3. Change the PC to 0024 by entering PC=0024 and clicking Apply

4. Release the breakpoint

 

If you are using a custom ROM, just load the correct reset vector (WP is stored at >0000 and PC is stored at >0002 in the ROM). Since you are directly manipulating the registers, it doesn't matter if the emulated machine is crashed, hung, etc. The breakpoint is necessary because it's a two-step process.

Link to comment
Share on other sites

Really? In a TI-99 thread? I had to double check and make sure this wasn't the Jaguar forum...

 

I've cleaned up this thread a bit. Please keep the insults and personal opinions of other people to yourselves. If I have to come back and clean things up again you will NOT be happy about it.

 

Tempest

  • Like 1
Link to comment
Share on other sites

Really? In a TI-99 thread? I had to double check and make sure this wasn't the Jaguar forum...

 

I've cleaned up this thread a bit. Please keep the insults and personal opinions of other people to yourselves. If I have to come back and clean things up again you will NOT be happy about it.

 

Tempest

 

I'm already not happy about it. Your actions are quite disturbing. This place seemed, different, and better - until now.

 

So it's the policy of this group to remove messages it doesn't like? I find that Nazi-istic approach extremely distasteful, and is the reason I left the http://tech.groups.yahoo.com/group/ti99-4a/ group. Please delete my profile, I no longer wish to be associated with this group. I can be contacted at http://tech.groups.yahoo.com/group/TI994A/ or http://tech.groups.yahoo.com/group/Geneve9640/, healthier groups with no such aforementioned practices.

 

I find your Nazi epithet disturbing and misdirected. Whether we like it or not this is a privately-owned forum, the rules to which we agree when signing up. I find it only slightly different from having a gathering in a restaurant and having the manager come over and tell us to knock off the ruckus; the difference being that in a real-life scenario one cannot undo what has already been said.

 

Tony, I personally encourage you to stay around. Losing any one person can segment and permanently damage a community. There is quite a bit of valuable discourse here, in which you have and can continue to be a part. So far this has been a great gathering of people from what I recognize as the two main TI gathering places which have a small overlap.

 

If you subscribed and disagree, then I could understand asking for your money back. But as a free user with a free profile, the loss of which does not hurt the forum itself nor deter it from existing, I again encourage you to hang around this side of the TI community.

 

Sadly, it seems that Tempest does not understand the back-and-forth which exists here. I have seen several seemingly heated arguments which might look like a knife-fight on the street, be the same people involved in those threads have much more friendly demeanor in others. Even so, and not defending his actions, as a moderator he has a job to do maintaining conformance to the terms of service and he has to make a call somehow. Additionally, it would seem to me that mods do not just troll threads looking for infractions, rather someone must have reported those posts as a TOS violation. To that end, I want to point out my same prior points to those who regularly attend and those tourists who may have taken the posts as harsh or volatile.

 

(I have struck some of my comments after further consideration, and then seeing Tursi's perspective, who was actually involved and not, as myself, a bystander. Let us, as he said, move on.)

Link to comment
Share on other sites

Really? In a TI-99 thread? I had to double check and make sure this wasn't the Jaguar forum...

 

I've cleaned up this thread a bit. Please keep the insults and personal opinions of other people to yourselves. If I have to come back and clean things up again you will NOT be happy about it.

 

Tempest

 

Context is important. Some of the deleted posts were neither insults nor derogatory personal opinions. Fairly tame and now lost.

Link to comment
Share on other sites

The "back and forth" went beyond reasonable disagreement. I didn't search for what posts were and were not removed, but I agree with OLD CS1 who points out that everyone agreed to a code of conduct and there's no call for saying you didn't know.

 

It's done, it's over, deal with it and move on. :)

Link to comment
Share on other sites

I find that Nazi-istic approach extremely distasteful

But you find calling someone a Nazi to be in good taste? :?

 

Context is important. Some of the deleted posts were neither insults nor derogatory personal opinions. Fairly tame and now lost.

Not lost, things can be restored. I think I've restore everything except for the two posts that were reported.

 

Tempest

Link to comment
Share on other sites

The "back and forth" went beyond reasonable disagreement. I didn't search for what posts were and were not removed, but I agree with OLD CS1 who points out that everyone agreed to a code of conduct and there's no call for saying you didn't know.

 

It's done, it's over, deal with it and move on. :)

 

I suppose your talking of my comments. You're probably correct. I have always tended to speak my mind and like to be as straight forward and honest as possible (to a fault I suppose.) I normally don't take to the practice of innuendo, double speak or other obfuscation. Always seemed a bit too spineless for me even though there are more than a few folks who don't share that opinion. I'm sure you see my point Mike.

Now it's done, it's over, deal with it and move on. :)

 

So anyone know who called the cops ?

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