Commit Graph

52 Commits

Author SHA1 Message Date
Will Angenent d3fc9c5469 Added license 2018-05-27 16:12:10 +01:00
Will Angenent ade84dc657 Added glide based dependency management 2018-05-27 14:39:03 +01:00
Will Angenent 024eebae61 Renamed mos6502 to apple2 2018-05-27 11:05:00 +01:00
Will Angenent f95348163d Renamed appleiie to apple2e 2018-05-27 10:49:38 +01:00
Will Angenent 6d75050954 Added source of the charmap 2018-05-26 23:31:25 +01:00
Will Angenent 7ce52edf93 Moved disk module out of mmu 2018-05-26 23:23:35 +01:00
Will Angenent 2aa16a20f0 Made a bunch of things private in disk.go 2018-05-26 23:17:18 +01:00
Will Angenent 543bb6925c Removed -image flag, the disk image is a non-positional param now 2018-05-26 23:08:38 +01:00
Will Angenent 3233cfc244 Added page switching in text, gr and hgr 2018-05-26 22:27:29 +01:00
Will Angenent 3dd01cd5f2 Removed comment 2018-05-26 21:35:11 +01:00
Will Angenent d950bb8ff0 Fixed aux memory writes that should have been ignored
This was killing the Prodos basic intepreter bootstrapper since a write was
going to main memory at $800, leading to invalid code when the JMP to $0800
from the prodos reloader was done.
2018-05-26 13:58:41 +01:00
Will Angenent 9f2226d968 Updated drive head move logic to handle Prodos's head move logic 2018-05-20 19:55:00 +01:00
Will Angenent 6f19957ee7 Added aux memory and 80 column card stubs ...
... just enough to fool prodos that there's only 64k of RAM and no
80 column card.
2018-05-20 17:19:40 +01:00
Will Angenent f1dff51564 Added bank switched upper memory 2018-05-20 14:58:12 +01:00
Will Angenent a43fd7c08c Added Disassemble utils 2018-05-20 13:45:06 +01:00
Will Angenent c2163c8197 Fixed multiple DOS tests not working 2018-05-20 13:45:06 +01:00
Will Angenent e48ca1a393 Fixed test var clobber 2018-05-19 11:07:39 +01:00
Will Angenent c26b44c686 Added optional click when drive head moves
Very primitive but kind of entertaining.
2018-05-19 10:55:41 +01:00
Will Angenent bdcf3e0db7 Added disk writes 2018-05-17 14:29:13 +01:00
Will Angenent 1ea1b10ab0 Ensure DOS actually boots in boot test 2018-05-16 10:39:53 +01:00
Will Angenent 699b4923bd Added monochrome hires mode 2018-05-15 21:56:16 +01:00
Will Angenent 94c6ecd97d Added some comments to the audio samples calculation 2018-05-15 15:45:06 +01:00
Will Angenent de7299a5ab Rearranged files and resurrected CPU test 2018-05-14 23:40:31 +01:00
Will Angenent 55e0b6b664 Added dos33 boot test for benchmarking purposes 2018-05-14 23:23:01 +01:00
Will Angenent 825840a9b6 Removed unused var 2018-05-14 23:03:12 +01:00
Will Angenent 91cf87d297 moved reset to a better place 2018-05-14 22:49:35 +01:00
Will Angenent 0f17ecfd21 Moved some screen constants to a better place 2018-05-14 22:49:14 +01:00
Will Angenent 95eb6fb575 Shortened audio attenuation 2018-05-14 22:44:44 +01:00
Will Angenent 31a4ba8cf6 Adjusted clock frequency to be ever so slightly more correct 2018-05-14 18:51:50 +01:00
Will Angenent a5441b2615 Added some comments for missing instruction names 2018-05-14 18:51:38 +01:00
Will Angenent 1324460d9d Corrected branch cycles timing issue
This fixes the sound timing for the system beep and lemonade stand
2018-05-14 18:51:11 +01:00
Will Angenent 8284073beb Added very basic audio processing
Every frame sends a bunch of audio samples in a channel. This channel is
consumed by the audio Read() function which is called asynchronously. There's
all kinds of timing issues where the audio/video are not aligned.

Issues:
- There's a large delay between the audio being produced and it being played
- Something with the timing is wrong. The first not of lemonade stand and the
  system beep are both incorrect. Changing the CPU frequency fixes it for one
  but not for the other. This means something must be wrong in the cycle
  counting.

Also added FPS display that can be toggled with ctrl-alt-F.
2018-05-14 10:49:24 +01:00
Will Angenent 23f7dc04b2 Run ebiten in background 2018-05-12 19:40:17 +01:00
Will Angenent 7ae4159424 Added lores mode 2018-05-12 18:55:36 +01:00
Will Angenent 0a7b8c81b3 Added capslock key, toggable with ctrl-alt-c 2018-05-12 13:59:43 +01:00
Will Angenent 100c44cb11 Added disk controller and disk images ...
With this, DOS3.3 is booting
2018-05-12 13:49:30 +01:00
Will Angenent 7ec43f0299 Added command line disassembler 2018-05-11 10:03:21 +01:00
Will Angenent f8ca059f18 Split IO into its own module 2018-05-09 21:25:21 +01:00
Will Angenent a5acfb9140 Renamed InitDisasm to InitInstructionDecoder 2018-05-09 19:32:38 +01:00
Will Angenent d89c7babf0 Refactored memory read/write to MMU
This required moving some common things in a new package to resolve a circular
dependency between cpu <=> mmu.
2018-05-09 19:31:15 +01:00
Will Angenent c2a9e819b1 Made state global, to simplify later refactors 2018-05-09 18:02:57 +01:00
Will Angenent ad9be4d604 Renamed disasm to debug 2018-05-09 17:35:41 +01:00
Will Angenent ef0000b67b Renamed vid and moved some more vid stuff to it 2018-05-09 17:34:34 +01:00
Will Angenent 4bc2403e25 Reduced flash frequency slightly 2018-05-09 17:29:11 +01:00
Will Angenent fb6d868bc3 Removed ROM code for slots that haven't been implemented yet 2018-05-09 15:58:02 +01:00
Will Angenent 389773cb1d Added keyboard controller 2018-05-09 15:42:31 +01:00
Will Angenent 7d64938630 Added warm reset key combination using ctrl-alt-r 2018-05-09 10:57:04 +01:00
Will Angenent 9c9f826c6a Replaced MemoryMap with an PageTable array
There was no good reason to be using a map when an array lookup would have
done nicely.
2018-05-09 10:36:17 +01:00
Will Angenent 481ddf0ebf Integrated test-vid with test-apple-iie-boot ...
... we have the apple booting up with a well working screen and hanging on
not yet implemented disk I/O.
2018-05-08 22:21:06 +01:00
Will Angenent 5d1c25a724 Added MMU and WIP rudimentary apple //e boot test
Basic memory management has been implemented since $c100-$cfff needs flipping
with soft switches during Apple //e boot. All memory reads & writes now go
through the MMU. Memory is also dynamically allocated and associated with the
CPU state.
2018-05-08 21:48:56 +01:00