home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / emulate / systems / pc370 / demo / demosvc.alc < prev    next >
Text File  |  1988-01-07  |  7KB  |  272 lines

  1.     TITLE 'DEMOSVC  -  TEST E370 SVCS'
  2. *
  3. * CONVERTED TO 8086 BY DON HIGGINS 03/30/85
  4. *
  5. * 04/06/85 CHANGE LINKED Z80SUB TO LOADED Z86SUB
  6. * 04/07/85 ADD TEST FOR TIMER SVC AND LIBRARY SUBROUTINES
  7. * 04/08/85 ADD TEST FOR ALLOC/DEALLOC SECONDARY MAIN MEMORY
  8. * 04/14/85 ADD TEST FOR IN/OUT SVCS BY GETTING CURSOR ADDRESS
  9. * 04/12/87 CONVERT FOR R2.0
  10. *            1.  DROP ALLOC/DEALLOC TESTS SINCE ALL OF DYNAMIC
  11. *                MEMORY IS ALLOCATED TO VIRTUAL FREE SPACE.
  12. *            2.  CHANGE Z86SUB.EXE TO Z86SUB.COM FORMAT WITH
  13. *                FAR RETURN AND USE NEW SVC 17 AND 15 LOGIC WHICH
  14. *                LOADS 8086 CODE FILE IN FREE MEMORY JUST LIKE 370
  15. *                LOAD DOES.
  16. *            3.  FIX SPIE ROUTINE TO RETURN PSW IN R0-R1 INSTEAD OF
  17. *                ADDDRESS OF PSW IN R1.
  18. * 05/16/87 TEST SVC 8 FOR GANNON
  19. * 11/11/87 EXPAND FREE MEMORY DISPLAY
  20. * 12/26/87 ADD TEST OF ENHANCED SPIE WITH R2=A(PIE) PLUS
  21. *          CORRECT HANDLING OF PGM CHK ON EX'D INSTR.
  22. * 01/07/88 USE COPY EQUS
  23. *
  24. * CONSOLE IO TEST REQUIRES ENTERING ANY CHARACTERS AND RETURN
  25. * MEMORY TEST DISPLAYS AVAILABLE MEMORY FOR GMAIN'S
  26. *
  27. DEMOSVC  CSECT
  28.     LR    R12,R15
  29.     USING  DEMOSVC,R12
  30.     LA    R2,=C'TESTSVC START$'
  31.     SVC   WTO
  32.     L     R15,=V(PET)
  33.     BALR  R14,R15
  34.     L     R1,=A(1000000)
  35.     SVC   GMAIN
  36.     CLM   R0,1,=X'01'
  37.     BNE   GMAINERR    A=1 MEMORY NOT AVAIL
  38.     LR    R5,R1     SVE R1 FOR CHECK AFTER 2G+2F
  39.     CVD   R1,PWORK
  40.     ED    DMEM,PWORK+4
  41.     LA    R2,DMEMMSG
  42.     SVC   WTO
  43.     LA    R1,2000
  44.     SVC   GMAIN
  45.     CLM   R0,1,=X'00'
  46.     BNZ   GMAINERR
  47.     LR    R4,R2     R4 = FIRST AREA
  48.     LA    R1,2000
  49.     SVC   GMAIN
  50.     CLM   R0,1,=X'00'
  51.     BNZ   GMAINERR
  52.     LR    R6,R2    R6  = SECOND AREA
  53.     LR    R0,R4
  54.     AH    R0,=H'2000'
  55.     CLR   R0,R6
  56.     BNE   GMAINERR
  57.     LA    R1,2000
  58.     LR    R2,R4
  59.     SVC   FMAIN
  60.     CLM   R0,1,=X'00'
  61.     BNE   FMAINERR
  62.     LA    R1,2000
  63.     LR    R2,R6
  64.     SVC   FMAIN
  65.     CLM   R0,1,=X'00'
  66.     BNE   FMAINERR
  67.     L     R1,=A(1000000)
  68.     SVC   GMAIN
  69.     CLR   R1,R5
  70.     BNE   FMAINERR VERIFY MEMORY BACK TO ORIG.
  71.     LA    R1,USERSPI1
  72.     SVC   SPIE
  73.     LM    R14,R2,=A(14,15,0,1,2)
  74. INVOP1   DC    X'0123'       INVALID OP 0C1
  75.     LA    R1,USERSPI2
  76.     SVC   SPIE
  77.     LM    R14,R2,=A(14,15,0,1,2)
  78. INVOP2   CP    =P'1',=X'00'  INVALID DATA 0C7
  79.     LA    R1,USERSPI3
  80.     SVC   SPIE
  81.     LM    R14,R2,=A(X'14ABCDEF',15,X'00ABCDEF',1,2)
  82. INVOP3   EX    0,INVOPEX     INVALID DATA 0C4
  83.     SR    R1,R1
  84.     SVC   SPIE
  85.     L     R15,=V(USER370A)
  86.     BALR  R14,R15
  87.     L     R15,=V(USER370B)
  88.     BALR  R14,R15
  89.     LA    R1,=C'Z86SUB.COM'
  90.     SVC   LOADSVC       LOAD Z86SUB.COM IN FREE MEMORY
  91.     ST    R0,LOADADDR
  92.     CLM   R15,1,=X'00'
  93.     BNE   LOADERR
  94.     L     R15,LOADADDR
  95.     SVC   CALLZ86       EXEC Z86SUB IN FREE MEMORY
  96.     LA    R2,=C'CONSOLE ECHO TEST UNTIL <CR>$'
  97.     SVC   WTO
  98. ECHO     EQU   *
  99.     SVC   READCON
  100.     CLM   R0,1,=AL1(CR)
  101.     BE    ECHODONE
  102.     LR    R2,R0
  103.     SVC   WRITECON
  104.     B     ECHO
  105. ECHODONE EQU   *
  106.     LA    R2,=C'CONSOLE ECHO DONE$'
  107.     SVC   WTO
  108.     SR    R1,R1
  109.     SVC   SPIE     REMOVE SPIE
  110.     LA    R2,=C'START CURSOR ADDRESS ROUTINE$'
  111.     SVC   WTO
  112.     LA    R0,X'0E'
  113.     LA    R1,X'3D4'
  114.     SVC   PORTOUT   SET CURSOR HIGH BYTE INDEX POINTER
  115.     LA    R1,X'3D5'
  116.     SVC   PORTIN    READ HIGH BYTE
  117.     LR    R3,R0     SAVE IN R3
  118.     LA    R0,X'0F'
  119.     LA    R1,X'3D4'
  120.     SVC   PORTOUT   SET CURSOR LOW BYTE INDEX POINTER
  121.     LA    R1,X'3D5'
  122.     SVC   PORTIN    READ  LOW BYTE
  123.     SLL   R3,8
  124.     OR    R0,R3
  125.     CVD   R0,PWORK
  126.     ED    DCUR,PWORK+5
  127.     LA    R2,DCURMSG
  128.     SVC   WTO
  129.     L     R15,=V(PET)
  130.     BALR  R14,R15
  131.     LA    R2,=C'TESTSVC ENDED$'
  132.     SVC   WTO
  133.     SVC   EXIT
  134. LOADERR  EQU   *
  135.     LA    R2,=C' LOAD ERROR ON Z86SUB.EXE$'
  136.     SVC   WTO
  137.     SVC   TRACE
  138.     DC    C'BUG'
  139.     SVC   EXIT
  140. GMAINERR EQU   *
  141.     LR    R3,R0
  142.     LA    R2,=C'GMAIN ERROR$'
  143.     SVC   WTO
  144.     SVC   TRACE
  145.     DC    C'BUG'
  146.     SVC   EXIT
  147. FMAINERR EQU   *
  148.     LR    R3,R0
  149.     LA    R2,=C'FMAIN ERROR$'
  150.     SVC   WTO
  151.     SVC   TRACE
  152.     DC    C'BUG'
  153.     SVC   EXIT
  154. USERSPI1 EQU   *   0C1 ON X'123'
  155.     LR    R3,R0
  156.     LR    R4,R1
  157.     LR    R5,R2
  158.     USING IHAPIE,R5
  159.     LA    R2,=C'USER SPIE EXIT 1 TAKEN$'
  160.     SVC   WTO
  161.     CL    R3,=AL2(4,1)      R0 =  INS LNG + INT. CODE
  162.     BNE   SPIERR
  163.     CL    R4,=A(INVOP1)      R1 =  INSTR. ADDR
  164.     BNE   SPIERR
  165.     CLC   PIEPSW+4(4),=A(INVOP1)
  166.     BNE   SPIERR
  167.     LA    R6,32(R5)         R4 =  PIE (SET R6 TO PICA)
  168.     CL    R6,PIEPICA
  169.     BNE   SPIERR
  170.     CLC   PICEXT,=A(USERSPI1)
  171.     BNE   SPIERR
  172.     CLC   PIEGR14,=A(14)
  173.     BNE   SPIERR
  174.     CLC   PIEGR15,=A(15)
  175.     BNE   SPIERR
  176.     CLC   PIEGR0,=A(0)
  177.     BNE   SPIERR
  178.     CLC   PIEGR1,=A(1)
  179.     BNE   SPIERR
  180.     CLC   PIEGR2,=A(2)
  181.     BNE   SPIERR
  182.     B     2(R4)
  183. USERSPI2 EQU   *  0C7 ON CP =P'1',=X'00'
  184.     LR    R3,R0
  185.     LR    R4,R1
  186.     LR    R5,R2
  187.     LA    R2,=C'USER SPIE EXIT 2 TAKEN$'
  188.     SVC   WTO
  189.     CL    R3,=AL2(6,7)      R0 =  INS LNG + INT. CODE
  190.     BNE   SPIERR
  191.     CL    R4,=A(INVOP2+6)      R1 =  INSTR. ADDR
  192.     BNE   SPIERR
  193.     LA    R6,32(R5)         R4 =  PIE (SET R6 TO PICA)
  194.     CL    R6,0(R5)          VERIFY PIE POINTS TO PICA
  195.     BNE   SPIERR
  196.     CLC   12(20,R5),=A(14,15,0,1,2)
  197.     BNE   SPIERR
  198.     B     0(R4)
  199. USERSPI3 EQU   *  0C5 ON EX 0,INVOPEX = MVCL 0,14
  200.     LR    R3,R0
  201.     LR    R4,R1
  202.     LR    R5,R2
  203.     LA    R2,=C'USER SPIE EXIT 3 TAKEN$'
  204.     SVC   WTO
  205.     CL    R3,=AL2(4,5)      R0 =  INS LNG + INT. CODE
  206.     BNE   SPIERR
  207.     CL    R4,=A(INVOP3+4)      R1 =  INSTR. ADDR
  208.     BNE   SPIERR
  209.     LA    R6,32(R5)         R4 =  PIE (SET R6 TO PICA)
  210.     CL    R6,0(R5)          VERIFY PIE POINTS TO PICA
  211.     BNE   SPIERR
  212.     CLC   12(20,R5),=A(X'14ABCDEF',15,X'00ABCDEF',1,2)
  213.     BNE   SPIERR
  214.     B     0(R4)
  215. SPIERR   EQU   *
  216.     LA    R2,=C'SPIE PSW / ADDR BAD$'
  217.     SVC   WTO
  218.     SVC   TRACE
  219.     DC    C'BUG'
  220.     SVC   EXIT
  221. INVOPEX  MVCL  0,14 FORCE 0C4 VIA EX
  222.     DC    C'*** SAVE PSW ***'
  223. SAVEPSW  DC    D'0'
  224.     COPY  CPY/EQUREGS.CPY
  225.     COPY  CPY/EQUSVCS.CPY
  226. WRITECON EQU   202
  227. READCON  EQU   208
  228. PORTIN   EQU   INBYTE
  229. PORTOUT  EQU   OUTBYTE
  230. CALLZ86  EQU   USERSVC
  231. LOADSVC  EQU   LOAD86
  232. LOADADDR DC    A(0) VIRTUAL LOAD ADDRESS SET BY SVC NOW
  233. CR       EQU   X'0D'
  234. PWORK    DC    D'0'
  235. DMEMMSG  DC    C'FREE MEMORY ='
  236. DMEM     DC    X'40206B2020206B202020',C'$'
  237. DSMASK   DC    X'4020',C',',X'202020',C',',X'202020'
  238. DSMMSG   DC    C' SECONDARY MEMORY START ='
  239. DSMEMS   DC    CL10' Z,ZZZ,ZZZ',C'  LENGTH ='
  240. DSMEML   DC    CL10' Z,ZZZ,ZZZ',C'$'
  241. DCURMSG  DC    C' CURSOR ADDRESS ='
  242. DCUR     DC    X'402020202020',C'$'
  243.     LTORG
  244. USER370A CSECT
  245.     DROP
  246.     USING *,R15
  247.     LA    R2,MSGA1
  248.     SVC   WTO
  249. USER370B CSECT
  250.     DROP
  251.     USING *,R15
  252.     LA    R2,MSGB1
  253.     SVC   WTO
  254. USER370A CSECT
  255.     DROP
  256.     USING USER370A,R15
  257.     LA    R2,=C'USER 370 A MSG 2$'
  258.     SVC   WTO
  259.     BR    R14
  260. MSGA1    DC    C'USER 370 A MSG 1$'
  261.     LTORG
  262. USER370B CSECT
  263.     DROP
  264.     USING USER370B,R15
  265.     LA    R2,=C'USER 370 B MSG 2$'
  266.     SVC   WTO
  267.     BR    R14
  268. MSGB1    DC    C'USER 370 B MSG 1$'
  269.     LTORG
  270.     COPY  CPY/IHAPIE.CPY
  271.     END   DEMOSVC
  272.