1
0
mirror of https://github.com/livingcomputermuseum/ContrAlto.git synced 2026-01-18 00:52:47 +00:00

34 Commits

Author SHA1 Message Date
Josh Dersch
38124350fb Fixed Trident drive select issues, corrected issue with extended memory bank registers. IFS now runs. 2017-08-31 12:23:46 -07:00
Josh Dersch
523a4bb27f Initial implementation of Trident controller and drives (supporting T-80 and T-300 packs). TFU works and can certify, erase, exercise and manipulate files on Trident packs. TriEx doesn't quite work properly yet. Still some issues to iron out.
Added file-backed disk image implementation for use with Trident disk images, did some basic refactoring of disk load/unload logic, added support for creating new (empty) disk images for both Trident and Diablo disks.

Added UI for loading/unloading/creating up to 8 trident packs; added blank Diablo pack creation UI.  (Both Windows and *nix interfaces.)

Added configuration support for same (both Windows and *nix.)

Small correction to Print output path browsing logic.

Fixed Windows installer, now places the right ROMs for Alto I configurations in the right place.

Fixed issue when starting up with corrupted configuration.  Corrupted configuration is ignored and ContrAlto will run with default config.
2017-08-22 13:18:31 -07:00
Josh Dersch
f849b795a6 - Fixed two memory state machine issues:
1) The Orbit microcode occasionally expects to be able to do a double-word read in cycles 6 and 7 instead of the usual 5 and 6.
  2) The double-word logic incorrectly handles several species of overlapped read/writes, which Spruce's layout microcode uses.

As a result, Spruce now works, as do the Smalltalk-80 images.

Several tweaks to microcode disassembly (still rough).

Completed Orbit / Dover ROS / Dover Print Engine emulation.  Still some rough edges; it works and can create PDF output.

Tweaked Disk Controller's Restore operation, it is now more accurate though wasn't causing any noticable issues.
2017-07-10 16:49:12 -07:00
Josh Dersch
4bc85daa36 New hardware implementation:
- Orbit controller: implemented and passes ROS-less diagnostics
- ROS: In progress, not functional
- DAC: For Ted Kaehler's Smalltalk Music system (FM and Sampling).  Works, generates audio and can capture to WAV file.
- Organ keybard: Stub, enough implemented to make the music system happy (so it will play back music and not crash.)

Some minor cleanup.

New dependency on NAudio package for DAC playback.  Installer updated to include NAudio lib.
2017-05-12 17:23:34 -07:00
Josh Dersch
364034f012 Final v1.1 tweaks. 2016-10-27 13:17:50 -07:00
Josh Dersch
c5e06d46a0 Updated license to GNU AGPL, updated readme and EULA accordingly. 2016-07-26 18:06:35 -07:00
JoshD
5a17e7cfac Added GPL license header to source code; updated readme; removed disk images from installer package. Removed pcap folder from project 2016-07-12 17:18:54 -07:00
Josh Dersch
46d625586f Initial pass at implementing Alto Music (Organ/DAC interfaces). Not currently functional. Fixed Nova diassembly to properly handle alto-specific instructions; fixed some annoyances with microcode disassembler. 2016-05-12 18:31:22 -07:00
Josh Dersch
6429c3ae7a General code cleanup. Fixed debugger display of RAM banks for 3K systems, cleaned up logic for displaying ucode memory. Implemented memory timing for Alto I systems, incorporated Alto I uCode ROMs from Al K, which now boot. ST-74 runs better now. 2016-05-05 18:56:29 -07:00
Josh Dersch
a9428a91d8 Small optimizations, updates to installer, and new UI for FPS and disk activity. 2016-04-05 15:22:30 -07:00
Josh Dersch
97e72f7989 Fixup for "1.0" release. 2016-03-25 15:52:23 -07:00
Josh Dersch
2c99250ded Small tweaks to display controller in low-res mode; added support for Diablo 44 disks, added ST-76 on Diablo 44. 2016-03-16 17:07:57 -07:00
Josh Dersch
dc0a85aed8 Readme updates, installer updates. A couple of smallish (10%) performance enhancements. 2016-03-14 16:50:41 -07:00
Josh Dersch
4cbb74c033 Fixed two microcode bugs related to task switching behavior. Dance, StarWars and *SMALLTALK* work! 2016-03-09 16:05:45 -08:00
Josh Dersch
c48e530cbe Finished up configuration UI. Config is now persisted to a configuration file. Small fixes to UDP encapsulation to ignore packets coming from the same host. Small fix for PInvoke for high res timer. 2016-03-02 17:31:19 -08:00
Josh Dersch
c73fb66dee Added configuration UI. Implemented ethernet encapsulation over UDP. A few minor tweaks. 2016-02-26 17:46:50 -08:00
Josh Dersch
209dea8052 Ethernet tweaks / hacks for IFS, added configuration for 'net boot. 2016-02-17 13:54:23 -08:00
Josh Dersch
325a416b87 Cleaned up EthernetController, moved compilation back to "Any CPU" (preferring x86) using x86 versions of the PcapDotNet libraries, netting a 10-20% speedup. 2016-01-19 14:15:20 -08:00
Josh Dersch
43a85e0101 Ethernet receive/reset fixed, MazeWar now works with more than 2 players. Ethernet controller receive logic still needs massive cleanup. 2016-01-19 11:10:04 -08:00
Josh Dersch
8361f287e3 Added Parity Task (for completeness' sake), fixed SWMODE bank switching logic for 2K ROM, minor tweaks. 2016-01-07 10:34:10 -08:00
Josh Dersch
0cce77c842 Fixed S register addressing (many things now working!), tweaked display (mouse displays correctly in lowres mode). Added support for committing disk changes back to disk images (done automatically when switching disks or exiting). Repaired BravoX image. 2015-12-22 15:45:56 -08:00
Josh Dersch
3c8a64bac8 Ethernet implemented, fixed a bug in "mixed" double word stores (store followed by fetch rather than two stores). Fixed a few UI issues, fixed Reset behavior. 2015-12-17 16:11:03 -08:00
Josh Dersch
42947488e9 Cleaned up new UI, refactored Debugger/control logic, fixed mouse capture behavior and started working on better keyboard input. 2015-12-14 17:47:12 -08:00
Josh Dersch
115432516f Refactored drive logic (mostly) to allow for multiple drives. Fixed drive selection logic. Started work on "real" UI. 2015-12-11 16:57:02 -08:00
Josh Dersch
b13944c81c Implemented proper video timing, basic mouse support and fixed microcode RAM loading. MARTEST now passes with flying colors; more things are running. Suspect disk timing for other failures. 2015-11-19 17:41:16 -08:00
Josh Dersch
cbcfd2b47e Minor bugfixes, introduced a new timing infrastructure and moved DiskController over to it. Minor performance improvements; now running at 110% speed. Display timing is still too slow. 2015-11-17 16:09:50 -08:00
Josh Dersch
03661fc90b Fixed display microcode and display controller. Alto display now generated 100% by microcode tasks. A few small optimizations. 2015-11-16 16:46:24 -08:00
Josh Dersch
47a2ee4b2b Implemented temporary "fake" display controller which renders Alto DCBs to the screen, bypassing the display microcode. Alto is booting! Rough keyboard implementation. 2015-11-11 16:34:44 -08:00
Josh Dersch
ca638f1d6e Initial rough implementation of Display hardware and associated tasks. Not really working. 2015-11-10 17:04:05 -08:00
Josh Dersch
e1c90dbe01 Fixed bug in carry flag on SUB operations; SUBLZ X,X now works correctly. Alto now appears to boot successfully. Skeleton of Display hardware added. 2015-11-09 17:36:26 -08:00
Josh Dersch
39f077bf7a A few fixes to DNS<- behavior and some tweaks to the disk controller. Boot code is progressing further. 2015-11-03 16:21:12 -08:00
Josh Dersch
ee7c7fb035 Implemented more Disk functionality, fixed bug in ACSOURCE dispatch in Emulator task. 2015-09-16 16:27:16 -07:00
Josh Dersch
24d7a5a8fe Work begun on Disk controller, stubs for keyboard and a few bugfixes and tweaks. 2015-09-04 18:03:47 -07:00
Josh Dersch
0ced1a2ef8 Built basic debugger UI and execution framework; a few bugfixes. CPU now executes uCode up until the first STARTF (unimplemented). 2015-09-01 17:06:57 -07:00