Giter Site home page Giter Site logo

Comments (7)

dirkwhoffmann avatar dirkwhoffmann commented on May 25, 2024 4

With the latest code changes, RetroShell can be used inside a Terminal program such as A-Talk III (unlike the type ser: solution, there are no buffering issues, and communication is possible with high baud rates).

Important:

  • Set handshake to none.
  • Select half-duplex mode.
  • Press Ctrl+Return to send a command to RetroShell.
Bildschirmfoto 2024-03-07 um 07 16 16

There are some caveats, though:

  • Some commands, such as amiga power off will crash the emulator. That is because RetroShell commands are expected to be executed within the GUI thread. The RetroShell commander executes the commands within the emulator thread which causes issues with several commands such as all commands that trigger a state change. The emulator will run into an assertion checking the thread type. This will not change until vAmiga 3.0, which will utilize the new code architecture currently being developed for VirtualC64.

  • Terminal emulation is not perfect. For example, typing a backspace in A-Talk III will not result in a backspace inside RetroShell. As a result, correcting typos when entering commands is impossible. Furthermore, RetroShell's clear command does not clear the terminal.

Summing up:

  • The main goal has already been achieved: Providing the means to turn warp mode on and off from within the emulator.
  • Everything else is more of a fun project we can work on later during some dull, rainy days.

from vamiga.

dirkwhoffmann avatar dirkwhoffmann commented on May 25, 2024 1

Another possibility would be to merge the RetroShell viewer and the RetroShell commander into a single device and to use a unique character to enter command mode.

As this is all about retro, we could use the ASCII character 16 (DLE, Data Link Escape). Once this character is detected, transmitted bytes are no longer just displayed in RetroShell but typed in. Command mode will be reset to text mode on the following line.

from vamiga.

wepl avatar wepl commented on May 25, 2024 1

dle.zip
attached a dle command which prints the argument prepended with a DLE

from vamiga.

dirkwhoffmann avatar dirkwhoffmann commented on May 25, 2024

Unfortunately, I didn't find a way to echo the DLE character in Amiga DOS. There seems to be no way to specify an ASCII character by number inside a string, which would make the special character approach tedious to use.

If some Amiga DOS expert knows a solution, please let me know.

from vamiga.

wepl avatar wepl commented on May 25, 2024

I think there is no way to create a DLE char with the standard tools.
But it would be easy to create a command which outputs it or prepend the output with a DLE.
On 1.3 you anyway need the Echo command to print something.

from vamiga.

dirkwhoffmann avatar dirkwhoffmann commented on May 25, 2024

Thinking more deeply about the available options, I think the dual-device approach is superior. That is because I want to let the Commander send back the RetroShell output to the Amiga eventually, which the viewer (sniffer) should never do. In particular, the two devices will behave as follows:

  • Sniffer
    Listens to the serial port and displays all incoming and outgoing bytes in RetroShell. This is the same as the Port inspector panel does in the Mac app, just inside RetroShell.

  • Commander
    The commander types all outgoing bytes into RetroShell and executes the command when \n is received. Eventually, it will send the RetroShell output back to the Amiga through the serial port (I will have to expand the UART class accordingly).

The important part of the Commander is already implemented (but still needs to be ported over to vAmigaWeb).

In the Mac app, plug in the Commander into the serial port:

Bildschirmfoto 2024-03-06 um 12 40 01

In Kick 3.0 (which allows ser: to be addressed directly), send a RetroShell command simply via echo (no special characters needed):

Bildschirmfoto 2024-03-06 um 12 40 32

With the Commander plugged in, the command is executed inside RetroShell:

Bildschirmfoto 2024-03-06 um 12 40 35

With the Commander plugged in, you have complete control over the emulator. You can enable or disable warp mode as you like or anything else.

from vamiga.

dirkwhoffmann avatar dirkwhoffmann commented on May 25, 2024

Sending RetroShell output to the Amiga also works (in the lower window, I've typed in type ser:) :

Bildschirmfoto 2024-03-06 um 15 06 15

There are two issues left:

  • The known buffering problem. The Amiga buffers incoming data. We need to find out if a flush signal can be sent. Currently, I am not aware of anything like that.
  • More severely, I've experienced two Gurus while testing. My current code might be able to bring the UART to an inconsistent state. More investigation is needed.

from vamiga.

Related Issues (20)

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.