»ÆaÒ»¼¶Å·ÃÀ

    1. <form id=WPsKxdHZD><nobr id=WPsKxdHZD></nobr></form>
      <address id=WPsKxdHZD><nobr id=WPsKxdHZD><nobr id=WPsKxdHZD></nobr></nobr></address>

      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

       


      HoME»ÆaÒ»¼¶Å·ÃÀ