Skip to content

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

@rps102

Description

@rps102

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions