Hi, this is to inform you of my latest AppleWin release: 1.10.4 Again this ist not the repeatedly promised architectural core redesign. Instead there are just some neat new features - hope you like it anyway: - user interface to toggle enhanced disk speed re-added - crash when opening image for previously empty spinning drive fixed - image detection on filename extension streamlined - error handling on invalid images streamlined - creation of .DSK and .NIB images from scratch added - DOS 3.3 read address field routine detection removed - DOS 3.3 change track routine detection and patching removed - floppy drive lights display changed to be never both on - double hires video mode in color mode corrected based on NTSC logic - new "Color (optimized)" mode with fringe reduction added - 'F9' to cycle through the three color modes added - memory leak when changing video mode fixed - capslock handling streamlined - (US-)keyboard to character mapping based on internal table removed - keyboard to character mapping based on windows keyboard driver added - joystick emulation with keyboard values changed when several keys pressed - "Paused" and "Stepping" display refresh fixed - help updated - thanks to Brian K. Broker (bkb@cnw.com) - copyright notice in version info changed Note: As always please make sure to recalibrate after switching between AppleWin versions from different "vendors". AppleWin 1.10.4 is available at http://www.jantzer-schmidt.de/applewin/ For those of you who like to know a little bit more ... The two major changes are of course the creation of disk images and the improved double hires display: Disk Image Creation: As you may have already noticed the AppleWin help file always said that it would be possible to create disk images, but this wasn't true - until now. AppleWin does _not_ create the complete empty image when you type in a new name in the file open dialog as you may expect. Instead only a 0 byte file ist created. To understand how it works you have to know that AppleWin reads disk images track by track. If the Apple software moves from one track to another, the new track is read (and the old written back to the file if it was changed by the apple software). So what I did was building a map that records what track already contains valid data. If an existing image is opened this map is initialized with 35 TRUEs while when creating an image it is set to 35 FALSEs. Now every time the current track is changed I look in the map. If there is already data (map contains TRUE) it's read in and if not (FALSE) than the internal track is initialized with random values. And when a track is written back to the file since it was modified, I set the entry in the map to TRUE. When finally the file is closed I check if all 35 tracks contain valid data, if not the file gets deleted. So you won't have partially initialized files. After all there is _no_ special "create new image" routine. The new image is written track by track with the normal "write track back to image" routine. Cool, isn't it. When you try to read from an newly created image you'll get I/O errors. So typically the first thing you will do with newly created image is to format it. This of course will write to all 35 tracks so the image is considered complete just after a complete format. Instead of explicitly formatting you can of course use as well a copy program that formats on the fly while writing. For example LockSmith 6.0 Fast Disk Backup works perfectly fine with newly created disks (wow: is that fast !) When you choose the NIB extension you'll get a nibble image. This allows for disk volumes different from 254 as well as copies from non standard images. For example I successfully copied the Phantoms V nibble image from asimov with Nibbles Away ][ to a newly created, still unformatted nibble image. Double Hires Display: The double hires display of AppleWin up to 1.10.3 was some kind of a native implementation. It simply showed 140 pixels in row with 16 colors each. This is by the way the same display that Oasis 2.4 with "Smooth Color Pixels enabled" shows. I've prepared some screenshot for you: http://www.jantzer-schmidt.de/applewin/gifs/airheart_1_old.gif http://www.jantzer-schmidt.de/applewin/gifs/airheart_2_old.gif http://www.jantzer-schmidt.de/applewin/gifs/816.paint_old.gif To get things right I had to do some fundamental research. Finally I found a construction manual for a NTSC video test pattern generator. It was basically seeing this diagram what helped me to get it right: http://www.jantzer-schmidt.de/applewin/gifs/color_subcarrier.gif After changing the double hires display to work that way I got a display very similiar to one of ApplePC, just with different rgb values. In fact it looked exactly like the one that YAE 0.6 shows: http://quark.netfront.net:6502/airheart.gif But this wasn't what I wanted - as regular readers of this group surely know ;-) So the big question was how to make the new double hires display look more like the hires display. I found it much harder than I had imagined to just define, what AppleWin's hires display makes it different from one of ApplePC or YAE. Up to now I just felt that it was right (at least for me) but could tell the reasons. Than I came up with the idea to describe the displays in correlation to the corresponding monochrome display. AppleWin's color hires display "just" colors the non-black pixels of the monochrome display. Then it connects adjacent pixels to build surfaces. While thinking about it realized why this makes very much sense. Nearly all apple programs (hires as well as double hires) are build to work with monochrome monitors as well as NTSC TV sets. And since all the colors look nearly the same on monochrome monitors, most programs use the two "colors" black and white for important things. Especially black background is found in many games. After all the basic idea is to keep black areas black and white areas white! So the new double hires display does just this. Keep single non-black pixels small and fill only the gaps between adjacent pixels. This looks already very good and is available in AppleWin 1.10.4 as "Color (standard)" display. But I wanted to be able to display white pixels on black background without _any_ fringe, so I even went one step further and created the "Color (optimized)" display. When you change from monochrome display to the optimized display you'll get the same notion as in hires mode: pixels don't become wider or blurry, they just get colored. Black stays black and white stays white. I must admit that I'm really satisfied with (and a little proud of) the way it looks: http://www.jantzer-schmidt.de/applewin/gifs/airheart_1_optimized.gif http://www.jantzer-schmidt.de/applewin/gifs/airheart_2_optimized.gif http://www.jantzer-schmidt.de/applewin/gifs/816.paint_optimized.gif While thinking about the way the (non-double) hires display works I even found to further improve that one. The old code is available as "Color (standard)" and the new as (you guessed it) "Color (optimized)". Have a look at these screenshots for the difference: http://www.jantzer-schmidt.de/applewin/gifs/wavynavy_standard.gif http://www.jantzer-schmidt.de/applewin/gifs/wavynavy_optimized.gif I hope you enjoyed to see a little behind the curtain of my AppleWin improvement efforts. Oliver Schmidt