PAGE '**TEST  CASES**';" COMPILED ON SYSTEM 65 ";DCL B,L,G,C,GAMMA,DELTA,Q,R,BETA;ENTRY $220;;" PL/65 TEST CASES FROM MANUAL ";" HFD Corrected for AIM-65";;"*** ASSIGN ***";;B=C;@B = C;B = @C;B = #C;C = D + F;C = D-F;C = D .AND F;C = D .OR F;"HFD replace XOR with EOR";C = D .EOR F;C = D .AND F .OR 2 .EOR $55;BB = C .OR D;BB = C .EOR D;BB = C .AND D;BB .AND 1;BB .OR 1;BB .EOR 1;" ABBREVIATED FORM ";B+1;B-1;B+J;B-J;"HFD unknown";"B+J-K+5; ";F=G[4];B[J] = C;B[J+5] = C;" SINGLE BYTE INDIRECTS"@B[K] = C[5]+D-F;&B[K] = C[5]+D-F;&B = C[R]+D-6 .AND 3;&B[G-3] = C[N]+D-6;&B[3] = C[4]-(F-D+3);B[5] = @C+D-(F-N+3);B[5] = @C;B[N] = &C;@B=@C;&B=&C;&B=@C;@B=&C;@B[1]=@C[2];&B[1]=&C[2];&B[1]=@C[2];@B[1]=&C[2];" MULTI BYTE ARITHMETIC ";B.K = C;B[J+1].K-1 = 'ABCDEF' ;B[J+1].K = C[K];  "NO ADDITIONAL TERMS WITH";"   RIGHT SUBSCRIPT ";B.K = C[J];B.K = C-D; "ONLY TWO TERMS IN MULTI BYTE ";;B[J].15 = C[J];B.K = 5; "SET K BYTES ALL EQUAL TO 5 ";B[J-K+1].K-1 = DELTA -GAMMA;" PARENTHETICAL GROUPING ";B = G -(C+GAMMA-2) ;B = G+(C-GAMMA+2);B = G+DELTA-(GAMMA-C+3)-$55;B = G+(GAMMA - (DELTA-2)+6) ;B = G-(DELTA+(GAMMA-3));" NOTE NO ( MAY BE USED IMMEDIATELY AFTER = SIGN ";;"*** BLOCK ***";;FOR J = 1 TO 5   DO;   B[J] = J;   C[J] = J-1;   END;;IF ALPHA = 0 THEN   BEGIN;   B = $21;   C = 17;   D = %1011;   END;;"*** BREAK ***";BRK;;"*** CALL ***";;CALL SUB1;CALL ALPHA;SUB1: BEGIN;;      RETURN;      END;;ALPHA: BEGIN;       ;       RETURN;       END;;"*** CASE ***";"HFD missing CASE and GO TO"GOTO [N][L1,L2,L3];GOTO [N][L1,L2,L3];GOTO [B] [ALPHA,BETA];GOTO [N+B-1] [ALPHA,BETA,L1,L2,L3];"HFD unknown";"GOTO [ B[J+C .OR 40] +N .AND $3F] [L1,L2,L3]; ";;"*** CLEAR ***";;"HFD missing CLEAR";;" ALSO CAN CLEAR CONDITIONAL CODES ";;"HFD missing all this";;"*** CODE ***";;"HFD missing CODE"' .PAGE ';' BCC *+5';" BLOCKS OF ASSEMBLER CODE MAY ALSO BE PASSED..";"...BETWEEN TWO LINES WITH A '*' IN FIRST COL ";* START OF ASSEMBLER CODELDA #5STA BBLDX #$6ATXS; ASSEMBLER COMMENTINYSTA B,Y  ;COMMENT* END OF ASSEMBLER CODE;"*** COMMENTS ***";;B = C+1 ; "INCREMENT C, ASSIGN TO B";;"*** DATA ***";;BBC: DATA 2,3,6;DOG: DATA C,BETA;IOTA: DATA 'READ';DATA BETA, BETA+40, BETA+$40;"*** DATA WORD***";WDOG: DATAW 1,2,BBC;DATAW BETA, BETA+20, BETA+60;;"*** DEC ***";;DEC ALPHA;ALPHA-1;;"*** DECREMENT WORD***";DECW ALPHA;;"*** DECLARE ***";;DCL ALP,I;DCL BB WORD;DCL D CHAR;DCL E BYTE INIT[5];DCL FTH WORD INIT[44];DCL H CHAR['#'];DCL J[5];DCL K CHAR['LOST DATA'];DCL BUF[80];DCL ONE WORD INIT[1];;"*** DEFINE ***";;DEF M = 25;DEF N=*;DEF PP= N+5;DEF * = * +4;DEF AA=3, BBF=AA+3, JJ=AA+BBF-2;DEF GT = -BB+$33;;"*** ENTRY ***";;ENTRY;ENTRY $1000;;"*** FOR-TO-BY ***";;FOR J = 1 TO N  BEGIN;   END;FOR ALPHA = BETA+3 TO GAMMA BY DELTA   BEGIN;   END;FOR B = H[I+J .AND K] +L .OR M TO 6BEGIN; END;FOR B=1 TO H BY -2BEGIN; END;;"*** GO TO ***";;GOTO ALPHA;GOTO @ALPHA; "INDIRECT JUMP";GOTO L5;BEGIN;"  IF B = C THEN GO TO LAB2; ";   C = D + 2;END;;"*** HALT ***";;HALT;LAB99:   HALT;;"*** IF-THEN-ELSE ***";;IF B < C THEN   D = E ;ELSE   F = G;IF B-5 = C-D THEN   BEGIN;   B = B + 1;   C = D;   END;ELSE   BEGIN;"HFD missing WAIT";   B[4] = C[3];   END;" CONDITION CODES MAY BE TESTED ALSO ";" VALID TESTS ARE:  ";;"HFD missing .Z";"IF .ZERO THEN GOTO B; ";"IF .NOT .Z THEN GOTO B; ";"IF ^ .ZERO THEN RETURN; ";"HFD unknown";"IF = THEN B=1; ";"IF ^= THEN B=2; ";IF B=AA+BB-3 THEN BETA+1;"IF 'AB'.2 = B THEN GOTO OUT; ";IF 'A' = B THEN C=2;"IF 'A'.1 ^= B THEN C=3; ";IF 'G' = B+C THEN RETURN;IF B[3] = G+H THEN B=5;IF B[K].J = D THEN RETURN;" INDIRECT COMPARISONS";IF @B=3 THEN RTI;IF &B=3 THEN RTI;IF @B[J]=5 THEN RETURN;IF &B[5]=J THEN RTI;IF @B[5]>J THEN RETURN;IF &B[J]<6 THEN RETURN;" CAN TEST BITS ";"HFD no BIT";" MULTIPLE BYTE COMPARISONS";IF B[K].J = D THEN RETURN;IF B[K].J ^= D THEN DO; END;ELSE DO; END;" CONDITION CODES ";"HFD still no .Z";;"*** IFF-THEN ***";;"HFD no IFF";OUT: "TARGET FOR IFF";JAMIT:;"HFD no IFF";;" TARGET FOR IFF ";MIKE:;"*** INC ***";;INC BETA;BETA + 1;;"*** INCREMENT WORD ***";INCW BB;"*** PAGE ***";" SEE FIRST LINE FOR ONE WITH TITLE";PAGE ; " NOTE THAT BLANK IS REQUIRED IF NO TITLE";;"*** PULSE ***";;"HFD no PULSE";;"*** ROTATE ***";;"HFD no ROTATE";"ROTATE LEFT Q.4; ";ROL Q.4;ROR R.1;"ROTATE RIGHT R.2; ";" CAN USE SUBSCRIPTS ";ROR B[Q];ROR B[Q-5];ROL B[Q-5].3;" QUANTIFIER MAY BE EXPRESSION ";ROL B[K+5-J].Q-J+3;;"*** RTI ***";;LABEL: RTI;RTI;;"*** SET ***";;"HFD no SET";;"*** SHIFT ***";;"HFD no SHIFT";"SHIFT LEFT B.3; ";SHL B.3;SHR C.1;"SHIFT RIGHT C.1; ";SHR B[K+5 .AND 1].M-K+3;;"*** STACK ***";;"HFD no .A .X .Y";STACK BETA, GAMMA;STACK WORD GAMMA;STACK 5;STACK -5;STACK $AB;;"*** UNSTACK ***";;UNSTACK GAMMA, BETA;;"*** WAIT ***";;"HFD no WAIT";;"*** WHILE ***";;WHILE XX + 1 < YYDO;END;WHILE 2=2DO;END;;DCL L1 WORD,L2 WORD,L3 WORD;DCL XX WORD, YY WORD;DCL L5 WORD,LAB2,TS;"...ADDITIONAL TESTS NOT IN MANUAL ";" MISC. EXAMPLES OF ASSM. EQUIVALENTS ";"HFD no .A .X .Y";BB[E]=BB[E]+2;F[E+B]=F[E+B+1]+3+D;;" TAB CHARACTERS ARE ALSO SUPPORTED FOR CLARITY ";"   OF LISTING IN PASS 1 ";" EITHER 'TAB' OR 'BACKSLASH' ARE SUPPORTED ";;DCL F;;" TEST TAB CHARACTER ";     FOR I=1 TO 99         DO;         I=1;         IF J=3 THEN             DO;             F=3;             JJ=K+3;             END;         K=3;         END;;" NEXT THE SAME THING WITH BACKSLASH ";;" TEST ALTERNATE TAB CHARACTER ";     FOR I=1 TO 99         DO;         I=1;         IF J=3 THEN             DO;             F=3;             JJ=K+3;             END;         K=3;         END;     EXIT;