Language Tandem TAL
| Date: | 04/20/05 |
| Author: | Anonymous |
| URL: | n/a |
| Comments: | 0 |
| Info: | n/a |
| Score: |
99 Bottles in Tandem TAL (Transaction Application Language):
?NOLIST
?SOURCE $SYSTEM.SYSTEM.EXTDECS0 (FILE_OPEN_,FILE_CLOSE_,WRITE,INITIALIZER,
? PROCESS_STOP_,NUMOUT,PROCESS_GETINFO_);
INT MYTERM^NAME[0:11], MYTERM^NUM, MYTERM^LEN, ERROR, NUM^BOTTLES;
STRING .LINE1[0:37], .LINE2[0:32], .MSG^PTR;
?LIST
PROC BOTTLES MAIN;
BEGIN
CALL INITIALIZER(,,,,,);
ERROR := PROCESS_GETINFO_(,,,,,MYTERM^NAME:24,MYTERM^LEN,,,,,,,,,);
ERROR := FILE_OPEN_(MYTERM^NAME:MYTERM^LEN,MYTERM^NUM);
IF ERROR <> 0 THEN CALL PROCESS_STOP_(,,1);
NUM^BOTTLES := 99;
LINE1 ':=' " BOTTLES OF BEER ON THE WALL";
CALL NUMOUT(LINE1[0],NUM^BOTTLES,10,2);
LINE2 ':=' "TAKE ONE DOWN AND PASS IT AROUND";
WHILE (NUM^BOTTLES > 0) DO
BEGIN
CALL WRITE(MYTERM^NUM, LINE1, 30);
CALL WRITE(MYTERM^NUM, LINE1, 18);
CALL WRITE(MYTERM^NUM, LINE2, 32);
NUM^BOTTLES := NUM^BOTTLES - 1;
IF (NUM^BOTTLES = 1) THEN LINE1 ':=' " BOTTLE OF BEER ON THE WALL ";
IF (NUM^BOTTLES > 0) THEN
CALL INITIALIZER(,,,,,);
ERROR := PROCESS_GETINFO_(,,,,,MYTERM^NAME:24,MYTERM^LEN,,,,,,,,,);
ERROR := FILE_OPEN_(MYTERM^NAME:MYTERM^LEN,MYTERM^NUM);
IF ERROR <> 0 THEN CALL PROCESS_STOP_(,,1);
NUM^BOTTLES := 99;
LINE1 ':=' " BOTTLES OF BEER ON THE WALL";
CALL NUMOUT(LINE1[0],NUM^BOTTLES,10,2);
LINE2 ':=' "TAKE ONE DOWN AND PASS IT AROUND";
WHILE (NUM^BOTTLES > 0) DO
BEGIN
CALL WRITE(MYTERM^NUM, LINE1, 30);
CALL WRITE(MYTERM^NUM, LINE1, 18);
CALL WRITE(MYTERM^NUM, LINE2, 32);
NUM^BOTTLES := NUM^BOTTLES - 1;
IF (NUM^BOTTLES = 1) THEN LINE1 ':=' " BOTTLE OF BEER ON THE WALL ";
IF (NUM^BOTTLES > 0) THEN
BEGIN
CALL NUMOUT(LINE1[0],NUM^BOTTLES,10,2);
CALL WRITE(MYTERM^NUM, LINE1, 30);
END;
END;
LINE1 ':=' "NO MORE BOTTLES OF BEER ON THE WALL !!";
CALL WRITE(MYTERM^NUM, LINE1, 37);
END;
Download Source | Write Comment
Download Source | Write Comment
Add Comment
Please provide a value for the fields Name,
Comment and Security Code.
This is a gravatar-friendly website.
E-mail addresses will never be shown.
Enter your e-mail address to use your gravatar.
Please don't post large portions of code here! Use the form to submit new examples or updates instead!
Comments