(******************************************************************************) (* This MODULE is Public Domain. Copy me like a beast! *) (* Christian Ledermann *) (* W”lfelkofen 2 *) (* 84166 Adlkofen *) (******************************************************************************) (* *) (* Started: 20.12.92 03:54:30 *) (* Version: 20.12.89 01:054:12:54 *) (* *) (******************************************************************************) (* *) (* Diese Software ist ohne jede Garantie. Ich verspreche *) (* keinerlei Wartung und bernehme keine Verantwortung fr Sch„den die *) (* durch die Benutzung dieses Programmes entstehen. *) (* Jegliche Ersatzansprche lehne ich ab. *) (* *) (******************************************************************************) DEFINITION MODULE Sounds; (************************************************************************) (* Soundprogramiereung ganz einfach ! *) (* „hnlich wie in OMIKRON o. GFA Basic *) (* Christian Ledermann 4/93 *) (************************************************************************) TYPE ChanelFlag = (OneOff,TwoOff,ThreeOff); Chanel = SET OF ChanelFlag; CONST AllOn = Chanel{}; AllOff = Chanel{OneOff..ThreeOff}; (* Kanal:= Kanal 1..3 des Soundchips *) (* 125000 / Frequenz := Periode *) PROCEDURE Sound(Kanal,Periode:CARDINAL);(* Periode 0..4095 *) (* Hllkurve 1..3,9 linear fallend dann 0 \____ *) (* Hllkurve 4..7,15 linear steigend dann 0 /|____ *) (* Hllkurve 8 S„gezahn steigend \|\|\|\ *) (* Hllkurve 10 Dreieck anfangs Fallend \/\/\/\ *) (* " 11 linear fallend dann laut \|----- *) (* " 12 S„gezahn steigend /|/|/|/| *) (* " 13 linear steigend dann laut /----- *) (* " 14 Dreieck anfangs steigend /\/\/\ *) PROCEDURE Wave(Kanal,(*Hll-*)Kurve, Dauer :CARDINAL); (* Dauer: Werte von 0..65536 m”glich *) PROCEDURE Volume(Kanal,Vol:CARDINAL); (* Werte von 0..15 m”glich *) PROCEDURE Noise(Hoehe:CARDINAL); (* Werte von 0..31 m”glich *) PROCEDURE SetSoundAndNoise(NoiseChanels,SoundChanels:Chanel); (* Mit NoiseChanels bzw SoundChanels wird angegeben *) (* welche der Ton- oder Rauschkan„le ausgeschaltet !! *) (* werden *) (* Zu jedem Tonkanal kann Rauschen dazugemischt werden *) PROCEDURE SoundAndNoiseOnOff(NoiseFlag,SoundFlag:CARDINAL); (* Eigendlich dieselbe PROCEDURE wie SetSoundAndNoise *) (* Nur das hier ein CARDINAL anstelle des SETs *) (* bergeben wird. *) (* KanalFlag := 0 => Kanal 1, 2 u. 3 an *) (*000*) (* KanalFlag := 1 => Kanal 1 aus, 2 u. 3 an *) (*001*) (* KanalFlag := 2 => Kanal 2 aus, 1 u. 3 an *) (*010*) (* KanalFlag := 3 => Kanal 1 u. 2 aus, 3 an *) (*011*) (* KanalFlag := 4 => Kanal 3 aus, 1 u. 2 an *) (*100*) (* KanalFlag := 5 => Kanal 1 u. 3 aus, 2 an *) (*101*) (* KanalFlag := 6 => Kanal 3 u. 2 aus, 1 an *) (*110*) (* KanalFlag := 7 => Kanal 1, 2 u. 3 aus *) (*111*) END Sounds.