Konstanter
Der findes 4 forskellige konstanter i JAL. De har hver deres type, som giver forskellen i deres anvendelse
Bit konstanter
En enkelt bit kan kun være høj eller lav / sand eller falsk / 1 eller 0, og i konstant-sammenhæng giver det mest mening at bruge den som sand eller falsk (true - false) som følger:
const bit ppp1 = false const bit ppp2 = true const bit ppp3 = low const bit ppp4 = high const bit ppp5 = off const bit ppp6 = on const bit ppp7 = 0 const bit ppp8 = 1
Det man så kan anvende sådan en konstant til er, hvis man vil skrive noget mere universel kode, hvor man kan slå dele af koden til eller fra, så kan man gøre det ved rette på konstanten, så vil koden blive taget med eller ej, som f.x.
if ppp then var byte n for 10 using n loop x = n * 2 end loop end if
I dette tilfælde vil for-loopen ikke blive til kode, hvis ppp er sat false, og variablen n vil ikke blive oprettet, og kan dermed ikke anvendes i koden andre steder.
Byte konstanter
En Byte består af 8 bit, og kan derfor indeholde værdier fra 0 til 255. Man kan angive konstanter både som decimale tal (0-255) hexadecimal tal (0x00 til 0xFF) binære tal (0b0000_0000 til 0b1111_1111) og som ASCII karakterer "a" - "z" og "A" - "Z"
const byte maximum = 99
Konstant array
I konstant array bliver det man skriver in lagret i programkoden i stedet for i RAM'en. Her kan man f.x. lægge en tekst som vist her:
const byte teksten [5] = {"K", "o", "d", "e", "n"}
Definitions konstanter
Den tredje har egentlig ikke et navn men det er en definition. Det er en compile-time definition. Den sidstnævnte forsvinder under omskrivningen til maskinkode (compiling).
const Baud_Rate = 9600
Det man kan bruge dem til er at teste på den, som man kan med andre konstanter, og man kan regne med dem, så man ud fra konstanten kan beregne en værdi:
time = 1000000 / Baud_Rate
Pragma konstanter
Det sidste eksempel på en konstant er nogle der hænger sammen med selve compileringen. Sidst nævnte type herunder:
pragma target clock 4_000_000