home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / CROSSASM / ASM370.ZIP / DEMOIO.ALC < prev    next >
Encoding:
Text File  |  1985-06-15  |  5.7 KB  |  191 lines

  1.          TITLE 'DEMOIO  - TEST FIXED AND VARIABLE I/O'
  2. *
  3. * AUTHOR.   DON HIGGINS.
  4. * DATE.     03/30/85.
  5. * REMARKS.  PC/370 PROGRAM TO DEMO SEQUENTIAL AND RANDOM FILE ACCESS.
  6. *
  7. DEMOIO   CSECT
  8.          USING DEMOIO,R15
  9.          LA    R2,=C'DEMOIO STARTED$'
  10.          SVC   WTO
  11.          LA    R2,=C'CREATE TESTF.DAT FILE$'
  12.          SVC   WTO
  13.          LA    R2,TESTF
  14.          USING IHADCB,R2
  15.          SVC   OPEN
  16.          LA    R3,10
  17.          LA    R4,1
  18. FLOOP    EQU   *
  19.          STC   R4,FREC
  20.          MVC   FREC+1(L'FREC-1),FREC FILL RECORD WITH RECORD #
  21.          LA    R4,1(R4)
  22.          LA    R1,FREC
  23.          LA    R2,TESTF
  24.          SVC   PUT   SEQUENTIALLY WRITE FIXED FILE RECORDS
  25.          BCT   R3,FLOOP
  26.          LA    R2,TESTF
  27.          SVC   CLOSE
  28.          LA    R2,=C'RANDOMLY UPDATE TESTF.DAT$'
  29.          SVC   WTO
  30.          LA    R2,TESTF
  31.          MVI   DSORG,C'R' RANDOM
  32.          MVI   MACRF,C'W' READ OR WRITE
  33.          SVC   OPEN
  34.          ICM   R5,1,DMAS
  35.          ICM   R5,2,DMAS+1  R5=A(DMA BUFFER)
  36.          LA    R1,4
  37.          LA    R2,TESTF
  38.          SVC   READ  RANDOMLY READ RECORD 5
  39.          CLI   0(R5),5
  40.          BAL   R14,CHKF
  41.          CLC   1(L'FREC-1,R5),0(R5)
  42.          BAL   R14,CHKF
  43.          MVI   0(R5),X'FF'
  44.          MVC   1(L'FREC-1,R5),0(R5)
  45.          LA    R1,4
  46.          LA    R2,TESTF
  47.          SVC   WRITE   UPDATE RECORD 5 WITH HIGH VALUES
  48.          LA    R1,1
  49.          LA    R2,TESTF
  50.          SVC   READ   RANDOMLY READ RECORD 2 AND VERIFY
  51.          CLI   0(R5),2
  52.          BAL   R14,CHKF
  53.          LA    R1,4
  54.          LA    R2,TESTF
  55.          SVC   READ   REREAD RECORD 5 AND VERFIY
  56.          CLI   0(R5),X'FF'
  57.          BAL   R14,CHKF
  58.          CLC   1(L'FREC-1,R5),0(R5)
  59.          BAL   R14,CHKF
  60.          LA    R2,TESTF
  61.          SVC   CLOSE
  62.          LA    R2,=C'CREATE TESTV.DAT$'
  63.          SVC   WTO
  64.          LA    R2,TESTV
  65.          USING IHADCB,R2
  66.          SVC   OPEN
  67.          LA    R3,10
  68.          LA    R4,5
  69. VLOOP    EQU   *
  70.          STCM  R4,1,VREC
  71.          STCM  R4,2,VREC+1
  72.          LA    R4,5(R4)  INC LENGTH
  73.          LA    R1,VREC
  74.          LA    R2,TESTV
  75.          SVC   PUT SEQUENTIALLY WRITE VARIABLE RCDS FROM 5 TO 55 BY 5
  76.          BCT   R3,VLOOP
  77.          LA    R2,TESTV
  78.          SVC   CLOSE
  79.          LA    R2,=C'SEQUENTIALLY READ AND VERIFY TESTV.DAT$'
  80.          SVC   WTO
  81.          LA    R2,TESTV
  82.          MVI   MACRF,C'G'
  83.          SVC   OPEN
  84.          LA    R4,5
  85. VRLOOP   EQU   *
  86.          LA    R1,VREC
  87.          LA    R2,TESTV
  88.          SVC   GET  SEQ. READ AND VERIFY LENGTHS
  89.          CLM   R4,1,VREC
  90.          BAL   R14,CHKV
  91.          CLM   R4,2,VREC+1
  92.          BAL   R14,CHKV
  93.          LA    R4,5(R4)
  94.          B     VRLOOP
  95. VEOF     EQU   *
  96.          LA    R2,TESTV
  97.          SVC   CLOSE
  98.          CH    R4,=H'55'
  99.          BAL   R14,CHKV
  100.          LA    R2,=C'DEMOIO ENDED$'
  101.          SVC   WTO
  102.          SVC   EXIT
  103. CHKF     EQU   *
  104.          BER   R14
  105. FSYN     EQU   *
  106.          SVC   TRACE
  107.          DC    C'BUG'
  108.          SVC   EXIT
  109.          DC    C'FIXED ERROR'
  110. CHKV     DS    0H
  111.          BER   R14
  112. VSYN     EQU   *
  113.          SVC   TRACE
  114.          DC    C'BUG'
  115.          SVC   EXIT
  116.          DC    C'VARIBLE ERROR'
  117.          LTORG
  118. R0       EQU   0
  119. R1       EQU   1
  120. R2       EQU   2
  121. R3       EQU   3
  122. R4       EQU   4
  123. R5       EQU   5
  124. R6       EQU   6
  125. R7       EQU   7
  126. R8       EQU   8
  127. R9       EQU   9
  128. R10      EQU   10
  129. R11      EQU   11
  130. R12      EQU   12
  131. R13      EQU   13
  132. R14      EQU   14
  133. R15      EQU   15
  134. WTO      EQU   209 WRITE TO OPERATOR
  135. EXIT     EQU   0 EXIT  TO CP/M
  136. OPEN     EQU   1 OPEN FILE
  137. CLOSE    EQU   2 CLOSE FILE
  138. READ     EQU   3 READ FILE RECORD
  139. WRITE    EQU   4 WRITE FILE RECORD
  140. GET      EQU   5 GET RECORD
  141. PUT      EQU   6 PUT RECORD
  142. TRACE    EQU   9 TRACE SVC
  143.          DC    C'FREC'
  144. FREC     DC    XL128'00'
  145.          DC    C'VREC'
  146. VREC     DC    XL55'00'
  147.          DC    C'TESTF DCB'
  148. TESTF    DS    0XL59  ADD EXTRA BYTE TO BLKPTR FOR MSDOS
  149.          DC    X'00',CL8'TESTF',CL3'DAT'  UNIT,DDNAME,TYPE
  150.          DC    HL2'0',HL2'128'             CURBLK, LRECL
  151.          DC    XL16'00',X'00',XL4'00'     RESV'D, RCD EXT, BLK PTR
  152.          DC    C'PF'  SEQ. PUT FIXED
  153.          DC    HL2'128'  MAX TEXT RECORD (NOTE NO ALIGNMENT)
  154.          DC    HL2'128' BLOCK SIZE
  155.          DC    AL2(FSYN,FSYN)
  156.          DC    XL8'00',X'0A',X'1A',X'00',C'S'
  157.          DC    C'TESTV DCB'
  158. TESTV    DS    0XL59
  159.          DC    X'00',CL8'TESTV',CL3'DAT'
  160.          DC    HL2'0',HL2'128'          CURBLK, LRECL
  161.          DC    XL16'00',XL1'00',XL4'00'
  162.          DC    C'PV' SEQ. PUT VARIABLE
  163.          DC    HL2'55'  MAX TEXT RECORD (NOTE TRUNC. TO 80)
  164.          DC    HL2'2048' BLOCK SIZE
  165.          DC    AL2(VEOF,VSYN)
  166.          DC    XL8'00',X'0A',X'1A',X'00',C'S'
  167. *
  168. *  DATA CONTROL BLOCK DUMMY SECTION FOR MSDOS FILES USING PC/370 SVC'S
  169. *
  170. IHADCB   DSECT
  171. DDUNIT   DS    X AUTO DRIVE SELECT 0 OR 1-16
  172. DDNAME   DS    CL8 DATA SET NAME
  173. DDTYPE   DS    CL3 DATA SET TYPE
  174.          DS    XL21 CPM FCB RESERVED FIELDS
  175. BLKPTR   DS    XL4 RANDOM ACCESS BLOCK #    ADD BYTE FOR MSDOS
  176. MACRF    DS    C DATA SET ACCESS MODE R/W/G/P=READ/WRITE/GET/PUT
  177. RECFM    DS    C DATA SET RECORD PRINT F/V/T=FIXED/VAR./TEXT
  178. LRECL    DS    HL2 MAXIMUM RECORD LENGTH
  179. BLKSZ    DS    HL2 MAXIMUM BLOCK  LENGTH
  180. EODAD    DS    AL2 END OF DATA ADDRESS
  181. SYNAD    DS    AL2 SYCHRONOUS ERROR EXIT ADDRESS
  182. RCDPTR   DS    AL2     LOGICAL RECORD POINTER IN BUFFER
  183. DMAS     DS    AL2     DMA BUFFER START
  184. DMAE     DS    AL2     DMA BUFFER END
  185. BLKE     DS    AL2     END OF DYNAMICALLY ALLOC. BUFFER
  186. DCBEOR   DS    X END OF RECORD CODE FOR TEXT FILES
  187. DCBEOF   DS    X END OF FILE CODE FOR TEXT FILES
  188.          DS    X RESERVED DCB FLAG FIELD
  189. DSORG    DS    C DATA SET ORGANIZATION S=SEQ AND R=RANDOM
  190.          END   DEMOIO
  191.