Trubo Oberon (Announce)
Well done so far.
I think he's taking a break (or just hasn't committed much lately), but it's mostly good enough for now. There are still some subtle bugs (In.String, DOS.ParamCount, Tetris won't rebuild) that somehow bit me. But I avoided those for now.
Here's what I did (re: PSR Invaders):
In order to avoid a reliance on Sed (which is usually written in C, no I haven't converted it to anything else), I rewrote some scripts.
invwords (six modules) + fixsizes (two modules) are the two main programs.
The first program is for assemblers that don't need explicit sizes and only need very minor fixes later (like FASM or LZASM). By default this is still MASM compatible and reassembles in JWasm (but with more brackets that almost everyone else needs).
The second program is only if sizes are needed, and I (now) coded it in a way to avoid slow lookup via two passes. So it has inlined string literals of byte-sized variables only (the shorter amount versus word-sized). That output assembles with WASM or A86 but can be converted to other assemblers (like NASM or A72) with very minor fixes, too.
Temporarily, I even used Sed to convert those to Turbo Oberon (TOC), but now I use a different way. Although it is not fully standalone, it's mostly there and should be easy to fix by hand, if needed. A third program (strequal) adjusts for TOC's need of Strings.Equal() to compare strings instead of most Oberon's reliance on the = operator. Then with some very tiny Edlin patches I edit the sources. (Yes, I used FreeDOS Edlin.) Now invwords and fixsizes compile with TOC. (Formerly, it was only Oxford, XDS, and Oberon-M.)
Two more programs help TOC's TASM and TLINK assemble identically to NASM. First we need nasmfix to make very minor changes to fixsizes' output. Then we need nasmbyte to do a few small optimizations (CMP, SUB, ADD) that TASM doesn't handle yet.
Then it is byte identical to output from NASM or FASM, etc.
Just saying, it does work (mostly), so I'm glad.
Complete thread:
- Trubo Oberon - rr, 08.07.2026, 21:24 (Announce)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- Trubo Oberon - Rugxulo, 15.07.2026, 03:18
- Trubo Oberon - Rugxulo, 16.07.2026, 20:54
- Trubo Oberon - Rugxulo, 20.07.2026, 07:54
- Trubo Oberon - Laaca, 21.07.2026, 23:05
- Trubo Oberon - Rugxulo, 23.07.2026, 07:15
- Trubo Oberon - Laaca, 23.07.2026, 18:57
- Trubo Oberon - Rugxulo, 24.07.2026, 21:34
- Trubo Oberon - Rugxulo, 27.07.2026, 07:52
- Trubo Oberon - Rugxulo, 24.07.2026, 21:34
- Trubo Oberon - Rugxulo, 04.08.2026, 13:16
- Trubo Oberon - Rugxulo, 31.08.2026, 09:49
- Trubo Oberon - Laaca, 23.07.2026, 18:57
- Trubo Oberon - Rugxulo, 23.07.2026, 07:15
- Trubo Oberon - Laaca, 21.07.2026, 23:05
- Trubo Oberon - Rugxulo, 15.07.2026, 03:18
Mix view