Commit Graph

26 Commits

Author SHA1 Message Date
Shamus Hammons c970c23a2e Added initial emulator configuration window, cleanup of settings code.
The settings code now actually saves updated settings to the config
file.  Also wrote the beginnings of a proper Config window, and a few
of the options actually work (which ones work is left as an exercise
for the reader).
2019-04-16 22:29:58 -05:00
Shamus Hammons e3c7ee5d93 Added support for the Apple High Speed SCSI card.
This means that you can now connect hard drive images to the emulator,
and, with the addition of the AHSSC emulation, connect up to seven of
them to one system (technically, with 8 LUNs per SCSI ID, you could in
theory connect 56 of them, but that's just crazy).  The emulation of
the card is still in an early state, but it currently seems to work
properly with the "Pitch Dark" hard drive image by 4am.  Still needs
some work to expose it properly to the GUI, but hey, that's just
details.  :-)
2019-02-25 16:34:27 -06:00
Shamus Hammons 66a747c7d9 Misc. improvements, added WOZ file support to floppy emulation
- Refactored old MMU slot code to be more flexible
- Moved all Mockingboard related code to its own compilation unit
- Refactored old 6522 & AY-3-8910 code into v6522VIA & vAY8910  :-)
- Fixed BCD mode for ADC and SBC in v65C02
- Finally fixed text mode characters in both ALTCHARSET and regular
  modes
- Added new floppy disk controller Logic State Sequencer emulation
- Fixed v65C02 to be cycle exact (as far as I can tell)
- Fixed a bunch of bugs in v65C02
- Dropped NIB support
- Added WOZ 1.0 file support

That last item is a bit of a big deal, as I had been thinking about
writing a new file format that would be bit-based--since the NIB nybble
format, while better than pretty much all the other formats out there,
fails hard in things like extra sync bits and half tracks.  So, somewhat
serendipitously, I stumbled upon the Applesauce project and found out
that not only had other people been thinking in more or less the same
direction, they had created it and had made disk images to try!

So now, because of this, WOZ is the internal format used by the floppy
emulation (as opposed to NIB) which, along with the new disk Logic State
Sequencer emulator, makes it possible to format floppy disks correctly
for the first time.  :-)

One ironic consequence of this is that NIB format can no longer be
properly supported.  The irony comes from the fact that before there was
LSS emulation, NIB was the most accurate format you could get to
represent the low level format of a disk, but now, with proper LSS
emulation, it's the worst format for representing a floppy disk.  And
the main reason for this is that NIB doesn't contain sync bits, and has
no mechanism to represent them--so when feeding them to the new LSS
emulation, they will fail horribly because without sync bits, the
bitstream represented by a NIB formatted disk can and will be
misinterpreted by the LSS.  And since there is now a format that
properly represents the bitstream on a floppy disk (WOZ), there's
absolutely no reason to keep NIB around or support it anymore.  While it
was a nice interim format to have around (when the emulation of the disk
was "imperfectly perfect"), it now no longer has a place in disk
preservation and/or emulation.

Another consequence of this new format is that Apple2 only supports
writing of WOZ images--it will no longer support writing of DSK and its
bretheren.  However, since those formats are extremely limited in their
scope (they literally only represented the contents of the sectors on a
disk) we still support reading them; Apple2 will automagically upconvert
them and save them as WOZs (it will use the same filename but substitute
"woz" for the old extension).  So if you're wondering why your DSKs are
unchanged when saving to them, you now know why.  :-)

Big, big thanks to the Applesauce guys and everyone who contributed and
continues to contribute to that project; your efforts are very much
appreciated--you guys are awesome!
2019-01-23 20:33:05 -06:00
Shamus Hammons 717eaa2219 Miscellaneous minor code cleanup. 2017-06-01 21:42:15 -05:00
Shamus Hammons 721ead373f Misc. cleanups, incl. cleanup up Makefile. 2017-05-17 23:17:17 -05:00
Shamus Hammons b8c7736999 Added missing files. :-P 2013-12-16 19:27:51 -06:00
Shamus Hammons f36d026c7b Added floppy #2 saving, statistics to makefile. 2013-10-06 12:17:38 -05:00
Shamus Hammons 6b21449d90 Added Prodos detection for .dsk images, fixes to 80STORE switch. 2013-09-29 15:57:45 -05:00
Shamus Hammons 3a8c0287e8 Created new MMU based code for R/W handling. Should be much faster now. 2013-09-28 18:15:54 -05:00
Shamus Hammons aec4f863c3 Added VBL, fixed sound-on-write, added .bin disk support. 2013-09-24 09:09:40 -05:00
Shamus Hammons c0001155bc Fixed misc. bugs preventing certain games from working, added pause mode.
There was one bug that went undetected in the v65C02 core (in STX ZP,Y)
and another in the 80STORE handling (80STORE doesn't affect reading).
Also added a pause mode (bound to the Pause key), for those times when
you need to walk away from the emulation for a bit.
2013-09-23 11:05:10 -05:00
Shamus Hammons ebcadf2555 Fixes to make emulator //e compatible; display can do double hires now. 2013-09-18 19:03:09 -05:00
Shamus Hammons c48ed86a36 Prevent aborting when the log file fills up; added CTRL key support. 2013-09-09 07:59:51 -05:00
Shamus Hammons c0bc82a632 Converted to SDL 2, added fullscreen toggle. 2013-09-08 21:18:23 -05:00
Shamus Hammons b2f84b0582 Changed clock on v65C02 to 64-bit, more GUI refactoring 2009-02-06 04:25:53 +00:00
Shamus Hammons a3edd96756 Added infrastructure to handle write protecting floppy disks 2009-02-04 14:19:00 +00:00
Shamus Hammons 3cff304619 GUI refactoring... 2009-01-30 18:20:05 +00:00
Shamus Hammons 2a82c98a26 Beginnings of new GUI 2009-01-30 15:17:27 +00:00
Shamus Hammons 2cd6e924eb Miscellaneous sound engine fixes (still needs fixing!), floppy diagnostics 2009-01-22 22:12:49 +00:00
Shamus Hammons 09edc12bc4 More work on sound.cpp, especially definition of time constants 2009-01-19 20:00:34 +00:00
Shamus Hammons 8f4768bdc1 Minor refactoring on V65C02 core (fixed EA_ABS_* macros), changed sound to
work with signed samples (in preparation for the move to 16-bit signed). Also,
colorized the Makefile for more mirth.
2009-01-19 16:09:37 +00:00
Shamus Hammons 463f5b68a4 Initial stab at fixing the GUI classes so that they work properly. 2008-06-05 12:11:39 +00:00
Shamus Hammons 7916c0f959 Changed types.h to use standard C99 types, misc. cleanups 2007-07-02 16:13:08 +00:00
Shamus Hammons 7aa515c769 Undoing changes (accidentally) committed from r31. 2007-05-29 05:16:51 +00:00
Shamus Hammons b90c77b56b Set eol-style to native to keep things sane. 2007-05-29 05:00:36 +00:00
Shamus Hammons eeb2935c12 Moved stuff into trunk (part 2)... 2007-05-29 02:37:11 +00:00