Prophet server for the Neo6502: https://prophet.3617.fr

Started by béné, October 11, 2026, 12:51:13 AM

Previous topic - Next topic

béné

Hi all,

My Prophet server for the Neo6502 is online: https://prophet.3617.fr

It works with bocianu's prophet.neo client:

set server prophet.3617.fr
set port 8998

You can also browse the catalogue in a web browser and play most programs there. Wolfenstein 3D (beta) is available too.

Feedback welcome!

béné

Ralf

Dude!

Your Trinity Firmware is the hottest thing for the Neo6502 since the original Prophet-Server!

Two things I noticed:

- the Olimex UART WiFi Card seems not to be supported. Fair enough, you offer a viable alternative. However, I guess you might want to state that more clearly somewhere. First boot of Trinity with the UART Card inserted resulted in a myriad of error messages and lots of unwanted files suddenly appearing on my USB drive.

- how is the state of the keymap support? Can I change to a German keymap already?

I must confess, I was skeptical at first, but then I found that NeoBASIC is still provided, and Wolfenstein 3d is a marvel in itself!

Absolutely love the name, by the way: Trinity! So fitting for the whole project, very nice.
Great work!
Cheers

béné

Thanks a lot for the kind words, and for testing Trinity so thoroughly!

- Olimex UART WiFi card: you are right, it is not supported. Only the USB CDC modem (Pico W, "picowifiusb", on the USB-A port) is handled. I honestly don't know what wrote those stray files to your USB drive, and nothing about this card is documented yet. To dig into it, could you tell me: your Trinity version, the exact names of the stray files, the text of the error messages, and how the card is connected (UART or USB)? I can't promise a fix or a warning yet, but I'll note it in the docs.

- Keymaps: the firmware already embeds several locales (fm, gb, sw, us, fr, de, fi, it, ch), so a German one is there, inherited from upstream (Olav Schettler's code). You can already select it from NeoBASIC with LOCALE "de" (or through the API, group 1, function 6). There is no NeoDOS command, no persistent setting and no selection at boot yet, so it has to be set again at each launch. I'll look into adding a NeoDOS command and a remembered setting, with no date for now. I have only validated the French keymap (AZERTY) on real hardware; the German one is untested on my side, so please tell me what you get with LOCALE "de" (ä ö ü ß in particular).

Thanks again for the feedback,
Béné

Ralf

Hi Béné,

thanks for your reply.
I'm using Trinity v0.16.69 and NeoDOS v0.32.1

That was the Olimex UART MOD-WIFI-ESP8266 I used.
On first boot with Trinity, I got a flood of endless error messages. These messages were somehow turned into files, so I got a lot of filenames like ER and ROR and so on. They were mostly 0 bytes, so I didn't bother to open and read any of them, and the system is working nicely and stable with the Pi Pico, so I don't feel compelled to replicate that event. ;-)
However, as the MOD-WIFI-ESP8266 is the only peripheral I haven't plugged into the Neo6502 again, I strongly suspect it was the culprit.

As for the keymaps, yes, NeoBasic does support German, however, I don't want to boot Trinity, run NeoBasic for the German Keymap, and then run NeoDOS again because of its advantages.
Sure, I guess a few lines in AUTOEXEC.BAT and autostart.bas will do the trick, but it's still not a neat solution.
Anyways. In NeoBasic with German keymap, the ö ä ü ß give the English (US?) mapping, i.e. ; ' [ -

Lastly, did you do something to speed up the whole Neo6502? There is this clockspeed.bas demo and it gives me a clockspeed of around 6.8MHz, and the test.bas demo which generates a Mandelbrot set also runs faster than it used to.
Which is cool though. :-)

So long
Cheers

béné

Hi Ralf,

Thanks for the detailed report, it helped a lot. I need to correct what I said earlier: the Olimex UART WiFi module is not unsupported at the protocol level. The network client speaks standard AT commands (ATE0, AT+CIPSTART, AT+CIPSEND, +IPD) at 115200 8N1.

The likely cause of the error flood is on Trinity's side. The module plugs into the UEXT, which is the same UART (uart0, GPIO 28/29) as Trinity's debug port, also at 115200 baud. Trinity sent a status line every second on it. The ESP8266 answers "ERROR" to that text, and everything received on that UART was fed into the keyboard queue. NeoDOS therefore typed the module's answers (hence the files like "ER" and "ROR") and echoed them back, which created a feedback loop.

I have changed the debug port so that it stays silent and ignores incoming bytes until it is deliberately woken up. The fix is in Trinity 0.16.103, now on the Prophet server:
  • client settings: set server prophet.3617.fr and set port 8998
  • entry firmware/trinity, file trinity.uf2, to be copied onto the RPI-RP2 drive in BOOTSEL mode
  • SHA-256: 36cfd174113d254ceb078aab75c133ed5d9db0c68a6a55a7a038bab7f163fc35

You can also build it from source: https://github.com/benedictemarty/Neo6502firmware/tree/trinity-v0.16.103

Please note that this is a test build. It was compiled and tested in an emulator only, not on a real board. I do not have the Olimex module, so I have never tried it myself and cannot confirm that it works.

If you are willing to try it with the module plugged into the UEXT, the expected result is no error flood and no stray files. Could you also tell me which port/pins the module is connected to, and whether the files still appear?

Thanks again for testing Trinity so thoroughly.

béné