log in | register | forums
Show:
Go:
Forums
Username:

Password:

User accounts
Register new account
Forgot password
Forum stats
List of members
Search the forums

Advanced search
Recent discussions
- Drag'N'Drop Autumn edition now available (News:)
- !DualHead puts 2 screens in one (News:)
- RISC OS London Show 2017 - Notes from the talks (News:6)
- November News (News:)
- !Organizer 2.28 reviewed (News:2)
- !OBrowse reviewed (News:10)
- Aemulor (Gen:16)
- DDE reaches release 28 and above (News:)
- Elesar quicks dispels stormy clouds (News:2)
- RISC OS London Show 2017 (News:)
Latest postings RSS Feeds
RSS 2.0 | 1.0 | 0.9
Atom 0.3
Misc RDF | CDF
Site Search
 
Article archives
The Icon Bar: Programming: Advice: want to code for RO 3.11
 
  Advice: want to code for RO 3.11
  pkersey (17:05 14/11/2013)
  nunfetishist (18:16 14/11/2013)
    pkersey (18:33 14/11/2013)
      DavidS (00:31 15/11/2013)
        arawnsley (14:52 15/11/2013)
          DavidS (16:32 16/11/2013)
            arawnsley (23:01 16/11/2013)
          pkersey (20:42 20/11/2013)
            arawnsley (21:12 20/11/2013)
              pkersey (21:16 21/11/2013)
                swirlythingy (23:12 21/11/2013)
                  arawnsley (11:22 22/11/2013)
                  pkersey (21:44 23/11/2013)
                    Zarchos (12:10 24/11/2013)
                      sirbod (13:54 24/11/2013)
                        Zarchos (16:44 24/11/2013)
                          pkersey (17:58 24/11/2013)
                            Zarchos (06:56 25/11/2013)
                      pkersey (15:50 24/11/2013)
  Zarchos (21:47 19/11/2013)
    pkersey (20:37 20/11/2013)
      Zarchos (21:11 20/11/2013)
        apdl (08:14 21/11/2013)
        pkersey (20:43 21/11/2013)
      CJE (11:21 21/11/2013)
        pkersey (20:48 21/11/2013)
 
pkersey Message #122781, posted by pkersey at 17:05, 14/11/2013
Member
Posts: 11
Hi. This is my first post here though I've been lurking around as a guest for some time.

I develop software as a hobby, for my own amusement, mostly in C these days.

I have some old RO machines, all of them RO 3.11. I would like to develop software in C for them. The OS version is a requisite: I want my software to run under much older ARM hardware.

What I did so far was to check the documentation and talk to a few people.

Turns out I might be out of luck. Talks are GCC doesn't support RO 3.11 anymore, current Risc OS C/C++ suite isn't meant for versions that old, that kind of thing.

I'm seeking for alternatives.

I've seen that EasyC package at APDL, and would like to know if that's any good.

I could buy an older version of Acorn C/C++ if I had seen one available, but looks like there's no one.

Accepting any advices.

Cheers.
  ^[ Log in to reply ]
 
Rob Kendrick Message #122782, posted by nunfetishist at 18:16, 14/11/2013, in reply to message #122781
nunfetishist
Exposing morons since 1981

Posts: 484
Use an older GCCSDK, then. Nobody should ever be subjected to EasyC/C++.

Alternatively, it may be the case that ROOL's C tool chain will still generate code that works on such ancient hardware.
  ^[ Log in to reply ]
 
pkersey Message #122783, posted by pkersey at 18:33, 14/11/2013, in reply to message #122782
Member
Posts: 11
I have both those hopes: that an older GCC version will suffice, and ROOL will generate vintage-style code with the appropriate set of options, though at least in this case the documentation got me a tad upset.
  ^[ Log in to reply ]
 
David Saunders Message #122784, posted by DavidS at 00:31, 15/11/2013, in reply to message #122783
Member
Posts: 14
Yes Norcroft C 5.70 in the ROOL DDE will generate ARMv2/ARMv3 code with out any problem. Normaly I would recomend ARM Assembly, though since you explecitly asked about C, look at the DDE.

Though I would recomend tracking down an older version of the DDE, or LCC (at the time of the RISC OS Port LCC produced slightly better code than GCC).
  ^[ Log in to reply ]
 
Andrew Rawnsley Message #122789, posted by arawnsley at 14:52, 15/11/2013, in reply to message #122784
R-Comp chap
Posts: 465
If you can find old Acorn C4 or C5 releases, with printed manuals, those will stand you in good stead smile

Then get the ROOL version once you add a Raspberry Pi or better to your collection of kit.

This way you'll have the nice printed manuals from the older versions to refer to and have open on your desk, plus the best compilation tools etc of the ROOL version.

Yeah, I'm a sucker for hard-copy manuals wink
  ^[ Log in to reply ]
 
David Saunders Message #122792, posted by DavidS at 16:32, 16/11/2013, in reply to message #122789
Member
Posts: 14
Yes the older Acorn compilers are your best bet until you get something newer to run RISC OS on (a RPi or more powerful system).

I am also a sucker for Hard Copy manuals, though most updates any more are given in PDF so I end up going through a lot of ink and paper in my printers. Thankfully getting newer HP printers to work with the RPi under RISC OS 5.21 is an easy task.
  ^[ Log in to reply ]
 
Andrew Rawnsley Message #122795, posted by arawnsley at 23:01, 16/11/2013, in reply to message #122792
R-Comp chap
Posts: 465
I should probably have added something else...

Acorn C 5 (the last Acorn release) can produce both 32bit and ARMv7 code with the right command line strings. Recompiling libraries is more of an issue though, if you don't have library source (hint, look in the ROOL source tree). StubsG produces 26/32bit neutral code, meaning that you can safely use the older releases to create software which will run all on generations.

I still include the extra command line options in my make files, just in case whoever is compiling (at a later date) is still on an older version of the compiler.
  ^[ Log in to reply ]
 
Xavier Louis Tardy Message #122807, posted by Zarchos at 21:47, 19/11/2013, in reply to message #122781
Member
Posts: 47
In an unprecedented effort to please my therapist and my cats, who urge me to make some room in what is more a retro museum than a home laugh it turns out that I've got an Acorn C/C++ set of books ( SKB78 ), dated 1994 and 1995, that I'm ready to 'sell'.
The 'Acorn Assembler' book includes a 26 bit (ARM 2/3) and 32 bit (ARM 6 and 7) sections and dates indicate December 1994 (Issue 1)., so I believe it's one of, or maybe the latest edition.

All books are in excellent condition.

Unfortunately I don't have the disks.

If you're interested I can send you these books (Acorn C/C++, User Interface Toolbox, Desktop Tools, Acorn Assembler, Acorn C/C++ Release Note Issue 1, jan 1995) for 30 , payment via Paypal.
I'm sure sending these from France will cost me more than 30 but I'm happy to help.

I might have the disks (6 if I believe the docs) somewhere, I'll have a look tomorrow evening and report here.

Cheers,
Xavier.shocktongue

[Edited by Zarchos at 21:53, 19/11/2013]
  ^[ Log in to reply ]
 
pkersey Message #122810, posted by pkersey at 20:37, 20/11/2013, in reply to message #122807
Member
Posts: 11
Hi, Xavier. Sorry for the late reply.

Thank you very much for the offer, and I would like to have the books but they won't be of much use to me without the compiler I guess.

If you ever find the disks, please let me know. I'm very interested in doing business.

Wilton

[Edited by pkersey at 20:44, 20/11/2013]
  ^[ Log in to reply ]
 
pkersey Message #122811, posted by pkersey at 20:42, 20/11/2013, in reply to message #122789
Member
Posts: 11
Hi Andrew,

actually I have a Raspberry Pi in my collection. I just would like to develop games that will work in ancient, retro hardware.

I'm not comfortable with ARM assembly at these heights, I guess I lost a bit of my patience and time is scarce these days. I'm not half the Z80 asm coder I used to be, and ARM would be a foreign planet to land on. I am willing to take the C route and learn ASM as I'm going.

... unless there's no other way.

[Edited by pkersey at 20:45, 20/11/2013]
  ^[ Log in to reply ]
 
Xavier Louis Tardy Message #122812, posted by Zarchos at 21:11, 20/11/2013, in reply to message #122810
Member
Posts: 47
Hi.

Disks not found yet, but will have more time for a thorough investigation tomorrow.

Do you know this site ?
http://ftp.uni-stuttgart.de/pub/systems/acorn/riscos/

In the lang directory there are GCC versions which I think are R0 3.1x compatable, and maybe some tools sources etc... you might find interesting.
  ^[ Log in to reply ]
 
Andrew Rawnsley Message #122813, posted by arawnsley at 21:12, 20/11/2013, in reply to message #122811
R-Comp chap
Posts: 465
OK, if you have a Pi there's no real reason to use the older compiler tools, unless you really want to. The newer compilers will still produce old-machine-safe code, and as long as you avoid toolbox (stick to RISC_OSlib or DeskLib or, indeed, just call the wimp directly) you should be fine.

Indeed, the only reason I say avoid toolbox is that the toolbox modules impose a RAM overhead (ie. you have to load them) which tends to make developing for 1Mb/2Mb machines a bit of a pain.

Since compiling will be much faster on Pi, I'd compile and debug your software on the Pi, then run it on the older machines.

Re-reading your message, since you're interested in games, the toolbox stuff isn't relevant anyway, as that's all to do with desktop-application-UI.

Note, however, the moment you try and do anything speed-critical on an ARM2/250, C may well begin to creak - there weren't many non-assembler Arc-era games, I'm afraid (AFAIK).
  ^[ Log in to reply ]
 
David Holden Message #122817, posted by apdl at 08:14, 21/11/2013, in reply to message #122812
Member
Posts: 138

Do you know this site ?
http://ftp.uni-stuttgart.de/pub/systems/acorn/riscos/

In the lang directory there are GCC versions which I think are R0 3.1x compatable, and maybe some tools sources etc... you might find interesting.
Most versions of GCC require more than 4MB of RAM which will make them unusable on older machines. However there's an earlier version on the APDL website in the PD library section, disc B194, which will run on 4MB machines and also a copy of a port of LCC, which is a very compact (though limited) C compiler
  ^[ Log in to reply ]
 
Chris Evans Message #122819, posted by CJE at 11:21, 21/11/2013, in reply to message #122810
CJE Micros chap
Posts: 198
We have old versions of Acorn C/C++ for sale
Discs only:http://www.cjemicros.co.uk/micros/individual/newprodpages/prodinfo.php?prodcode=ACO-C++NM

Full version (boxed with discs and 1388 pages of printed manuals) http://www.cjemicros.co.uk/micros/individual/newprodpages/prodinfo.php?prodcode=ACO-C++

The version is the last one Acorn sold.
  ^[ Log in to reply ]
 
pkersey Message #122828, posted by pkersey at 20:43, 21/11/2013, in reply to message #122812
Member
Posts: 11
> Do you know this site ?

Hi, Xavier! I had that site in my bookmarks but never took the time to fully scan it. Thank you!

I downloaded GCC 3.4 from the official GNU svn, which appears to be the last one supporting the MAPCS-26 flag. Didn't install it yet though.
  ^[ Log in to reply ]
 
pkersey Message #122829, posted by pkersey at 20:48, 21/11/2013, in reply to message #122819
Member
Posts: 11
> We have old versions of Acorn C/C++ for sale

Sending you an email. Cheers.
  ^[ Log in to reply ]
 
pkersey Message #122830, posted by pkersey at 21:16, 21/11/2013, in reply to message #122813
Member
Posts: 11
OK, if you have a Pi there's no real reason to use the older compiler tools (...)
I perhaps was a bit too unclear. Compiling on the real machines isn't mandatory. I just need tools that will output old code. I could use a cross-compiler or an emulator.

The idea of compiling and debugging on the Pi is much appealing, and one of the reasons I originally bought it for. But after reading the FAQ's I'm not so confident the current SharedCLibrary will be feasible for RO prior to 4.


http://www.riscos.info/index.php/RISC_OS_C_Programming_FAQ

(...)
So this basically means that you can not use the SharedCLibrary for RISC OS 3.1 and 3.5 in your GCC compiled programs.
People call GCC ugly names for the bloated code, so I thought I should stick to Acorn C as long as I find a version that will do that job.

I'm not confident about hand-assembling everything at the moment. After all I'll need an assembler and therefore stumble upon a similar problem: finding tools, right?
  ^[ Log in to reply ]
 
Martin Bazley Message #122832, posted by swirlythingy at 23:12, 21/11/2013, in reply to message #122830

Posts: 460
I perhaps was a bit too unclear. Compiling on the real machines isn't mandatory. I just need tools that will output old code. I could use a cross-compiler or an emulator.

The idea of compiling and debugging on the Pi is much appealing, and one of the reasons I originally bought it for. But after reading the FAQ's I'm not so confident the current SharedCLibrary will be feasible for RO prior to 4.
The responses seem quite clear to me. The latest Acorn C compiler will output old code, and is feasible for RO prior to 4.

It wasn't that long ago that ROOL used (what is now) their own compiler to create an updated universal !Boot structure, suitable for RO3.1 and up. RISC OS has got to be the only operating system which still actively supports versions officially made obsolete twenty years ago. You'll be fine.

http://www.riscos.info/index.php/RISC_OS_C_Programming_FAQ

So this basically means that you can not use the SharedCLibrary for RISC OS 3.1 and 3.5 in your GCC compiled programs.
Only for GCC, though. By the way, that wiki is very out of date and mostly unmaintained. There's a lot of ancient dodgy RO documentation floating around the web, and a serious dearth of good-quality new stuff outside of forums like this one. Watch out.

I'm not confident about hand-assembling everything at the moment. After all I'll need an assembler and therefore stumble upon a similar problem: finding tools, right?
Nope. For one thing, if you hand-assemble everything then all your compatibility problems magically disappear by definition, as long as you know what to do. Secondly, you don't even need any tools at all - BASIC comes with a quite competent built-in assembler, although I wouldn't recommend it for large projects.

(My recommendation aside, a surprising number of large projects were in fact assembled using a set of linked BASIC source files. I happen to know the original code for Star Fighter 3000 was programmed that way, although even that pales in comparison to the most recent program to have been outed as being entirely composed of BASIC behind the scenes - Impression Publisher!)

[Edited by swirlythingy at 23:15, 21/11/2013]
  ^[ Log in to reply ]
 
Andrew Rawnsley Message #122835, posted by arawnsley at 11:22, 22/11/2013, in reply to message #122832
R-Comp chap
Posts: 465
If you use Justin Fletcher's "StubsG" (google it), instead of linking to plain "Stubs", your programs will work with both 26bit (4.x) and 32bit (5.x) SharedCLibrary. SharedCLibrary 4.x works on all RISC OS 3.x machines, so by extension, a StubsG-linked program should work on 3.1 upwards, provided you don't use any features of later OSs etc.

Note - libraries need to be 32bit-safe for this.

[Edited by arawnsley at 13:39, 22/11/2013]
  ^[ Log in to reply ]
 
pkersey Message #122844, posted by pkersey at 21:44, 23/11/2013, in reply to message #122832
Member
Posts: 11
Hi, Martin. Hi, Andrew.


The responses seem quite clear to me. The latest Acorn C compiler will output old code, and is feasible for RO prior to 4.
That's great. After all the responses and a reply from the ROOL staff I'm now more confident I can use the current DDE.

Also, a friend pointed me to some resources that might come in handy to learn ARM assembly. Doesn't look that hard at all, I'm surprised! It's very ingenious. I'll be looking deep into that along the next week, can't do that now or else my gf will hit me with a mob.
  ^[ Log in to reply ]
 
Xavier Louis Tardy Message #122847, posted by Zarchos at 12:10, 24/11/2013, in reply to message #122844
Member
Posts: 47

[SNIP]
Also, a friend pointed me to some resources that might come in handy to learn ARM assembly. Doesn't look that hard at all, I'm surprised! It's very ingenious. I'll be looking deep into that along the next week, can't do that now or else my gf will hit me with a mob.
Hi.
I don't know what other readers will say about learning ARM programming on the Archies, but to me the best book is the one written by Peter Cockerell.
Luckily it's freely available here :
http://peter-cockerell.net/aalp/
Hope this helps,
Xavier.
  ^[ Log in to reply ]
 
Jon Abbott Message #122848, posted by sirbod at 13:54, 24/11/2013, in reply to message #122847
Member
Posts: 563
I don't know what other readers will say about learning ARM programming on the Archies, but to me the best book is the one written by Peter Cockerell.
I agree, definitely the best book to start learning ARM.

Is there an equivalent book for the newer ARM instructions? VFP / NEON etc?
  ^[ Log in to reply ]
 
pkersey Message #122849, posted by pkersey at 15:50, 24/11/2013, in reply to message #122847
Member
Posts: 11

the best book is the one written by Peter Cockerell.
Luckily it's freely available here :
http://peter-cockerell.net/aalp/
Hope this helps,
Xavier.
Actually that's where I was pointed to, indeed! smile

Couldn't wait any longer so started reading already.

[Edited by pkersey at 15:50, 24/11/2013]
  ^[ Log in to reply ]
 
Xavier Louis Tardy Message #122850, posted by Zarchos at 16:44, 24/11/2013, in reply to message #122848
Member
Posts: 47
My very good friend Etienne Sobole (aka E.T. I'll thank him forever as he's the one who, being the lucky owner of an Archimedes in my home town, encouraged me to buy one and learn assembly language) spent some time to investigate the NEON instructions and he's got some very interesting articles on his web site :
pulsar.webshaker.net

He also developped a cycles counter tool.

Unfortunately I hope you studied French at school (and remember it) as most of his pages are in French.
It appears he also gathered many interesting links about in-depth working of the Cortex, to optimize assembly code.(and there it's in English).

Again : I hope this helps.

Xavier.
  ^[ Log in to reply ]
 
pkersey Message #122851, posted by pkersey at 17:58, 24/11/2013, in reply to message #122850
Member
Posts: 11

Again : I hope this helps.

Xavier.
Thanks once again! I can understand some French and Google Translator will help me at times when I'll not be able to.
  ^[ Log in to reply ]
 
Xavier Louis Tardy Message #122855, posted by Zarchos at 06:56, 25/11/2013, in reply to message #122851
Member
Posts: 47
Super !

Good news if after all the infos you got here you're still interested by Acorn C/C++ bundle : I've got the 6 original disks, and they are as new.

Cheers,
Xavier.
  ^[ Log in to reply ]
 

The Icon Bar: Programming: Advice: want to code for RO 3.11