Code Monkey home page Code Monkey logo

et3400-emu's People

Contributors

rupertavery avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

et3400-emu's Issues

display hardware not properly decoded

The ET-3400 manual, page 87, "Memory Decoding", "DISPLAY" shows address $C1GS (diGit nibble, Segment nibble) controls the 6 7-segment displays with address bits 3 and 7 "don't care". That means an emulator must decode either 0 or 1 on either of those addresses as addressing the LED. This emulator doesn't do that, as shown in the attached display_test.lst(.txt for GitHub) and display_tst.s19(.txt for GitHub) files. When run on real ET-3400 hardware the program always shows a single segment lit (with no all-blank display ever) as it writes to each possible address. More details are in the listing file.
display_test.txt
display_tst.txt

Edit after initial post: Error in display_test.asm(.txt) -- Change "digit 000 (right) to 110 (left)" to "digit 001 (right) to 110 (left)".

Allow patching of memory in debugger

The heathkit debugger allows you to edit memory and continue after hitting a breakpoint. It would be a nice feature to have in the debugger as well.

Clearly mark start and end sections of Data Range memory maps

In the Disassembly window after seeing "$0011: DATA" I expected something to show where it ended. Consider "$0011: DATA First" and "$00FF: DATA Last" to block off the section clearly. The transition from DATA back to code just happens, without a clear reason

Rename Clock settings tab

The tab is called "Clock Settings" (plural) but there is only one setting. Call the tab "Clock Speed" or "Execution Speed"?

Memory/Disassembly address entry is unclear.

Version 1.0.7 Beta 2. Two issues in one submission. As I recall the Debugger window used to have a "Custom" choice that made it obvious any address could be typed in and that choice isn't given any more. Also, for both Memory and Disassembly I suggest that when "ROM" or "RAM" or other choices are chosen from the list that the corresponding address shows up in the entry field instead of the word ROM or RAM. Always having an address in those fields makes more sense to me than sometimes words, sometimes address values. The words in the list (ROM, RAM...) just seem like shortcuts to typing the corresponding addresses.

Allow free resizing of debugger window

I wanted to shrink the Debugger window vertically more than it allows, so I could get the Emulator window underneath it. It can't be done on my monitor, even though it appears the Memory and Disassembly panes can get to about half their current size. I would like it to allow shrinking vertically until the Status pane just fits

"Remove range" is applied to both ranges and Comments

In Memory Maps create both a data range (Type = Data) and comment (Type = Comment). To delete either one hovering the mouse pointer over the "-" button says "Remove range" and that does not apply to comments. Suggestion: To agree with the tab being "Memory Maps" and the "Add Memory Map" hover text, make the "-" button hover text be "Remove Memory Map". Likewise make the red-X hover text be "Remove All Memory Maps" and the green-arrow hover text be "Go To Address" (because "Go To Memory Map" doesn't quite work for a range with beginning and end).

Emulator does not respond to keys when speed is set below 20%

With default 100% clock speed, load samp123a.s19 and DO 0000. See the moving single segment. As it runs, slow clock speed to 20%. It slows down, good. Press the emulator RESET key and see CPU uP. Press "DO" and nothing happens. "Reset" the speed to 100% and press "DO". Then it works and shows "_ _ _ _ do.".

Form background captures desktop image beneath

Every time I started the app it caught the image of my Desktop icons beneath it. Then they stayed with the window as I moved it around my Desktop. I've never seen anything like this before and it happens every time I start the app on my Windows 7 Desktop.

ET-3400 Memory Map boundaries aren't provided

The Memory and Disassembly panels show ROM and RAM (hardware boundaries) but not all boundaries given on page 87 of the ET-3400 manual: Monitor ROM, Not Usable, Displays, Not Usable, Keyboard, Not Useable, Optional 256 bytes User RAM, 59 bytes monitor RAM, 197 bytes user RAM. A thought: Make the Memory and Disassembly fields address only (remove ROM, RAM and the entire choice selection) and instead load a default Memory Map file that includes all the ET-3400 boundaries mentioned. (I would order them from low numbered address to high, instead of as shown on page 87.) The Disassembly panel then clearly shows how close user program/data is getting to important device boundaries. Consider adding another tab, resulting in Breakpoints, Device Map, and User Map. The Device Map would be the ET-3400 (or ETA-3400?) boundaries. The User Map would be the auto-loaded same-name map functionality done already.

Added after submission: Warnings or red highlighting could be given if user program/data ever appeared in the wrong place, like the Not Usable or ROM areas.

Disassembly at a typed-in address does not work

Version 1.0.7 Beta 2. Load fsr1.obj (with no Memory Map file present), DO 0000, see the program running. View, Debugger, in the Disassembly entry type "0100". Disassembly does not show address 0100 and instead stays at 0000. (I submitted this in an earlier email and then it did work the second time the entry was done. Now it doesn't seem to work ever.)

Starting a comment with "BEGIN" doesn't make sense.

I added the Comment "Another Comment" and see "; BEGIN - Another Comment" in the Disassembly panel. That doesn't make sense since a comment applies to only a single address. I would prefer just "; Another Comment".

Default the Memory Panel to not displayed?

This is more of a compliment than an issue: The Disassembly panel is so useful now, showing assembly code and data clearly labeled, that the Memory panel hardly seems necessary. It shows the same program bytes already shown in the Disassembly panel (redundant), merged with data bytes that are already shown in the Disassembly panel (redundant, and more clearly labeled in the Disassembly panel). So I've started viewing the Memory panel only when I want to simultaneously display the assembly code and a block of memory that it is being modified. The Disassembly panel plus Memory Maps is very useful!

Allow line-by-line mouse wheel scrolling of Disassembly and Memory panes

Load fsr1.obj and DO 0000 so it runs.
View Debugger.
Load fsr1.map.
Disassemble RAM (see 0000-000F instructions, 0011 "DATA", good).

Then I tried to scroll the Disassembly window by rolling my mouse wheel.

It scrolls the Disassembly choice (since it is still selected) and jumps the Disassembly pane unexpectedly.

I would like to be able to scroll the Disassembly pane (and Memory too?) line-by-line using the mouse wheel.

Window resize gripper does nothing

The emulator has a resize grip at the lower-right. Hovering the mouse over it shows resizing arrows but the window can't be resized. (The resizing grip should be removed I think.)
EmulatorGripper

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.