soundeff.def
来自「Welcome to PMOS. PMOS is a set of module」· DEF 代码 · 共 57 行
DEF
57 行
DEFINITION MODULE SoundEffects;
(****************************************************************)
(* *)
(* Procedures to produce audible output. *)
(* *)
(* Note that this is a low-level output module, in that the *)
(* method of specifying note frequencies is defined in terms *)
(* of what is convenient for the hardware rather than what is *)
(* convenient for the user. The higher-level features are *)
(* provided in module Music. *)
(* *)
(* Programmer: P. Moylan *)
(* Last edited: 28 May 1989 *)
(* *)
(* Status: *)
(* Seems to be working. *)
(* *)
(****************************************************************)
FROM Semaphores IMPORT
(* type *) Semaphore;
TYPE Note = RECORD
period, duration: CARDINAL;
END (*RECORD*);
(* The "period" field of a note record specifies the note frequency *)
(* indirectly, by specifying a divisor for the 1.193 MHz main clock *)
(* frequency. The "duration" is measured in milliseconds. *)
PROCEDURE Play (VAR (*IN*) playdata: ARRAY OF Note;
VAR (*INOUT*) done: Semaphore);
(* Adds the array to the list of music queued up waiting to be *)
(* played. The actual playing occurs automatically, after the end *)
(* of anything earlier in the queue. The output is asynchronous, *)
(* in the sense that we return from this procedure before the *)
(* playing is over, and perhaps even before it has started. The *)
(* array playdata must remain undisturbed until the caller receives *)
(* a Signal on semaphore "done". That is, the caller must perform *)
(* a Wait(done) before re-using or destroying the playdata. Note *)
(* that a procedure return will destroy playdata if it happens to *)
(* be a local variable of that procedure. *)
(* A duration code of 0 indicates the end of the data, in cases *)
(* where the data do not fill the entire array. *)
(* A period code of 1, with a nonzero duration, produces silence *)
(* for the requested duration. *)
PROCEDURE Beep;
(* Produces a short "beep" noise. *)
END SoundEffects.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?