RISC OS Open
Safeguarding the past, present and future of RISC OS for everyone
ROOL
Home | News | Downloads | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account
Forums → Announcements →

Codecraft#4 - A Call to the ARMs

Subscribe to Codecraft#4 - A Call to the ARMs 14 posts, 5 voices

 
Apr 4, 2021 4:14pm
Avatar Kuemmel (439) 375 posts

Hi there !

I’m proud to announce Codecraft#4 …after 20 years in the dust I thought it’s time to revive that online compo in the same style it was done already 3 times back then. I still see some people around participating back then (Hi Jeffrey, Rick, …:-) ).

To promote it I released an invitro at this years Revision Demo party just now. The link to the pouet entry is here or directly to the youtube link here . It’s a 4 part 1 KByte intro with music and should run on RPi3/4. It’s called “A Call to the ARMs”.

The compo categories are 256 Byte Intro/Game, 1 KByte Intro/Game, 2 KByte Tool, 4 KByte Intro/Game. Anything goes…any RISC OS platform, oldschool or newschool…now you got 6 months to create your entry.

Check out the compo website here …it also includes links the 3 previous editions.

 
Apr 5, 2021 8:57am
Avatar Steve Drain (222) 1620 posts

I have looked at the site, but I cannot work these questions out. What is a Tool? Can it be a programming tool or must it be a user tool? I see one limitation specified, but to what extent are shared resources considered to be part of the code? That is, can you use SWIs and do they have to be only ROM modules?

 
Apr 5, 2021 1:06pm
Avatar Rick Murray (539) 12398 posts

That is, can you use SWIs

Yes.
Think about it – you can’t get a lot done without SWI calls (how would you clear the screen, for instance?).

and do they have to be only ROM modules?

I would say, personally, that it would be acceptable to use common modules that you did not create.

That should open up the scope for doing things, but disallow stuff like “Hey, I wrote a Lua interpreter as my 256 byte demo” and providing a source code that is basically:

   SWI   "Lua_InitRuntime"
   MOV   PC, R14

Which would obviously be cheating! However I don’t see any reason to not use something that is a part of most people’s System resources…

 
Apr 5, 2021 1:11pm
Avatar Rick Murray (539) 12398 posts

Hmm, I wrote a 1K GIF decoder a billion years ago. I don’t know, however, if I ever released it.

 
Apr 5, 2021 4:26pm
Avatar Kuemmel (439) 375 posts

@Steve: Any kind of tool is okay. I never participated in the tool category, but I say everything is allowed to be used that is in a standard distribution of RISC OS and of course if you use SWI’s from e.g. modules of the standard distribution those modules don’t add to the size of course. I mean as Rick said, without SWI’s you can’t get anything done, but I guess you meant SWI’s from special modules.

May be you’ll check out tools from the past compo’s. I’ll do also and see if there was even more freedom to this. May be even an add-on to a third party app using it’s modules can be considered, but of course not like Rick showed ;-) We can discuss that. May be Jeffrey can elaborate. I see at least one tool he coded back then.

I’d like to give as much freedom as possible within the size restriction so we can gather many entries :-)

 
Apr 6, 2021 12:38pm
Avatar Jeffrey Lee (213) 6024 posts

6 months – that should be long enough for me to find the time to create a worthy entry!

 
Apr 7, 2021 4:08pm
Avatar Kuemmel (439) 375 posts

@Steve: I got some request using crunchers for BBC BASIC entries. As far as I googled the forum about it, seems you did the only recently developed software to do this (Crunchie) ? Is that so or would there be other recommendations, also may be for vintage RISC OS Acorn’s ?

 
Apr 7, 2021 4:58pm
Avatar Jeffrey Lee (213) 6024 posts

I’m not Steve, but in the past (2007) I’ve used both StrongBS and BasCompress (both at the same time, for maximum gains). From the Bob and Trev: Resurrection readme:

* First, it was run through BasCompress, using the default options, and with ‘dumb’ mode enabled
* Then, it was run through StrongBS. For BASIC II compatibility, ensure the ‘Convert LEFT$(x$,LENx$-1) to LEFT$(n$)’ option is turned off. I also turned off ‘Insert Squash Info’, to gain a few extra bytes.

The reason for the two-stage compression is that:
a) I found that StrongBS produces smaller files than BasCompress
b) However StrongBS failed to detect most of the constant variables in the code

Thus, BasCompress is used first (mainly to strip out the static variables), followed by StrongBS to get the code to minimal size.

Some effort may be required to find download links which still work.

 
Apr 7, 2021 9:17pm
Avatar Steve Drain (222) 1620 posts

Crunchie is not any sort of ultimate cruncher for size, but is probably quite good for speed. It does some optimisations, whereas StrongBS does all sorts. I thinks its principle selling point is that it runs as pure BASIC and so on 32-bit machines reliably.

There are still some bugs with more advanced features – hello Martin – but it seems to cope with simple programs well enough.

It can do constant variables to literals, as mentioned by Jeffrey. If you crunch on a 26-bit machine I would second his combination, though.

 
Apr 8, 2021 9:40am
Avatar Colin Ferris (399) 1456 posts

Having looked up ‘Literals’ ??? – how does it work/look in BASIC? puzzled

 
Apr 8, 2021 1:26pm
Avatar Steve Drain (222) 1620 posts

A literal is a number or string value that is spelled out, such as 1.234, &FF or “this”. Such a constant value may appear several times in a program, but if it is changed, each occurrence will have to be changed. Assigning such a value to a variable can be useful because it gives it a name and the value only has to be specified once, but this might be considered a penalty in namespace and speed. Some crunchers and other utilities allow constant values to be given names that are substituted with the literals. The methods vary.

Crunchie detects the use of LET to assign a variable – LET is never required in BASIC. It then substitutes the literal value assigned for the variable throughout the program and removes the assignment. The program runs the same way before and after crunching. The main condition is that the LET must appear in the program physically before any use of the constant.

Other ways of doing this use REMs or auxiliary files. My Basalt uses @ as a prefix to a constant name to be looked up in a constants file and there are many pre-defined constants built in. Constant names can be as long as you like without penalty.

 
Sep 13, 2021 4:48pm
Avatar Kuemmel (439) 375 posts

Hi there…we got around 3 weeks until the deadline…hopefully you all work on some entries, right ;-) !?

 
Oct 4, 2021 5:46am
Avatar Kuemmel (439) 375 posts

Hi there,

CodeCraft#4 is over ! I’m happy I received 9 entries in total, which is even more than one could hope for looking at the active user base :-) Here’s the list:

256 Byte intro
-———————-
It spins / Progen
LightWeaver / Exoticorn
Confetti tail / Kuemmel
McBump / Optimus
Chaos Equation / Jin X

1 KByte intro
-———————
Zoom³ / Progen
Booster / Optimus

4 KByte intro
-———————
Relentless / Phlamethrower

2 KByte tool
-——————-
Pad / Gavin Wraith

As the compo website can’t be updated due to technical reasons for some days. I’ll make all the entries available for download as one package. You can download them here

To all the contributors: Feel free to add your entry to pouet right away (except the tool section), including video links.

Be aware that some entries work on old school Acorn Archimedes and some on latest Rasperry Pi’s. Check the individual readme’s.

Now the voting starts. Just drop me an email (look up my ‘confetti tail’ entries readme) and tell me how many points (0 to 5) you want to give an entry. Of course it only makes sense for 256 Byte and 1 KByte.

Cheers & Thanks a lot to all the contributors !!!

@EDIT1: I forgot to add that I’ll keep the voting up for 2 weeks (deadline Sunday, 17th of October) so everybody has a chance to undust their old Archimedes or wait for the video uploads…we waited for 20 years anyway ;-)

@EDIT2: Pouet link with entries including links to videos is here

@EDIT3: Moved Chaos Equation to 256 Byte as a shrinked version was handed in.

 
Oct 19, 2021 6:42am
Avatar Kuemmel (439) 375 posts

Voting results published and website updated. Thanks again to all the participants !

Reply

To post replies, please first log in.

Forums → Announcements →

Search forums

Social

Follow us on and

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

RISC OS IPR

RISC OS is an Open Source operating system owned by RISC OS Developments Ltd and licensed primarily under the Apache 2.0 license.

Description

Announce and discuss new hardware and software releases.

Voices

  • Kuemmel (439)
  • Steve Drain (222)
  • Rick Murray (539)
  • Jeffrey Lee (213)
  • Colin Ferris (399)

Options

  • Forums
  • Login
Site design © RISC OS Open Limited 2018 except where indicated
The RISC OS Open Beast theme is based on Beast's default layout

Valid XHTML 1.0  |  Valid CSS

Powered by Beast © 2006 Josh Goebel and Rick Olson
This site runs on Rails

Hosted by Arachsys