Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
51
Task/Morse-code/PL-I/morse-code.pli
Normal file
51
Task/Morse-code/PL-I/morse-code.pli
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
/* Sound Morse code via the PC buzzer. June 2011 */
|
||||
MORSE: procedure options (main);
|
||||
declare (i, j) fixed binary;
|
||||
declare buzz character (1) static initial ('07'x);
|
||||
declare text character (100) varying,
|
||||
c character (1);
|
||||
declare alphabet character (36) static initial (
|
||||
'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789');
|
||||
declare morse_character character(5) varying;
|
||||
declare morse_codes(36) character(5) varying static initial (
|
||||
/* Letters A-Z */
|
||||
'.-', '-...', '-.-.', '-..', '.',
|
||||
'..-.', '--.', '....', '..', '.---',
|
||||
'-.-', '.-..', '--', '-.', '---',
|
||||
'--.-', '--.-', '.-.', '...', '-',
|
||||
'..-', '...-', '.--', '-..-', '-.--',
|
||||
'--..',
|
||||
/* Digits 0-9 */
|
||||
'-----', '.----', '..---', '...--', '....-',
|
||||
'.....', '-....', '--...', '---..', '----.' );
|
||||
|
||||
put skip list ('Please type the text to be transmitted:');
|
||||
get edit (text) (L);
|
||||
|
||||
do i = 1 to length (text);
|
||||
c = substr(text, i, 1);
|
||||
j = index(alphabet, uppercase(c));
|
||||
if j > 0 then
|
||||
do;
|
||||
morse_character = morse_codes(j);
|
||||
put skip list (morse_character); /* Display the Morse. */
|
||||
call send_morse (morse_character);
|
||||
end;
|
||||
end;
|
||||
|
||||
send_morse: procedure (morse_character);
|
||||
declare morse_character character(*) varying;
|
||||
declare i fixed binary;
|
||||
|
||||
do i = 1 to length(morse_character);
|
||||
if substr(morse_character, 1, 1) = '-' then
|
||||
put skip edit (buzz, ' ', buzz) (a(1), A, skip, a(1));
|
||||
else
|
||||
put skip edit (buzz, ' ') (a(1));
|
||||
delay (1000); /* Delay one period. */
|
||||
end;
|
||||
delay (1000);
|
||||
/* Making a delay of 2 periods after each English letter. */
|
||||
end send_morse;
|
||||
|
||||
END MORSE;
|
||||
Loading…
Add table
Add a link
Reference in a new issue