Giter Club home page Giter Club logo

c64ospresenter's Introduction

This is the start of a simple presentation program for C64OS.

It started off as a port of the C64 native presentation program https://github.com/gnacu/presenter. By now it has new file format that enables more features.

The file format is a very simple petscii format that can be created and edited with standard C64 text editors like Novatext.

File format

Presentation files are sequence files that are required to have the '.prs' file extension. The bulk of a presentation file consists of standard petsii text.

Comment section

At the start of a presentation it is allowed to include a text segment that provides comments about the presentation. This can be any text of any lenght. This segment is closed by the first !s<CR> command. This must be the first command of each presentation file.

Fields

The presenter app supports 'fields' that can be used to add short (max 40 character) reusable text fragments that can be added anywhere in the content of a slide with the !Fff command described in the chapter [[#Slides]].

There are three types of fields:

  1. User defined fields
  2. Dynamic fields

User defined fields have to be explicitely specified in using the !Dff command. The values of dynamic fields are automatically generated by the presenter app when they are encountered in a slide.

User defined fields

These fields can be defined by the creator of the presentation. This is done by using the !Dff command (typically immediately after a !S command). The 'names' can be at most two characters long. Note that there is currently a maximum of 6 user defined fields.

The following fields are 'standard' by convention:

  • TI: Title, this field is used to contain the title of the presentation
  • ST: Section title, this field is used to contain the title of a section of slides.
  • AU: Author, this is field is used to contain the name of the author of the presentation
  • CD: Creation Date, this field is used to contain the creation date of the presentation

One way to allow for one more field is by using either the TI or ST field for both the title of the presentation and the title of a section of slides (if both titles are not used at the same time anywhere).

Dynamic fields

These fields are always available and don't need any definition. The following fields are defined:

  • PD: Presentation date, which is the current date when the presentation is running.

Slides

The bulk of a slide's content consists of standard petsii text. In addition to this a set of commands can be used that are always prefixed with an '!' (to have an ! in the output just use !! in the slide content).

The following commands are supported:

  • !s<CR>: Start of a new slide/section. This command pauses the presentation, and when 'Next' is triggered, will clear the screen and start any new content from the top-left of the screen. Note that this command needs to end with a CR (carriage return).
  • !p: Pause the current slide. This command pauses the presentation and when 'Next' is triggered, will continue any new content at the paused position.
  • !cxx: Changes the text color. It requires a two digit decimal number, between 0 and 15, immediately after the command.
  • !bxx: Changes the background color. It requires a two digit decimal number, between 0 and 15, immediately after the command. This command is mostly useful right after a !s or !p command. In the latter scenario it allows for changing background color after each pause, note that the full screen background is changed.
  • !lxxyy: Changes the ouput location. This command requires a two digit decimal numbers, the first for the new X coordinate (or column) the second for the new Y coordinate (or row). Note that as the screen has a resolution of 40x25 characters these values have to be between 0-39 and 0-24 respectively.
  • !wxxyy: Changes the output 'window'. This command is very similar to the !lxxyy command. However, it also 'remembers' the x-coordinate for any new lines following its use. This is very useful for adding 'windows' or 'blocks' of content to a slide, when combined with the !p can be used creatively for 'builds' or 'animations' of 'blocks' of content anywhere in the slide while keeping the content 'around' it constant.
  • !txx: Set the output 'tab' to possition xx. This command requires a two digit decimal number, between 0, 38 (the new start column). This command is similar to the !wxxyy command but it only sets the tab (indent) for new lines in the output. It can also be used there for to reset the indent after a !wxxyy to zero.
  • !dff<value><CR>: (will be available in a later version) Defines a value for a field specified by a two character 'name' (ff). This command is typically used directly after a !s command to define (new) field values that can be used in the slide/section following that command. Note that this command needs to end with a CR (carriage return).
  • !fff: (will be available in a later version) Is replaced by the value of the field specified by the two character 'name' (ff). These fields are described in chapter [[#Header]] (above).
  • !i<cmd><CR>: (will be available in a later version) Adds image support to presentations. Note that this command needs to end with a CR (carriage return/new line). The !i needs to be followed (before the CR) by a sub-command (<cmd>):
    • !il<path>: Loads a image file, specified with <path>, to the graphics screen.
    • !is: Show the currently loaded image (if available).
    • !ih: Hide the currently loaded image and therefore show the current slide again.
  • !m<cmd><CR>: (will be available in a later version) Adds SID music support to presentations. Note that there because of memory limits, SID files have to be relatively small to work inside a presentation. Note that this command has no visual impact on the slide. Note that this command needs to end with a CR (carriage return). The !m needs to be followed (before the CR) by a sub-command (<cmd>):
    • !ml<path>: Loads a SID file, specified with <path>.
    • !msxx: Sets the playhead to the start of a numbered soung, using xx = 0 this returns the 'play head' to the start of the SID file.
    • !mpss?: Starts playing the currently loaded SID file. It can optionally specify a maximum number of seconds to play the song.
    • !me: Stops playing the currently playing SID file.
  • !e: Marks the end of the presentation.

c64ospresenter's People

Contributors

eriktier avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.