home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
ibmtsonih
/
tsntst.alp
< prev
next >
Wrap
Text File
|
1986-12-17
|
5KB
|
248 lines
//MWCTALP JOB (ZZXZ,504,A,10,5),'ALP TEST'
/*AFTER MWCALP
//JOBLIB DD DSN=ZZXZMWC.ALP.TEST.LOAD,UNIT=FILE,VOL=SER=NIHLB1,DISP=SHR
// EXEC ALPGPRE,ASMLIST=
//SYSIN DD *
TITLE 'ALP TEST CASES';
MACRO &&LABEL: TESTMAC &&O1,&&O2;
LCLA &&A;
&&LABEL: L &&O1,&&O2;
MEND;
TEST: START;
INIT REG=12,EQU=NO;
EJECT;
% IF - THEN AND IF - THEN - ELSE TESTS
IF <LTR R1,R1 ; CC NZ> THEN <LI R1,0>;
IF <LI R2,1(,R2) ; CH R2,=H'100'> THEN
BEGIN
SI R2,50;
LR R3,R2;
END
ELSE
LA R3,10(R2);
IF RP R2 & <RNZ R1 | RNZ R3> THEN <LI R1,0>;
IF <RP R2> & <RNZ R1 | RNZ R3> THEN <LI R1,0>;
EJECT;
% CASE TEST
CASE R3 MAX 40;
4 THRU 36: CALL ERROR;
16: EXIT;
4,8: ;
20: CALL PROCESS;
ENDCASE;
CASE R3 MAX 40 MIN 4;
8 THRU 36: CALL ERROR;
16: EXIT;
12,8: ;
20: CALL PROCESS;
ENDCASE THEN CALL FINISH;
CASE R3 MAX 40 CHECK;
4 THRU 36: CALL ERROR;
16: EXIT;
4,8: ;
20: CALL PROCESS;
ENDCASE ELSE ABEND 69,DUMP THEN CALL FINISH;
CASE R3 MAX 40 MIN 4 CHECK;
8 THRU 36: CALL ERROR;
16: EXIT;
12,8: ;
20: CALL PROCESS;
ENDCASE ELSE ABEND 69,DUMP;
EJECT;
% GOTO AND RGOTO
L1: GOTO L1;
L2 : GOTO L2 IF RP R5 | <RP R6 | RP R7>;
L3: RGOTO R14;
RGOTO R14 IF RP R15 | <RP R6 | RP R7>;
EJECT;
% LOOP TESTS
% WHILE/UNTIL/FOREVER DO
WHILE <RP R2> & <RP R3> DO <SI R2,1>;
UNTIL <RP R2> & <RP R3> DO <SI R2,1>;
FOREVER DO <SI R2,1>;
% DO WHILE/UNTIL/FOREVER
DO <SI R2,1> WHILE <RP R2> & <RP R3>;
DO <SI R2,1> UNTIL <RP R2> & <RP R3>;
DO <SI R2,1> FOREVER;
% FOR - DO AND DO - FOR
FOR R4 DO
BEGIN
LA R5,10(R4);
NEXT;
XC 0(R5,8),0(R5);
END;
DO
BEGIN
LA R5,10(R4);
XC 0(R5,8),0(R5);
END
FOR R4;
WHILE <RP R1> DO
BEGIN
AI R2,1;
EXIT IF <CR R2,R3>;
SI R1,1;
END
THEN
LI R1,0;
EJECT;
% EXIT (FROM ALL LOOP CONSTRUCTS)
B1: FOREVER DO
< LI R1,10;
FOR R1 DO
BEGIN
LTR R2,R1;
EXIT;
EXIT IF RP R2;
EXIT FROM B1;
EXIT FROM B1 IF RP R2;
NEXT;
NEXT IF RM R2;
NEXT OF B1;
NEXT OF B1 IF RM R2;
LA R3,R1;
END > ;
EJECT;
% SELECT (PREDICATE CASE)
SELECT;
<RP R1>: ZR R1;
<RP R2>: ZR R2;
ENDSEL;
SELECT FIRST;
<RP R1>: ZR R1;
<RP R2>: ZR R2;
ENDSEL;
SELECT;
<RP R1>: ZR R1;
<RP R2>: ZR R2;
ENDSEL;
SELECT FIRST;
<RP R1>: ZR R1;
<RP R2>: ZR R2;
ENDSEL
ELSE <ZR R4>;
SELECT FIRST;
<RP R1>: ZR R1;
<RP R2>: EXIT;
<RP R3>: NEXT;
ENDSEL
ELSE <ZR R4>;
EJECT;
% USING
LA R5,AREA;
USE R5 AS MAPBLK IN <XC MB1,MB1>;
LA R5,AREA;
LA R6,AREA2;
USE R5 AS MAPBLK,
R6 AS MAPBLK2 IN <ZR R7; IC R7,MB3; STC R7,MB2>;
EJECT;
% ASM STATEMENTS TEST
ASM IF (&&B) THEN <S1> ELSE S2;
ASM IF (&&B) THEN S1;
ASM CASE &&X;
0: S0;
1,2: S12;
3,4, 5 THRU 8: S345;
ENDCASE;
ASM WHILE (&&X GT 0) DO S1;
ASM UNTIL (&&X LT 0) DO <S1> THEN S2;
ASM FOREVER DO BEGIN
ASM IF (&&B) THEN ASM EXIT ELSE ASM NEXT;
END;
ASM FOR &&X FROM 1 BY 2 TO 37 DO S5;
ASM FOR &&X FROM 0-1 BY 0-2 TO 0-37 DO <S137> THEN S69;
ASM DO <S1>;
ASM DO <S1> WHILE (&&B) THEN <S2>;
ASM DO <S1> UNTIL (&&B);
ASM DO <S1> FOREVER;
ASM DO <S1> FOR &&X BY 1 TO 69;
ASM DO <S1> FOR &&X;
ASM SELECT;
(&&B): S1;
(&&C): S2;
ENDSEL;
.ZAP: ASM SELECT FIRST;
(&&B): <S1; ASM EXIT FROM .ZAP IF (&&Q)>;
(&&C): S2;
ENDSEL
ELSE S3;
ASM GOTO .ZIP;
ASM GOTO .ZAP IF (&&B);
EJECT;
COMMENT;
THIS IS A TEST OF THE COMMENT STATEMENT. THE COMMENT STATEMENT
PERMITS FREE-FORM BLOCKS OF COMMENTARY IN ALP PROGRAMS.
ALP;
EJECT;
UNINIT;
AREA: DS F;
AREA2: DS F;
% DSECT ET AL
MAPBLK: DSECT;
BAL;
MB1 DS X
MB2 DS AL3
ALP;
MAPBLK2: DSECT;
MB3: DS X;
MB4: DS AL3;
END;