• Adding C compiler support for transputer with TinyCC

    From agentdavo@gmail.com@21:1/5 to All on Tue Feb 11 04:22:16 2020
    Maybe a shot in the dark!

    https://github.com/agentdavo/tinycc-transputer

    Added the bare target essentials thus far. Will report back in a few weeks.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Axel Muhr@21:1/5 to All on Wed Feb 12 05:29:19 2020
    Hey AgentDavo,

    Very cool! Keep up the good work!

    Cheers, Axel

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From agentdavo@gmail.com@21:1/5 to All on Wed Feb 12 09:58:37 2020
  • From agentdavo@gmail.com@21:1/5 to All on Wed Feb 26 10:14:10 2020
    In TinyCC I found the tcc_compile function where i could implement a transputer arch specific initalizer (check cpu capabilities etc) and also research the interface beetween parser and code generator and began to understand the structures which tcc uses
    for the code generator.

    I am using the c67-gen as an example for the implementation of all necessary functions (like context switching for building the prolog and epilog of a function and implementation of sequential and floating point instructions).

    After some time i found a way to attach the transputer gen to tcc in the tcc_compile function and test with the emulator (Gavin Crate).

    I also took a look into the gcc 2.7.3 implementation the initaliser.

    I compared the t9000 architecture with all the other ones and have implemented the loading instructions directly through the primary functions for integer and fpu.

    Since the transputer architecture is a stack based assembly syntax mov would be something like a combination dup, rev and ldl, but even then we don't
    need a explicit mov operation since we always operate in a stack based way. There is a move instruction for the transputer, but it's only really for block movements.

    More to come!

    https://github.com/agentdavo/tinycc-transputer/commit/c425ec61b3b66619502d9cc7368db08a7b8d1401

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From agentdavo@gmail.com@21:1/5 to Axel Muhr on Wed Feb 26 10:42:23 2020
    On Wednesday, 12 February 2020 13:29:21 UTC, Axel Muhr wrote:
    Hey AgentDavo,

    Very cool! Keep up the good work!

    Cheers, Axel

    Axel,

    I spotted that your Helios-NG repo has the following note

    ----
    I got the permission from Perhelions fromer CEO Tim King and main programmer Nick Garnett to "[...] do whatever you want with the Helios sources." So here we are: "Helios Next Generation" or Helios-NG for short, put under GPL v3.
    ----

    I'm quite interested in the vector lib code and asm.

    https://github.com/axelmuhr/Helios-NG/tree/master/scanlibs/vectlib/TRAN/RCS

    Do you think I can integrate them into my TinyCC project? :-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Smith@21:1/5 to All on Wed Feb 26 12:08:54 2020
    Implemented store

    https://github.com/agentdavo/tinycc-transputer/commit/5114213c89012f44820d1e9236203ee41273db78

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Smith@21:1/5 to All on Fri Feb 28 05:02:40 2020
    WIP

    https://github.com/agentdavo/tinycc-transputer/commit/635220002531b920ae5bab3b5894a47a4dd88ec5

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Smith@21:1/5 to All on Fri Feb 28 05:13:11 2020
    FYI, using

    https://bitbucket.org/devzendo/transputer-emulator/src/default/

    as testbed

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Smith@21:1/5 to All on Fri Feb 28 05:14:38 2020
    I'm still a bit worried about how detailed I have to be implementing a small memory manager for the linker and code generator.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Smith@21:1/5 to All on Fri Feb 28 05:03:28 2020
    Work in progress

    https://github.com/agentdavo/tinycc-transputer/commit/635220002531b920ae5bab3b5894a47a4dd88ec5

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Smith@21:1/5 to All on Fri Feb 28 05:17:10 2020
    It seems the transputer handles memory management and privileged switching through the region descriptors, such that it's much less work than in x86, but i need the interaction to these region descriptors, which is not implemented yet.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Axel Muhr@21:1/5 to All on Fri Feb 28 13:30:50 2020
    I'm quite interested in the vector lib code and asm.

    https://github.com/axelmuhr/Helios-NG/tree/master/scanlibs/vectlib/TRAN/RCS

    Do you think I can integrate them into my TinyCC project? :-)

    Absolutely!
    I guess you also saw the two C compiler sources there, too?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Smith@21:1/5 to Axel Muhr on Sat Feb 29 14:17:44 2020
    On Friday, 28 February 2020 21:30:51 UTC, Axel Muhr wrote:
    I'm quite interested in the vector lib code and asm.

    https://github.com/axelmuhr/Helios-NG/tree/master/scanlibs/vectlib/TRAN/RCS

    Do you think I can integrate them into my TinyCC project? :-)

    Absolutely!
    I guess you also saw the two C compiler sources there, too?

    I'm not too familiar with the source tree. Can you fire some links?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Axel Muhr@21:1/5 to All on Mon Mar 2 20:18:19 2020
    Hey David,

    Try https://github.com/axelmuhr/Helios-NG/tree/master/cmds/cc and start digging from there...
    NCC (that's the norcroft C also known for its Acorn compilers) 4.5 compiles fine on my Solaris 8 box. Got the assembled compiled on Linux but cc didn't work instantly and I got distracted (as usual ;-))

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Smith@21:1/5 to Axel Muhr on Tue Mar 3 11:12:40 2020
    On Tuesday, 3 March 2020 04:18:20 UTC, Axel Muhr wrote:
    Hey David,

    Try https://github.com/axelmuhr/Helios-NG/tree/master/cmds/cc and start digging from there...
    NCC (that's the norcroft C also known for its Acorn compilers) 4.5 compiles fine on my Solaris 8 box. Got the assembled compiled on Linux but cc didn't work instantly and I got distracted (as usual ;-))

    Thanks Alex. Progress continues! I also aim to add Transputer core to TinyEMU over the next few weeks.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Matt Gumbley@21:1/5 to David Smith on Wed Mar 11 15:18:14 2020
    On Friday, 28 February 2020 13:13:12 UTC, David Smith wrote:
    FYI, using

    https://bitbucket.org/devzendo/transputer-emulator/src/default/

    as testbed

    Hi All, as BitBucket is soon deleting its mercurial repositories, I've migrated my Transputer emulator to https://github.com/devzendo/transputer-emulator.git.

    Kind regards,
    Matt

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)