Jump to content
serj

Altirra 2.50 Final out

Recommended Posts

Altirra 2.50 released.

 

http://www.virtualdub.org/downloads/Altirra-2.50.zip

http://www.virtualdub.org/downloads/Altirra-2.50-src.zip

 

changelog:

 

Version 2.50: [features added]
  • BASIC: Altirra BASIC is now the default when no BASIC ROM is included.
  • Cartridge: Added support for another 512K/4MB/8MB flash cartridge.
  • Cartridge: Added support for The!Cart and MegaMax 2M cartridge types.
  • Cassette: Tape control UI now has a waveform graph.
  • Cassette: Added support for FSK blocks in .cas files.
  • CPU: Extended 65C816 speed options to include 17MHz (10x) and 21MHz (12x).
  • Debugger: Register ® command can now set the emulation (E) flag.
  • Debugger: Improved display of 65C816 register state.
  • Debugger: Disassembly window now steps properly above bank $00.
  • Debugger: Added search capability to History pane.
  • Debugger: Added some 65C02 and 65C816 instructions to assembler.
  • Debugger: Added .loadobj command.
  • Debugger: Keyboard shortcuts are now configurable.
  • Debugger: .basic_dumpline now decodes BASIC XL/XE tokens.
  • Debugger: Added x (examine symbols) command.
  • Debugger: Added module!symbol syntax for resolving symbols specific to a module.
  • Debugger: .sdx_loadsyms command now works on more versions of SpartaDOS X.
  • Debugger: .printf now supports string output and variable width/precision.
  • Debugger: Failed assertions now report file/line info if available.
  • Debugger: Added .basic_dumpstack command to dump BASIC runtime stack.
  • Debugger: Added option to hide namespaces for nested symbols in history window.
  • Debugger: .dumpsnap command now applies compression.
  • Debugger: Added partial CC65 dbgfile support.
  • Disk: .ARC files can now be mounted as SpartaDOS X disk images.
  • Disk: Added option to format new disks with the SpartaDOS File System (SDFS).
  • Disk: Added support for 8KB sectors.
  • Disk Explorer: DOS2 filesystem validator no longer checks directory entries after end of directory.
  • Display: Fixed update problems when stepping with frame blending active.
  • Input: Middle mouse button (MMB) can now be used to release mouse capture if it is not already bound.
  • Input: Added XInput support.
  • Network: DragonCart emulation support.
  • POKEY: Audio output path now emulates analog decay effects.
  • Printer: Added Clear option to printer output pane.
  • Profiler: Added columns for unhalted cycles.
  • Serial: Service field in ATDI command is now optional and defaults to telnet (port 23).
  • Serial: Added Telnet terminal type negotiation support.
  • Serial: Added Telnet binary transfer support.
  • Serial: Added full 850 Interface Module SIO protocol and handler support.
  • UI: Added some touch device support.
  • UI: Added Attach Disk and Detach Disk menu options.
  • UI: Added direct keyboard layout mode.
  • Ultimate1MB: Added SST39SF040, Am29F040B, and BM29F040 as alternate flash chip options.
[bugs fixed]
  • 65C816: RTI can no longer clear the X flag in emulation mode.
  • Cartridge: Fixed swapped 5200 two-chip and one-chip modes.
  • Cartridge: Cold reset now resets flash emulation.
  • Cartridge: Fixed some cases where flash writes would stop working with emulated MaxFlash cartridge.
  • Cartridge: Fixed incorrect flash device ID for MaxFlash 1MB+MyIDE cartridge.
  • CPU: Fixed crashes when disabling heat map tracking.
  • CPU: Reverted unintentional change to IRQ timing (affected PM 2.0).
  • CPU: Fix hang when saving state with heat map activated.
  • Debugger: lm (list modules) and .unloadsym now work by IDs instead of indices to avoid index renumbering problems.
  • Debugger: Improved M/X tracking in disassembly window.
  • Debugger: Fixed disassembly of absolute long addressing mode.
  • Debugger: Memory window now updates properly above bank 0.
  • Debugger: Fixed memory access value reporting above bank 0 in step disassembly.
  • Debugger: Fixed infinite loop bug in static trace (st) command.
  • Debugger: CC65 label parser now strips the first leading period from label names.
  • Debugger: Fixed truncated call stack when encountering reused function epilog code paths.
  • Disk: Fixed crash when host file is modified on virtual SDFS mounted path and accessed before emulator can notice the change.
  • Disk: Fixed a bug that caused some root files on virtual SDFS disks to not hot-update reliably.
  • Disk: Writes to virtual disks are now blocked.
  • Disk: Fixed density detection issue with Set PERCOM Block command in XF551 mode.
  • Disk Explorer: SDFS directory entries are now reused properly.
  • Disk Explorer: SDFS sparse files are now supported.
  • Disk Explorer: Dragged files are no longer placed in the root when viewing a subdirectory.
  • GTIA: Fixed 2cclk transitions from modes 9/10/11 to mode 8.
  • HDevice: Files can now be created in append mode.
  • HDevice: Improved error handling in delete, rename, lock, and unlock operations.
  • HLE: Acceleration hooks no longer fire in 65C816 native mode or with a non-standard emulation mode environment.
  • HLE: Program loader now detects and rejects SpartaDOS X executables.
  • HLE: Fixed state of carry flag when exiting DSKINV after failure (fixes Micropainter with SIO patch enabled).
  • HLE: Fixed EXP(-1) returning an error with FP acceleration enabled.
  • HLE: Added alternate hooking mechanism so that CIO device hooks can activate on OSes that don't use the standard CIOINV vector.
  • Input: Relative binding to the axis 0/1 inputs of a tablet controller now works.
  • Input: Fixed mouse capture malfunctioning when activated by keyboard shortcut when the mouse is outside of the window.
  • LLE: Writes to S: in mode 0 now extend logical lines properly.
  • LLE: CIO now checks permissions on get/put operations.
  • LLE: Improved accuracy of power series for ATN(x).
  • PCLink: Fixed race condition in completion of fwrite() command.
  • POKEY: Fixed POTn registers changing without POTGO being strobed.
  • Printer: High bit is now stripped on printed characters so that inverse characters can be read instead of becoming ?.
  • Serial: Fixed escaping of $FF bytes over Telnet protocol.
  • Serial: Cold reset now forces modem back to command state.
  • Serial: Modem command handling is now case-insensitive.
  • Serial: Fixed control line status from status commands issued between OPEN and XIO 40 (was causing ForemXEP drops).
  • SIDE2: Fixed SDX banking register address.
  • Simulation: Fixed some issues with GTIA and POKEY state desyncing across save states.
  • UI: Shift modifier is allowed again for Start/Select/Option.
  • VBXE: Extended color bit now enables LSB of GTIA color registers.
  • VBXE: Fixed blit mode 4 (bitwise AND) not working properly with src=0.
  • VBXE: Fixed blitter collision behavior with dest=0.

Thanks you Avery for the best emulator.

  • Like 7

Share this post


Link to post
Share on other sites

Great, you added a feature from Atari800Win PLus that I've hoping to see for a while: "UI: Added Attach Disk and Detach Disk menu options."

 

Nice touch: "Input: Middle mouse button (MMB) can now be used to release mouse capture if it is not already bound."

 

It's all icing on the cake at this point. Many thanks...

Share this post


Link to post
Share on other sites

As said in that thread, it needs subtle changes to make it work via Altirra where as the same file sent to real hardware works as is, I just would love if Avery have a look as perhaps this does not affect just one item.

 

I know it seems almost pedantic but I know Avery wants the best accuracy he can possibly add and as the mention of the WinUAE beta testing I made it seems Demo's offer the most stringent accuracy tests. If it cannot be fixed or isn't down to Altirra then so be it but I personally wish I had the ability to put something in to Altirra more than just simple testing.

 

Helping to make sure Avery see's items picked up by good eyes other than mine is a second best but its good enough for me :)

 

Now Jon, get back to that Centron 3D gui you wrote for RPC... :)

 

At least your code is real and works :)

Edited by Mclaneinc
  • Like 1

Share this post


Link to post
Share on other sites

Avery explains why it could also fail on real hardware, given the appropriate (unusual) conditions. I applaud the quest for perfection, but it's annoying when a program makes assumptions about shadows being copied because of some circumstantial delay which "normally" happens. I remember in The Last Word, I sometimes wrote to both the shadow and the hardware register when making DL changes immediately prior to calling the CIO, just in case DOS set CRITIC before the deferred VBL had copied the shadows. Either that, or just idle for a jiffy before calling DOS.

 

On the other hand, of course, you want the emulator to work faithfully with the broadest possible range of software, quirks and all. I suppose the pleasure is in the emulator being so good that corner cases like these are the only issues which crop up.

  • Like 1

Share this post


Link to post
Share on other sites

It's always a tradeoff, and in this case, it shouldn't be too hard to fix. I'm always in favor of writing software the right way, but the reality is that there is almost no software for the Atari 8-bit that is fully clean -- they almost always do at least something out of spec, like reading random ROM locations (I'm looking at you, Atari DOS 2.5).

 

I don't have a full test build of 2.60 ready yet, but I do have some goodies.

 

First, attached are updated versions of Altirra BASIC (atbasic.bin) and the built-in OS (kernelxl.rom). They can be used separately, but the OS contains optimizations to the math pack FPI routine and the BASIC interpreter has faster stack handling. I realized that the runtime stack handling could be rewritten to cache the top of stack in FR0, which sped up the stack handling considerably. This makes it close to competitive in speed with BASIC XE, although I don't think it'll be possible to catch Turbo Basic XL. This also freed up ROM space to fix the error messages and the exponentiation operator (^). I've been having some fun testing it with a BASIC game called NAZZ, which runs much faster and is way more playable on the alternative BASICs than on stock Atari BASIC.

 

Also attached is an additions disk, which contains some misc utilities: a replacement 850 R: handler, a universal 850 loader, and a replacement XEP-80 driver. The 850 loader in particular is designed to do a blind load of the R: handler from the device even if the device has already answered poll and without having to know the length of the relocator, via a special SIO routine. Would be interested in hearing if it works on a real 850 device. The R: handler also has fixes for not working under BobTerm, which uses an unusual XIO 40 call.

 

atbasic.bin

kernelxl.rom

Additions.atr

  • Like 8

Share this post


Link to post
Share on other sites

Thanks for looking at the demo issue Avery and thanks to all the tech info from all the other people, nothing is beyond solving with you guys around.

 

So when do you all start on world peace, the economy, global warming and the one that may be the toughest, the release date for Centron 3D Atari8bit??

Edited by Mclaneinc

Share this post


Link to post
Share on other sites

Did you add "Don't erase RAM-Disk after resetting the machine"? My machine actually works this way and my GUI uses this feature actively. I'd like to have it to work with Altirra.

Share this post


Link to post
Share on other sites

Can someone please give a quick hint on how to make use the "kernelxl.rom" and how to verify that it is set up correctly? Thanks.

Share this post


Link to post
Share on other sites

in the menubar you click System > Firmware > ROM Images

then pick XL/XE in the window, press the […] (three dots) button at the bottom right, and chose your ROM file on your computer. Click [Open] to apply, and then [ OK ].

 

if it now shows the Self Test (may be after typing BYE {Return} in BASIC under the READY prompt), then Altirra is using the external ROM file.

Share this post


Link to post
Share on other sites

What's the deal with "Altirra Basic" ? Is it an improved version of Atari Basic? (still running on 2.40 here)

  • Like 1

Share this post


Link to post
Share on other sites

I think of it as a free replacement (just like the free PS1 ROM in PCSXreloaded) for making it ready-to-run without an unlicensed version of the still copyrighted software in the ROM ...

Edited by atarixle

Share this post


Link to post
Share on other sites

What's the deal with "Altirra Basic" ? Is it an improved version of Atari Basic? (still running on 2.40 here)

As Mirko said, plus the fact it's much faster than the stock BASIC. Works great on real hardware too.

Share this post


Link to post
Share on other sites

Atbasic.bin

  • doesn't list just one line. If I try to LIST a specific block the listing continues on to end of listing..

Share this post


Link to post
Share on other sites

in the menubar you click System > Firmware > ROM Images

then pick XL/XE in the window, press the […] (three dots) button at the bottom right, and chose your ROM file on your computer. Click [Open] to apply, and then [ OK ].

 

if it now shows the Self Test (may be after typing BYE {Return} in BASIC under the READY prompt), then Altirra is using the external ROM file.

Thank you!

Share this post


Link to post
Share on other sites

It's always a tradeoff, and in this case, it shouldn't be too hard to fix. I'm always in favor of writing software the right way, but the reality is that there is almost no software for the Atari 8-bit that is fully clean -- they almost always do at least something out of spec, like reading random ROM locations (I'm looking at you, Atari DOS 2.5).

 

I don't have a full test build of 2.60 ready yet, but I do have some goodies.

 

First, attached are updated versions of Altirra BASIC (atbasic.bin) and the built-in OS (kernelxl.rom). They can be used separately, but the OS contains optimizations to the math pack FPI routine and the BASIC interpreter has faster stack handling. I realized that the runtime stack handling could be rewritten to cache the top of stack in FR0, which sped up the stack handling considerably. This makes it close to competitive in speed with BASIC XE, although I don't think it'll be possible to catch Turbo Basic XL. This also freed up ROM space to fix the error messages and the exponentiation operator (^). I've been having some fun testing it with a BASIC game called NAZZ, which runs much faster and is way more playable on the alternative BASICs than on stock Atari BASIC.

 

Also attached is an additions disk, which contains some misc utilities: a replacement 850 R: handler, a universal 850 loader, and a replacement XEP-80 driver. The 850 loader in particular is designed to do a blind load of the R: handler from the device even if the device has already answered poll and without having to know the length of the relocator, via a special SIO routine. Would be interested in hearing if it works on a real 850 device. The R: handler also has fixes for not working under BobTerm, which uses an unusual XIO 40 call.

 

I found a bug in Altirra BASIC V.9 (atbasic.bin). If I used inline command immediately BEFORE starting a programming, Altirra Basic will not remember programming at all. Example: If I type setcolor 2,4,0 without line number and press enter, it will change a color as expected. However if I start to program IMMEDIATELY after this command by type "5 GR.8". Altirra BASIC accepted an entry but failed to remember programming! Type "LIST" will reveal NOTHING! If I used "LIST" or "NEW" command and type programming then Altirra BASIC will remember programming.

Share this post


Link to post
Share on other sites

Oops.

 

Fixed LIST command issues, and the parser sometimes trying to put lines after the immediate line (needed to disable optimized line lookup).

 

atbasic.bin

  • Like 4

Share this post


Link to post
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.

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