From dbc8c980104c151fd766c7a054e5df1d68d9cc09 Mon Sep 17 00:00:00 2001 From: Andy McFadden Date: Tue, 31 Dec 2019 14:26:47 -0800 Subject: [PATCH] Move source code notes to separate file --- README.md | 37 ++++++++++--------------------------- SourceNotes.md | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 27 deletions(-) create mode 100644 SourceNotes.md diff --git a/README.md b/README.md index d589552..a64b0b8 100644 --- a/README.md +++ b/README.md @@ -114,12 +114,15 @@ The framework requires Win7 SP1, Win8.1, or Win10 updated through at least the Anniversary Update (1607). (One user who had trouble with the 4.7.2 installer was able to get the 4.6.2 installer to work.) -SourceGen does not currently run on Linux or Mac OS X. Versions 1.0 and 1.1 -used the WinForms API, which has been implemented for Mono, but after -encountering significant bugs that I wasn't able to work around I abandoned -the idea and switched to WPF. Besides working better under Windows, WPF -uses a more modern approach (XAML) that may ease the transition to a modern -cross-platform GUI like Avalonia. +SourceGen does not currently run on Linux or Mac OS X. My understanding is +that .NET apps don't work under WINE, so it can only be run on a full +Windows system emulation. + +(SourceGen Versions 1.0 and 1.1 used the WinForms API, which has been +implemented for Mono, but after encountering significant bugs that I wasn't +able to work around I abandoned the approach and switched to WPF. Besides +working better under Windows, WPF uses a more modern approach (XAML) that +may ease the transition to a cross-platform GUI API like Avalonia.) ## Getting Started ## @@ -140,24 +143,4 @@ display it. ## About the Code ## -All of the code is written in C# .NET, using the (free to download) Visual -Studio Community 2017 IDE as the primary development environment. The user -interface uses the WPF API. - -The Solution file is called "WorkBench.sln" rather than "6502bench.sln" -because some things in Visual Studio got weird when it didn't start with a -letter. - -The code style is closer to what Android uses than "standard" C#. Lines -are folded to fit 100 columns. - -The source code is licensed under Apache 2.0 -(http://www.apache.org/licenses/LICENSE-2.0), which makes it free for use in -both open-source programs and closed-source commercial software. The license -terms are similar to BSD or MIT, but with some additional constraints on -patent licensing. (This is the same license Google uses for the Android -Open Source Project.) - -Images are licensed under Creative Commons ShareAlike 4.0 International -(https://creativecommons.org/licenses/by-sa/4.0/). - +See the [source code notes](SourceNotes.md). diff --git a/SourceNotes.md b/SourceNotes.md new file mode 100644 index 0000000..85ef3f9 --- /dev/null +++ b/SourceNotes.md @@ -0,0 +1,37 @@ +# 6502bench Source Code Notes # + +All of the code is written in C# .NET, using the (free to download) Visual +Studio Community 2017 IDE as the primary development environment. The user +interface uses the WPF API. + +The Solution file is called "WorkBench.sln" rather than "6502bench.sln" +because some things in Visual Studio got weird when it didn't start with a +letter. + +The code style is closer to what Android uses than "standard" C#. Lines +are folded to fit 100 columns. + +The source code is licensed under Apache 2.0 +(http://www.apache.org/licenses/LICENSE-2.0), which makes it free for use in +both open-source programs and closed-source commercial software. The license +terms are similar to BSD or MIT, but with some additional constraints on +patent licensing. (This is the same license Google uses for the Android +Open Source Project.) + +Images are licensed under Creative Commons ShareAlike 4.0 International +(https://creativecommons.org/licenses/by-sa/4.0/). + + +## SourceGen Points of Interest ## + +The main window UI is in WpfGui/MainWindow.xaml[.cs]. Much of the +implementation lives in MainController.cs. + +The top-level object for the project data is DisasmProject.cs. The +Analyze() method drives the code and data analysis process. ApplyChanges() +is the heart of the undo/redo system. + +Source code generation and assembler execution is routed through +AsmGen/AssemblerInfo.cs. If you want to add support for a new +cross-assembler, start by adding new entries to the enum and data +tables there.