Jump to content
IGNORED

Altirra 2.70 released


phaeron

Recommended Posts

Might there be any room left in Altirra BASIC to implement the CLS statement? I kind of miss that in immediate mode, having used TBXL.

 

I second this! It is one of those things amazing for Atari to have overlooked in the official cartridge/ROM, just like BASIC reserved-word access to P/MG. I suppose you can always type 'Graphics 0', but it is not as handy by far.

 

I also have a completely different question. How do you go about emulating POKEY 'divisor 0' SIO transfer in Altirra? I have the HISIO patch enabled in the Ultimate1MB menu for D1-D4 and also set the DIsk Drive emulation profile to 'Fastest Possible'. However I do not seem to be getting the 'tearing callico' sound of 128kbps transfer, nor the practical applied speed of loading and saving. Obviously one can use the SIO patch feature inside 'System->Acceleration', but that doesn't seem to be the same thing.

Edited by morelenmir
Link to comment
Share on other sites

Might there be any room left in Altirra BASIC to implement the CLS statement? I kind of miss that in immediate mode, having used TBXL.

 

Not to dissuade phaeron from adding it -- because I'm quite used to using "CLS" in TBXL myself -- but try hitting the <home> key on your PC keyboard and see what happens. ;) This emulates what is a combo key on a real Atari, <shft><clear>. I always use this when in any language or command line that doesn't have a clearscreen command. It comes in pretty handy and is easy to get used to.

  • Like 1
Link to comment
Share on other sites

I'm afraid I'll have to decline on adding CLS. BASIC XL/XE doesn't have a CLS keyword, the TurboBasic XL keyword has a conflicting token with the BASIC XL/XE HITCLR keyword, and it's trivial to work around with <home> or PRINT "<esc><home>".

 

Regarding POKEY divisor 0 transfers -- make sure you do not have burst transfers on, as this will cause the emulator to send bytes a little too fast. (I should probably put in a leaky token bucket throttle; most SIO routines will go faster on average than 127kbps, but the problem here is peak rate.) Also, make sure you're actually using the U1MB HISIO routines; SpartaDOS, for instance, has its own and they cannot do divisor 0 at normal CPU speeds.

Link to comment
Share on other sites

Many thanks chaps - I'll give those suggestions a shot as well.

 

One thing I have noticed: while using uFlash and the 'System->Acceleration->D: Patch (Disk SIO)' on an Altirra setup with SIDE2 enabled and the U1MB PBI Bios and SDX disabled the disk transfer is super fast as expected. However if I set up Altirra with the U1MB PBI BIOS and SDX both enabled - with the D: Patch still enabled - then start uFlash the transfer rate is back to the normal slow speed. I thought that setting 'System->Acceleration->SIO Acceleration Mode->Both SIOV+PBI' might cure this but it has not.

Link to comment
Share on other sites

Works for me. One thing to keep in mind: you need to turn off the high-speed patch in the PBI BIOS, or it will intercept disk requests before the emulator. By design, the emulator's PBI patch is at the lowest priority (ID 7).

Yep - that sorts it out. Disable the HISIO drivers in the Ultimate1MB PBI BIOS settings and the 'System->Acceleration->D: Patch (Disk SIO)' speed-up works perfectly. Many thanks Avery!!!

 

So, going back to my original problem and bearing the above in mind the steps for POKEY divisor 0 transfer - not 'System->Acceleration->D: Patch (Disk SIO)' - is:

 

  1. Disable all 'System->Acceleration->...' patches and burst transfer settings.
  2. Choose 'Fastest Possible (288 RPM, 128kbps high seed' in the disk drives section)'.
  3. Enable the 'PBI BIOS->SIO Driver->HISIO' setting in the Ultimate1MB BIOS menu.
  4. Enable the 'PBI BIOS->SIO Driver D1:...D4:' setting in the U1MB BIOS menu'.

 

...and that should work at divisor 0?

 

Update:

I must be missing something because under the settings numbered above I either get 'error 138 - Device does not respond' or a very clipped sounding beep and slower loading of data than without enabling step 2.

Edited by morelenmir
Link to comment
Share on other sites

Working here with Altirra 2.80 test 50. Which U1MB PBI BIOS version are you using?

 

Its the v1.65 that you just released Jon.

 

I am testing it by copying a 256kb file from d1: to d2:. Its definitely faster when I select the XF551 or 1050 than if I try the 'fastest possible' drive and in no situation am I getting the characteristic tearing cloth sound of divisor 0 transfer. Weird! Maybe it is that thing Avery mentioned with the transfer going too fast he needs a leaky bucket to fix it!!!

Link to comment
Share on other sites

You have got the individual drive toggles enabled in the BIOS too? Otherwise the SDX or OS SIO driver will handle it. I've moved everything around in the current development version to make sure the toggles for D1-D4 aren't overlooked.

 

This is a screen grab of my settings for the Ultimate1MB PBI BIOS page, HSIO section:

 

post-31546-0-30668400-1470480154_thumb.jpg - All HSIO settings are enabled - I think!

 

Here is the current state of the 'System->Acceleration' menu from Altirra:

 

post-31546-0-20903300-1470481039_thumb.jpg - Nothing set.

 

By way of an experiment I timed how long it took to transfer the 256kB file on both my real 130XE over SIO2PC at POKEY divisor 0 speed with the U1MB HSIO patch working and how long it took Altirra with 'Fastest Possible' drive emulation level but otherwise the same setup to do the same thing. The real hardware took 1min 19sec, Altirra took 6min 10sec!!!

 

Also, for what it is worth I have tried the same thing with the '/A' switch present and absent on the 'Device=SIO.SYS' config.sys line. There was no difference in the behaviour in either configuration..

Edited by morelenmir
Link to comment
Share on other sites

The /A switch makes no difference since the PBI driver has precedence over the SDX SIO driver. The high speed code may fall back to 19200 baud if it consistently hits errors at divisor 0, which is presumably what's happening in the emulator.

 

Do you think this might be a legitimate bug then Jon?

 

Update: Nope. I finally tracked down what is causing this behaviour - it was the 'Accurate Sector Timing' option in the 'Disk Drives' menu. I don't think I have ever checked or unchecked this in the whole time I have been using Altirra - or did so years ago and never thought of it again! Anyway, with that deselected the transfer speed looks and sounds to be pretty much equivalent to the real hardware. I guess since there are no real drives that run at 128kbps then the emulator was struggling to come up with an accurate speed. Maybe in a future version Altirra should automatically disable the option if 'Fastest Possible' is selected?

Edited by morelenmir
Link to comment
Share on other sites

I finally tracked down what is causing this behaviour - it was the 'Accurate Sector Timing' option in the 'Disk Drives' menu.

Interesting. I had this unchecked and everything worked 99 per cent of the time, although I got the occasional SIO overrun error. Enabled accurate sector timing and didn't get an overrun error since.

 

EDIT: No - I still get the occasional overrun with either setting.

Edited by flashjazzcat
Link to comment
Share on other sites

Interesting. I had this unchecked and everything worked 99 per cent of the time, although I got the occasional SIO overrun error. Enabled accurate sector timing and didn't get an overrun error since.

 

EDIT: No - I still get the occasional overrun with either setting.

 

So - even with it enabled you still get the divisor 0 transfer rate? That really is strange!

Link to comment
Share on other sites

The drive speed/emulation setting is independent of the acceleration setting. If acceleration occurs, the disk request completes in 0 cycles in CPU time, regardless of the drive setting.

 

Accurate drive timing is also orthogonal. The XF551, for instance, has no buffering and needs a disk to be formatted with a different interleave to benefit from high-speed operation.

Link to comment
Share on other sites

I have a headache. and...

 

I have a feature request.

 

checkbox for only 1 instance.

 

I've spent the day typing in all source code from Analog #6, and somehow lost the disk due to opening two instances, and trying to get a disk directory.

somehow lost all data from disk image. 000 sectors. hundreds of sectors data gone.

I'm not sure if I can duplicate the loss, nor do I want to try.

 

I have a long, long list of words, none suitable for here.

FujiMan

Link to comment
Share on other sites

Sorry to hear Fuji Man, the option has been there for quite a while now, Avery kindly added it for me because it was very handy for using with a gamebase so to allow just one screen to be reused when running numerous games one after the other.

 

But then again, easy to say when you know where it is :)

 

Paul..

Edited by Mclaneinc
Link to comment
Share on other sites

Okay found that, thank you.

 

Okay, I figured out how it happened. Still f*n pissed.

When I was using the emulator, all the files were there.

I could load them, save them, list them, disk directory,etc.

 

I thought they were in the ATR image. WRONG.

 

Guess what happens when you eject the drive without using 'Save' the disk?

That's right. Poof. nothing. No data.

When did any disk drive ever work like that?

Why should I have to 'Save' the disk from the Disk Drive menu?

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