Computer Old Farts Forum
 help / color / mirror / Atom feed
* [COFF] Wanted: 16-bit big-endian Unix-like environment and/or libc
@ 2023-07-25  7:41 Warren Toomey via COFF
  2023-07-25 14:07 ` [COFF] " Clem Cole
  0 siblings, 1 reply; 2+ messages in thread
From: Warren Toomey via COFF @ 2023-07-25  7:41 UTC (permalink / raw)
  To: coff

Hi all, I'm looking for a 16-bit big-endian Unix-like development
environment with a reasonably new C compiler and a symbolic debugger.
And/or, a libc with source code suitable for a 16-bit big-endian environment.

Rationale: I've designed and built a 6809 single board computer (SBC) with
8K ROM, 2K I/O space for a UART and block storage, and 56K RAM. It's a
big-endian platform and the C compiler has 16-bit ints by default. I've
been able to take the filesystem code from XV6 and get it to fit into
the ROM with a hundred bytes spare. The available Unix-like system calls are:

	dup, read, write, close, fstat, link,
	unlink, open, mkdir, chdir, exit, spawn

and the spawn is like exec(). There is no fork() and no multitasking.
I've got many of the existing XV6 userland programs to run along with a
small shell that can do basic redirection.

Now I'm trying to bring up a libc on the platform. I'm currently trying
the libc from FUZIX but I'm not wedded to it, so alternative libc
recommendations are most welcome.

There's no debugging environment on this SBC. I do have a simulator that
matches the hardware, but I can only breakpoint at addresses and single-step
instructions. It makes debugging pretty tedious! So I was thinking of
using an existing Unix-like platform to bring up the libc. That way, if
there are bugs, I can use an existing symbolic debugger on the platform.

I could use 2.11BSD as the dev platform but it's little-endian; I'm worried
that there might be endian issues that stop me finding bugs that will arise
on the 16-bit 6809 platform.

As for which libc: I looked at the 2.11BSD libc/include and there's so
much stuff I don't need (networking etc.) that it's hard to winnow down
to just what I need. The FUZIX libc looks good. I just came across Elks
and that might be a possible alternative. Are there others to consider?

Anyway, thanks in advance for your suggestions.

Cheers, Warren

References:

XV6:   https://github.com/mit-pdos/xv6-public
FUXIZ: https://github.com/EtchedPixels/FUZIX/tree/master/Library
Elks:  https://github.com/jbruchon/elks/tree/master/libc

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [COFF] Re: Wanted: 16-bit big-endian Unix-like environment and/or libc
  2023-07-25  7:41 [COFF] Wanted: 16-bit big-endian Unix-like environment and/or libc Warren Toomey via COFF
@ 2023-07-25 14:07 ` Clem Cole
  0 siblings, 0 replies; 2+ messages in thread
From: Clem Cole @ 2023-07-25 14:07 UTC (permalink / raw)
  To: Warren Toomey; +Cc: coff

[-- Attachment #1: Type: text/plain, Size: 4225 bytes --]

Warren - can not help you other than some thoughts/pointers for some next
steps.


   1. https://www.noicedebugger.com/ - it's not FOSS and you have to buy
   it.  No idea how good it is.
   2. OS9 was a Unix-like system for the MC6809 back in the day -- maybe
   look for tools for that.
   3. http://www.compilers.de/vbcc.html is a full ISO C99 C compiler that
   is very portable and targets a number of 8-bit and 16-bit processors
   including the MC6809
   4. WRT to the symbolic debugger, the issue will be 8/16-bit and
   big-endian.   There were numerous ports of Mark Linton's dbx (it should be
   on the 4.2 BSD - tape it was his thesis).  Dbx  was the predecessor to gdb
   and was used to make a number of MC68K debuggers such as the original ones
   at Masscomp and Sun. But address space is likely to be an issue since Mark
   wrote it for a vax originally.
   5. Since the MOS6502 was so ubiquitous and it is also big-endian since
   its "parent" was the MC6800 (Moto developed the MC6809 as the MC6800 follow
   on, in response to it when Peddle and team left Moto to build  the MOS6501
   and MC6502).  So you might look for tools for it and retarget - there are
   numerous "C 6502" tool kits in the wild.  There are simulators that I know
   about and often they have an embedded, but I never looked for a pure
   debugger.    https://github.com/unoCamel/6502-Debugger claims its a
   debugger but I think it more of simulator.
   6. I believe that https://lng.sourceforge.net/ had a debugger in it,
   which might be place to start - it was suppose to target a couple of
   processors like the 6502
   7. Check out: https://en.wikipedia.org/wiki/GNO/ME GNO github sources
   <https://streaklinks.com/BmKLhG2tLawMsD3xiAz5mkdq/https%3A%2F%2Fgithub.com%2FGnoConsortium%2Fgno>
which
   was a UNIX clone for the Apple-II

ᐧ
ᐧ
ᐧ

On Tue, Jul 25, 2023 at 3:44 AM Warren Toomey via COFF <coff@tuhs.org>
wrote:

> Hi all, I'm looking for a 16-bit big-endian Unix-like development
> environment with a reasonably new C compiler and a symbolic debugger.
> And/or, a libc with source code suitable for a 16-bit big-endian
> environment.
>
> Rationale: I've designed and built a 6809 single board computer (SBC) with
> 8K ROM, 2K I/O space for a UART and block storage, and 56K RAM. It's a
> big-endian platform and the C compiler has 16-bit ints by default. I've
> been able to take the filesystem code from XV6 and get it to fit into
> the ROM with a hundred bytes spare. The available Unix-like system calls
> are:
>
>         dup, read, write, close, fstat, link,
>         unlink, open, mkdir, chdir, exit, spawn
>
> and the spawn is like exec(). There is no fork() and no multitasking.
> I've got many of the existing XV6 userland programs to run along with a
> small shell that can do basic redirection.
>
> Now I'm trying to bring up a libc on the platform. I'm currently trying
> the libc from FUZIX but I'm not wedded to it, so alternative libc
> recommendations are most welcome.
>
> There's no debugging environment on this SBC. I do have a simulator that
> matches the hardware, but I can only breakpoint at addresses and
> single-step
> instructions. It makes debugging pretty tedious! So I was thinking of
> using an existing Unix-like platform to bring up the libc. That way, if
> there are bugs, I can use an existing symbolic debugger on the platform.
>
> I could use 2.11BSD as the dev platform but it's little-endian; I'm worried
> that there might be endian issues that stop me finding bugs that will arise
> on the 16-bit 6809 platform.
>
> As for which libc: I looked at the 2.11BSD libc/include and there's so
> much stuff I don't need (networking etc.) that it's hard to winnow down
> to just what I need. The FUZIX libc looks good. I just came across Elks
> and that might be a possible alternative. Are there others to consider?
>
> Anyway, thanks in advance for your suggestions.
>
> Cheers, Warren
>
> References:
>
> XV6:   https://github.com/mit-pdos/xv6-public
> FUXIZ: https://github.com/EtchedPixels/FUZIX/tree/master/Library
> Elks:  https://github.com/jbruchon/elks/tree/master/libc
>

[-- Attachment #2: Type: text/html, Size: 6421 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-07-25 14:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-25  7:41 [COFF] Wanted: 16-bit big-endian Unix-like environment and/or libc Warren Toomey via COFF
2023-07-25 14:07 ` [COFF] " Clem Cole

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).