home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / ASMUTL / PC370.ZIP / TESTSVC.ALC < prev    next >
Encoding:
Text File  |  1987-05-16  |  5.5 KB  |  236 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. *
  20. *
  21. *
  22. * CONSOLE IO TEST REQUIRES ENTERING ANY CHARACTERS AND RETURN
  23. * MEMORY TEST DISPLAYS AVAILABLE MEMORY FOR GMAIN'S
  24. *
  25. DEMOSVC  CSECT
  26.     LR    R12,R15
  27.     USING  DEMOSVC,R12
  28.     LA    R2,=C'TESTSVC START$'
  29.     SVC   WTO
  30.     L     R15,=V(PET)
  31.     BALR  R14,R15
  32. **       L     R2,=A(1000000)
  33. **       SVC   ASMEM
  34. **       CLM   R0,1,=X'08'  MEMORY NOT AVAIL. ERR - R2 = AVAILABLE
  35. **       BNZ   GMAINERR
  36. **       SVC   ASMEM        ALLOCATE AVAILABLE
  37. **       CLM   R0,1,=X'00'
  38. **       BNZ   GMAINERR
  39. **       SVC   DSMEM        FREE ALLOCATED SECONDARY MEMORY
  40. **       CLM   R0,1,=X'00'
  41. **       BNZ   FMAINERR
  42. **       CVD   R1,PWORK
  43. **       MVC   DSMEMS,DSMASK
  44. **       ED    DSMEMS,PWORK+4  START
  45. **       CVD   R2,PWORK
  46. **       MVC   DSMEML,DSMASK
  47. **       ED    DSMEML,PWORK+4  LENGTH
  48. **       LA    R2,DSMMSG
  49. **       SVC   WTO
  50.     L     R1,=A(1000000)
  51.     SVC   GMAIN
  52.     CLM   R0,1,=X'01'
  53.     BNE   GMAINERR    A=1 MEMORY NOT AVAIL
  54.     LR    R5,R1     SVE R1 FOR CHECK AFTER 2G+2F
  55.     CVD   R1,PWORK
  56.     ED    DMEM,PWORK+5
  57.     LA    R2,DMEMMSG
  58.     SVC   WTO
  59.     LA    R1,2000
  60.     SVC   GMAIN
  61.     CLM   R0,1,=X'00'
  62.     BNZ   GMAINERR
  63.     LR    R4,R2     R4 = FIRST AREA
  64.     LA    R1,2000
  65.     SVC   GMAIN
  66.     CLM   R0,1,=X'00'
  67.     BNZ   GMAINERR
  68.     LR    R6,R2    R6  = SECOND AREA
  69.     LR    R0,R4
  70.     AH    R0,=H'2000'
  71.     CLR   R0,R6
  72.     BNE   GMAINERR
  73.     LA    R1,2000
  74.     LR    R2,R4
  75.     SVC   FMAIN
  76.     CLM   R0,1,=X'00'
  77.     BNE   FMAINERR
  78.     LA    R1,2000
  79.     LR    R2,R6
  80.     SVC   FMAIN
  81.     CLM   R0,1,=X'00'
  82.     BNE   FMAINERR
  83.     L     R1,=A(1000000)
  84.     SVC   GMAIN
  85.     CLR   R1,R5
  86.     BNE   FMAINERR VERIFY MEMORY BACK TO ORIG.
  87.     LA    R1,USERSPIE
  88.     SVC   SPIE
  89. INVOP    DC    X'0123'  INVALID OP 0C1
  90. SPIEOK   EQU   *
  91.     L     R15,=V(USER370A)
  92.     BALR  R14,R15
  93.     L     R15,=V(USER370B)
  94.     BALR  R14,R15
  95.     LA    R1,=C'Z86SUB.COM'
  96.     SVC   LOADSVC       LOAD Z86SUB.COM IN FREE MEMORY
  97.     ST    R0,LOADADDR
  98.     CLM   R15,1,=X'00'
  99.     BNE   LOADERR
  100.     L     R15,LOADADDR
  101.     SVC   CALLZ86       EXEC Z86SUB IN FREE MEMORY
  102.     LA    R2,=C'CONSOLE ECHO TEST UNTIL <CR>$'
  103.     SVC   WTO
  104. ECHO     EQU   *
  105.     SVC   READCON
  106.     CLM   R0,1,=AL1(CR)
  107.     BE    ECHODONE
  108.     LR    R2,R0
  109.     SVC   WRITECON
  110.     B     ECHO
  111. ECHODONE EQU   *
  112.     LA    R2,=C'CONSOLE ECHO DONE$'
  113.     SVC   WTO
  114.     SR    R1,R1
  115.     SVC   SPIE     REMOVE SPIE
  116.     LA    R2,=C'START CURSOR ADDRESS ROUTINE$'
  117.     SVC   WTO
  118.     LA    R0,X'0E'
  119.     LA    R1,X'3D4'
  120.     SVC   PORTOUT   SET CURSOR HIGH BYTE INDEX POINTER
  121.     LA    R1,X'3D5'
  122.     SVC   PORTIN    READ HIGH BYTE
  123.     LR    R3,R0     SAVE IN R3
  124.     LA    R0,X'0F'
  125.     LA    R1,X'3D4'
  126.     SVC   PORTOUT   SET CURSOR LOW BYTE INDEX POINTER
  127.     LA    R1,X'3D5'
  128.     SVC   PORTIN    READ  LOW BYTE
  129.     SLL   R3,8
  130.     OR    R0,R3
  131.     CVD   R0,PWORK
  132.     ED    DCUR,PWORK+5
  133.     LA    R2,DCURMSG
  134.     SVC   WTO
  135.     L     R15,=V(PET)
  136.     BALR  R14,R15
  137.     LA    R2,=C'TESTSVC ENDED$'
  138.     SVC   WTO
  139.     SVC   EXIT
  140. LOADERR  EQU   *
  141.     LA    R2,=C' LOAD ERROR ON Z86SUB.EXE$'
  142.     SVC   WTO
  143.     SVC   TRACE
  144.     DC    C'BUG'
  145.     SVC   EXIT
  146. GMAINERR EQU   *
  147.     LR    R3,R0
  148.     LA    R2,=C'GMAIN ERROR$'
  149.     SVC   WTO
  150.     SVC   TRACE
  151.     DC    C'BUG'
  152.     SVC   EXIT
  153. FMAINERR EQU   *
  154.     LR    R3,R0
  155.     LA    R2,=C'FMAIN ERROR$'
  156.     SVC   WTO
  157.     SVC   TRACE
  158.     DC    C'BUG'
  159.     SVC   EXIT
  160. USERSPIE EQU   *
  161.     LR    R3,R1
  162.     LA    R2,=C'USER SPIE EXIT TAKEN$'
  163.     SVC   WTO
  164.     CLC   0(2,R3),=X'0123'
  165.     BE    2(R3)
  166.     LA    R2,=C'SPIE PSW ADDR BAD$'
  167.     SVC   WTO
  168.     SVC   TRACE
  169.     DC    C'BUG'
  170.     SVC   EXIT
  171.     DC    C'*** SAVE PSW ***'
  172. SAVEPSW  DC    D'0'
  173. R0       EQU   0
  174. R1       EQU   1
  175. R2       EQU   2
  176. R3       EQU   3
  177. R4       EQU   4
  178. R5       EQU   5
  179. R6       EQU   6
  180. R12      EQU   12
  181. R14      EQU   14
  182. R15      EQU   15
  183. WTO      EQU   209
  184. TRACE    EQU   9
  185. EXIT     EQU   0
  186. PORTIN   EQU   21
  187. PORTOUT  EQU   22
  188. READCON  EQU   208  WAS 201 UNTIL 5/16/87
  189. WRITECON EQU   202
  190. CALLZ86  EQU   15
  191. LOADSVC  EQU   17
  192. LOADADDR DC    A(0) VIRTUAL LOAD ADDRESS SET BY SVC NOW
  193. SPIE     EQU   14
  194. GMAIN    EQU   10
  195. FMAIN    EQU   11
  196. CR       EQU   X'0D'
  197. PWORK    DC    D'0'
  198. DMEMMSG  DC    C'FREE MEMORY ='
  199. DMEM     DC    X'402020202020',C'$'
  200. ASMEM    EQU   19
  201. DSMEM    EQU   20
  202. DSMASK   DC    X'4020',C',',X'202020',C',',X'202020'
  203. DSMMSG   DC    C' SECONDARY MEMORY START ='
  204. DSMEMS   DC    CL10' Z,ZZZ,ZZZ',C'  LENGTH ='
  205. DSMEML   DC    CL10' Z,ZZZ,ZZZ',C'$'
  206. DCURMSG  DC    C' CURSOR ADDRESS ='
  207. DCUR     DC    X'402020202020',C'$'
  208.     LTORG
  209. USER370A CSECT
  210.     DROP
  211.     USING *,R15
  212.     LA    R2,MSGA1
  213.     SVC   WTO
  214. USER370B CSECT
  215.     DROP
  216.     USING *,R15
  217.     LA    R2,MSGB1
  218.     SVC   WTO
  219. USER370A CSECT
  220.     DROP
  221.     USING USER370A,R15
  222.     LA    R2,=C'USER 370 A MSG 2$'
  223.     SVC   WTO
  224.     BR    R14
  225. MSGA1    DC    C'USER 370 A MSG 1$'
  226.     LTORG
  227. USER370B CSECT
  228.     DROP
  229.     USING USER370B,R15
  230.     LA    R2,=C'USER 370 B MSG 2$'
  231.     SVC   WTO
  232.     BR    R14
  233. MSGB1    DC    C'USER 370 B MSG 1$'
  234.     LTORG
  235.     END   DEMOSVC
  236.