home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / ibmtsonih / tsntst.alp < prev    next >
Text File  |  2020-01-01  |  5KB  |  248 lines

  1. //MWCTALP  JOB  (ZZXZ,504,A,10,5),'ALP TEST'
  2. /*AFTER MWCALP
  3. //JOBLIB DD DSN=ZZXZMWC.ALP.TEST.LOAD,UNIT=FILE,VOL=SER=NIHLB1,DISP=SHR
  4. //  EXEC  ALPGPRE,ASMLIST=
  5. //SYSIN DD *
  6.          TITLE 'ALP TEST CASES';
  7.          MACRO &&LABEL: TESTMAC &&O1,&&O2;
  8.                   LCLA &&A;
  9.           &&LABEL: L &&O1,&&O2;
  10.          MEND;
  11.  
  12. TEST:    START;
  13.  
  14.          INIT  REG=12,EQU=NO;
  15.          EJECT;
  16. % IF - THEN  AND  IF - THEN - ELSE  TESTS
  17.  
  18.          IF <LTR R1,R1 ; CC NZ> THEN <LI R1,0>;
  19.          IF <LI R2,1(,R2) ; CH R2,=H'100'> THEN
  20.           BEGIN
  21.            SI R2,50;
  22.            LR R3,R2;
  23.           END
  24.          ELSE
  25.           LA R3,10(R2);
  26.  
  27.          IF RP R2 & <RNZ R1 | RNZ R3> THEN <LI R1,0>;
  28.  
  29.          IF <RP R2> & <RNZ R1 | RNZ R3> THEN <LI R1,0>;
  30. EJECT;
  31. % CASE TEST
  32.  
  33.          CASE R3 MAX 40;
  34.           4 THRU 36: CALL ERROR;
  35.           16: EXIT;
  36.           4,8: ;
  37.           20: CALL PROCESS;
  38.          ENDCASE;
  39.  
  40.          CASE R3 MAX 40 MIN 4;
  41.           8 THRU 36: CALL ERROR;
  42.           16: EXIT;
  43.           12,8: ;
  44.           20: CALL PROCESS;
  45.          ENDCASE THEN CALL FINISH;
  46.  
  47.          CASE R3 MAX 40 CHECK;
  48.           4 THRU 36: CALL ERROR;
  49.           16: EXIT;
  50.           4,8: ;
  51.           20: CALL PROCESS;
  52.          ENDCASE ELSE ABEND 69,DUMP THEN CALL FINISH;
  53.  
  54.          CASE R3 MAX 40 MIN 4 CHECK;
  55.           8 THRU 36: CALL ERROR;
  56.           16: EXIT;
  57.           12,8: ;
  58.           20: CALL PROCESS;
  59.          ENDCASE ELSE ABEND 69,DUMP;
  60. EJECT;
  61. % GOTO  AND  RGOTO
  62.  
  63. L1: GOTO L1;
  64.  
  65. L2 :     GOTO L2 IF RP R5 | <RP R6 | RP R7>;
  66.  
  67.     L3:  RGOTO R14;
  68.  
  69.          RGOTO R14 IF RP R15 | <RP R6 | RP R7>;
  70.  
  71.      EJECT;
  72. % LOOP TESTS
  73.  
  74. %  WHILE/UNTIL/FOREVER DO
  75.  
  76.          WHILE <RP R2> & <RP R3> DO <SI R2,1>;
  77.          UNTIL <RP R2> & <RP R3> DO <SI R2,1>;
  78.          FOREVER DO <SI R2,1>;
  79.  
  80. %  DO WHILE/UNTIL/FOREVER
  81.  
  82.          DO <SI R2,1> WHILE <RP R2> & <RP R3>;
  83.          DO <SI R2,1> UNTIL <RP R2> & <RP R3>;
  84.          DO <SI R2,1> FOREVER;
  85.  
  86. %  FOR - DO  AND  DO - FOR
  87.  
  88.          FOR R4 DO
  89.           BEGIN
  90.            LA R5,10(R4);
  91.            NEXT;
  92.            XC 0(R5,8),0(R5);
  93.           END;
  94.  
  95.          DO
  96.           BEGIN
  97.            LA R5,10(R4);
  98.            XC 0(R5,8),0(R5);
  99.           END
  100.          FOR R4;
  101.  
  102.          WHILE <RP R1> DO
  103.           BEGIN
  104.            AI R2,1;
  105.            EXIT IF <CR R2,R3>;
  106.            SI R1,1;
  107.           END
  108.          THEN
  109.           LI R1,0;
  110.  
  111.      EJECT;
  112. % EXIT  (FROM ALL LOOP CONSTRUCTS)
  113.  
  114.     B1: FOREVER DO
  115.        < LI R1,10;
  116.          FOR R1 DO
  117.           BEGIN
  118.            LTR R2,R1;
  119.            EXIT;
  120.            EXIT IF RP R2;
  121.            EXIT FROM B1;
  122.            EXIT FROM B1 IF RP R2;
  123.            NEXT;
  124.            NEXT IF RM R2;
  125.            NEXT OF B1;
  126.            NEXT OF B1 IF RM R2;
  127.            LA  R3,R1;
  128.           END > ;
  129.  
  130.      EJECT;
  131. % SELECT (PREDICATE CASE)
  132.  
  133.          SELECT;
  134.           <RP R1>: ZR R1;
  135.           <RP R2>: ZR R2;
  136.          ENDSEL;
  137.  
  138.          SELECT FIRST;
  139.           <RP R1>: ZR R1;
  140.           <RP R2>: ZR R2;
  141.          ENDSEL;
  142.  
  143.          SELECT;
  144.           <RP R1>: ZR R1;
  145.           <RP R2>: ZR R2;
  146.          ENDSEL;
  147.  
  148.          SELECT FIRST;
  149.           <RP R1>: ZR R1;
  150.           <RP R2>: ZR R2;
  151.          ENDSEL
  152.          ELSE <ZR R4>;
  153.  
  154.          SELECT FIRST;
  155.           <RP R1>: ZR R1;
  156.           <RP R2>: EXIT;
  157.           <RP R3>: NEXT;
  158.          ENDSEL
  159.          ELSE <ZR R4>;
  160.      EJECT;
  161. % USING
  162.  
  163.          LA    R5,AREA;
  164.          USE R5 AS MAPBLK IN <XC MB1,MB1>;
  165.  
  166.          LA    R5,AREA;
  167.          LA R6,AREA2;
  168.          USE R5 AS MAPBLK,
  169.              R6 AS MAPBLK2 IN <ZR R7; IC R7,MB3; STC R7,MB2>;
  170. EJECT;
  171. %  ASM STATEMENTS TEST
  172.  
  173. ASM IF (&&B) THEN <S1> ELSE S2;
  174.  
  175. ASM IF (&&B) THEN S1;
  176.  
  177. ASM CASE &&X;
  178.    0: S0;
  179.    1,2: S12;
  180.    3,4, 5 THRU 8: S345;
  181.    ENDCASE;
  182.  
  183. ASM WHILE (&&X GT 0) DO S1;
  184.  
  185. ASM UNTIL (&&X LT 0) DO <S1> THEN S2;
  186.  
  187. ASM FOREVER DO BEGIN
  188.    ASM IF (&&B) THEN ASM EXIT ELSE ASM NEXT;
  189.    END;
  190.  
  191. ASM FOR &&X FROM 1 BY 2 TO 37 DO S5;
  192.  
  193. ASM FOR &&X FROM 0-1 BY 0-2 TO 0-37 DO <S137> THEN S69;
  194.  
  195. ASM DO <S1>;
  196.  
  197. ASM DO <S1> WHILE (&&B) THEN <S2>;
  198.  
  199. ASM DO <S1> UNTIL (&&B);
  200.  
  201. ASM DO <S1> FOREVER;
  202.  
  203. ASM DO <S1> FOR &&X BY 1 TO 69;
  204.  
  205. ASM DO <S1> FOR &&X;
  206.  
  207. ASM SELECT;
  208.    (&&B): S1;
  209.    (&&C): S2;
  210.    ENDSEL;
  211.  
  212. .ZAP: ASM SELECT FIRST;
  213.    (&&B): <S1; ASM EXIT FROM .ZAP IF (&&Q)>;
  214.    (&&C): S2;
  215.    ENDSEL
  216. ELSE S3;
  217.  
  218. ASM GOTO .ZIP;
  219.  
  220. ASM GOTO .ZAP IF (&&B);
  221. EJECT;
  222. COMMENT;
  223.  
  224.   THIS IS A TEST OF THE COMMENT STATEMENT. THE COMMENT STATEMENT
  225. PERMITS FREE-FORM BLOCKS OF COMMENTARY IN ALP PROGRAMS.
  226.  
  227. ALP;
  228. EJECT;
  229.  
  230.          UNINIT;
  231.  
  232. AREA:    DS    F;
  233. AREA2:   DS    F;
  234.  
  235. % DSECT ET AL
  236.  
  237. MAPBLK:  DSECT;
  238. BAL;
  239. MB1      DS    X
  240. MB2      DS    AL3
  241. ALP;
  242.  
  243. MAPBLK2: DSECT;
  244. MB3:     DS    X;
  245. MB4:     DS    AL3;
  246.  
  247.          END;
  248.