Commit Graph

71 Commits

Author SHA1 Message Date
Ed Spittles 0a6866f10c Add two signals to DPControl fixing #50 2018-05-29 10:51:02 +01:00
mmfoerster 698312b98e Corrected and expanded the time state readout (the "TState" pseudobus).
The occurrences of T6 and T1 have been corrected. T6 now only occurs when a BRK
instruction is executing, it is a synonym for when the VEC1 node is logic high.
T1 now occurs when node 862 is logic high, which drives the SYNC pin, among
other control effects.

Formerly, T1 and T6 were displayed only when all the nodes that affect the PLA
were inactive. Node 1357's state was used in that case to choose between
displaying T1 (1357 high) or T6 (1357 low). That turned out to be incorrect
pair of inferences. The result was that T1 was absent when it should have been
present (when T+ was present without T0), and T6 was present when it should
have been absent (for instructions other than BRK). Among the corrective
changes, node 1357 is no longer consulted.

Expansion of state display adds V0, SD1, and SD2 indications. The last two are
in their own field (an eighth field). V0 is in the seventh field (square
bracketed, the same field occupied by T1 and T6). It is a two-character
representation of node VEC0 being at logic high. VEC0 high causes VEC1 to be
high one cycle later, which is T6. V0 is, like T6, activated only by execution
of a BRK instruction.

SD1 and SD2 are nodes 440 and 1258 respectively, which lie in the RCL block
outside of the timing generation (clock) block. They serve the needs of the
RMW (Read-Modify-Write) instructions for their addressing modes that use
external memory instead of the accumulator.

All of the corrected and new features has increased the total number of
displayed states to 24 from 10. Hopefully, this is the ultimate, final,
most fully comprehensive clock display possible, but we'll see.
2017-12-15 13:47:24 -05:00
mmfoerster 7efe4fb8c7 Added comments to allTCStates() referring to the 6502_Timing_States wiki page.
The state labeling is not completely correct or complete regarding T5 and T6
(especially the latter). More investment will be forthcoming.
2017-10-30 14:08:57 -04:00
mmfoerster ef0a714a29 busToString() and allTCStates() changes agreed to online: TState and Phi.
The parameter to allTCStates() has had a name change from useNBSP to useHTML.

busToString() has had the TStateF pseudobus removed, and a pseudobus called
Phi added.

Phi pretty-prints the state of the cp1 node (the internal phase 1 node) as
Φ1 when high and as Φ2 when low. This is nicer than plain 0 or 1.

Logging the TState pseudobus followed by the Phi pseudobus creates the effect
intended by the removed TStateF pseudobus, keeping our collection of
operations orthogonal (no proliferation of trivially different operations
that duplicate each other diagonally).
2017-10-30 00:49:17 -04:00
BigEd e0547e6c35
merge clock phase display into TState pseudobus 2017-10-28 13:49:46 +01:00
mmfoerster c1409b78cb busToString( 'TState' ) and busToString( 'TStateF' ) now call allTCStates().
'TState' returns the string returned by allTCStates().

'TStateF' returns the string returned by allTCStates() with phase indication
appended: "F1" or "F2" for phase1 or phase2 respectively. 'F' is chosen since
that's all that Phi really is: an "eff".

Perhaps another enhancement could call out an actual phi glyph for the HTML
(browser) context.

allTCStates() is also enhanced by an optional boolean parameter to control the
spacing of non-blank text within the string it returns.
    * A true parameter puts HTML non-breaking spaces between non-blank text,
      suitable for display on a browser page.
      This is always used by busToString().
    * A false or absent parameter puts ASCII spaces between non-blank text,
      suitable for text logging.
2017-10-09 17:49:53 -04:00
mmfoerster 27d0eb8fb2 Created plain-text documentation for the 6502 clock time codes. Added function
that creates the text expression of the time codes seen in the documentation
to macros.js and expert-allinone.js.

Added documentation file: 6502timecodes.txt
Added function: allTCStates()
2017-09-19 21:22:34 -04:00
mmfoerster 51d6bb216b Patch allNodes() to generate list of numbers for node indexes instead of numeric strings, fix JMP indirect mnemonic
Patches for the general chipsim code and the 6502 emulation.

    For the general chipsim code, allNodes() was constructing a list of
numeric strings for the node indexes instead of a list of numbers for them.
During the first iteration inside recalcNodeList(), the numeric string node
indexes would end up being the first elements of their respective node group
lists. This in turn would allow instances of a duplicate node index to be added
to the node group list. The duplicate in each case would be the numeric
equivalent of the initial numeric string index: indexOf() would not recognize
the string element as being the equivalent of the numeric node index, so the
numeric version would be added also.

For an example (from real log data), a node group list of: [ "49", 483 ] has a
node index of 49 tested against it. indexOf() says "49" is not an occurrence
of 49, so it allows 49 to be
2017-03-10 23:09:20 -05:00
BigEd dd2241d3de bugfix - macros.js - pre-apply clock triggers for corrected display 2013-06-25 22:31:53 +02:00
BigEd 9331be20fe allow tabulations with loglevel 0 (with only additional signals) 2011-04-06 18:13:04 +00:00
BigEd 8ae5c087f6 fixup missing assignments causing errors 2011-04-05 18:29:49 +00:00
BigEd 4e2c84dabc update 6800 test program and add opcode map 2011-04-01 16:05:41 +00:00
BigEd b0710a4cda trying to clean up gh-pages 2011-04-01 11:59:22 +00:00
BigEd 9d23382644 trying to clean up gh-pages 2011-04-01 11:34:02 +00:00
BigEd 1d21f5ae8b few small changes to prepare for multi-chip capability 2011-04-01 11:17:34 +00:00
BigEd cb29fb4fad readjust timing of URL-scheduled events to match published version 2011-01-10 10:45:52 +00:00
BigEd 51d0e99389 add ability to override the databus by URL 2011-01-09 16:18:01 +00:00
BigEd a56ee40bd8 attempt to get gh-pages into shape 2010-12-23 18:59:02 +00:00
BigEd 172394845a [bug]typo: fixed B bit of status register 2010-11-27 14:30:19 +00:00
BigEd e6d3c62057 [bug]deal with disassembly of unknown opcodes 2010-11-27 12:37:14 +00:00
BigEd e866a3b58e put non-breaking spaces into disassembly fragments 2010-11-26 14:27:03 +00:00
BigEd 611490ad76 various blue backgrounds to logstream table 2010-11-26 14:22:45 +00:00
BigEd b51b5c4398 re-simplify kiosk mode status panel 2010-11-22 15:18:55 +00:00
BigEd ee2fa1befd removing gh-pages project preview 2010-11-22 13:41:40 +00:00
BigEd 398060f56b add opcode and machine state info to status panel, add Fetch Execute and State pseudo signals to log tabulation 2010-11-22 13:27:26 +00:00
BigEd cdd837dd0c display machine state in status panel 2010-11-22 12:23:20 +00:00
BigEd 3df7065b83 fold 6502 opcode lookup into macro.js and delete Java original 2010-11-22 12:22:36 +00:00
BigEd 8a6fe3634f add tracing of datapath control signals 2010-11-19 22:42:26 +00:00
BigEd 580f4585a6 allow inverted display of negative sense busses 2010-11-19 21:49:16 +00:00
BigEd d045485ec4 [enh]allow free-running low-overhead mode, for interactive programs 2010-11-15 17:29:50 +00:00
BigEd 5c9b4e7581 [dev]adding console box and read/write hook mechanism for test program I/O 2010-11-08 22:03:47 +00:00
BigEd d2a31398fd [bug]repair expert mode - had removed too much 2010-11-08 09:14:18 +00:00
BigEd 369a188ad9 use expertMode to suppress loglist actions in kiosk mode 2010-11-08 09:03:13 +00:00
BigEd 678acd6dc5 URL handler: add requested signal names to logging set 2010-11-06 17:55:36 +00:00
BigEd 758d53bf5b add clock trigger mechanism and URL interface for reset pin 2010-11-06 17:21:50 +00:00
BigEd e885646e5e [bug]fixup nosim=t initialisation (if a simulation is started manually) 2010-11-05 21:39:01 +00:00
BigEd 18e1946488 allow forward or reverse log order 2010-11-05 19:53:22 +00:00
BigEd 0c6a90a558 allow nodenumbers in additional trace requests 2010-11-05 19:02:41 +00:00
BigEd 294918789a add tracing of named nodes 2010-11-01 19:36:52 +00:00
BigEd ef0bb5cdec fix out by one error in fastforward/goFor 2010-11-01 18:19:46 +00:00
BigEd 633a2693ac fixup single stepping function 2010-11-01 18:02:52 +00:00
BigEd 192d9a8ba8 add plaOutputs to traceable log stream 2010-11-01 17:42:18 +00:00
BigEd 3fcc3ee787 bring in support for old/slow browser, including nosim node 2010-10-30 18:24:00 +00:00
BigEd 83af54a47d re-simplify busname name matching 2010-10-30 18:05:29 +00:00
BigEd c9443e6718 [bug]passing steps on URL was not working 2010-10-30 16:16:54 +00:00
Barry Silverman 5a4c574765 Headless mode in expert 2010-10-14 22:48:25 -04:00
Barry Silverman 98ec727c50 Performance: Remove float state 2010-10-14 21:00:07 -04:00
Barry Silverman 33aa993c8d Performance - use forEach, and more cleanup 2010-10-14 20:16:43 -04:00
Barry Silverman 282c815791 Chipsim change of states to booleans, and performance 2010-10-13 17:53:40 -04:00
Barry Silverman cede111a0f First cut refactor into expert and kiosk 2010-10-07 12:21:06 -04:00