home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / ASMUTL / PC370.ZIP / TESTMM.ALC < prev    next >
Encoding:
Text File  |  1987-05-24  |  9.8 KB  |  444 lines

  1.     TITLE 'TESTRL  - TEST GETMAIN/FREEMAIN FOR EXTENDED ADDRESSING'
  2. * PGMID. TESTMM.ALC.
  3. * AUTHOR.DON HIGGINS.
  4. *
  5. * MAINTENANCE.
  6. *
  7. * 01/20/87 COPIED FROM TESTRL, GUT, ADD GETMAIN TEST
  8. * 01/21/87 ADD MULT. GM/FM TESTS
  9. * 05/24/87 ADD TEST FOR FMAIN BETWEEN TWO FREE BLOCKS POINTING TO THIRD
  10. TESTMM   CSECT
  11.     USING *,R15
  12.     SVC   TRACE
  13.     DC    C'SRR'
  14.     LA    R2,=C'TESTMM START$'
  15.     SVC   WTO
  16.     L     R1,ASCBASL
  17.     CL    R1,=A(MAXGM)  ;IS VA LARGE ENOUGH FOR TEST
  18.     BNH   NOSPACE       ;NO, ABORT NOW
  19.     L     R3,ASCBASF    ;R3=ORIG. FQE
  20.     CLC   0(4,R3),=A(0) ;DOES ORIG. FQE HAVE ZERO PTR
  21.     BAL   R14,CCE
  22.     L     R1,ASCBASL
  23.     SR    R1,R3
  24.     CL    R1,4(R3)
  25.     BAL   R14,CCE       ;DOES ORIG. FQE HAVE ALL VA SPACE ALLOC.
  26.     SR    R0,R0
  27.     L     R1,=A(100000)
  28.     SVC   GMAIN         ;GET 100,000 AREA
  29.     LTR   R0,R0
  30.     BAL   R14,CCE
  31.     CLR   R2,R3         ;DOES GM AREA = ORIG FQE
  32.     BAL   R14,CCE
  33.     CL    R1,=A(100000) ;IS R1 = GM LENGTH
  34.     BAL   R14,CCE
  35.     A     R3,=A(100000)
  36.     CL    R3,ASCBASF    ;DOES FQE PTR NOW POINT TO END+1
  37.     BAL   R14,CCE
  38.     CLC   0(4,R3),=A(0) ;DOES NEW FQE HAVE ZERO POINTER
  39.     BAL   R14,CCE
  40.     A     R3,4(R3)
  41.     CL    R3,ASCBASL    ;DOES NEW FQE CONTAIN REMAINING SPACE
  42.     BAL   R14,CCE
  43.     SVC   FMAIN         RELEASE 100,000 BYTE AREA
  44.     LTR   R0,R0
  45.     BAL   R14,CCE       ;VERIFY FREEMAIN OK
  46.     L     R3,ASCBASF    ;R3=ORIG. FQE
  47.     CLC   0(4,R3),=A(0) ;DOES ORIG. FQE HAVE ZERO PTR
  48.     BAL   R14,CCE
  49.     L     R1,ASCBASL
  50.     SR    R1,R3
  51.     CL    R1,4(R3)
  52.     BAL   R14,CCE       ;DOES ORIG. FQE HAVE ALL VA SPACE ALLOC.
  53. *
  54. * END OF SINGLE GMAIN/FMAIN TESTS
  55. *
  56.     L     R1,LB1
  57.     SVC   GMAIN
  58.     LTR   R0,R0
  59.     BAL   R14,CCE
  60.     CL    R1,=A(40000)
  61.     BAL   R14,CCE
  62.     ST    R1,LB1  STORE ROUNDED
  63.     ST    R2,AB1
  64.     L     R1,LB2
  65.     SVC   GMAIN
  66.     LTR   R0,R0
  67.     BAL   R14,CCE
  68.     CL    R1,=A(30000)
  69.     BAL   R14,CCE
  70.     ST    R1,LB2 STORE ROUNDED
  71.     ST    R2,AB2
  72.     L     R1,LB3
  73.     SVC   GMAIN
  74.     LTR   R0,R0
  75.     BAL   R14,CCE
  76.     ST    R2,AB3
  77.     L     R1,LB4
  78.     SVC   GMAIN
  79.     LTR   R0,R0
  80.     BAL   R14,CCE
  81.     ST    R2,AB4
  82.     L     R1,LB5
  83.     SVC   GMAIN
  84.     CL    R0,=A(1)
  85.     BAL   R14,CCE
  86.     ST    R1,LB5      RESET LENGTH OF B5 TO MAX. AVAIL.
  87.     SVC   GMAIN       GET ALL OF REMAINING SPACE IN B5
  88.     LTR   R0,R0
  89.     BAL   R14,CCE
  90.     ST    R2,AB5
  91.     A     R2,LB5
  92.     CL    R2,ASCBASL
  93.     BAL   R14,CCE     VERIFY B5 HAS IT ALL
  94.     CLC   ASCBASF(4,0),=A(0)
  95.     BAL   R14,CCE     VERIFY FQE POINTER 0
  96. *
  97. *  5 AREAS NOW ALLOCATED
  98. *
  99. *  NEW TEST TO PICK OFF NEW BUS IS FREE A1, FREE A3, FREE A5, THEN FREE A3
  100. *
  101.     L     R1,LB1
  102.     L     R2,AB1
  103.     SVC   FMAIN       RELEASE B1
  104.     LTR   R0,R0
  105.     BAL   R14,CCE
  106.     L     R1,LB3
  107.     L     R2,AB3
  108.     SVC   FMAIN       RELEASE B3
  109.     LTR   R0,R0
  110.     BAL   R14,CCE
  111.     L     R1,LB5
  112.     L     R2,AB5
  113.     SVC   FMAIN       RELEASE B5
  114.     LTR   R0,R0
  115.     BAL   R14,CCE
  116.     L     R1,LB2
  117.     L     R2,AB2
  118.     SVC   FMAIN       RELEASE B2
  119.     LTR   R0,R0
  120.     BAL   R14,CCE
  121. *
  122. * NOW GET BLOCK BACK AGAIN IF OK
  123. *
  124.     L     R1,LB1      GET B1 AGAIN
  125.     SVC   GMAIN
  126.     LTR   R0,R0
  127.     BAL   R14,CCE
  128.     CL    R1,=A(40000)
  129.     BAL   R14,CCE
  130.     ST    R1,LB1  STORE ROUNDED
  131.     ST    R2,AB1
  132.     L     R1,LB2     GET B2 AGAIN
  133.     SVC   GMAIN
  134.     LTR   R0,R0
  135.     BAL   R14,CCE
  136.     CL    R1,=A(30000)
  137.     BAL   R14,CCE
  138.     ST    R1,LB2 STORE ROUNDED
  139.     ST    R2,AB2
  140.     L     R1,LB3    GET B3 AGAIN
  141.     SVC   GMAIN
  142.     LTR   R0,R0
  143.     BAL   R14,CCE
  144.     ST    R2,AB3
  145.     L     R1,LB5    GET B5 AGAIN
  146.     SVC   GMAIN
  147.     LTR   R0,R0
  148.     BAL   R14,CCE
  149.     ST    R2,AB5
  150.     A     R2,LB5
  151.     CL    R2,ASCBASL
  152.     BAL   R14,CCE     VERIFY B5 HAS IT ALL
  153.     CLC   ASCBASF(4,0),=A(0)
  154.     BAL   R14,CCE     VERIFY FQE POINTER 0
  155. *
  156. * CONTINUE ORIGINAL TESTS
  157. *
  158.     L     R1,LB1
  159.     L     R2,AB1
  160.     SVC   FMAIN       RELEASE B1
  161.     LTR   R0,R0
  162.     BAL   R14,CCE
  163.     CLC   ASCBASF(4,0),AB1 VERIFY B1 NOW ON FQE QUEUE
  164.     BAL   R14,CCE
  165.     L     R3,AB1
  166.     CLC   0(4,R3),=A(0)
  167.     BAL   R14,CCE
  168.     CLC   4(4,R3),LB1
  169.     BAL   R14,CCE
  170.     L     R1,LB3
  171.     L     R2,AB3
  172.     SVC   FMAIN       RELEASE B3
  173.     LTR   R0,R0
  174.     BAL   R14,CCE
  175.     CLC   0(4,R3),AB3
  176.     BAL   R14,CCE     VERIFY B1 NOW POINTS TO B3
  177.     L     R3,AB3
  178.     CLC   0(4,R3),=A(0)
  179.     BAL   R14,CCE
  180.     CLC   4(4,R3),LB3
  181.     BAL   R14,CCE     VERIFY B3 ON FQE OK
  182.     L     R1,LB4
  183.     L     R2,AB4
  184.     SVC   FMAIN       RELEASE B4 BY EXTENDING B3 FQE
  185.     LTR   R0,R0
  186.     BAL   R14,CCE
  187.     L     R3,AB3
  188.     CLC   0(4,R3),=A(0)
  189.     BAL   R14,CCE
  190.     L     R0,LB3
  191.     A     R0,LB4
  192.     CL    R0,4(R3)    VERIFY B3 FQE NOW INCLUDES B4
  193.     BAL   R14,CCE     VERIFY B3 ON FQE OK
  194.     L     R1,LB2
  195.     L     R2,AB2
  196.     SVC   FMAIN       RELEASE B2 BY EXTENDING B1-B4
  197.     LTR   R0,R0
  198.     BAL   R14,CCE
  199.     L     R3,AB1
  200.     CLC   0(4,R3),=A(0)
  201.     BAL   R14,CCE
  202.     L     R0,LB1
  203.     A     R0,LB2
  204.     A     R0,LB3
  205.     A     R0,LB4
  206.     CL    R0,4(R3)    VERIFY B1 FQE NOW INCLUDES B1-B4
  207.     BAL   R14,CCE
  208.     L     R1,LB1
  209.     SVC   GMAIN       GET B1
  210.     LTR   R0,R0
  211.     BAL   R14,CCE
  212.     L     R1,LB1
  213.     L     R2,AB1
  214.     SVC   FMAIN       FREE B1 CREATING B1 WITH FQE WITH B1-B4
  215.     LTR   R0,R0
  216.     BAL   R14,CCE
  217.     L     R3,AB1
  218.     CLC   0(4,R3),=A(0)
  219.     BAL   R14,CCE
  220.     L     R0,LB1
  221.     A     R0,LB2
  222.     A     R0,LB3
  223.     A     R0,LB4
  224.     CL    R0,4(R3)    VERIFY B1 FQE NOW INCLUDES B1-B4
  225.     BAL   R14,CCE
  226.     L     R1,LB1
  227.     A     R1,LB2
  228.     SVC   GMAIN       GET B1+B2
  229.     LTR   R0,R0
  230.     BAL   R14,CCE
  231.     L     R3,AB3
  232.     CLC   0(4,R3),=A(0)
  233.     BAL   R14,CCE
  234.     L     R0,LB3
  235.     A     R0,LB4
  236.     CL    R0,4(R3)    VERIFY FQE NOW INCLUDES B3-B4
  237.     BAL   R14,CCE
  238.     L     R1,LB1
  239.     L     R2,AB1
  240.     SVC   FMAIN       FREE B1
  241.     LTR   R0,R0
  242.     BAL   R14,CCE
  243.     L     R3,AB1
  244.     CLC   0(4,R3),AB3 B1 POINTS TO B3
  245.     BAL   R14,CCE
  246.     L     R0,LB1
  247.     CL    R0,4(R3)    VERIFY B1 FQE
  248.     BAL   R14,CCE
  249.     L     R1,LB2
  250.     L     R2,AB2
  251.     SVC   FMAIN       FREE B2 BY EXTENDING B1 TO B1-B4
  252.     LTR   R0,R0
  253.     BAL   R14,CCE
  254.     L     R3,AB1
  255.     CLC   0(4,R3),=A(0) B1 NOW HAS B1-B4
  256.     BAL   R14,CCE
  257.     L     R0,LB1
  258.     A     R0,LB2
  259.     A     R0,LB3
  260.     A     R0,LB4
  261.     CL    R0,4(R3)    VERIFY B1 FQE NOW INCLUDES B1-B4
  262.     BAL   R14,CCE
  263.     L     R1,LB1
  264.     SVC   GMAIN       GET B1
  265.     LTR   R0,R0
  266.     BAL   R14,CCE
  267.     L     R1,LB2
  268.     A     R1,LB3
  269.     SVC   GMAIN       GET B2+B3
  270.     LTR   R0,R0
  271.     BAL   R14,CCE
  272.     L     R1,LB1
  273.     L     R2,AB1
  274.     SVC   FMAIN       FREE B1
  275.     LTR   R0,R0
  276.     BAL   R14,CCE
  277.     L     R3,AB1
  278.     CLC   0(4,R3),AB4 B1 NOW POINTS TO B4
  279.     BAL   R14,CCE
  280.     L     R0,LB1
  281.     CL    R0,4(R3)    VERIFY FQE NOW INCLUDES B1
  282.     BAL   R14,CCE
  283.     L     R1,LB2
  284.     L     R2,AB2
  285.     SVC   FMAIN       FREE B2 BY EXTENDING B1
  286.     LTR   R0,R0
  287.     BAL   R14,CCE
  288.     L     R3,AB1
  289.     CLC   0(4,R3),AB4 B1 POINTS TO B4
  290.     BAL   R14,CCE
  291.     L     R0,LB1
  292.     A     R0,LB2
  293.     CL    R0,4(R3)    VERIFY B1 FQE NOW INCLUDES B1-B2
  294.     BAL   R14,CCE
  295.     L     R1,LB3
  296.     L     R2,AB3
  297.     SVC   FMAIN       FREE B3 BY EXTENDING B1 TO B1-B4
  298.     LTR   R0,R0
  299.     BAL   R14,CCE
  300.     L     R3,AB1
  301.     CLC   0(4,R3),=A(0) B1 NOW HAS B1-B4
  302.     BAL   R14,CCE
  303.     L     R0,LB1
  304.     A     R0,LB2
  305.     A     R0,LB3
  306.     A     R0,LB4
  307.     CL    R0,4(R3)    VERIFY B1 FQE NOW INCLUDES B1-B4
  308.     BAL   R14,CCE
  309.     L     R1,LB1
  310.     L     R2,AB1
  311.     SVC   FMAIN
  312.     CL    R0,=A(2)
  313.     BAL   R14,CCE     VERIFY FMAIN FAILURE FOR DUP. ADDR
  314.     L     R1,LB1
  315.     L     R2,AB2
  316.     SVC   FMAIN
  317.     CL    R0,=A(2)
  318.     BAL   R14,CCE     VERIFY FMAIN FAILURE FOR INCLUDED AREA
  319.     L     R1,LB1
  320.     L     R2,AB1
  321.     S     R2,=A(5)
  322.     SVC   FMAIN
  323.     CL    R0,=A(2)
  324.     BAL   R14,CCE     VERIFY FMAIN FAILURE FOR OVERLAPPED AREA
  325.     L     R1,ASCBASF
  326.     ST    R1,0(R1)    SET QEA TO POINT TO SELF
  327.     L     R1,=A(X'7FFFF0')
  328.     SVC   GMAIN
  329.     CL    R0,=A(2)
  330.     BAL   R14,CCE     VERIFY ADDR. ERROR VS MAX
  331.     L     R1,ASCBASF
  332.     SR    R0,R0
  333.     ST    R0,0(R1)    ZERO QEA
  334.     MVC   4(4,R1),=A(X'7FFFF0') SET QEL GT ASL
  335.     L     R1,=A(X'7FFFF0')
  336.     SVC   GMAIN
  337.     CL    R0,=A(2)
  338.     BAL   R14,CCE     VERIFY ADDR. ERROR VS MAX GT ASL
  339.     L     R1,ASCBASF
  340.     SR    R0,R0
  341.     ST    R0,0(R1)    ZERO QEA
  342.     MVC   4(4,R1),LB1    SET QEL TO VALID B1 LENGTH
  343.     L     R1,=A(X'7FFFF0')
  344.     SVC   GMAIN
  345.     CL    R0,=A(1)
  346.     BAL   R14,CCE     VERIFY RC=1 MAX
  347.     CL    R1,LB1      VERFIY MAX=LB1
  348.     BAL   R14,CCE
  349.     L     R1,ASCBASF
  350.     MVC   0(4,R1),=A(X'7FFFF0') SET QEA GT ASL
  351.     L     R1,=A(X'7FFFF0')
  352.     SVC   GMAIN
  353.     CL    R0,=A(2)
  354.     BAL   R14,CCE     VERIFY RC=2 ADDR ERROR VA RC=1
  355.     MVC   ASCBASF,=A(X'7FFFF0') SET ASF ITSELF GT ASL
  356.     L     R1,=A(X'7FFFF0')
  357.     SVC   GMAIN
  358.     CL    R0,=A(2)
  359.     BAL   R14,CCE     VERIFY RC=2 ADDR ERROR VA RC=1
  360. EOJ      EQU   *
  361.     LA    R2,CMSG
  362.     SVC   WTO
  363.     LA    R2,=C'TESTRR END$'
  364.     SVC   WTO
  365.     SVC   TRACE
  366.     DC    C'ERR '
  367.     SVC   EXIT
  368. NOSPACE  EQU   *
  369.     LA    R2,=C'NOT SUFFICIENT MEMORY FOR MULT. SEG. TEST$'
  370.     SVC   WTO
  371.     B     EOJ
  372. CC0      EQU   *
  373. CCE      BE    CCOK
  374. CCBAD    SVC   TRACE
  375.     DC    C'BUG'
  376. CCOK     LA    R12,1(R12)
  377.     ST    R14,SAVELINK
  378.     L     R13,SAVELINK
  379.     LA    R11,DCOUNT+2
  380.     LA    R10,2
  381. CLOOP    IC    R10,0(R11)
  382.     O     R10,=X'000000F0'  CHANGE BLANK TO DIGIT
  383.     A     R10,=F'1'
  384.     C     R10,=X'000000FA'
  385.     BL    CDONE
  386.     L     R10,=X'000000F0'
  387.     STC   R10,0(R11)
  388.     S     R11,=F'1'
  389.     B     CLOOP
  390. CDONE    STC   R10,0(R11)
  391.     B     0(R14)
  392. CC1      EQU   *
  393. CCL      BL    CCOK
  394.     B     CCBAD
  395. CC2      EQU   *
  396. CCH      BH    CCOK
  397.     B     CCBAD
  398. CCNE     BNE   CCOK
  399.     B     CCBAD
  400. CC3      BC    1,CCOK
  401.     B     CCBAD
  402. SAVELINK DC    A(0)
  403. *
  404. * DATA
  405. *
  406. R0       EQU   0
  407. R1       EQU   1
  408. R2       EQU   2
  409. R3       EQU   3
  410. R4       EQU   4
  411. R5       EQU   5
  412. R10      EQU   10
  413. R11      EQU   11
  414. R12      EQU   12
  415. R13      EQU   13
  416. R14      EQU   14
  417. R15      EQU   15
  418. CMSG     DC    C'TOTAL TESTS = '
  419. DCOUNT   DC    C'   '
  420.     DC    C'$'
  421. TRACE    EQU   9 TRACE SVC - MUST BE FOLLOWED BY 3 CHAR. ID
  422. WTO      EQU   209 CPM WRITE TO OPERATOR (CPM SVC 9)
  423. EXIT     EQU   0 EXIT EMULATOR SVC
  424.     LTORG
  425.     DC    C'ASCB ASL AT 114 AND ASCB ASF AT 118 '
  426. ASCBASL  EQU   X'114'  LENGTH OF CURRENT VIRTUAL ADDRESS SPACE
  427. ASCBASF  EQU   X'118'  FQE POINTER
  428. GMAIN    EQU   10
  429. FMAIN    EQU   11
  430. MAXGM    EQU   100001
  431.     DC    C'*** AB1/LB1 ***'
  432. AB1      DC    A(0)
  433. LB1      DC    A(40000-1) TEST ROUNDING UP
  434. AB2      DC    A(0)
  435. LB2      DC    A(30000-7)
  436. AB3      DC    A(0)
  437. LB3      DC    A(20000)
  438. AB4      DC    A(0)
  439. LB4      DC    A(10000)
  440. AB5      DC    A(0)
  441. LB5      DC    A(X'7FFFFFF8') REQ. MAX BLOCK LENGTH POSSIBLE
  442.     DC    C'*** END OF BLOCK 5 ***'
  443.     END   TESTMM
  444.