OSDM Feature Notes by Roy/SAC

OSDM (Oldskool Demo Maker) Script Reference

Back to OSDM Section Home

Documentation(Reference) of the OSDM Script Features. Additions since OSDM Version 2.20.161 are highlighted in YELLOW. Translation from German to English in Progress.

Script Commands

Call
Label
Time
Effect

 

 

 

 

 

 

 

 

 

Misc

 

 

 

Macro

 

 

Call

CAL

CALL

Syntax: CAL = Effect [ + Effect + Effect ... ] ( = ALL )

CAL (Call) starts one or more specified Effects. It is important that an effect must also be enabled via the control unit (Main Screen) in order to be started via Script. To start multiple effects with one CAL command, separate each effect with the plus sign "+" (e.G. CAL = MUSIC + DISPLAY). All Effects can be started simultanously with the parameter ALL (e.G. CAL = ALL), except for the DISPLAY and MUSIC. DISPLAY and MUSIC must be started via a separate CAL command.

CAL = ALL
CAL = DISPLAY + MUSIC
NOP = 10
STP = ALL
NOP = 5
CAL = BOUNCE + SINUS32 + SCROLL + LOGO
END 

Applies to Effects: All

RCS

RANDOM CALL STOP

Syntax: RCS = Effect [ + Effect + Effect ... ]

Starts (CAL) or stops (STP) an effect randomly. The idea was to add some variety to an intro.

FPS = 25
STP = ALL
CAL = DISPLAY + MUSIC
LAB = 1
   RCS = LOGO + BACK + SCROLL
   NOP = 5
JMP = 1 

Applies to Effects: All

STP

STOP

Syntax: STP = Effect [ + Effect + Effect ... ] ( = ALL )

Stops the specified effect (= not being rendered anymore). You can stop all running effects via the ALL parameter with the exception of DISPLAY and MUSIC, which must be stopped separately.

STP = ALL
CAL = DISPLAY + MUSIC + LOGO
NOP = 25
STP = DISPLAY
NOP = 2
STP = ALL + MUSIC
END 

Applies to Effects: All

SWP

SWAP

Syntax: SWP = Effect [ + Effect + Effect ... ]

Switch an effect on/off. If the effect is started, then it will be stopped and vice versa.

FPS = 25
CAL = ALL
CAL = DISPLAY + MUSIC
LAB = 1
   SWP = LOGO
   NOP = 2
JMP = 1 

Applies to Effects: All

 

Label

BRK

BREAK

Syntax: BRK

Instantly exits a REP / LOP loop. This command is especially useful in combination with the commands IFX, IFY and IFZ.

LEA = LOGO
REP = 100
   IFX > 50
      BRK
   ADX = 1
LOP 

JMP

JUMP

Syntax: JMP = LAB ID

Jumps to the specified <LAB ID>, which was defined via the LAB command. It works like the "GOTO" command in Basic.

LAB = 123
   [...]
JMP = 123 

JSR

JUMP TO SUBROUTINE

Syntax: JSR = LAB ID

Jumps to the specified sub-routine / <LAB ID> that was defined via the LAB command and returns to process subsequent commands after the JSR command, if the called sub-routine ends with a RTS command. This command is the equivalent to the "GOSUB" command in Basic.

JSR = 23
END

LAB = 23
   [...]
RTS 

LAB

LABEL

Syntax: LAB = ID

LAB declares a Label Bookmark or start of a sub-routine. Label names/IDs have to be numeric and be in the range between 0 and 32767. You can jump to a label via either the JMP (Jump) or the JSR commands. A label declaration is not a boundary to declare independent code segments and ignored by the script parser, if this line of the script was reached. To create separated sub routines, use the LAB command followed by a RTS command at the end of the sub routine. Make sure to include either the END or ESC commmand at the end of the main code block. Use the JSR command to execute the sub routines from your main code. To create independent sub routines in OSDM script you could also use the new "Macro" feature instead.

LAB = 0
[...]
LAB = 5261
[...]
END 

LOP

LOOP

Syntax: LOP

Specifies the end of a loop that was initiated via the REP <Count> command. LOP reduces the value for <Count> by 1 and ends the loop if <Count> is equal 0.

CAL = ALL + MUSIC
LEA = LOGO
MVY = 480

LAB = 1
   REP = 480
      ADY = -1
   LOP
   REP = 480
      ADY = 1
   LOP
JMP = 1 

REP

REPEAT

Syntax: REP = Number

Start einer Schleifenwiederholung. Der Parameter <Number> bestimmt die Anzahl der Durchläufe einer Schleife die immer mit LOP abschließen muss! Wichtig ist, dass REP / LOP Schleifen nicht verschachtelt werden können, also innerhalb einer Schleife kann keine zusätzliche definiert werden!

FPS = 25
CAL = ALL
LEA = LOGO
LAB = 1
   REP = 255
      ADX = 1
      ADY = 1
   LOP
   NOP = 5
   REP = 255
      ADX = -1
      ADY = -1
   LOP
   NOP = 5
JMP = 1 

RTS

RETURN TO SUBROUTINE

Syntax: RTS

Rücksprung aus einer Sub-Routine. Hierdurch wird eine Sub-Routine verlassen und führt das Programm nach der Befehlszeile JSR <Nummer> weiter aus.

JSR = 1  ;Aufruf von LAB = 1
JSR = 2  ;Aufruf von LAB = 2
END

LAB = 1
   [...]
RTS      ;Rücksprung zu JSR = 2

LAB = 2
   [...]
RTS      ;Rücksprung zu END 
 

Time

FPS

FRAMES PER SECONDS

Syntax: FPS = Framerate

Setzen der Geschwindigkeit mit der ein Intro dargestellt wird. Dieser Befehl sollte immer am Anfang eines Scripts definiert werden, da alle Zeitbasierenden Effekte auf diesen Wert justiert werden! Es ist aber auch möglich ein Intro nachträglich zu beschleunigen bzw. zu verlangsamen.

FPS = 25
CAL = ALL + DISPLAY + MUSIC
NOP = 10
FPS = 0
END 

IFT

IF TIME

Syntax: IFT >, =, < Time

Die IFT Anweisung kann zur Überprüfung der aktuellen Intro-Zeit angewendet werden. Es wird nach den Parameter <Time> getestet und nur dann mit der direkt folgenden Anweisung bei wahrer Bedingung fortgeführt. Ist die Intro-Zeit unwahr <Time> wird die darauffolgende Anweisung ausgeführt. Mögliche IFT Anweisungen sind : IFT > größer als <Time>, IFT < kleiner als <Time> und IFT = gleich <Time>.

FPS = 25
CAL = ALL + DISPLAY + MUSIC

LAB = 1
   IFT > 20 : TRS = 0
   IFT = 10 : STP = LOGO
   IFT = 15 : CAL = LOGO
   NOP = 0                 ;Interrupt - bei LAB / JMP Schleifen unbedingt anwenden!
JMP = 1 

NOP

NO OPERATION

Syntax: NOP = Time

Wartet entsprechend des übergebenen <Time> Parameters, die Darstellung eines Intros wird wärend dem aktuallisiert. Die Dauer des Wartens steht direkt in Abhängingkeit der FPS Einstellung. Bei Übergabe von <Time> = 0 wird ein Interrupt ausgeführt, was zur sofortigen aktualisierung der Darstellungen führt. Sehr wichtig bei LAB / JMP Schleifen!

FPS = 15
LAB = 1
   NOP = 8 : CAL = LOGO
   NOP = 8 : STP = LOGO
JMP = 1 

TIM

TIME

Syntax: TIM = Time

Wartet bis zum erreichen einer im Parameter <Time> angegebenen Introzeit. Dieser Befehl kann u.U. eine zeitbasierende Effektsteuerung unterstützen. Um die aktuelle Introzeit zu ermitteln bietet es sich an, ein Intro im Debug Export mit aktivierten Show Info zu testen. Die Introzeit wird dann links oben angezeigt!

FPS = 25
TRS = 0
CAL = ALL
CAL = MUSIC
TIM = 10
STP = LOGO
TIM = 15
STP = MUSIC
TIM = 20
STP = DISPLAY
NOP = 2
END 

TRS

TIME RESET

Syntax: TRS = Time

Einstellung der aktuellen Introzeit. Dieser Befehl ermöglicht das Zurücksetzen bzw. neusetzen des internen Intro-Timers. Insbesondere dann von Bedeutung wenn ein Intro unter anderem über den Befehl TIM zeitgesteuert wird.

FPS = 25
CAL = ALL + DISPLAY + MUSIC
TRS = 0
TIM = 10
STP = BOUNCE
TIM = 25
CAL = BOUNCE
TIM = 30
STP = MUSIC 
 

Effect

AAX

ADD ANGLE X-DEGREE

Syntax: AAX = Angle

Addiert eine Winkelangabe zu der X-Achse entsprechend des Parameter <Angle>. Werte von -360 bis 360 sind möglich.

Note Roy/SAC: It appears to be 365 instead of 360 for a full rotation via adjusting the angle

CAL = DISPLAY + MUSIC + 3DBALL

LEA = 3DBALL 
   AAX = 90
   NOP = 10
   AAX =-90

END

Effects: SINUS16, SINUS32, 3DBALL, 3DVECTOR, 3DDIRECT, STARS

AAY

ADD ANGLE Y-DEGREE

Syntax: AAY = Angle

Addiert eine Winkelangabe zu der Y-Achse entsprechend des Parameter <Angle>. Werte von -360 bis 360 sind möglich

Note Roy/SAC: It appears to be 365 instead of 360 for a full rotation via adjusting the angle

CAL = ALL + MUSIC + 3DVECTOR

FPS = 3

LEA = 3DVECTOR 
   REP = 88
      AAY = 2
      NOP = 1
   LOP
   FPS = 25
   NOP = 10 
   AAY =-90 

END 

Effects: SINUS16, SINUS32, 3DBALL, 3DVECTOR, 3DDIRECT, STARS

AAZ

ADD ANGLE Z-DEGREE

Syntax: AAZ = Angle

Addiert eine Winkelangabe zu der Z-Achse entsprechend des Parameter <Angle>. Werte von -360 bis 360 sind möglich.

Note Roy/SAC: It appears to be 365 instead of 360 for a full rotation via adjusting the angle

CAL = ALL + MUSIC + SPRITE

FPS = 3

LEA = SPRITE

LAB = 1 
   IDN = 0 : AAZ = 4
   IDN = 1 : AAZ =-8
   NOP = 1
JMP = 1

Effects: LOGO, SINUS16, SINUS32, 3DBALL, 3DVECTOR, 3DDIRECT, STARS, SPRITE

ADA

ADD ALPHA-TRANSPARENCY

Syntax: ADA = Value

Addiert den Parameter <Value> zur aktuellen Alpha-Transparenz eines Effekt. Es können auch negative Werte übergeben werden. Dieser Befehl eignet sich insbesonders für flüssige Ein-/Ausblendungen innerhalb einer REP / LOP Schleife. Ein Transparenzwert kann Werte von 0 (nicht sichtbar) bis zu 255 (vollständig eingeblendet) annehmen. Ebenfalls ist wie bei MVA darauf zu achten, daß nicht alle Effekte unterstützt werden!

FPS = 25

CAL = DISPLAY + MUSIC + SPRITE

LEA = SPRITE
   IDN = 0
   MVA = 0

LAB = 1
   REP = 254 : ADA = 1 : LOP
   NOP = 3
   REP = 254 : ADA =-1 : LOP
   NOP 3
JMP = 1 

Effects: LOGO, BOUNCE, SPRITE, MASK

ADC

ADD COPPER SPEED

Syntax: ADC = Value

Addiert den Parameter <Value> zur Bewegungsgeschwindigkeit eines Copper Effektes. Es können auch negative Werte übergeben werden. Dieser Befehl eignet sich insbesonder für flüssige Veränderungen in einer REP / LOP Schleife. Es ist unbedingt darauf zu achten das im OSDM ein entsprechender Copper FX voreingestellt ist!

FPS = 25

CAL = DISPLAY + MUSIC + LOGO

LEA = LOGO

LAB = 1
   REP = 10 : ADC =  1 : NOP = 1 : LOP
   NOP = 3
   REP = 10 : ADC = -1 : NOP = 1 : LOP
   NOP 3
JMP = 1 

Effects: LOGO, BORDER, COPPERBAR, SINUS16, SINUS32, AMIGATEXT

ADH

ADD PIXEL ZOOM HEIGHT

Syntax: ADH = Pixel

Vergrößert bzw. verkleinert einen aktiven Effekt entsprechend dem Parameter <Pixel> in seiner Höhe. Dieser Befehl eignet sich insbesondere für exakte Größenangaben

FPS = 5

CAL = ALL + MUSIC

LEA = BOUNCE : IDN = 0

LAB = 1

   REP = 100
      ADH = 2 : NOP = 1
   LOP
   REP = 100
      ADH =-2 : NOP = 1
   LOP

JMP = 1

Effects: SINUS16, SINUS32, AMIGATEXT, MAGNIFYING, SPRITE, BOUNCER, LOGO

ADI

ADD IDENTIFER

Syntax: ADI = Value

Addiert den Parameter <Value> zur aktuellen IDN eines Effektes. Es können auch negative Werte übergeben werden. Dieser Befehl eignet sich insbesonder für das Austauschen von Multiplen Objekten.

FPS = 25

CAL = DISPLAY + MUSIC + 3DBALL

LEA = 3DBALL
IDN = 0
MVX = 0            ;Horizontale-Mitte des Screen
MVY = 0            ;Vertikale-Mitte des Screen
ADX = 320          ;Mitte + 320 Pixel

LAB = 1
   REP = 320 : ADX =-1 : NOP = 1 : LOP : NOP = 3
   REP = 320 : ADX = 1 : NOP = 1 : LOP : NOP = 3
   ADI =   1 : IFI > 7 : IDN = 0
JMP = 1 

Effects: BOUNCE, SCROLL, BORDER, COPPERBAR, SPRITE, MUSIC, 3DBALL, 3DVECTOR

ADS

ADD SPEED

Syntax: ADS = Value

Addiert den Parameter <Value> zur Ablauf-/Bewegungsgeschwindigkeit. Es können auch negative Werte übergeben werden. Dieser Befehl eignet sich insbesonder für flüssige Veränderungen in einer REP / LOP Schleife. Ebenfalls ist wie bei MVS darauf zu achten, daß nicht alle Effekte unterstützt werden!

FPS = 25

CAL = DISPLAY + MUSIC + BOUNCE

LEA = BOUNCE
   IDN = 0
   PSH

LAB = 1
   REP = 10 : ADS =  5 : LOP
   NOP = 3
   REP = 10 : ADS = -5 : LOP
   NOP 3
JMP = 1 

Effects: LOGO, BOUNCE, SCROLL, SINUS16, SINUS32

ADV

ADD MUSIC VOLUME

Syntax: ADV = Volume

Die Lautstärkes einer abzuspielenden Musikdatei wird um den Parameter <Volume> in Prozentwerten erhöht bzw. erniedrigt

CAL = ALL + DISPLAY

MVV = 0
CAL = MUSIC

FPS = 10

REP = 99
   ADV = 1
   NOP = 1
LOP

NOP = 50

REP = 99
   ADV =-1
   NOP = 1
LOP

FPS = 25

END

Effects: MUSIC

ADW

ADD PIXEL ZOOM WIDTH

Syntax: ADW = Pixel

Vergrößert bzw. verkleinert einen aktiven Effekt entsprechend dem Parameter <Pixel> in seiner Breite. Dieser Befehl eignet sich insbesondere für exakte Größenangaben

FPS = 5

CAL = ALL + MUSIC

LEA = SPRITE : IDN = 0

LAB = 1

   REP = 100
      ADW = 2 : NOP = 1
   LOP
   REP = 100
      ADW =-2 : NOP = 1
   LOP

JMP = 1 

Effects: SINUS16, SINUS32, AMIGATEXT, MAGNIFYING, SPRITE, BOUNCER, LOGO

ADX

ADD X-POSITION

Syntax: ADX = Value

Addiert den Parameter <Value> zur horizontalen Position. Es können auch negative Werte übergeben werden. Dieser Befehl eignet sich insbesonder für flüssige Positionsveränderungen in einer REP / LOP Schleife.

CAL = LOGO + DISPLAY + MUSIC

LEA = LOGO
PSH

LAB = 1
   REP = 400
      ADX = 1
      IFX > 400 : BRK
   LOP
   ADX = -400
JMP = 1 

Effects: LOGO, BACK, MASK, BOUNCE, SCROLL, SINUS16, SINUS32, 3DDIRECT, 3DBALL, 3DVECTOR, MAGNIFYING, PAGE, SPRITE, TRAINER

ADY

ADD Y-POSITION

Syntax: ADY = Value

Addiert den Parameter <Value> zur vertikalen Position. Es können auch negative Werte übergeben werden. Dieser Befehl eignet sich insbesonder für flüssige Positionsveränderungen in einer REP / LOP Schleife.

CAL = LOGO + DISPLAY + MUSIC

LEA = LOGO
PSH

LAB = 1
   REP = 300
      ADY = 1
      IFY > 300 : BRK
   LOP
   ADY = -300
JMP = 1 

Effects: LOGO, BACK, MASK, BOUNCE, SCROLL, SINUS16, SINUS32, BORDER, COPPERBAR, 3DDIRECT, 3DBALL, 3DVECTOR, MAGNIFYING, PAGE, SPRITE, TRAINER

ADZ

ADD Z-POSITION

Syntax: ADZ = Value

Addiert den Parameter <Value> zur Größen-/Entfernugsposition. Es können auch negative Werte übergeben werden. Dieser Befehl eignet sich insbesonder für flüssige Größen-/Entfernugsveränderungen in einer REP / LOP Schleife.

CAL = DISPLAY + MUSIC + 3DDIRECT

LEA = 3DDIRECT
   PSH
   MVZ = 1000

LAB = 1
   REP = 1000
      ADZ = -1
   LOP
   REP = 1000
      ADZ = 1
   LOP
JMP = 1 

Effects: BOUNCE, COPPERBAR, SINUS16, SINUS32, AMIGATEXT, 3DDIRECT, 3DBALL, 3DVECTOR, MAGNIFYING, SPRITE, LOGO

ARX

ADD ROTATION X-ANGLE

Syntax: ARX = Anglespeed

Erhöht bzw. veringert die Rotatitonsgeschwindigkeit eines Objekt nach Angabe des Parameter <Anglespeed> zur X-Achse. Werte von -360 bis 360 sind möglich.

CAL = DISPLAY + MUSIC + 3DBALL

LEA = 3DBALL
   MRX = 0

LAB = 1

   REP = 359
      ADX = 1
      NOP = 0
   LOP

   NOP = 10

   REP = 359
      ADX =-1
      NOP = 0
   LOP

   NOP = 10

JMP = 1

Effects: LOGO, SINUS16, SINUS32, 3DBALL, 3DVECTOR, 3DDIRECT

ARY

ADD ROTATION Y-ANGLE

Syntax: ARY = Anglespeed

Erhöht bzw. veringert die Rotatitonsgeschwindigkeit eines Objekt nach Angabe des Parameter <Anglespeed> zur Y-Achse. Werte von -360 bis 360 sind möglich.

CAL = DISPLAY + MUSIC + 3DVECTOR

LEA = 3DVECTOR
   MRY = 0

LAB = 1
   REP = 359 : ADY = 1 : NOP = 0 : LOP
   NOP = 10 
   REP = 179 : ADY =-2 : NOP = 0 : LOP
   NOP = 10
JMP = 1

Effects: LOGO, SINUS16, SINUS32, 3DBALL, 3DVECTOR, 3DDIRECT

ARZ

ADD ROTATION Z-ANGLE

Syntax: ARZ = Anglespeed

Erhöht bzw. veringert die Rotatitonsgeschwindigkeit eines Objekt nach Angabe des Parameter <Anglespeed> zur Z-Achse. Werte von -360 bis 360 sind möglich.

CAL = ALL + MUSIC

LEA = SPRITE
   IDN = 0 : MRZ = 0

LAB = 1
   NOP = 10
   REP = 44 : ADZ = 2 : NOP = 0 : LOP
   NOP = 10 
   REP = 89 : ADZ =-1 : NOP = 0 : LOP
JMP = 1 

Effects: LOGO, SINUS16, SINUS32, 3DBALL, 3DVECTOR, 3DDIRECT, SPRITE

BFX

BILINIAR 3D RENDER FX

Syntax: BFX = BitMask

Specifies a unique 3D DirectX Blending mode during rendering of effects. Over the binary parameter <BitMask> the mode is set. Possible values:

  • 0 = Turns off all modes.
  • 1 = Anti-Aliasing, is an effect similar to the median filter, reducing "dirty" pixels of a bitmap, which is particularly useful in animations, where the set transparent color does not exactly match the background color.
  • 2 = Alpha-Blending, in this case overlapping color values are displayed semi-transparent and fused together, which affects the light intensity of the color values. The higher a RGB value of background and foreground, the brighter the luminance.
  • 4 = Shader, this BitMask is intended only for the effect 3DVECTOR, causing an object at the respective side surfaces shine differently.
  • 8 = Wire, this BitMask is intended only for the 3DVECTOR effect and shows an object in wireframe mode.

Since the parameter <BitMask> is a binary value (0 =%0000, 1 = %0001, 2 = %0010, 4 = %0100, 8 = %1000) it is possible to combine multiple values, such as: 3 = %0011 eg switches Median fliter and alpha blending on and 15 = %1111 would turn on all modes!

CAL = ALL + MUSIC

LEA = 3DVECTOR : BFX = 4

LEA = 3DBALL   : BFX = 2

LEA = SPRITES
   IDN = 0 : MRZ = 4 : BFX = 3
   IDN = 1 : MRZ =-4 : BFX = 2 

END

Effects: LOGO, BACK, BOUNCE, SPRITE, MASK, 3DVECTOR, 3DBALL, MAGNIFYING, AMIGATEXT

CPH

CLONE COPY HEIGHT

Syntax: CPH = Height

The vertical distance in pixels between objects, which were cloned using either the CPX or CPY commands, can be adjusted with the CPH command, where the parameter <HEIGHT> specifies the exact distance in number of pixels to be applied.

CAL = DISPLAY + MUSIC + 3DVECTOR

LEA = 3DVECTOR

   PSH

   MVX = -222
   MVY = -172
   MVZ =  125

NOP = 5

   MVX = -468
   MVY = -346
   MVZ =  560
   CPX =    5
   CPY =    3
   CPW =   86
   CPH =  186

NOP = 5

   MVX = -358
   MVY = -272
   MVZ =  280
   CPW =   50
   CPH =  150

END

Effects: 3DBALL, 3DVECTOR, SPRITE

CPW

CLONE COPY WIDTH

Syntax: CPW = Width

The horizontal distance in pixels between objects, which were cloned using either the CPX or CPY commands, can be adjusted with the CPW command, where the parameter <WIDTH> specifies the exact distance in number of pixels to be applied.

CAL = DISPLAY + MUSIC
CAL = 3DBALL

LEA = 3DBALL

   MVX = -222
   MVY = -172
   MVZ =  125

NOP = 5

   MVX = -468
   MVY = -346
   MVZ =  560
   CPX =    5
   CPY =    3
   CPW =   86

NOP = 5

   MVX = -358
   MVY = -272
   MVZ =  280
   CPW =   50

END 

Effects: 3DBALL, 3DVECTOR, SPRITE

CPX

CLONE COPY X

Syntax: CPX = Number

This command allows the horizontal cloning of objects, meaning, parameter <Number> specifies the number of repitions (clones) or how many times an object is rendered in addition to the original, which can lead to interesting effects. It's important to note that the CPX command is currently only supported by the 3DBALL, 3DVECTOR and SPRITES effects. Furthermore its important to know that all pre-defined animated objects are being speed-up by the factor <NUMBER>. To avoid this from happing, its suggested to remove all animation commands in the to be cloned .OBJ and .VOBJ; 3DBALL and 3DVECTOR object definitions.

CAL = DISPLAY + MUSIC
CAL = 3DBALL

LEA = 3DBALL
   MVX = -222
   MVY = -172
   MVZ = 125

NOP = 5

   MVX = -468
   MVY = -346
   MVZ = 560
   CPX = 5
   CPY = 3
   CPW = 86

END 

Effects: 3DBALL, 3DVECTOR, SPRITE

CPY

CLONE COPY Y

Syntax: CPY = Number

This command allows the vertical cloning of objects, meaning, parameter <Number> specifies the number of repitions (clones) or how many times an object is rendered in addition to the original, which can lead to interesting effects. It's important to note that the CPY command is currently only supported by the 3DBALL, 3DVECTOR and SPRITES effects. Furthermore its important to know that all pre-defined animated objects are being speed-up by the factor <NUMBER>. To avoid this from happing, its suggested to remove all animation commands in the to be cloned .OBJ and .VOBJ; 3DBALL and 3DVECTOR object definitions.

CAL = DISPLAY + MUSIC
CAL = 3DVECTOR

LEA = 3DVECTOR
   MVX = 0
   MVY = 0
   MVZ = 125

NOP = 5

   MVX = -248
   MVY = -136
   MVZ = 560
   CPX = 5
   CPY = 3
   CPW = 86

END 

Effects: 3DBALL, 3DVECTOR, SPRITE

FLH

FLIP HORIZONTAL

Syntax: FLH

Das aktuelle Image wird horizontal gespiegelt. Nach Aufruf werden auch alle Anim-Frames angepasst. Dieser Befehl eignet sich insbesondere für seitenbegrenzte Bewegungsabläufe und dem unterstützenden Eindruck eines Richtungswechsels.

CAL =  ALL

LEA = SPRITE
   IDN = 0            ;Erste Animation als aktuell

LAB = 1
   REP = 320          ;Nach rechts laufen
      IFX > 640 : BRK
      ADX =   2 : NOP = 1
   LOP
   FLH 
   REP = 320          ;Nach links laufen
      IFX < 0 : BRK
      ADX =-2 : NOP = 1
   LOP
   FLH
JMP = 1 

Effects: BOUNCE, SPRITE

FLV

FLIP VERTICAL

Syntax: FLV

Das aktuelle Image wird vertikal gespiegelt. Nach Aufruf werden auch alle Anim-Frames angepasst. Dieser Befehl eignet sich insbesondere für höhenbegrenzte Bewegungsabläufe und dem unterstützenden Eindruck eines Richtungswechsels.

CAL = ALL + MUSIC

LEA = SPRITE
   IDN = 0            ;Erste Animation als aktuell

LAB = 1 
   REP = 240          ;Nach unten fallen 
      IFY > 480 : BRK  
      ADY =   2 : NOP = 1
   LOP 
   FLV
   REP = 240          ;Nach oben springen
      IFY < 0 : BRK
      ADY =-2 : NOP = 1
   LOP
   FLV
JMP = 1 

Effects: BOUNCE, SPRITE

IDC

IDENTIFER CLONE COPY

Syntax: IDC = Identifer 

Erstellt einen identischen Clone der aktuellen IDN welcher im Parameter <Identifer> angegeben werden muss. Sinn dieser Anweisung ist bei Effekten mit gleicher Grafik aber unterschiedlichen Positionen bzw. Dimensionen diese nicht wiederholt im Intro als Resource einzubinden. Der Vorteil liegt hierbei in der speichersparenden Anwendung da nur auf eine IDN zugegriffen wird, gleichzeitig aber unterschiedliche Darstellungen ermöglicht. Der Kompromis ist das FLH und FLV auf alle geklonten IDN 's Auswirkungen hat.

LEA = SPRITE

   IDN = 0 : MVX = 160 : MVZ = 100             ;IDN welche im folgenden ge-cloned wird  

   IDC = 1 : IDN = 1 : MVX = 240 : MVZ = 125   ;Clone IDN 1 = IDN 0  
   IDC = 2 : IDN = 2 : MVX = 320 : MVZ = 150   ;Clone IDN 2 = IDN 0
   IDC = 3 : IDN = 3 : MVX = 480 : MVZ = 175   ;Clone IDN 3 = IDN 0

CAL = ALL + MUSIC

END

Effects: SPRITE, BOUNCER

IDL

IDENTIFER LAYER ORDER

Syntax: IDL = Effect

Das aktuelle Image wJeder Effekt hat eine vordefinierte Layer - Reihenfolge in der er angezeigt wird ( ähnlich eines Daumenkinos ) . Dieses wird jeweils in der Regie ? Storyboard über die Tasten [A] bis [X] und [Cursor UP] / [Cursor DOWN] festgelegt. Um die Reihenfolge nachträglich zu ändern kann über den Parameter <Effect> der aktuell mittels LEA festgelegte Effekt und dessen Anzeigeposition ausgetauscht werden.

FPS = 15

CAL = DISPLAY +BACK + SPRITE + LOGO + MUSIC

LAB = 1 

   LEA = SPRITE : IDN = 0  ;Erste Sprite-ID als aktuell für Rep/Lop + IDL  

   REP = 160               ;Nach rechts bewegen 
      IFX > 640 : BRK  
      ADX =   4 : NOP = 1
   LOP

   IDL = BACK              ;Sprite und Hintergrund tauschen die Anzeigefolge 

   REP = 160               ;Nach links bewegen
      IFX < 0 : BRK
      ADX =-4 : NOP = 1
   LOP

   LEA = LOGO              ;Logo als aktuell für IDL
   IDL = BACK              ;Logo und Hintergrund tauschen die Anzeigefolge 

   NOP = 0

JMP = 1 

Effects: Alle

IDN

IDENTIFER

Syntax: IDN = Number

Einige Effekte bestehen aus einzelnen Teilbereichen, SCROLL aus 8 Textscrollern, BOUNCE aus bis zu 100 Bounce Bobs sowie LOGO (Frame Based) aus bis zu 64 Einzelbildern. Mit IDN kann jeweils ein Teilbereich für nachfolgende Angaben als aktuell markiert werden. Positionsangaben beziehen sich z.B. dann nur auf diesen einzelnen Bereich. Ausnahme ist hier MUSIC, nach Aufruf wird der in Keymap definierte Track abgespielt sowie das LOGO (Anim Frame Based), hier wird das Frame entsprechend der IDN nach Aufruf angezeigt, Positionsangaben beziehen sich auf das Gesamtbild. Dieses eignet sich für einen individuellen Bildwechsel. Desweiteren besteht die Möglichkeit einer Darstellung multipler 3D Ball- / Vector Objekte, auch hier definiert IDN ein integriertes Objekt als aktuell.

FPS = 25
CAL = ALL + DISPLAY + MUSIC

LEA = SCROLL          ;Bestimme Scroller für Effektzugriff
   IDN = 0            ;TextScroller 1
   MVY = 80           ;Vertikale Position auf 80
   MVS = -4           ;Von rechts nach links
   IDN = 1            ;TextScroller 2
   MVY = 120          ;Vertikale Position auf 120
   MVS = 5            ;Geschwindigkeit von links nach rechts
   IDN = 2            ;TextScroller 3
   MVY = 160          ;Vertikale Position auf 160
   MVS = -6           ;Geschwindigkeit von rechts nach links

LEA = LOGO
   MVS = 10000        ;Wartezeit bis Bildwechsel
LAB = 1
   IDN = 0 : NOP = 4  ;Frame 0 anzeigen und warten
   IDN = 1 : NOP = 4  ;Frame 1 anzeigen und warten
   IDN = 3 : NOP = 4  ;Frame 3 anzeigen ...
JMP = 1 

Effects: BOUNCE, SCROLL, BORDER, COPPERBAR, SPRITE, MUSIC, 3DBALL, 3DVECTOR, LOGO, AMIGATEXT

IFA

IF ALPHA TRANSPARENCY

Syntax: IFA >, =, < Value

Die IFA Anweisung kann zu Testzwecken verwendet werden ob ein Effekt einen bestimmten Transparenzwert <Alpha> = 0 - 255 besitzt. Sollte die Bedingung wahr sein wird die erste direkt folgende Anweisung ausgeführt, ansonsten wird sie übersprungen. Mögliche IFA Anweisungen sind : IFA > größer als <Alpha>, IFA < kleiner als <Alpha> und IFA = gleich <Alpha>.

Sie macht sich besonders brauchbar innerhalt von Schleifenanweisungen die die Transparenz eines Objektes mit ADA oder MVA manipulieren.

REP = 200
   ADA = -2
   IFA = 0 : BRK
LOP

Effects: LOGO, BACK, MASK, SINUS16, SINUS32, 3DDIRECT, 3DBALL, 3DVECTOR, MAGNIFYING, PAGE, SPRITE, TRAINER

IFI

IF IDENTIFER

Syntax: IFI >, =, < Value

Die IFI Anweisung kann zu Testzwecken verwendet werden ob sich ein Teilbereich eines Effekt innerhalb vordefinierter Angaben befindet. Insbesondere von Bedeutung bei der Verwendung von multiplen Objekten, Sprites etc. Sollte die Bedingung wahr sein wird die erste direkt folgende Anweisung ausgeführt, ansonsten wird sie übersprungen. Mögliche IFI Anweisungen sind : IFI > größer als <Value>, IFI < kleiner als <Value> und IFI = gleich <Value>.

FPS = 0
CAL = ALL + DISPLAY + MUSIC

LEA = SPRITES

LAB = 1
   ADI = 1
   IFI > 6 : JMP = 2
   NOP = 2
JMP = 1

LAB = 2
   ADI = -1
   IFI < 0 : JMP = 1
   NOP = 2
JMP = 2 

Effects: BOUNCE, SCROLL, BORDER, COPPERBAR, SPRITE, MUSIC, 3DBALL, 3DVECTOR

IFX

IF X-POSITION

Syntax: IFX >, =, < Value

Die IFX Anweisung kann zu Testzwecken verwendet werden ob sich ein Effekt in einem horizontalen Bereich <Value> befindet. Sollte die Bedingung wahr sein wird die erste direkt folgende Anweisung ausgeführt, ansonsten wird sie übersprungen. Mögliche IFX Anweisungen sind : IFX > größer als <Value>, IFX < kleiner als <Value> und IFX = gleich <Value>.

FPS = 0
CAL = ALL + DISPLAY + MUSIC

LEA = LOGO

LAB = 1
   ADX = 4
   IFX > 640 : JMP = 2
   NOP = 0
JMP = 1

LAB = 2
   ADX = -4
   IFX < 0 : JMP = 1
   NOP = 0
JMP = 2 

Effects: LOGO, BACK, MASK, SINUS16, SINUS32, AMIGATEXT, 3DDIRECT, 3DBALL, 3DVECTOR, MAGNIFYING, PAGE, SPRITE, TRAINER

IFY

IF Y-POSITION

Syntax: IFY >, =, < Value

Die IFY Anweisung kann zu Testzwecken verwendet werden ob sich ein Effekt in einem vertikalen Bereich <Value> befindet. Sollte die Bedingung wahr sein wird die erste direkt folgende Anweisung ausgeführt, ansonsten wird sie übersprungen. Mögliche IFY Anweisungen sind : IFY > größer als <Value>, IFY < kleiner als <Value> und IFY = gleich <Value>. Darstellungen werden erst aktualisiert nach einer LOP bzw. TIM und NOP Anweisung.

FPS = 0
CAL = ALL + DISPLAY + MUSIC

LEA = LOGO

LAB = 1
   ADY = 4
   IFY > 480 : JMP = 2
   NOP = 0
JMP = 1

LAB = 2
   ADY = -4
   IFY < 0 : JMP = 1
   NOP = 0
JMP = 2 

Effects: LOGO, BACK, MASK, SINUS16, SINUS32, AMIGATEXT, COPPERBAR, 3DDIRECT, 3DBALL, 3DVECTOR, MAGNIFYING, PAGE, SPRITE, TRAINER

IFZ

IF Z-POSITION

Syntax: IFZ >, =, < Value

Die IFZ Anweisung kann zu Testzwecken verwendet werden ob sich ein Effekt in einem entfernten Bereich <Value> befindet, bzw. bei SINUS16 / 32 eine im Parameter definierte Größe ereicht hat. Sollte die Bedingung wahr sein wird die erste direkt folgende Anweisung ausgeführt, ansonsten wird sie übersprungen. Mögliche IFZ Anweisungen sind : IFZ > größer/entfernter als <Value>, IFZ < kleiner/näher als <Value> und IFZ = gleich <Value>.

FPS = 0
CAL = ALL + DISPLAY + MUSIC

LEA = 3DDIRECT

LAB = 1
   ADZ = 32
   IFZ > 64 : JMP = 2
   NOP = 0
JMP = 1

LAB = 2
   ADZ = -32
   IFZ < 0 : JMP = 1
   NOP = 0
JMP = 2 

Effects: SINUS16, SINUS32, AMIGATEXT, 3DDIRECT, 3DBALL, 3DVECTOR, MAGNIFYING, SPRITE

LEA

LOAD EFFECT ACCESS

Syntax: LEA = Effect

Initiert einen Effektzugriff. Es kann jeweils nur der aktuelle Effekt nach diesen Befehl in der Position etc. verändert werden. Der Effektzugriff bleibt solange aktuell bis ein neuer Effekt über LEA vorbereitet wird.

FPS = 25
CAL = ALL + DISPLAY + MUSIC

LAB = 1

   LEA = LOGO

      ADX = 2
      IFX > 640 : MVX = -200

      ADY = 1
      IFY > 480 : MVY = -100

   LEA = BORDER

      IDN =   0 : ADY = 1
      IFY > 240 : MVY = 40

      IDN =   1 : ADY = -1
      IFY < 240 : MVY = 440

JMP = 1 

Effects: Alle

MAX

MOVE ANGLE X-DEGREE

Syntax: MAX = Angle

Dreht einen Effekt auf der X-Achse entsprechend der Angabe des Parameter <Angle>. Werte von -360 bis 360 sind möglich.

CAL = DISPLAY + MUSIC + 3DBALL

LEA = 3DBALL 
   MAX = 270
   NOP =   5
   MAX =-270
   NOP =   5
   MAX =   0

END

Effects: SINUS16, SINUS32, 3DBALL, 3DVECTOR, 3DDIRECT, STARS

MAY

MOVE ANGLE Y-DEGREE

Syntax: MAY = Angle

Dreht einen Effekt auf der Y-Achse entsprechend der Angabe des Parameter <Angle>. Werte von -360 bis 360 sind möglich

CAL =  ALL + MUSIC

LEA =  STARS
   MAY = 270
   NOP =   5
   CLS =   3
   MAY =-270
   NOP =   5
   CLS =   3
   MAY =   0

END

Effects: SINUS16, SINUS32, 3DBALL, 3DVECTOR, 3DDIRECT, STARS

MAZ

MOVE ANGLE Z-DEGREE

Syntax: MAZ = Angle

Dreht einen Effekt auf der Z-Achse entsprechend der Angabe des Parameter <Angle>. Werte von -360 bis 360 sind möglich.

CAL = DISPLAY + MUSIC + SPRITE 

LEA = SPRITE 
   IDN = 0 : MAZ =-90
   CPI = 1
   IDN = 1 : MAZ = 45

END

Effects: LOGO, SINUS16, SINUS32, SPRITE, 3DBALL, 3DVECTOR, 3DDIRECT, STARS

MRX

MOVE ROTATION X-DEGREE

Syntax: MRX = Anglespeed

Rotiert ein Objekt nach Angabe des Parameter <Anglespeed> dauerhaft zur X-Achse entsprechend der übergebenen Geschwindigkeit. Werte von -360 bis 360 sind möglich

CAL = DISPLAY + MUSIC + 3DBALL

LEA = 3DBALL 
   MRX =-10
   NOP = 10
   MRX =  0
   NOP = 10
   MRX = 15

END

Effects: LOGO, SINUS16, SINUS32, 3DBALL, 3DVECTOR, 3DDIRECT, STARS

MRY

MOVE ROTATION Y-DEGREE

Syntax: MRY = Anglespeed

Rotiert ein Objekt nach Angabe des Parameter <Anglespeed> dauerhaft zur Y-Achse entsprechend der übergebenen Geschwindigkeit. Werte von -360 bis 360 sind möglich.

CAL = DISPLAY + MUSIC + 3DVECTOR

LEA = 3DVECTOR

LAB = 1
   NOP = 10 
   MRY = 16
   NOP = 10
   MRY =  0
   NOP = 10
   MRY =-16 
JMP = 1

Effects: LOGO, SINUS16, SINUS32, 3DBALL, 3DVECTOR, 3DDIRECT, STARS

MRZ

MOVE ROTATION Z-DEGREE

Syntax: MRZ = Anglespeed

Rotiert ein Objekt nach Angabe des Parameter <Anglespeed> dauerhaft zur Z-Achse entsprechend der übergebenen Geschwindigkeit. Werte von -360 bis 360 sind möglich.

CAL = DISPLAY + MUSIC + SPRITE

LEA = SPRITE
   IDN = 0 : MRZ =-8
   IDN = 1 : MRZ = 8

END

Effects: LOGO, SINUS16, SINUS32, SPRITE, 3DBALL, 3DVECTOR, 3DDIRECT, STARS

MVA

MOVE ALPHA-TRANSPARENCY

Syntax: MVA = Value

Bestimmt den Alpha-Transparenzwert eines Effekt. Als Parameter <Value> muss ein Wert von 0 (nicht sichtbar) bis zu 255 (vollständig eingeblendet) übergeben werden. Ebenfalls ist wie bei ADA darauf zu achten, daß nicht alle Effekte unterstützt werden!

FPS = 25

CAL = DISPLAY + MUSIC + SPRITE

LEA = SPRITE
   IDN = 0 : MVA =  64
   IDN = 1 : MVA = 128
   IDN = 2 : MVA = 255

END 

Effects: LOGO, BOUNCE, SPRITE, MASK

MVC

MOVE COPPER SPEED

Syntax: MVC = Value

Verändert die Bewegungsgeschwindigkeit eines Copper Effektes. Der Parameter <Value> bestimmt die Geschwindigkeit und Richtung. Wichtig ist zu beachten, daß ein jeweiliger Copper FX im OSDM voreingestellt ist!

CAL = DISPLAY + MUSIC
CAL = SINUS32

LEA = SINUS32

LAB = 1
   MVC = 10
   NOP = 5
   MVC = -10
   NOP = 5
JMP = 1 

Effects: LOGO, BORDER, COPPERBAR, SINUS16, SINUS32, AMIGATEXT

MVH

MOVE PIXEL ZOOM HEIGHT

Syntax: MVH = Pixel

Vergrößert bzw. verkleinert einen aktiven Effekt entsprechend dem Parameter <Pixel> in seiner Höhe. Dieser Befehl eignet sich insbesondere für exakte Größenangaben. Entgegen MVZ ist die Veränderung nicht proportional.

CAL = ALL + MUSIC

LEA = SINUS32
   IDN =   0
   NOP =   5
   MVH =  50
   NOP =   5
   MVH = 200
   NOP =   5
   MVH = 100

END

Effects: SINUS16, SINUS32, AMIGATEXT, MAGNIFYING, SPRITE, BOUNCER , LOGO

MVS

MOVE SPEED

Syntax: MVS = Speed

Verändert die Ablauf-/Bewegungsgeschwindigkeit eines Effektes. Da nicht alle Effekte in diesen Bereich veränderbar sind, sollte eine Anwendung zunächst auf einzelne Effekte überprüft werden.

CAL = DISPLAY + MUSIC
CAL = BOUNCE

LEA = BOUNCE
   IDN = 0

LAB = 1
   MVS = 20
   NOP = 5
   MVS = 10
   NOP = 5
   MVS = 0
   NOP = 6
JMP = 1 

Effects: LOGO, BOUNCE, SCROLL, SINUS16, SINUS32, AMIGATEXT

MVV

MOVE MUSIC VOLUME

Syntax: MVV = Volume

Mittels MVV wird die Lautstärkes einer abzuspielenden Musikdatei bestimmt. Der Parameter <Volume> wird in Prozentwerten von 0 = nichts hörbar bis 100 = volle Lautstärke angegeben.

CAL = ALL + DISPLAY

MVV = 0
CAL = MUSIC

NOP = 5 : MVV =  25
NOP = 5 : MVV =  50
NOP = 5 : MVV = 100

END

Effects: MUSIC

MVW

MOVE PIXEL ZOOM WIDTH

Syntax: MVW = Pixel

Sets the absolute <Pixel> width of the active effect. This command is especially useful for precise object sizing, because unlike the MVZ, the change is not proportional.

CAL = ALL + MUSIC

LEA = SPRITE
   IDN = 0
   MVZ = 200
   NOP =   5
   MVW = 100

END

Effects: SINUS16, SINUS32, AMIGATEXT, MAGNIFYING, SPRITE, BOUNCER, LOGO

MVX

MOVE X-POSITION

Syntax: MVX = X Position

Sets the absolute horizontal (X-Axis) position of the active effect. Negative values are supported as well.

CAL = LOGO + DISPLAY + MUSIC

LEA = LOGO
LAB = 1
   MVX =  70 : NOP = 6
   MVX = 410 : NOP = 6
JMP = 1 

Effects: LOGO, BACK, MASK, BOUNCE, SCROLL, SINUS16, SINUS32, 3DDIRECT, 3DBALL, 3DVECTOR, MAGNIFYING, PAGE, SPRITE, TRAINER

MVY

MOVE Y-POSITION

Syntax: MVY = Y Position

Sets the absolute vertical (Y-Axis) position of the active effect. Negative values are supported as well.

CAL = LOGO + DISPLAY + MUSIC

LEA = LOGO
LAB = 1
   MVY =  70 : NOP = 6
   MVY = 400 : NOP = 6
JMP = 1 

Effects: LOGO, BACK, MASK, BOUNCE, SCROLL, SINUS16, SINUS32, BORDER, COPPERBAR, 3DDIRECT, 3DBALL, 3DVECTOR, MAGNIFYING, PAGE, SPRITE, TRAINER

MVZ

MOVE Z-POSITION

Syntax: MVZ = Z Position

Enlarges or Reduces the display size of the active effect. The actual results of this command vary depending on the type of effect. The parameter <Z Position> for example, is interpreted by the AMIGATEXT, SINUS16 / 32 effects as a percentage figure, while by 3D objects the absolute (Z Axis) distance property is changed. The higher the value, the further away the object will be located.

CAL = DISPLAY + MUSIC
CAL = 3DDIRECT + SINUS32

LAB = 1
   LEA = 3DDIRECT
      MVZ = 470
   LEA = SINUS32
      MVZ = 300
   NOP = 6
   LEA = 3DDIRECT
      MVZ = 40
   LEA = SINUS32
      MVZ = 30
   NOP = 6
JMP = 1 

Effects: BOUNCE, COPPERBAR, SINUS16, SINUS32, AMIGATEXT, 3DDIRECT, 3DBALL, 3DVECTOR, MAGNIFYING, SPRITE, LOGO

PSH

PUSH

Syntax: PSH

Refreshes the X, Y, Z, S properties of the efect with was activated via the LEA commands. This is especially of importance during the intro-creation at first time use of any AD(xyzs) positioning, if position parameters in debug-export mode are checked against values of the enabled "show info" option. This command is not really required and primarilly used for debugging and property verification.

CAL = 3DBALL + DISPLAY

LEA = 3DBALL
PSH

LAB = 1
   REP = 200
      ADX = 1
      ADY = 1
      ADZ = 1
      ADS = 1
   LOP
   REP = 200
      ADX = -1
      ADY = -1
      ADZ = -1
      ADS = -1
   LOP
JMP = 1 

Effects: All

RFX

RANDOM FX

Syntax: RFX = Max.Effectmode

Randomly changes the active effect mode. The option parameter <Max.Effectmode> sets the maximum value of the effect mode available for random selection. The helps with restricting possible effect modes from being selected. The effect modus is defined by the pre-set options range starting at 0 - #Num.Effects. The LOGO Effect Mode 7 for example defines the "Pulse Fadeout". If this limit would be set, only effect modes between 0-7 would be randomly selected, but 8 - .. etc. not.

CAL = LOGO + DISPLAY + MUSIC

LEA = LOGO
LAB = 1
   SFX = 7
   NOP = 6
   RFX = 10
   NOP = 6
JMP = 1 

Effects: LOGO, AMIGATEXT, EQUALIZER

SFX

SET FX

Syntax: SFX = Effectmode

Changes the active effect mode for the active feature/effect (if available). Effects that support multiple effect modes are for example: LOGO, C64 BACK, EQUALIZER, AMIGATEXT and SPRITE.

FPS = 25
CAL = LOGO + DISPLAY

LEA = LOGO

LAB = 1
   SFX = 0 : NOP = 5
   SFX = 3 : NOP = 5
   SFX = 4 : NOP = 5
JMP = 1 

Effects: LOGO, AMIGATEXT, EQUALIZER, SPRITE

 

MISC

CLS

COLOR SCREEN FLASH

Syntax: CLS = Timespeed

This statement causes flashing of the display. The <TimeSpeed> parameter determines the duration of the effect. Via the RGB command above a corresponding color value can be set in which color flashing is carried out. The default coloris black, if nothing other was specified. The flash is only supported if the OSDM main program option "display \ Screen Fading" is set!

FPS = 25

CAL = DISPLAY + MUSIC 

RGB= $EFF 

LAB = 1 

   CAL = LOGO : NOP = 5

   CLS = 3

   STP = LOGO
   CAL = BACK : NOP = 5

   CLS = 3

   STP = BACK 

JMP = 1

END

END OF SCRIPT

Syntax: END

With this command, the script execution is completed; all subsequent statements are not being executed! This is particularly important if a final sequence of an intro is permanently displayed and CPU resources are to be saved.

FPS = 25
CAL = ALL + DISPLAY + MUSIC

LEA = SCROLL
   IDN =  0
   MVS = -4

END 

ESC

ESCAPE INTRO

Syntax: ESC

This command ends the intro without pressing the [ESC] key and return to the desktop. This command is especially useful for time-limited intros or for a time-based exit of individual intros that are part of a Mega-tro.

FPS = 25
CAL = LOGO + MUSIC

LEA = AMIGATEXT
   SFX = 17

TRS = 0
TIM = 12
STP = LOGO

CAL = AMIGATEXT + STARS
CAL = BORDER + SCROLL
NOP = 20

ESC

IFR

IF RANDOM

Syntax: IFR >, =, < Value

The IFR instruction generated at each call a random value and compares it with <value>. If the condition is "true" the immediately following statement is being executed. If the random value false <value>, the subsequent instruction is executed instead. The higher the value of <value>, the less probable is the execution of the true condition. Possible IFR instructions are: IFR> greater than <value>, IFR <less than <Value> and IFR = equal to <value>.

FPS = 25
CAL = ALL + DISPLAY + MUSIC

LEA = SPRITE

LAB = 1
   IDN = 0 : IFR < 8 : JSR = 2  ;Probability = 1:2
   IDN = 1 : IFR = 8 : JSR = 2  ;Probability = 1:20
   IDN = 2 : IFR > 8 : JSR = 2  ;Probability = 1:2
   NOP = 0
JMP = 1

LAB = 2
   IFX > 650 : MVX = -10
   IFR >  10 : ADX = 2
RTS

RGB

RED GREEN BLUE

Syntax: RGB = $Color

This indirect statement determines a color value using the <$ Color> in which the screen fading or the CLS statement is being executed. It is recommended to use hexadecimal values as parameter, because these are easier to read than decimal values. Values from $000 (Black) to $FFF (White) are supported.

RGB = $F00 : CLS = 3       ;RGB = Red

LAB = 1 

   CAL = LOGO : NOP = 5

   RGB = $0F0 : CLS = 3    ;RGB = Green

   STP = LOGO
   CAL = BACK : NOP = 5

   RGB = $00F : CLS = 3    ;RGB = Blue

   STP = BACK 

JMP = 1 
 

Macro

Macroinstruction

COLOR SCREENFLASH

Syntax: @MACRONAME 
        [...] 
         @END 

Macros provide the ability to define a frequently occurring code sequence as a form of placeholder. In simple terms, it is the means to program your own complex commands, because up to 10 (/ 0 - / 9) custom parameters can be passed. These parameters are exactly replaced at execution time by the passed values. Thus it is possible to declare the parameters effects, label numbers, etc.

Another and not to be underestimated advantage is the better readability and an extensive modification to the code itself without much effort. Macros should always be defined at the beginning of a script and can be named freely. Important Note that macros must always prefixed with the character "@" and finished with "END"! The macro placeholder is then replaced with the appropriate content and values at compilation time of the script.

@SimpleADXYZ
   ADX = 1 : ADY = 1 : ADZ = 1
@END

@MyADXYZ
   LEA = /0
   IDN = /1
   ADX = /2 : ADY = /3 : ADZ = /4
@END

@MyReset
   LEA = /0
   IDN = /1
   MVX = 320 : MVY = 240 : MVZ = 100
@END

FPS = 10
CAL = ALL + MUSIC

REP = 200
   LEA = SPRITE
      IDN = 0
      @SimpleADXYZ
   LEA = BOUNCE
      IDN = 2
      @SimpleADXYZ
   NOP = 1
LOP

@MyReset = SPRITE, 0
@MyReset = BOUNCE, 2

REP = 200
   @MyADXYZ = SPRITE, 0,  2, 2,20
   @MyADXYZ = BOUNCE, 2,-20,60,-2
   NOP = 1
LOP

END

Vertical and Horizontal Screen Fade IN/OUT Macros

Vertical Fader

Sprite 7 = BlackRGB1-1-1_MASK.png
7 is the top most sprite and blends over all other sprites if sprites are also part of the current scene

Make Sure "Sprite" is on top of all other visible effects in Storyboard. If not, switch it temporarely with an unused one that is high enough. You could for example position "Trainer" as Top-Most Effect and always use that one for the switch

 @FADEIV
   or
 @FADEOV

Example with Switching Storyboard position with "Trainer"

 LEA=SPRITE : IDL=TRAINER
 @FADEIV
 IDL=TRAINER

Uses RGB 1,1,1 Sprite at Slot 7 to create Vertical fade-in Effect. Sprite 7 is cloned into virtual slots 8 to 15

@FADEIV
  LEA=SPRITE : IDN=7 : BFX=2 : MVA=255 : MVW=640 : MVH=480 : MVX=320 : MVY=240
  IDC=8 : MVA=225 : MVH=20 : MVY=-10 
  IDC=9  : MVA=195 : MVY=-30 : IDC=10 : MVA=165 : MVY=-50
  IDC=11 : MVA=135 : MVY=-70 : IDC=12 : MVA=105 : MVY=-90
  IDC=13 : MVA=75 : MVY=-110 : IDC=14 : MVA=45 : MVY=-130
  IDC=15 : MVA=15 : MVY=-150 
  REP=80
    IDN=7  : ADY=6 : IDN=8  : ADY=6 : IDN=9  : ADY=6 : IDN=10 : ADY=6
    IDN=11 : ADY=6 : IDN=12 : ADY=6 : IDN=13 : ADY=6 : IDN=14 : ADY=6
    IDN=15 : ADY=6
  LOP
  IDN=7  : MVA=0 : IDN=8  : MVA=0 : IDN=9  : MVA=0 : IDN=10 : MVA=0
  IDN=11 : MVA=0 : IDN=12 : MVA=0 : IDN=13 : MVA=0 : IDN=14 : MVA=0
  IDN=15 : MVA=0
@END

Uses RGB 1,1,1 Sprite at Slot 7 to create Vertical fade-out Effect. Sprite 7 is cloned into virtual slots 8 to 15

@FADEOV
  LEA=SPRITE : IDN=7 : BFX=2 : MVA=255 : MVW=640 : MVH=520 : MVX=320 : MVY=-365
  IDC=8 : MVA=15 : MVH=14 : MVY=-7 : IDC=9 : MVA=45 : MVY=-21
  IDC=10 : MVA=75 : MVY=-35 : IDC=11 : MVA=105 : MVY=-49
  IDC=12 : MVA=135 : MVY=-63 : IDC=13 : MVA=165 : MVY=-77
  IDC=14 : MVA=195 : MVY=-91 : IDC=15 : MVA=225 : MVY=-105
  REP=180
    IDN=7  : ADY=3 : IDN=8  : ADY=3 : IDN=9  : ADY=3 : IDN=10 : ADY=3
    IDN=11 : ADY=3 : IDN=12 : ADY=3 : IDN=13 : ADY=3 : IDN=14 : ADY=3
    IDN=15 : ADY=3
  LOP
@END

Horizontal Fader

Sprite 7 = BlackRGB1-1-1_MASK.png
7 is the top most sprite and blends over all other sprites if sprites are also part of the current scene

Make Sure "Sprite" is on top of all other visible effects in Storyboard. If not, switch it temporarely with an unused one that is high enough. You could for example position "Trainer" as Top-Most Effect and always use that one for the switch

 @FADEIN
   or
 @FADEOUT

Example with Switching Storyboard position with "Trainer"

 LEA=SPRITE : IDL=TRAINER
 @FADEIN
 IDL=TRAINER

Uses RGB 1,1,1 Sprite at Slot 7 to create horizontal fade-in Effect. Sprite 7 is cloned into virtual slots 8 to 15

@FADEIN
  LEA=SPRITE : IDN=7 : MVA=255 : BFX=2
  MVW=640 : MVH=480 : MVX=320 : MVY=240
  IDC=8  : MVA=225 : MVW=20 : MVX=-10
  IDC=9  : MVA=195 : MVX=-30  : IDC=10 : MVA=165 : MVX=-50
  IDC=11 : MVA=135 : MVX=-70  : IDC=12 : MVA=105 : MVX=-90
  IDC=13 : MVA=75  : MVX=-110 : IDC=14 : MVA=45  : MVX=-130
  IDC=15 : MVA=15  : MVX=-150
  REP=80
    IDN=7  : ADX=8 : IDN=8  : ADX=8 : IDN=9  : ADX=8
    IDN=10 : ADX=8 : IDN=11 : ADX=8 : IDN=12 : ADX=8
    IDN=13 : ADX=8 : IDN=14 : ADX=8 : IDN=15 : ADX=8
  LOP
  IDN=7  : MVA=0 : IDN=8  : MVA=0 : IDN=9  : MVA=0
  IDN=10 : MVA=0 : IDN=11 : MVA=0 : IDN=12 : MVA=0
  IDN=13 : MVA=0 : IDN=14 : MVA=0 : IDN=15 : MVA=0
@END

Uses RGB 1,1,1 Sprite at Slot 7 to create horizontal fade-out Effect. Sprite 7 is cloned into virtual slots 8 to 15

@FADEOUT
  LEA=SPRITE : IDN=7 : MVA=255  : BFX=2
  MVW=640 : MVH=480 : MVX=-425 : MVY=240
  IDC=8  : MVA=15  : MVW=14  : MVX=-7
  IDC=9  : MVA=45  : MVX=-21 : IDC=10 : MVA=75  : MVX=-35
  IDC=11 : MVA=105 : MVX=-49 : IDC=12 : MVA=135 : MVX=-63
  IDC=13 : MVA=165 : MVX=-77 : IDC=14 : MVA=195 : MVX=-91
  IDC=15 : MVA=225 : MVX=-105
  REP=160
    IDN=7  : ADX=4 : IDN=8  : ADX=4 : IDN=9  : ADX=4 
    IDN=10 : ADX=4 : IDN=11 : ADX=4 : IDN=12 : ADX=4
    IDN=13 : ADX=4 : IDN=14 : ADX=4 : IDN=15 : ADX=4
  LOP
@END

Files

Back to OSDM Section Home