Commit Graph

901 Commits

Author SHA1 Message Date
Andy McFadden e31de84641 Add remaining Applesoft BASIC tokens 2018-10-08 18:03:04 -07:00
Andy McFadden c182ecba35
Fix items in angle brackets 2018-10-08 17:11:03 -07:00
Andy McFadden 1fad470b20
Nudge 2018-10-08 17:06:33 -07:00
Andy McFadden a83e4a2b8e Move menu items back to Actions menu when context menu closes
Otherwise you can't open the Actions menu with Alt-A.  This seems
like a flaw in WinForms, but maybe there's a reason for it.

(issue #26)
2018-10-08 16:25:34 -07:00
Andy McFadden d728025144 Support command-line invocation 2018-10-08 16:18:56 -07:00
Andy McFadden 2c03216da9 Move symbol file and extension script docs into manual
Once upon a time, symbol files and extension scripts could only be
defined in the RuntimeData directory, so having the documentation
there made sense.  Since both of these things can now be defined in
project directories, the documentation belongs in the manual.

(issue #27)
2018-10-08 15:30:43 -07:00
Andy McFadden b37d3dba02 Expand reach of external symbol nearby-target test
If PTR is defined as an external symbol, we were automatically
symbol-ifying PTR+1.  Now we also symbolify PTR+2.  This helps with
24-bit pointers on the 65816, and 16-bit "jump vectors", where the
address is preceded by a JMP opcode.

Removed the "AMPERV_" symbol I added to make the tutorial look
right.
2018-10-08 13:15:16 -07:00
Andy McFadden 3a001c5f8a Merge menu items for "edit operand" and "edit data"
The instruction operand editor and data operand editor are very
different, but there's no need to impose that distinction on the
user.  They want to edit the operand either way.  We now provide a
single "edit operand" menu item, and open the appropriate dialog
based on what they have selected.

This uses Ctrl+O as the keyboard shortcut, stealing it from
File > Open.

(issue #11)
2018-10-08 12:49:26 -07:00
Andy McFadden 9be99a7cac Make hint application less annoying
Two changes:
(1) Code and data hints are now only applied to the first byte on
    each selected line.  This allows you to slap a code hint on a
    string without lighting up the whole string.  Inline-data hints
    and hint removal work as before.
(2) Added a menu item (with Ctrl+D as shortcut) to toggle the state
    of the uncategorized data analyzer.  This makes it easy to turn
    off the feature that put the code into a string in the first
    place.
2018-10-07 21:55:44 -07:00
Andy McFadden 93c76e219f Add keyboard shortcuts for applying hints
Each is a two-key combo.  Hit Ctrl+H, then Ctrl+C/D/I/R as desired.
Hitting Ctrl+H followed by any other key results in an error beep.
2018-10-07 21:13:37 -07:00
Andy McFadden 360204a16d Add parent window to all MessageBox.Show() invocations
Every once in a while, SourceGen will become unresponsive when it
tries to show a MessageBox.  In the debugger you can see the GC
running frantically, but the stack trace is just sitting on the
MessageBox show call.  Apparently, if you don't specify a parent
window argument, the MessageBox will occasionally end up behind
everything else, and you can get stuck.

I'm not sure what the GC frenzy is about, or whether this will fix
what I'm seeing, but it's easy to do and might solve the problem.

cf. https://stackoverflow.com/q/3467403/294248
2018-10-07 13:13:00 -07:00
Andy McFadden 74037928ee Version 1.0.0-alpha3 2018-10-07 12:22:01 -07:00
Andy McFadden b4d47df637 Add split-address table formatting to tutorial
Also, show generated symbol name in preview list.
2018-10-07 10:39:41 -07:00
Andy McFadden d20ffc73b8 Tweak README 2018-10-06 21:21:18 -07:00
Andy McFadden 309cc88a54 Improve split-address table formatter
Don't enable OK unless at least one address is valid.
Don't apply code hints unless asked.
Rename a couple of things for clarity.
Add documentation to manual.

(issue #10)
2018-10-06 21:15:59 -07:00
Andy McFadden f4e4ac842d First cut of split-address table formatter
Allows specification of table data in various ways, for 16-bit and
24-bit addresses.  Shows a preview so you can see if the addresses
look about right.  Adds permanent labels at target offsets if none
are present.  Optionally sets code hints.

Works beautifully on the A2-Amper-fdraw example, but needs some
additional testing, documentation, etc.  Dialog is more complicated
that I would have liked, mostly because of 65816 support, but I
think it'll do.

(issue #10)
2018-10-06 18:05:31 -07:00
Andy McFadden d4726dac7e Rough prototype of split-address table formatter 2018-10-06 09:16:31 -07:00
Andy McFadden 3c4e6cfe7a Another swing at first-word-is-load-addr
If we set the length word to assemble at address zero, the rest of
the code will try to use it as a zero-page label, so don't do that.
Instead, we use the start address, creating an overlapping region.
Easy enough to edit if that's undesirable.

(issue #23)
2018-10-05 20:55:05 -07:00
Andy McFadden 440eec2396 Use two .ORGs for first-word-is-load-addr
First is always at zero, second is at the address.  This puts an
ORG directive right at the start of the code, and avoids potentially
assembler-specific wrap-around behavior when the desired load
address is $0000 or $0001.

(issue #23)
2018-10-05 17:25:41 -07:00
Andy McFadden 92add74fc3 Add first-word-is-load-addr parameter to system definitions
If set, the first word of the file is used to set the load address.
The initial code entry hint is placed at offset +000002 instead of
the start of the file.

Set it to true for the C64 system definition.

(issue #23)
2018-10-05 15:39:44 -07:00
Andy McFadden a23c7e5ab6 Rename undocumented 6502 opcodes to match Unintended Opcodes doc
These *almost* match what cc65 has, and are accepted as primary or
aliases by 64tass.

This combines the LAX and LXA operations.  LXA is the immediate
form of LAX, and behaves somewhat differently (and is unstable).
I was treating them as two separate operations with independent
mnemonics, but that doesn't seem to be the preferred way to
handle it.

The cc65 generator wasn't generating LAX before; now it does.  This
required nudging the width disambiguator, as LAX is a second
example of an instruction with both DP,Y and ABS,Y operands.

(issue #20)
2018-10-05 14:28:45 -07:00
Andy McFadden 2d1ef37a13 Switch some hotkeys around
Ctrl+L -> edit label
Ctrl+; -> edit comment (looks funny in menu)
Ctrl+M -> edit long comment
Ctrl+N -> edit note (was "new project")
Ctrl+W -> nothing (was "close project")

(issue #11)
2018-10-05 13:13:11 -07:00
Andy McFadden 4639af8b0e Strip single-byte format items on single-byte instructions
It's possible to have format descriptors on instructions that are
left over from when the bytes were treated as data.  Single-byte
formats were being allowed on single-byte instructions, which
confused things later when the code tried to apply the format to
an instruction with no operand.
2018-10-05 11:10:03 -07:00
Andy McFadden e6b0438d5d Rename DomainManager property to DomainMgr
(issue #18)
2018-10-04 15:29:47 -07:00
Andy McFadden 8aba1c4fba Revise documentation 2018-10-04 15:15:44 -07:00
Andy McFadden a8f26a048b Add a NOTICE 2018-10-02 15:16:21 -07:00
Andy McFadden 37bbc3bd41 Flip name/value columns in Symbols window
The Symbols window showed Type-Name-Value, which feels like the
natural order.  However, the Value field has a narrow max width,
while the Name field can get pretty long.  It makes more sense to
let Name fill out to the right edge, allowing the user to scroll
horizontally to view longer-than-usual names.

Also, noticed that the column sort preference wasn't being
restored.  Fixed that.

(Issue #12)
2018-10-02 13:55:23 -07:00
Andy McFadden 99a77c0341 Add Atari Lynx placeholder and 65SC02 definition 2018-10-02 13:18:45 -07:00
Andy McFadden ea2bc67ef4 Output code for v2.17 when cc65 isn't found
We were generating code for > 2.17, with various bug fixes, but
since that's not shipping yet it won't be usable by anybody who
doesn't have a tip-of-tree cc65 installation.
2018-10-01 17:11:09 -07:00
Andy McFadden 31450d8314 Adjust default column widths for side panel ListViews 2018-10-01 16:51:32 -07:00
Andy McFadden 93b21b16f8 Fix some comments 2018-10-01 15:24:27 -07:00
Andy McFadden 78906dcf58 Record main window location as well as size
If the main window was maximized before, maximize it when we
restart.

Changed the preferences to record the width of the right panels,
rather than the splitter distance, which is actually the width of
the middle of the screen.

Seems to work correctly on my non-uniform multi-monitor setup.  I
added a check to confirm that the middle of the title bar falls in
the working area of the screen that WinForms thinks we're in, so it
shouldn't be possible to "lose" a window off the edge by dragging
it or by changing screen resolutions.
2018-10-01 15:04:23 -07:00
Andy McFadden b27accc9d3 Add installation notes to README
Also, add a link to the tutorial near the top of the manual's index
page.
2018-10-01 11:09:04 -07:00
Andy McFadden 62ebe4176f Replace BUILD_FOR_WINDOWS with a runtime check
Mono runs the same executable, so #if isn't useful.
2018-10-01 10:44:24 -07:00
Andy McFadden 60aa252352 Improve chances of running under Mono
Updated the RuntimeData directory finder to work, and made the
stuff that crashed when the directory wasn't found crash in less
obvious ways.  Under Mono+Linux it still falls over with some
complaints about ListViews.  This will need some work.
2018-10-01 10:28:03 -07:00
Andy McFadden 11174b8e75 Exit without crashing when app init fails 2018-09-30 21:41:46 -07:00
Andy McFadden e41247f759 Merge branch 'master' of https://github.com/fadden/6502bench 2018-09-30 21:25:54 -07:00
Andy McFadden c11af41019 Placate the static code analyzer 2018-09-30 21:25:26 -07:00
Andy McFadden d81d344de0
Fix spelling 2018-09-30 15:21:36 -07:00
Andy McFadden b9558c58d4 Update READMEs 2018-09-30 15:10:08 -07:00
Andy McFadden 3ca01d7dd0
Merge pull request #5 from david-schmidt/Apple3Flesh
Fleshing out the Apple3 some more
2018-09-28 21:42:41 -07:00
david-schmidt 7f2a0b2cfc More Apple /// details 2018-09-29 00:31:32 -04:00
david-schmidt 405e155881 Flesh out symbols in Apple /// ROM and I/O space 2018-09-29 00:10:37 -04:00
david-schmidt b477720a2a Whitespaces 2018-09-28 19:43:33 -04:00
David aceb843a45 Merge branch 'master' of https://github.com/fadden/6502bench.git 2018-09-28 19:40:02 -04:00
David Schmidt 6d5a4cdb7d Framework for Apple /// (#4)
* Skeletal support for Apple ///
2018-09-28 16:10:05 -07:00
david-schmidt fd8f5e499c Skeletal support for Apple /// 2018-09-28 18:06:35 -04:00
david-schmidt 79b243da69 Fugiddaboutit 2018-09-28 18:06:11 -04:00
Andy McFadden 76c532c6a6 Fix stack overflow (hopefully)
The code that tries to make the last column of the Symbols and
References windows exactly fit the window goes into an infinite
loop for everybody except me.  I'm removing the feature for now.
2018-09-28 13:40:40 -07:00
Andy McFadden 2c6212404d Initial file commit 2018-09-28 10:05:11 -07:00