ASPL - A Slideshow Programming Language

Markus Peuhkuri

Tarkoitus

Diaprojektorien ohjaukseen multivisiossa tarkoitettu kieli.

Ohjaustarkkuutena on s ja esityksen maksimikesto on vuorokausi. Kuitenkin, mikäli esitys on jaettu osiin käyttäen key-komentoa, on kunkin osan maksimipituus vuorokausi. Projektorien maksimimäärä on kielen puolesta rajoittamaton (:n projektorin luulisi rittävän), mutta käytännön toteutus asettaa määräksi ja lampun kirkkaustasoja on 65536.

Formaatti


Aika    Käsky   Operandi(t)     ; kommentti

Rivillä voi olla vain osa (tai ei yhtään) ylläolevista. Mikäli aika puuttuu, on rivillä sama aika kuin edellisellä rivillä. Myös käsky voi puuttua, tällöin myös operandien pitää puuttua. Kommentti on ensimmäisestä puolipisteestä (;) rivin loppuun asti. Osat voidaan erottaa toisistaan yhdellä tai useammalla välilyönnillä tai tabulattorilla. Operandit erotetaan toisistaan pilkulla ja vapaaehtoisilla välilyönneillä tai tabulaattoreilla.

Käskyt

set
aseta lampun kirkkaus arvoonsa.
bri
lisää lampun kirkkautta.
dim
himmennä lamppu.
fwd
vaihda dia eteenpäin.
bwd
vaihda dia taaksepäin.
key
odota näppäimen painallusta.
end
ohjelman loppu.

set

set
aseta projektorin kirkkaus arvoon .
set
aseta projektorin kirkkaus arvoon maksimiarvosta.

dim

dim
himmetään projektoria arvolla 50 kertaa
dim
himmetään projektoria maksimiarvosta 50 kertaa sekunnissa.
dim
himmennetään projektoria siten, että kun aika on , niin projektori on silloin sammunut. (n. 21 minuuttia aikaa eteenpäin)
dim
himmennetään projektoria siten, että ajan kuluttua projektori on sammuksissa. (n. 21 minuutin kuluessa)

Huomio!

dim- ja bri-käskyissä oletetaan ja -muodoissa projektorin kirkkauden olevan maksimissa (tai minimissä) aikamäärettä laskettaessa. Mikäli näin ei ole asia, on tämä huomioitava ohjelmaa kirjoitettaessa. Esim jos 1. projektorin lamppu on puoliteholla ja lampun halutaan sammuvan 4 sekunnin kuluessa on oikea käsky dim .

bri

Vastaavasti kuten dim.

fwd

fwd
vaihdetaan projektoriin kuva siten, että mennään eteenpäin.

bwd

bwd
vaihdetaan projektoriin kuva siten, että mennään taaksepäin.

key

key ``viesti''
Jäädään odottamaan näppäimen painallusta ja tulostetaan näyttöön viesti.

Operandit

aika

Kaikki ajat voidaan esittää seuraavilla formaateilla sekunnin tarkkuudella. Sekunnin osat ja piste ovat optionaalisia ja suurin aikamääre saa olla niin suuri, että kokonaisaika on vuorokausi.

Ohjelman suoritushetkiä annettaessa on huomattava, että kaksi aikaa voidaan tulkita pyöristyksen takia samaksi vaikka niillä olisikin eroa yli . Toivottavasti tälläiseen tilannetta ei synny.

h:min:sec.osa
Täydellinen aikamääre. Minuutit ja sekunnit kuten normaalissa ajan ilmaisussa (kokonaislukuja, pienempiä kuin 60).
min:sec.osa
Sekunnin osat optionaalisia, sekunnit kokonaislukuja, pienempiä kuin 60.
sec.osa
Yksinkertaisin aikamuoto.

luvut

kokonaisluvut

Kokonaislukuja ovat luvut, joilla asetetaan kirkkaus tai häive suoraan. (yllä käytetty kirjainta osoittamaan kokonaislukua). Järjestelmä käyttää sisäisesti 16-bittisiä . kokonaislukuja, mutta normaalisti syötetään 8-bittisinä . Tarkempia lukuja tarvitaan kun 4.27 sekunnin maksimihäive ei riitä ja ei haluta käyttää vaihtoehtoisia merkitsemistapoja (prosentit, aikamäärittelyt). Ohjelma saadaan käsittelemään luku 16-bittisenä liittämällä numeron perään l-kirjain (iso tai pieni). Luvut voidaan antaa 10-, 8- tai 16-järjestelmässä noudattaen C-kielen sääntöjä. Esimerkiksi 256L=0400L=0x100l=1=01=0x1.

Lampun näkyviä kirkkaustasoja on 64, joten arvot 0,1,2,3 vastaavat kaikki samaa lampun kirkkautta. Eroa syntyy himmennettäessä tai kirkastettaessa lamppua.

desimaaliluvut

Desimaalilukuja voidaan käyttää prosenttien (yllä käytetty kirjainta ) ja aikojen (sec.osa) yhteydessä, esimerkiksi , tai .

projektorit

Projektoreita (yllä käytetty kirjainta ) voidaan osoittaa joko numeroilla (0,1,2,3...) tai aakkosilla (a,b,c,d...), nämä vastaavat täysin toisiaan, joten samassa ohjelmassakin voidaan käyttää eri merkintöjä ( jne). Tosin aakkosilla pystytään osoittamaan vain 27 ensimmäistä projektoria (a-z).

viesti

key-komennon yhteydessä tulostettava viesti saa olla enintään 40 merkkiä pitkä, mikäli teksti on tätä pitempi se katkaistaan. Viesti on suljettava joko kaksinkertaisten lainausmerkkien tai yksinkertaisten heittomerkkien sisään, kuitenkin siten, että merkkijonon keskellä ei saa esiintyä rajoitinmerkkiä ja merkkijono on päätettävä sillä merkillä jolla se alkoikin. Merkkijonossa voidaan käyttää muutamia kenoviiva-komentoja. (merkki)

I
Käänteiset merkit päälle.
i
Käänteiset merkit pois. Tämä ei lisää merkkijonon pituutta.
luku
Kolme merkkiä pitkä merkkijono, jonka lukuarvo (desimaalinen) on suoraan Commodore 64:n ruutukoodi, EI siis ASCII tai PETASCII-koodi. Merkkijonosta poistetaan aina kolme merkkiä eli `` 1USCII'' tuottaa tekstin ``aCII'' kuten myös `` 01SCII'' ja `` 001CII''. Tämä lisää merkkijonon kokonaispituutta yhdellä.

Esimerkki

About this document ...

This document was generated using the LaTeX2HTML translator Version 0.5.3 (Wed Jan 26 1994) Copyright © 1993, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -split 0 aspl.tex.

The translation was initiated by puhuri@gamma.hut.fi on Fri Sep 9 14:39:31 EET DST 1994





puhuri@gamma.hut.fi
Fri Sep 9 14:39:31 EET DST 1994