RISC-OS-Community/CodingOnRISC-OS

[Tasks]: Basics of coding on RISC OS, level 3

rps102 opened this issue · 1 comments

Contact Details (optional)

No response

Background

Level 1: Getting the source (from Git)
Level 2: Making system calls to flash an LED

This task outlines level 3 of the course, a little bit harder, building on levels 1 and 2. Based on feedback given at the meeting where level 2 was shown and comments on the videos this next instalment should:

  • Continue to be single tasking/command line based
  • Comprise more than 1 source file (as a means to introduce using a makefile, or needing to link 2 or more objects together, or the equivalent in the respective language, eg. LIBRARY in BASIC)
  • Comment on where to find background material in the PRMs or StrongHelp manuals (rather than just pulling magic numbers out of the air)
  • Handle the error return from a _swix call (or equivalent, eg. SYS in BASIC)
  • Use file I/O (contrasting the language built ins like fopen() or OPENIN with SWI OS_File and OS_Find)

A tutorial example which takes a sprite or JPEG, queries its dimensions, and prints them to the console. With a suitable framework this could be extended for other types by the avid reader like PNG or GIF, and take the general form

*ImageInfo <imagefile>

At level 2 we presented (in order of most number of views first)

  1. Assembler (gas syntax, ObjAsm optional)
  2. C (with the DDE, gcc optional)
  3. C++ (in CFront, g++ optional)
  4. Python
  5. BBC BASIC
  6. Lua

Don't be limited by these 6 though! All languages for which there is a RISC OS variant are up for grabs if volunteers have a particular area of interest they'd like to produce.

Definition of Done

Paolo has kindly offered to 'top & tail' any videos submitted.

The meeting to review this topic is 03-Jun-2023, so ideally material needs to be complete by 27-May-2023 to give time for editing.

This task would be complete once the new level 3 videos are edited and available on youtube for developers.

Code of Conduct

  • I agree to follow this project's Code of Conduct

@skymandr , @GavinWraith , @ccawley2011 , @InteractiveYelp , @gerph anyone interested in making a video for this round?

Sorry I am out for work in a different country, so communications may have some time difference.