Changed struct Disk_t:
. Added new struct Drive_t with "has-a" relationship to Disk_t
. Split properties of drive into Drive_t and properties of disk into Disk_t
Changes to ease code compilation in GCC.
Disk_t and HDD contain a std::string and for this reason they need a proper constructor, ZeroMemory is not guaranteed to work.
. .dsk / .nib images
. ProDOS format / DOS 3.3 init
. authentic / enhanced disk access speed
For zero-length files, resize to the complete file size when first opened (#506)
. Support both .dsk and .nib
Created a new class FormatTrack to encapsulate the new track formatting logic
Improved precision of 'authentic' drive mode's spin emulation (#125)
Save-state: (save-state DiskII unit v2)
. support Format Track state
. save DiskLastCycle
DenibblizeTrack(): added some debug asserts and comments
Updated for VS2008/VS2013/2015/2017 projs & remove dependency on ddraw.lib for VS2013/2015
Updated disk logging:
. Moved all LOG_DISK_xx macros to new DiskLog.h (since shared by Disk.cpp and DiskFormatTrack.cpp)
. For write nibble: option to log cycle count & sync byte count
. For written track: option to log gap1/2/3 and track size
. For disk latch r/w: option to log when D5AA96 detected
Other:
. Debugger: Fix CD cmd to support absolute paths (#505)
Also:
. support new CpuType independently of Apple2Type
. save-state: don't save disk track image if no disk
. save-state: re-init AppleWin internals & UI to reflect changed Apple2Type
- Removed old disk stepping code as DataWiz confirmed he modified his Chessmaster 2000 crack to work on old AppleWin - this closes bug #18109 - https://groups.google.com/d/topic/comp.sys.apple2/xHrW45igYY8/discussion
- Added a floppyloadmode variable for emulating $C08D (see UTA2E page 9-13) but commented out use of it as it's mostly implicit in this implementation
- Tidied up logic in DiskReadWrite
- Improved disk debug logging
- Added TODO: ImageWriteTrack shouldn't take pFloppy->phase as a parameter
Added card save/load for:
. Phasor (#260)
. CP/M (#260)
. 80 column card:
. aux memory now saved separately from main memory
. extended memory (RAMworks) (#260)
Mockingboard & Phasor:
. Full AY8910 internal state now preserved.
. needed for eg. envelope, ay_change[], etc
. also Phasor player only updates AY regs that have changed
Other:
. On restore error, then PostMessage(WM_USER_RESTART), so that emulator not left in intermediate state
. Fix: Start Dir wasn't set when drag & dropping an image onto a drive icon or double-clicking an image file
. Format now extensible for supporting new hardware types in the future
. Include missing items like Apple2Type, CyclesThisVideoFrame (#255)
Continue to support loading of old v1 format.
Added card save/load for:
. Mouse (#260)
. HDD (#260)
. Printer
Extended card support for:
. SSC
Other:
. Added save-state v1 struct size checks
. Create SaveState_Structs_v2.h and split out common into SaveState_Structs_common.h
. Refactor HardDisk.cpp to use imagehandle; and consolidate with Disk.cpp
. Fix Disk/HD_GetFullPathName() which wasn't always returning full pathname
. Consolidate common GetImageTitle() and move into DiskImage.cpp
Mainly a tidy-up to remove old, unused code from memory.cpp.
Also:
* Disk][ now returning floating bus for I/O register reads (still a few todo's to check).
* Fixed#232 (mouse VBl IRQs were still occurring after card removed!)
The Configuration Dialog -> Disks tab now has combos to show
insert/eject disks, as well as it now the images are automatically
swapped if you try to insert on one drive the image connected to the
other
The Apple logo was redone following the same-ish colour pattern but with
a more modern look.
(*) Updated based on first review:
- Removed bmp from this pull request (coming later)
- Corrected resource's constants values and deleted unused one
- Initializing variables in CPageDisk constructot