home *** CD-ROM | disk | FTP | other *** search
- TITLE 'TESTRL - TEST GETMAIN/FREEMAIN FOR EXTENDED ADDRESSING'
- * PGMID. TESTMM.ALC.
- * AUTHOR.DON HIGGINS.
- *
- * MAINTENANCE.
- *
- * 01/20/87 COPIED FROM TESTRL, GUT, ADD GETMAIN TEST
- * 01/21/87 ADD MULT. GM/FM TESTS
- * 05/24/87 ADD TEST FOR FMAIN BETWEEN TWO FREE BLOCKS POINTING TO THIRD
- TESTMM CSECT
- USING *,R15
- SVC TRACE
- DC C'SRR'
- LA R2,=C'TESTMM START$'
- SVC WTO
- L R1,ASCBASL
- CL R1,=A(MAXGM) ;IS VA LARGE ENOUGH FOR TEST
- BNH NOSPACE ;NO, ABORT NOW
- L R3,ASCBASF ;R3=ORIG. FQE
- CLC 0(4,R3),=A(0) ;DOES ORIG. FQE HAVE ZERO PTR
- BAL R14,CCE
- L R1,ASCBASL
- SR R1,R3
- CL R1,4(R3)
- BAL R14,CCE ;DOES ORIG. FQE HAVE ALL VA SPACE ALLOC.
- SR R0,R0
- L R1,=A(100000)
- SVC GMAIN ;GET 100,000 AREA
- LTR R0,R0
- BAL R14,CCE
- CLR R2,R3 ;DOES GM AREA = ORIG FQE
- BAL R14,CCE
- CL R1,=A(100000) ;IS R1 = GM LENGTH
- BAL R14,CCE
- A R3,=A(100000)
- CL R3,ASCBASF ;DOES FQE PTR NOW POINT TO END+1
- BAL R14,CCE
- CLC 0(4,R3),=A(0) ;DOES NEW FQE HAVE ZERO POINTER
- BAL R14,CCE
- A R3,4(R3)
- CL R3,ASCBASL ;DOES NEW FQE CONTAIN REMAINING SPACE
- BAL R14,CCE
- SVC FMAIN RELEASE 100,000 BYTE AREA
- LTR R0,R0
- BAL R14,CCE ;VERIFY FREEMAIN OK
- L R3,ASCBASF ;R3=ORIG. FQE
- CLC 0(4,R3),=A(0) ;DOES ORIG. FQE HAVE ZERO PTR
- BAL R14,CCE
- L R1,ASCBASL
- SR R1,R3
- CL R1,4(R3)
- BAL R14,CCE ;DOES ORIG. FQE HAVE ALL VA SPACE ALLOC.
- *
- * END OF SINGLE GMAIN/FMAIN TESTS
- *
- L R1,LB1
- SVC GMAIN
- LTR R0,R0
- BAL R14,CCE
- CL R1,=A(40000)
- BAL R14,CCE
- ST R1,LB1 STORE ROUNDED
- ST R2,AB1
- L R1,LB2
- SVC GMAIN
- LTR R0,R0
- BAL R14,CCE
- CL R1,=A(30000)
- BAL R14,CCE
- ST R1,LB2 STORE ROUNDED
- ST R2,AB2
- L R1,LB3
- SVC GMAIN
- LTR R0,R0
- BAL R14,CCE
- ST R2,AB3
- L R1,LB4
- SVC GMAIN
- LTR R0,R0
- BAL R14,CCE
- ST R2,AB4
- L R1,LB5
- SVC GMAIN
- CL R0,=A(1)
- BAL R14,CCE
- ST R1,LB5 RESET LENGTH OF B5 TO MAX. AVAIL.
- SVC GMAIN GET ALL OF REMAINING SPACE IN B5
- LTR R0,R0
- BAL R14,CCE
- ST R2,AB5
- A R2,LB5
- CL R2,ASCBASL
- BAL R14,CCE VERIFY B5 HAS IT ALL
- CLC ASCBASF(4,0),=A(0)
- BAL R14,CCE VERIFY FQE POINTER 0
- *
- * 5 AREAS NOW ALLOCATED
- *
- * NEW TEST TO PICK OFF NEW BUS IS FREE A1, FREE A3, FREE A5, THEN FREE A3
- *
- L R1,LB1
- L R2,AB1
- SVC FMAIN RELEASE B1
- LTR R0,R0
- BAL R14,CCE
- L R1,LB3
- L R2,AB3
- SVC FMAIN RELEASE B3
- LTR R0,R0
- BAL R14,CCE
- L R1,LB5
- L R2,AB5
- SVC FMAIN RELEASE B5
- LTR R0,R0
- BAL R14,CCE
- L R1,LB2
- L R2,AB2
- SVC FMAIN RELEASE B2
- LTR R0,R0
- BAL R14,CCE
- *
- * NOW GET BLOCK BACK AGAIN IF OK
- *
- L R1,LB1 GET B1 AGAIN
- SVC GMAIN
- LTR R0,R0
- BAL R14,CCE
- CL R1,=A(40000)
- BAL R14,CCE
- ST R1,LB1 STORE ROUNDED
- ST R2,AB1
- L R1,LB2 GET B2 AGAIN
- SVC GMAIN
- LTR R0,R0
- BAL R14,CCE
- CL R1,=A(30000)
- BAL R14,CCE
- ST R1,LB2 STORE ROUNDED
- ST R2,AB2
- L R1,LB3 GET B3 AGAIN
- SVC GMAIN
- LTR R0,R0
- BAL R14,CCE
- ST R2,AB3
- L R1,LB5 GET B5 AGAIN
- SVC GMAIN
- LTR R0,R0
- BAL R14,CCE
- ST R2,AB5
- A R2,LB5
- CL R2,ASCBASL
- BAL R14,CCE VERIFY B5 HAS IT ALL
- CLC ASCBASF(4,0),=A(0)
- BAL R14,CCE VERIFY FQE POINTER 0
- *
- * CONTINUE ORIGINAL TESTS
- *
- L R1,LB1
- L R2,AB1
- SVC FMAIN RELEASE B1
- LTR R0,R0
- BAL R14,CCE
- CLC ASCBASF(4,0),AB1 VERIFY B1 NOW ON FQE QUEUE
- BAL R14,CCE
- L R3,AB1
- CLC 0(4,R3),=A(0)
- BAL R14,CCE
- CLC 4(4,R3),LB1
- BAL R14,CCE
- L R1,LB3
- L R2,AB3
- SVC FMAIN RELEASE B3
- LTR R0,R0
- BAL R14,CCE
- CLC 0(4,R3),AB3
- BAL R14,CCE VERIFY B1 NOW POINTS TO B3
- L R3,AB3
- CLC 0(4,R3),=A(0)
- BAL R14,CCE
- CLC 4(4,R3),LB3
- BAL R14,CCE VERIFY B3 ON FQE OK
- L R1,LB4
- L R2,AB4
- SVC FMAIN RELEASE B4 BY EXTENDING B3 FQE
- LTR R0,R0
- BAL R14,CCE
- L R3,AB3
- CLC 0(4,R3),=A(0)
- BAL R14,CCE
- L R0,LB3
- A R0,LB4
- CL R0,4(R3) VERIFY B3 FQE NOW INCLUDES B4
- BAL R14,CCE VERIFY B3 ON FQE OK
- L R1,LB2
- L R2,AB2
- SVC FMAIN RELEASE B2 BY EXTENDING B1-B4
- LTR R0,R0
- BAL R14,CCE
- L R3,AB1
- CLC 0(4,R3),=A(0)
- BAL R14,CCE
- L R0,LB1
- A R0,LB2
- A R0,LB3
- A R0,LB4
- CL R0,4(R3) VERIFY B1 FQE NOW INCLUDES B1-B4
- BAL R14,CCE
- L R1,LB1
- SVC GMAIN GET B1
- LTR R0,R0
- BAL R14,CCE
- L R1,LB1
- L R2,AB1
- SVC FMAIN FREE B1 CREATING B1 WITH FQE WITH B1-B4
- LTR R0,R0
- BAL R14,CCE
- L R3,AB1
- CLC 0(4,R3),=A(0)
- BAL R14,CCE
- L R0,LB1
- A R0,LB2
- A R0,LB3
- A R0,LB4
- CL R0,4(R3) VERIFY B1 FQE NOW INCLUDES B1-B4
- BAL R14,CCE
- L R1,LB1
- A R1,LB2
- SVC GMAIN GET B1+B2
- LTR R0,R0
- BAL R14,CCE
- L R3,AB3
- CLC 0(4,R3),=A(0)
- BAL R14,CCE
- L R0,LB3
- A R0,LB4
- CL R0,4(R3) VERIFY FQE NOW INCLUDES B3-B4
- BAL R14,CCE
- L R1,LB1
- L R2,AB1
- SVC FMAIN FREE B1
- LTR R0,R0
- BAL R14,CCE
- L R3,AB1
- CLC 0(4,R3),AB3 B1 POINTS TO B3
- BAL R14,CCE
- L R0,LB1
- CL R0,4(R3) VERIFY B1 FQE
- BAL R14,CCE
- L R1,LB2
- L R2,AB2
- SVC FMAIN FREE B2 BY EXTENDING B1 TO B1-B4
- LTR R0,R0
- BAL R14,CCE
- L R3,AB1
- CLC 0(4,R3),=A(0) B1 NOW HAS B1-B4
- BAL R14,CCE
- L R0,LB1
- A R0,LB2
- A R0,LB3
- A R0,LB4
- CL R0,4(R3) VERIFY B1 FQE NOW INCLUDES B1-B4
- BAL R14,CCE
- L R1,LB1
- SVC GMAIN GET B1
- LTR R0,R0
- BAL R14,CCE
- L R1,LB2
- A R1,LB3
- SVC GMAIN GET B2+B3
- LTR R0,R0
- BAL R14,CCE
- L R1,LB1
- L R2,AB1
- SVC FMAIN FREE B1
- LTR R0,R0
- BAL R14,CCE
- L R3,AB1
- CLC 0(4,R3),AB4 B1 NOW POINTS TO B4
- BAL R14,CCE
- L R0,LB1
- CL R0,4(R3) VERIFY FQE NOW INCLUDES B1
- BAL R14,CCE
- L R1,LB2
- L R2,AB2
- SVC FMAIN FREE B2 BY EXTENDING B1
- LTR R0,R0
- BAL R14,CCE
- L R3,AB1
- CLC 0(4,R3),AB4 B1 POINTS TO B4
- BAL R14,CCE
- L R0,LB1
- A R0,LB2
- CL R0,4(R3) VERIFY B1 FQE NOW INCLUDES B1-B2
- BAL R14,CCE
- L R1,LB3
- L R2,AB3
- SVC FMAIN FREE B3 BY EXTENDING B1 TO B1-B4
- LTR R0,R0
- BAL R14,CCE
- L R3,AB1
- CLC 0(4,R3),=A(0) B1 NOW HAS B1-B4
- BAL R14,CCE
- L R0,LB1
- A R0,LB2
- A R0,LB3
- A R0,LB4
- CL R0,4(R3) VERIFY B1 FQE NOW INCLUDES B1-B4
- BAL R14,CCE
- L R1,LB1
- L R2,AB1
- SVC FMAIN
- CL R0,=A(2)
- BAL R14,CCE VERIFY FMAIN FAILURE FOR DUP. ADDR
- L R1,LB1
- L R2,AB2
- SVC FMAIN
- CL R0,=A(2)
- BAL R14,CCE VERIFY FMAIN FAILURE FOR INCLUDED AREA
- L R1,LB1
- L R2,AB1
- S R2,=A(5)
- SVC FMAIN
- CL R0,=A(2)
- BAL R14,CCE VERIFY FMAIN FAILURE FOR OVERLAPPED AREA
- L R1,ASCBASF
- ST R1,0(R1) SET QEA TO POINT TO SELF
- L R1,=A(X'7FFFF0')
- SVC GMAIN
- CL R0,=A(2)
- BAL R14,CCE VERIFY ADDR. ERROR VS MAX
- L R1,ASCBASF
- SR R0,R0
- ST R0,0(R1) ZERO QEA
- MVC 4(4,R1),=A(X'7FFFF0') SET QEL GT ASL
- L R1,=A(X'7FFFF0')
- SVC GMAIN
- CL R0,=A(2)
- BAL R14,CCE VERIFY ADDR. ERROR VS MAX GT ASL
- L R1,ASCBASF
- SR R0,R0
- ST R0,0(R1) ZERO QEA
- MVC 4(4,R1),LB1 SET QEL TO VALID B1 LENGTH
- L R1,=A(X'7FFFF0')
- SVC GMAIN
- CL R0,=A(1)
- BAL R14,CCE VERIFY RC=1 MAX
- CL R1,LB1 VERFIY MAX=LB1
- BAL R14,CCE
- L R1,ASCBASF
- MVC 0(4,R1),=A(X'7FFFF0') SET QEA GT ASL
- L R1,=A(X'7FFFF0')
- SVC GMAIN
- CL R0,=A(2)
- BAL R14,CCE VERIFY RC=2 ADDR ERROR VA RC=1
- MVC ASCBASF,=A(X'7FFFF0') SET ASF ITSELF GT ASL
- L R1,=A(X'7FFFF0')
- SVC GMAIN
- CL R0,=A(2)
- BAL R14,CCE VERIFY RC=2 ADDR ERROR VA RC=1
- EOJ EQU *
- LA R2,CMSG
- SVC WTO
- LA R2,=C'TESTRR END$'
- SVC WTO
- SVC TRACE
- DC C'ERR '
- SVC EXIT
- NOSPACE EQU *
- LA R2,=C'NOT SUFFICIENT MEMORY FOR MULT. SEG. TEST$'
- SVC WTO
- B EOJ
- CC0 EQU *
- CCE BE CCOK
- CCBAD SVC TRACE
- DC C'BUG'
- CCOK LA R12,1(R12)
- ST R14,SAVELINK
- L R13,SAVELINK
- LA R11,DCOUNT+2
- LA R10,2
- CLOOP IC R10,0(R11)
- O R10,=X'000000F0' CHANGE BLANK TO DIGIT
- A R10,=F'1'
- C R10,=X'000000FA'
- BL CDONE
- L R10,=X'000000F0'
- STC R10,0(R11)
- S R11,=F'1'
- B CLOOP
- CDONE STC R10,0(R11)
- B 0(R14)
- CC1 EQU *
- CCL BL CCOK
- B CCBAD
- CC2 EQU *
- CCH BH CCOK
- B CCBAD
- CCNE BNE CCOK
- B CCBAD
- CC3 BC 1,CCOK
- B CCBAD
- SAVELINK DC A(0)
- *
- * DATA
- *
- R0 EQU 0
- R1 EQU 1
- R2 EQU 2
- R3 EQU 3
- R4 EQU 4
- R5 EQU 5
- R10 EQU 10
- R11 EQU 11
- R12 EQU 12
- R13 EQU 13
- R14 EQU 14
- R15 EQU 15
- CMSG DC C'TOTAL TESTS = '
- DCOUNT DC C' '
- DC C'$'
- TRACE EQU 9 TRACE SVC - MUST BE FOLLOWED BY 3 CHAR. ID
- WTO EQU 209 CPM WRITE TO OPERATOR (CPM SVC 9)
- EXIT EQU 0 EXIT EMULATOR SVC
- LTORG
- DC C'ASCB ASL AT 114 AND ASCB ASF AT 118 '
- ASCBASL EQU X'114' LENGTH OF CURRENT VIRTUAL ADDRESS SPACE
- ASCBASF EQU X'118' FQE POINTER
- GMAIN EQU 10
- FMAIN EQU 11
- MAXGM EQU 100001
- DC C'*** AB1/LB1 ***'
- AB1 DC A(0)
- LB1 DC A(40000-1) TEST ROUNDING UP
- AB2 DC A(0)
- LB2 DC A(30000-7)
- AB3 DC A(0)
- LB3 DC A(20000)
- AB4 DC A(0)
- LB4 DC A(10000)
- AB5 DC A(0)
- LB5 DC A(X'7FFFFFF8') REQ. MAX BLOCK LENGTH POSSIBLE
- DC C'*** END OF BLOCK 5 ***'
- END TESTMM