Short: Control your Amiga from Windows RDP Author: Paul Hill Uploader: Paul Hill Type: comm/net Version: 1.3 Requires: 68020+, bsdsocket.library (e.g. Roadshow) Architecture: m68k-amigaos >= 3.0.0 RDPServer lets you see and control your Amiga's screen from Windows Remote Desktop Connection (mstsc), with keyboard, mouse, clipboard and beeps. It uses Standard RDP Security (RC4 with a 512-bit RSA key exchange) rather than TLS, which is light enough for a 68k CPU. REQUIREMENTS - AmigaOS 3.0 or later, 68020 or better (one binary for 020 to 060) - A TCP/IP stack providing bsdsocket.library (tested with Roadshow) - For RTG screens, cybergraphics.library (tested with Picasso96). Native OCS/ECS/AGA screens also work, more slowly (HAM is not supported) - Windows Remote Desktop Connection (tested with Windows 10) QUICK START Copy the RDPServer drawer anywhere (or just the program to C:), then from a Shell: RDPServer PASSWORD=secret The first run creates the server's encryption key, which takes from a few seconds to a few minutes depending on the CPU. It is kept in ENVARC:RDPServer/ServerKey and reused after that. On Windows, run "mstsc /v:". If a warning says the identity of the remote computer cannot be verified, click Connect. Enter the password at the Amiga's login prompt, or save it in mstsc's credentials to skip the prompt. Press Ctrl-C in the Amiga Shell to stop the server, or start RDPServer again: a second start stops the running server and exits. You can also start it by double-clicking its icon. Its messages then appear in a window; press Ctrl-C in that window, or double-click the icon again, to stop it. Set options as tool types in the icon (select it, then Icons > Information). The icon lists them in parentheses, which turns them off; remove the parentheses to use one. They take the same form as Shell arguments, such as PORT=3390 or NOBEEP; spaces before and after a value are ignored. PASSWORD= works too, but it is stored as plain text in the icon, so prefer ENV:RDPServer/Password (see below). OPTIONS These are Shell arguments, or tool types when started from Workbench. RDPServer [PASSWORD=pw | NOPASSWORD] [PORT=n] [BPP=15|16|24|32] [INTERVAL=ms] [SCAN=n] [NOCOMPRESS] [NOCLIPBOARD] [NOBEEP] [NEWKEY] [NEGFAIL] [VERBOSE] [QUIET] PASSWORD=pw Password clients must enter. NOPASSWORD Run without a password. Anyone who can connect gets control. PORT=n TCP port (default 3389). BPP=n Colour depth sent to the client: 15, 16 (default), 24 or 32. 32 is never compressed, so prefer 16 or 24. INTERVAL=ms Pause between screen polls (default 100, minimum 20). SCAN=n Compare every n-th row per poll (1-16, default 4). NOCOMPRESS Send screen updates uncompressed. NOCLIPBOARD Don't share the clipboard. NOBEEP Don't forward beeps. NEWKEY Replace the server key with a new one. NEGFAIL Refuse TLS with an error rather than declining it. Try this if a client won't connect. VERBOSE Log protocol details to the Shell. QUIET Print only errors and warnings, not the startup and connection messages. From Workbench, no window opens unless there is one; double-click the icon again to stop it. To keep the password out of scripts, leave out PASSWORD= and put the password in ENVARC:RDPServer/Password. Copy it to ENV:RDPServer/Password (or reboot) for it to take effect. The server will not start without a password unless you give NOPASSWORD. WHAT IT DOES - Screen: shares the front screen. Switching to a screen of a different size resizes the client's window to match. - Input: the mouse (including the wheel, as NewMouse events) and keyboard are passed to input.device. Keys are mapped by position from a PC keyboard. The right Ctrl key is the Right Amiga key, so right Ctrl-C copies and right Ctrl-V pastes in Amiga programs. Left Ctrl stays Ctrl. - Clipboard: text copied on either side can be pasted on the other, up to 512 KB. Characters that Latin-1 can't hold become their nearest ASCII equivalent or "?". In mstsc this is the Clipboard option under Local Resources. - Beeps: every DisplayBeep() also plays a short beep on the PC. - Login: until the password is entered the client sees only the login prompt, and its keystrokes do not reach the Amiga. After three wrong attempts the server disconnects. The prompt understands US and UK keyboard layouts. - Sessions: one client at a time. PERFORMANCE Reading the graphics card's memory is the slowest part. To keep it cheap, each poll compares only every SCAN-th row with the previous picture, starting one row lower each time, and reads in full only the 64x64 tiles that changed. Changed tiles are compressed before being sent. - Larger SCAN values cost less while the screen is idle. Small changes may take up to SCAN polls to show up (400 ms with the defaults). SCAN=1 checks every row. - A 16-bit RTG screen with BPP=16 needs no colour conversion. - When a client disconnects, the Shell shows the number of polls, the average time per poll and the data read per poll, so you can compare settings. SECURITY The password stops casual access on your local network. It is not strong security: Standard RDP Security has weak encryption and does not prove the server's identity, so someone who can intercept the traffic could capture the password. Do not expose the port to the internet. Each installation makes its own server key; none is built into the program. NEWKEY replaces it. LICENCE MIT licence; see the LICENSE file in the archive.