home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 15 / CDACTUAL15.iso / cdactual / program / asm / PC370VM.ZIP / PC370.DOC < prev    next >
Encoding:
Text File  |  1985-06-20  |  34.5 KB  |  818 lines

  1. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE    1
  2.  
  3. COPYRIGHT (C) 1985 DONALD S. HIGGINS
  4.  
  5. This is the user documentation for the PC/370 Virtual Machine.
  6. The PC/370 package provides the capability to assemble, link,
  7. and execute IBM 370 assembler programs on any 8086 MSDOS micro
  8. computer such as the IBM PC, XT, or AT.
  9.  
  10. You are encouraged to copy and share PC/370 with other users on
  11. the condition that the programs and documentation are not distributed
  12. in modified form, that no fee or consideration is charged, and that
  13. this notice is not changed or bypassed.  If you find this package
  14. useful and would like to receive user group update notices, please
  15. send $35. to:
  16.  
  17.     DONALD S. HIGGINS, CCP, CDP
  18.     6365 - 32 AVENUE, NORTH
  19.     ST. PETERSBURG, FLORIDA 33710
  20.  
  21. TABLE OF CONTENTS                      PAGE
  22.  
  23. A. PC/370 PRODUCT OVERVIEW               2
  24. B. A370 ASSEMBLER                        3
  25. C. L370 LINKAGE EDITOR                   5
  26. D. E370 EMULATOR                         7
  27. E. TECHNICAL REFERENCE INFORMATION      10
  28. F. PRODUCT RELEASE SUMMARY              12
  29. G. INTERACTIVE DEBUG GUIDE              14
  30. H. EXTENDED ARCHITECTURE (XA) GUIDE     16
  31. I. REFERENCES                           17
  32. J. INSTALLATION GUIDE                   18
  33.  
  34.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  35. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE    2
  36.  
  37. A. PC/370 PRODUCT OVERVIEW
  38.  
  39. PC/370 is a software package designed to run on any 8086 micro-
  40. computer using the MSDOS operating system.  PC/370 provides the
  41. capability to assemble, link, and execute IBM 370 assembler
  42. programs directly on any 8086 microcomputer such as the IBM PC,
  43. XT, or AT with 128K of memory and one floppy disk drive.
  44.  
  45. PC/370 has a number of possible uses including:
  46.  
  47.   1.  Allow students to code, assemble, and execute IBM 370
  48.       assembler programs on any 8086 MSDOS PC instead of having
  49.       to wait for batch turnaround on an IBM 370 mainframe.
  50.  
  51.   2.  Provide IBM 370 assembler programmer work station support
  52.       to allow the development and unit testing of program segments
  53.       prior to uploading to mainframe.
  54.  
  55.   3.  Provide capability to down load existing or new IBM 370
  56.       assembler applications to run standalone on 8086 PC.
  57.  
  58. The PC/370 product currently consists of three components:
  59.  
  60.   1.  A370.COM is an IBM 370 assembler which reads source code file
  61.       and produces object code file plus optional listing file.
  62.  
  63.   2.  L370.COM is an IBM 370 linkage editor which reads object
  64.       code and produces a directly executable 8086 machine code file
  65.       plus optional CSECT listing file. (L370 also has capability to
  66.       load and go without creating executable file output).
  67.  
  68.   3.  E370.EXE is an IBM 370 machine code emulator which is
  69.       dynamically loaded at execution time to support
  70.       execution of 370 code.  The emulator supports the following
  71.       extended functions at execution:
  72.  
  73.         1.  All MSDOS supervisor calls and BIOS calls are supported
  74.         2.  Logical buffered access method (like QSAM and BDAM)
  75.         3.  Dynamic memory allocation (like GETMAIN AND FREEMAIN)
  76.         4.  Interactive debug and trace facility (better than ABEND dump)
  77.         5.  Program interrupt user exit (like SPIE)
  78.         6.  User microcode (8086) subroutine call (like user SVC)
  79.         7.  Extended ASSIST instructions to simplify I/O.
  80.         8.  Extended Architecture (XA) instructions to allow
  81.             unit testing of 31 bit addressing programs.
  82.         9.  Date, time, and instruction count services
  83.        10.  Cross memory services to allow full use of all 8086
  84.             real memory via MVCP and MVCS privilaged instructions.
  85.  
  86.  
  87. 8086  is trademark of Intel Inc.
  88. MSDOS is trademark of Microsoft Corp.
  89. IBM  is trademark of International Business Machines
  90.  
  91.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  92. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE    3
  93.  
  94. B.  A370 ASSEMBLER
  95.  
  96. The A370 assembler has the following command format:
  97.  
  98. A>A370 file/options
  99.  
  100. where file is the name of a source program file which has the
  101. suffix (.ALC).  The source file must be in ASCII text
  102. format with each line terminated by a line feed character.
  103. Any number of editors such as EDLIN can be used to create ALC files.
  104. An optional drive may be specified such as B:file.
  105. The options which can be specified are as follows:
  106.  
  107.   L - produce listing file (.PRN). default is none.
  108.   X - produce symbol and literal cross reference. default none.
  109.   E - generate EBCDIC character constants rather than ASCII.
  110.       default is on.
  111.   A - alignment option. default is on.
  112.   C - object code option. default is on.
  113.   Z - produce 8086 absolute addresses in place of base and disp.
  114.       default is off.
  115.   T - trace assembler execution. default is off.
  116.  
  117. If an option is on by default, specifying it will turn it off.
  118. For example:
  119.  
  120. A>A370 B:DEMOPNUM/LX
  121.  
  122. will read the source file B:DEMOPNUM.ALC and produce the object
  123. code file B:DEMOPNUM.OBJ and the listing file B:DEMOPNUM.PRN.
  124.  
  125.  
  126.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  127. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE    4
  128.  
  129. The A370 assembler conforms to the OS/VS IBM 370 Assembly
  130. Language as defined in the IBM manual GC33-4010 with the
  131. following limitations:
  132.  
  133.   1.  No continuation lines.
  134.   2.  No copy facility. (Use COPY to concatenate source files).
  135.   3.  Maximum control sections and dummy sections is 255.
  136.   4.  Macros and system variable symbols are not supported.
  137.   5.  Data constant types E, D, L, and Q are not fully supported.
  138.   6.  OPSYN statement not supported.
  139.   7.  EQU third operand (type attribute) not supported.
  140.   8.  Scale, exponent, and bit length data modifiers not supported.
  141.  
  142. Extended features include the following:
  143.  
  144.   1.  ASCII character constant mode option.
  145.   2.  Data constant tyes F and H may use arithmetic expressions.
  146.   3.  8086 native addressing option replaces base and displacement
  147.       with 16 bit 8086 address in each instruction.
  148.   4.  Extended ASSIST instruction set including XREAD, XPRNT,
  149.       XDECI, XDECO, AND XDUMP as defined in the book Assembler
  150.       Language with ASSIST by Ross A. Overbeek.  Also 2 more
  151.       instructions XFILI and XFILO are added to allow changing
  152.       default ASSIST input and output files at execution time.
  153.  
  154. The Z option saves base and displacement calculation during
  155. execution but cannot be used if the program includes explicit
  156. base register instructions (such instructions are flagged as
  157. errors during assembly with option Z on).  Use of this option is
  158. not recommended since it's not standard and provides little performance.
  159.  
  160.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  161. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE    5
  162.  
  163. C.  L370 LINKAGE EDITOR
  164.  
  165. The L370 linkage editor has the following command format:
  166.  
  167. A>L370 file/options
  168.  
  169. where file is the name of an A370 object code file (.OBJ) and
  170. may specify a specific drive.  The options supported by the
  171. linkage editor are as follows:
  172.  
  173.   L - external symbol listing file (.LST). default is off
  174.   X - cross reference of external symbols. default is off.
  175.   E - set EBCDIC character mode for emulator. default is on.
  176.   Z - set 8086 address mode for emulator. default is off.
  177.   D - set debug mode for emulator. default is off.
  178.   O - dump input object code records in hex. Default is off.
  179.   G - load and execute with no file output. default is off.
  180.   T - trace linkage editor execution. default is off.
  181.   F - fetch mode default generates code to load emulator E370.EXE.
  182.       This option is required under MSDOS. (CP/M had other options)
  183.  
  184. For example:
  185.  
  186. A>L370 B:DEMOPNUM/LX
  187.  
  188. will read the object code file B:DEMOPNUM.OBJ and produce the binary
  189. command file B:DEMOPNUM.COM, and the listing and cross-reference file
  190. B:DEMOPNUM.LST.  Note that since DEMOPNUM calls two external subroutines
  191. DAT and TOD, the subroutine library L370.LIB must be available.
  192. The binary command file B:DEMOPNUM.COM may be directly
  193. executed by the MSDOS command:
  194.  
  195. A>B:DEMOPNUM
  196.  
  197. When the above command is executed, the program will load at X'0100'
  198. and the fetch routine linked with the program will load the
  199. emulator E370.EXE in high memory and transfer control to it.
  200. The linkage editor uses two concatenated subroutine library
  201. files.  The first file is named file.LIB and may contain
  202. any number of A370 subroutine object modules which
  203. are called by the modules in file.obj.  This file is optional
  204. and only called modules are included.  The second file is
  205. named L370.LIB and may contain any number of A370 subroutine
  206. object modules which are commonly used by multiple
  207. programs.  An L370.OBJ file is included with the PC/370 package
  208. and contains sample time and date routines.
  209. COPY may be used with option /B to
  210. concatenate A370 object modules in either library file.
  211.  
  212.  
  213.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  214. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE    6
  215.  
  216. The linkage editor listing file (.LST) shows relative entry point
  217. and segment lengths and optional cross reference by segment.  The
  218. last line of the listing contains ENT/LNG which is the 370 relative
  219. entry point of the module and the length of the entire module.
  220.  
  221.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  222. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE    7
  223.  
  224. D.  E370 EMULATOR
  225.  
  226. The E370 emulator is transparent to the user when using A370
  227. and L370 to create MSDOS command files.  The emulator which
  228. is stored in E370.EXE as a binary module, is automatically
  229. loaded at hex location 8000.  The execution of the A370
  230. object code will start at the specified relative start address
  231. plus hex 100 with that absolute address in register 15.
  232. If a program check occurs, the interractive debug facility
  233. will be invoked and will initially display the general
  234. registers and the program status word at the time
  235. of the interruption.
  236.  
  237. The emulator supports the following supervisor (SVC) calls:
  238.  
  239.   1.  MSDOS calls 0-56 are mapped into SVC calls 200-256
  240.       with the following register conventions:
  241.  
  242.         AL - low bytes of register 0
  243.         BX - low bytes of register 1
  244.         DX - low bytes of register 2
  245.         CL - set to (SVC number - 200) at entry
  246.  
  247.      MSDOS svcs 1,2, 3, 4, 5, 9, and 10 all support automatic
  248.      EBCDIC and ASCII conversion per L370 option E.
  249.  
  250.   2. Logical access method svcs:
  251.  
  252.     All of the logical access method svcs assume register 2
  253.     points to a valid data control block (DCB) defined as
  254.     follows (see SOURCE.ALC demo program for IHADCB DSECT):
  255.     Note that all 2 byte data fields in DCB are maintained in
  256.     8086 native sequence (LSB,MSB) while file is open.  The
  257.     EODAD, SYNAD, LRECL, BLKSZ fields are reversed at open and
  258.     close to allow A370 initialization of these fields.
  259.  
  260.       0-35  MSDOS standard file control block
  261.             0     disk auto select code (0 or 1-16)
  262.             1-8   file name (DDNAME)
  263.             9-11  file name suffix
  264.             12    current extent
  265.             13-14 reserved
  266.             15    current extent size
  267.             16-31 disk allocation map
  268.             32    current record in extent
  269.             33-36 block pointer in extent
  270.       37   access method mode (MACRF)
  271.  
  272.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  273. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE    8
  274.  
  275.            'R' - read block
  276.            'W' - write block
  277.            'G' - get logical record
  278.            'P' - put logical record
  279.       38   logical record format (RECFM)
  280.            'F' - fixed length records
  281.            'V' - variable length records (first 2 bytes define length)
  282.            'T' - text (end of record defined by EOR code. usually LF)
  283.       39-40 logical record length (1-64k)  (LRECL)
  284.       41-42 physical block size (rounded to mult. of 128)  (BLKSI)
  285.       43-44 end of data address (EODAD)
  286.       45-46 error exit address  (SYNAD)
  287.       47-48 logical record pointer in buffer
  288.       49-50 buffer start address (dynamically allocated if zero)
  289.       51-52 buffer end+1 address
  290.       53-54 getmain size for dynamic buffer
  291.       55    end of record code for text mode (default is X'0A' LF)
  292.       56    end of file code for text mode (default is X'1A' SUB)
  293.       57    DCB logical access method flags
  294.             X'01' - file open
  295.             X'02' - user defined buffer
  296.             X'04' - output file
  297.             X'08' - end of file pending on short last block
  298.       58    data set organization (DSORG)
  299.            'S' - sequential access
  300.            'R' - random access
  301.  
  302.  
  303.    Logical access method SVC's:
  304.  
  305.      1 - open
  306.      2 - close
  307.      3 - read block into buffer (register 1 = block # for random)
  308.      4 - write block from buffer (register 1 = block # for random)
  309.      5 - get record (register 1 = record area)
  310.      6 - put record (register 1 = record area)
  311.      7 - delete file
  312.      8 - select file (register A = 255 if file not found)
  313.  
  314.   3. Additional support
  315.  
  316.  
  317.    SVC
  318.  
  319.      0 - exit to MSDOS
  320.      9 - interactive debug trace entry
  321.         SVC 9 must be followed by 3 character trace id which
  322.         is skipped over upon return from SVC.
  323.         There are several special ids as follows:
  324.           'OFF' - turn off and kill trace facility for speed
  325.           'ON ' - turn trace facility back on
  326.           'BUG' - force interactive debug mode
  327.         Whenever SVC 9 is issued or if the debug option 'D' was
  328.         specified during link edit or if the parameter 'T' was
  329.         specified when the command file was executed, the PC/370
  330.         interactive debug facility called MMDBUG will be invoked.
  331.         MMDBUG may also be invoked at any time during execution
  332.         by hitting any key.
  333.         MMDBUG is also available in A370 and L370 via option 'T'.
  334.         MMDBUG supports the following commands:
  335.           A - ADDRESS STOP (PROMPTS FOR ADDRESS, LENGTH, TYPE)
  336.  
  337.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  338. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE    9
  339.  
  340.           C - CONTINUE TO NEXT TRACE ENTRY
  341.           D - DUMP MEMORY (PROMPTS FOR ADDRESS)
  342.           F - FIND TRACE ENTRY (PROMPTS FOR TRACE ID)
  343.           H - HELP LIST MMDBUG COMMANDS (THIS LIST)
  344.           J - EXIT MMDBUG TO SPECIFIED ADDRESS (8086 CODE ONLY)
  345.           K - KILL MODE SET/RESET (CHANGES TRACE CALL TO NOP)
  346.           L - SET/RESET TRACE LIMIT FOR Q/T MODE
  347.           M - MODIFY MEMORY (PROMPTS FOR ADDRESS AND DATA)
  348.           N - LIST LAST 20 TRACE ENTRIES (NOTE K,Z  AFFECT THIS LIST)
  349.           P - SET/RESET PRINT COPY OF ALL MMDBUG I/O
  350.           Q - SET QUIET MODE (USED WITH F, L, AND 'BUG' OPTIONS)
  351.           R - DISPLAY REGISTERS (SEE Z OPTION)
  352.           T - SET TRACE MODE (USED WITH F, L, AND 'BUG' OPTIONS)
  353.           W - LIST FREE MEMORY QUEUE
  354.           X - SET/RESET ASSIST LOGGING OF INTERACTIVE DEBUG OUTPUT
  355.           Y - MODIFY 8086/370 REGISTER (PROMPTS FOR REGISTER/DATA)
  356.           Z - SET/RESET 8086/370 MODE
  357.                 IN 8086 MODE, R DUMPS 8086 REGISTERS AND D PRINTS
  358.                 PRINTABLE ASCII CHARACTERS IN DUMP.
  359.                 IN PC/370 MODE, R DUMPS 370 REGISTERS AND PSW
  360.                 AND D DUMPS PRINTABLE EBCDIC CHARACTERS IN DUMP.
  361.          <CR> - dump same address again as defined in D command
  362.          <SP> - dump forward until any key hit
  363.          <BS> - dump backwards until any key hit
  364.  
  365.     10 - get memory (R1 = LENGTH, R2 = ADDRESS RETURNED IF R0 = 0)
  366.                     (if R0 = 1, then R1 = maximum memory available)
  367.     11 - free memory (R1 = LENGTH, R2 = ADDRESS)
  368.     12 - convert ascii to ebcdic (R1 = ADDRESS, R2 = LENGTH)
  369.     13 - convert ebcdic to ascii (R1 = ADDRESS, R2 = LENGTH)
  370.     14 - set or reset program interruption exit
  371.          IF R1 = 0, REMOVE PREVIOUS EXIT
  372.          IF R1 NOT 0, SET EXIT TO ADDRESS IN R1
  373.          AT EXIT ENTRY, R1 = ADDRESS OF PSW AT INTERRUPTION
  374.  
  375.    15 - user microcode (8086) subroutine call
  376.         load external entry point address of any 8086 subroutine
  377.         into R15 and issue SVC 15 instead of BALR R14,R15 to
  378.         transfer control to subroutine and then return to next
  379.         instruction after SVC 15.
  380.    16 - instruction count (R1= address of full word counter)
  381.  
  382.    17 - load .EXE file for use as subroutine via SVC 15
  383.         R0 = load address, R1 = ASCII file name followed by X'00'
  384.  
  385.    18 - time of date
  386.         R0 = hour, minute, second, 100th second
  387.         R1 = year; R2 = day, month, day of week
  388.  
  389.    19 - allocate MSDOS real memory block
  390.         R1 = address, R2 = length requested (or max avail.)
  391.  
  392.    20 - deallocate MSDOS real memory block
  393.         R1 = address
  394.  
  395.    21 - issue single byte input command via IN
  396.         R1 = device address,  R0 = byte of data
  397.  
  398.    22 - issue single byte output connand via OUT
  399.         R1 = device address, R0 = byte of data
  400.  
  401.   128 - 191 issue MSDOS/BIOS call with function = SVC # - X'80'
  402.         R0 = AX, R1 = BX, R14 = CX, R15 = DX
  403.         If carry set by call, then CC =3 else CC = 0.
  404.  
  405.   4.   The emulator includes the support for ASSIST instructions
  406.        plus the following extensions:
  407.        a.  XFILI filename - changes default XREAD input file from
  408.            ASSIST.DAT to the 11 character filename.
  409.        b.  XFILO filename - changes default XPRNT output file from
  410.            ASSIST.PRN to the 11 character filename.
  411.        c.  Interactive debug command X allows optional logging of
  412.            output to the ASSIST output file for later hardcopy.
  413.  
  414.  
  415.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  416. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE   10
  417.  
  418. E. TECHNICAL REFERENCE INFORMATION
  419.  
  420.    1.  A370 requires 45k plus dynamic symbol and literal storage.
  421.    2.  L370 requires 25k plus external symbol storage plus enough
  422.        storage for the largest single module.
  423.    3.  E370 requires 32k which includes the emulator, and
  424.        the extended SVC support functions, and interactive debug.
  425.    4.  E370 supports all the non-supervisor state IBM 370
  426.        instructions as defined in the IBM/370 Principals
  427.        of Operation manual GA22-7000 except the conditional
  428.        swaping feature instructions and the floating point feature
  429.        instructions (these instructions are correctly assembled by
  430.        A370).
  431.    5.  The minimum configuration for PC/370 is as follows:
  432.        a.  8086 processor (or 80186 or 80286).
  433.        b.  128k RAM memory which allows 32k 370 program execution.
  434.        c.  1 floppy disk drive.
  435.  
  436.    6.  A benchmark program consisting of calculating the first
  437.        100 prime numbers was run in interpretive BASIC using
  438.        16 bit integer arithmetic.  It took 67 seconds on a
  439.        4.77 MHZ 8086 system.  The same program was rewrittten in
  440.        370 assembler using 32 bit fixed point arithmetic.  It
  441.        took 25 seconds to execute on the same system.  This
  442.        benchmark program is included on the distribution disk
  443.        as a demo called DEMOPNUM.ALC
  444.        The demo may be run with the following commands:
  445.          A>A370 DEMOPNUM/LX  (create DEMOPNUM.OBJ)
  446.          A>L370 DEMOPNUM/LX  (create DEMOPNUM.COM)
  447.          A>DEMOPNUM
  448.  
  449.    7.  The following error messages are supported:
  450.  
  451.        A370/L370
  452.  
  453.         E01 - DUPLICATE LABEL
  454.         E02 - INVALID LABEL
  455.         E03 - SYMBOL TABLE FULL
  456.         E04 - INVALID OPERATION CODE
  457.         E05 - UNDEFINED OPERATION CODE
  458.         E06 - UNDEFINED LABEL
  459.         E07 - INVALID OPERAND
  460.         E08 - MEMORY FULL
  461.         E09 - EXPRESSION INVALID
  462.         E10 - SELF DEFINING TERM INVALID
  463.         E11 - ARITHMETIC OVERFLOW IN EXPRESSION
  464.         E12 - TOO MANY EXTERNAL SYMBOLS
  465.         E13 - NO BASE REGISTER AVAILABLE
  466.         E14 - LENGTH ERROR
  467.         E15 - OPERAND ERROR
  468.         E16 - DATA CONSTANT DUPLICATION FACTOR ERROR
  469.         E17 - DATA CONSTANT TYPE ERROR
  470.         E18 - DATA CONSTANT LENGTH ERROR
  471.         E19 - DATA CONSTANT DATA ERROR
  472.  
  473.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  474. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE   11
  475.  
  476.         E20 - START SEQUENCE ERROR
  477.         E21 - LTORG SEQUENCE ERROR
  478.         E22 - LOCATION COUNTER ERROR BETWEEN PASS 1 AND 2
  479.  
  480.     IOS LOGICAL ACCESS METHOD USED BY A370, L370, AND E370
  481.  
  482.       MMS001 - NO DISK SPACE
  483.       MMS001 - FILE NOT FOUND
  484.       MMS001 - NO BUFFER SPACE
  485.       MMS001 - OPEN FAILED
  486.       MMS002 - CLOSE FAILED
  487.       MMS003 - READING UNWRITTEN DATA
  488.       MMS003 - INVALID REQUEST
  489.       MMS004 - ERROR IN EXTENDING FILE
  490.       MMS004 - END OF DISK DATA AREA
  491.       MMS004 - NO MORE DIRECTORY SPACE
  492.       MMS004 - INVALID REQUEST
  493.       MMS005 - INVALID RECORD TYPE
  494.       MMS005 - INVALID RECORD LENGTH
  495.       MMS006 - INVALID RECORD TYPE
  496.       MMS006 - INVALID RECORD LENGTH
  497.       MMS007 - DELETE FAILED
  498.  
  499.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  500. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE   12
  501.  
  502. F.  PC/370 PRODUCT RELEASE SUMMARY
  503.  
  504.      MMS/370 R1.0 12/28/81 first beta test demo for Z80 CP/M-80
  505.  
  506.          Successful demo program assembly, link, and execute
  507.          completed on the following systems:
  508.  
  509.            1.  Radio Shack Model II with Lifeboat MSDOS v2.2.
  510.            2.  Cromemco system with Tarbell MSDOS v1.4.
  511.  
  512.      MMS/370 R1.1 01/04/82 first Distributor evaluation version
  513.  
  514.      MMS/370 R1.2 12/20/82 second beta test
  515.  
  516.      MMS/370 R1.3 02/12/83 first user release
  517.  
  518.      A370
  519.         1.  Add XREAD, XPRNT, XDECI, XDECO, XFILI, XFILO, XDUMP
  520.         2.  Fix location 0 overlay processing missing END.
  521.         3.  Force E22 length error for 0 length program.
  522.      L370
  523.         1.  Force E08 memory error for 0 length segment.
  524.         2.  Fix incorrect SEARCH return code due to DEQ.
  525.         3.  Fix ORG error at end if no literals.
  526.         4.  Fix bad stack address at program entry with option G.
  527.         5.  Fix object code error when control Z is first byte of
  528.             physical block in concatenated object file.
  529.         6.  Allow alternate disk drive A for L370.LIB if not found
  530.             on specified drive for object file.
  531.      E370
  532.         1.  Add ASSIST support plus interactive debug log option.
  533.         2.  Add 370 instruction trace and instruction address stop.
  534.         3.  Add 370 address protection for CP/M and E370 areas.
  535.  
  536.      MMS/370 R2.2 05/04/83 second user release with new XA extensions
  537.  
  538.      A370
  539.        1.  27 new instructions added including BAS, BASR, MVCIN,
  540.            BSM, and BASSM.
  541.        2.  Fix made to handle explicit 256 byte SS instructions
  542.            correctly.
  543.        3.  Fix DC logic to surpress duplicate references to *.
  544.        4.  FIX SVC interface to save IX and IY for NEC PC MSDOS.
  545.      L370
  546.        1.  Fix stack pointer for execution for option G to prevent
  547.            initial call from storing address in program area.  Also
  548.            changed call in prefix to simple jump to emulator entry.
  549.      E370
  550.        1.  5 new non-privaleged instructions supported along with
  551.            PSW address mode bit 17.
  552.        2.  The existing instructions LA, BAL, BALR, EDMK, and TRT
  553.            all have been modified to function correctly in both
  554.            24 and 31 bit addressing modes.
  555.        3.  Fix incorrect instruction length code in BAL 24 bit
  556.  
  557.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  558. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE   13
  559.  
  560.            mode .
  561.        4.  Fix incorrect EDMK address for single byte PD fields.
  562.        5.  Fix incorrect SS instruction processing when length is
  563.            over 128.
  564.        6.  Fix fixed point multiply and divided overflow when
  565.            result is negative.
  566.        7.  Fix sign of remainder for fixed and packed divide.
  567.        8.  Fix packed decimal compare for negative zero.
  568.        9.  Fix condition codes for multiply and divide exceptions.
  569.       10.  Fix Assist XREAD to correctly support 1 byte area.
  570.       11.  Fix arithmetic shift left overflow logic.
  571.       12.  Fix packed decimal divide to correctly detect overflow.
  572.  
  573.     MMS/370 R2.3 06/30/83 third user release with updated XA extensions
  574.  
  575.      A370
  576.        1.  Add IPM and other new XA supervisor instructions
  577.      L370
  578.      E370
  579.        1.  Add IPM instruction
  580.        2.  Change XA mode PSW bit to 32 and display extended mode PSW
  581.            when in XA mode.
  582.        3.  Correct BSM logic to skip save when first register is 0.
  583.        4.  Add option to update 370 registers to MMDBUG command Y.
  584.        5.  Reduce size of E370 by 500 bytes by changing logic macros
  585.            to common subroutines for logical RR and RX instructions.
  586.  
  587.     MMS/370 R3.1 03/08/84 maintenance release with corrections
  588.  
  589.     A370
  590.       1.  Fix error created by V type address constant referencing
  591.           CSECT defined later in same assembly.
  592.       2.  Fix length attribute of CSECT/DSECT to always be 1.
  593.     L370
  594.     E370
  595.       1.  Fix error in XR and X exclusive OR logic introduced in R2.3
  596.           when logic was combined in 1 routine to save memory.
  597.       2.  Fix DP overflow logic to cause divide exception 0CB instead
  598.           of divide overflow.  Note divide exception cannot be masked
  599.           like overflow but SPIE can be used to handle it.
  600.       3.  Check for interrupt every 256 instructions even in kill mode.
  601.       4.  Only trace IFL entries in 370 mode for N command.
  602.       5.  Fix NODBUG minimum storage replacement module for MMDBUG to
  603.           correctly NOP 370 TRACE calls.
  604.  
  605.     PC/370 R1.0 first freeware release for 8086 MSDOS systems
  606.  
  607.     A370
  608.     L370
  609.       1.  Force option F to always dynamically load E370.EXE. The emulator
  610.           can no longer be linked with 370 code since L370 does not process
  611.           native 8086 assembler object code format.
  612.     E370
  613.       1.  Add SVC's 17-22 to handle extended MSDOS functions such as time.
  614.  
  615.  
  616.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  617. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE   14
  618.  
  619. G.  INTERACTIVE DEBUG GUIDE
  620.  
  621. The PC/370 interactive debug facility can assist you in locating
  622. errors within your 370 assembler programs.  But first there are
  623. some more basic things to check:
  624.  
  625.   1.  Are you sure that you are executing the latest version of
  626.       the source program.  To be absolutely sure, code the date
  627.       and time in a print statement at the beginning of the program
  628.       and then reassemble (A370) and relink (L370) and execute the
  629.       program again.
  630.  
  631.   2.  Does the program run to normal termination?  If so then you
  632.       can run the program again specifing a T as the only parameter
  633.       on the execute command to initiate the interactive debug
  634.       facility.  Another way to invoke the interactive debug option
  635.       is to specify option D in the link edit.
  636.  
  637.   3.  If the program terminated abnormally, the interactive debug
  638.       facility is automatically initiated along with a display of
  639.       the PSW and the failing instruction.  To calculate the
  640.       relative address of the failing instruction in the program,
  641.       subtract the program load address of X'0100" (Note you will
  642.       have to look at the link edit listing to get the starting
  643.       address if the failing instruction is in a subroutine.
  644.  
  645.   4.  To trace execution of the program, enter T.  To stop the
  646.       trace at any point hit any key.
  647.  
  648.   5.  To continue execution of the program normally, enter Q.
  649.  
  650.   6.  To dump the current contents of the registers, enter R.
  651.  
  652.   7.  To dump any 32 byte area in memory, enter A followed by
  653.       the starting address in hex xxxx.
  654.  
  655.   8.  To continue to dump memory from the current location forward,
  656.       hit the space key.  To dump backwards, hit the backspace key.
  657.       To stop the dump, hit any key.
  658.  
  659.   9.  To stop the program at a specific address, enter A followed
  660.       by the address in hex xxxx followed by the option code A.
  661.       Then use Q or T to continue execution until the address is found.
  662.  
  663.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  664. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE   15
  665.  
  666.  10.  To stop the program when a specific data field in memory is
  667.       changed, enter A followed by the address in xxxx followed by
  668.       the option code D followed by the data field length in hex xxxx.
  669.       Next select E for stop if equal or N for stop if not equal.
  670.       If option E is selected, enter the hex value of the data you
  671.       want to stop on followed by return.
  672.  
  673.  11.  To turn off any address stop option, enter A.
  674.  
  675.  12.  To list the last 20 instruction trace table entries, enter N.
  676.       Note this includes 8086 traces within each 370 instruction.
  677.       Also note that this list may be incomplete if the program
  678.       was started without debug active since option K is the default.
  679.       Option K kills each trace entry to debug the first time debug
  680.       is entered for that trace point.  Option K makes the program
  681.       run much faster at the expense of losing repeated trace points.
  682.  
  683.  13.  To set a fixed limit on the number of trace entries before
  684.       entering debug command mode again, enter L and count in hex xxxx.
  685.       Next enter Q or T to continue until count reached zero.  If
  686.       zero count is entered, the limit is not checked.
  687.  
  688.  14.  To modify memory, enter M followed by address in hex xxxx.
  689.       Next enter hex data bytes followed by return key.
  690.  
  691.  15.  To display the 8086 registers, type Z to switch to 8086 mode.
  692.       Now type R.  In 8086 mode, storage dumps translate data to ASCII
  693.       instead of EBCDIC for character display.  In 8086 mode, N lists all
  694.       trace entries instead of just IFL 370 instruction traces.  In 8086
  695.       mode, Y changes 8086 registers instead of 370 registers.  To return
  696.       to 370 mode, type Z again.
  697.  
  698.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  699. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE   16
  700.  
  701. H. EXTENDED ARCHITECTURE (XA) GUIDE
  702.  
  703. PC/370 release 1.0 contains the following extended architecture:
  704.  
  705.   1.  A370 now supports 25 new instructions as defined in the
  706.       IBM System/370 Principles of Operation manual version
  707.       GA22-7000-8 including the non-privaleged instructions
  708.       BAS, BASR, and MVCIN.
  709.  
  710.   2.  A370 now supports 3 new instructions BASSM, BSM, and IPM as
  711.       described in the IBM System/370 Extended Architecture
  712.       Principles of Operation SA22-7085-0.  They are as follows:
  713.  
  714.       a.  BSM  R1,R2    (RR)   operation code X'0B'
  715.  
  716.           The PSW addressing mode bit is stored in bit 0 of R1.
  717.           If R2 is not zero, bit 0 of R2 is stored in PSW address
  718.           mode bit and control is transfered to 31 bit address in R2.
  719.  
  720.       b,  BASSM  R1,R2   (RR)  operation code X'0C'
  721.  
  722.           The 31 bit address of the next instruction is stored in
  723.           R1.  The PSW addressing mode bit is stored in bit 0 of R1.
  724.           If R2 is not zero, bit 0 of register R2 is stored in the
  725.           PSW address mode bit and control is transfered to the
  726.           31 bit address in R2.
  727.     
  728.       c.  IPM  R1
  729.  
  730.           The condition code and program mask byte of the PSW is
  731.           stored in the high order byte of the specified register.
  732.           This instruction provides the same facility that
  733.           the BAL and BALR provided in 24 bit address mode.
  734.  
  735.   2.  E370 now supports the 6 new non-privaleged instructions
  736.       BAS, BASR, MVCIN, BASSM, IPM, and BSM.  When the emulator is in
  737.       31 bit mode, the PSW format displayed by MMDBUG is extended mode
  738.       with the high address bit on.  The emulator defaults to 24 bit
  739.       mode and the 370 basic PSW format.
  740.  
  741.   3.  The standard instructions LA, BAL, BALR, EDMK, and TRT
  742.       now support both the 24 bit and 31 bit addressing modes
  743.       as set by BASSM or BSM using the PSW address mode bit.
  744.       Note that in 31 bit addressing mode the LA instruction
  745.       adds all 31 bits of the index and base register plus displacement
  746.       and clears only the high bit of the result.  This means the high
  747.       byte of the index and base must be cleared when using 24 bit
  748.       addresses in 31 bit mode.
  749. ___________
  750.  
  751. 1.  IBM Journal of Research and Development, Volume 27, Number 3,
  752.     May 1983.
  753.  
  754. 2.  IBM Washington Systems Center Technical Bulletin: MVS/XA Overview,
  755.     GG22-9303-00, November 1982.
  756.  
  757.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  758. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE   17
  759.  
  760. I. REFERENCES
  761.  
  762.    1.  For information on 370 machine instructions see
  763.        IBM System 370 Principles of Operation manual GA22-7000.
  764.    2.  For information on 370 assembler language see:
  765.        a.  IBM OS/VS Assembler Language manual GC33-4010.
  766.        b.  Assembler Language Programming by G. W. Struble.
  767.    3.  For information on how the assembler, linkage editor, and
  768.        operating system software works see:
  769.        a.  Systems Programming by John J. Donovan.
  770.        b.  Operating Systems by S. E. Madnick and J. J. Donovan.
  771.    4.  For information on the 8086 processor see:
  772.        a.  The 8086 Book by George Alexy.
  773.    5.  For information on the MSDOS operating system and utilities see:
  774.        a.  Disk Operating System by Microsoft Corp ver. 2.1 1st ed. 9/83
  775.        b.  DOS Technical Reference by Microsoft Corp. ver 2.1 1st ed. 9/83
  776.    6.  For information on usage of ASSIST extensions see Assembler
  777.        Labguage with Assist by Ross A. Overbeek and W. E. Singletary.
  778.    7.  For summary article on how PC/370 was developed see ACM
  779.        Sigsmall Newsletter Volume 8 Number 3, August 1982.
  780.  
  781.  COPYRIGHT (C) 1985 DONALD S. HIGGINS
  782. PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85              PAGE   18
  783.  
  784. J.  INSTALLATION GUIDE
  785.  
  786.     PC/370 is distributed via diskette or download from electronic
  787.     bulletin board.  The current release contains the following files:
  788.  
  789.     FILE        DESCRIPTION             APPROX.BYTES (k)   MINUTES @ 300 BAUD
  790.  
  791.     PC370.DOC - PC/370 USER DOCUMENTATION         36          20
  792.     PC370.LBR - PC/370 DEMO PROGRAMS              41          23
  793.     A370.COM  - PC/370 ASSEMBLER                  46          25
  794.     L370.COM  - PC/370 LINKAGE EDITOR             28          15
  795.     E370.EXE  - PC/370 EMULATOR                   33          19
  796.                                               ______       _____
  797.                                                  184         102
  798.  
  799.     The freeware program LU.EXE may be used to unload PC370.LBR into
  800.     separate source code files.  The PC/370 files are split to allow
  801.     downloading from boards with tight time limits.  The programs may be
  802.     downloaded using the freeware program PC-TALK connecting two PC's.
  803.  
  804.     Once the above files are on a diskette, the following steps may be
  805.     followed to run the demo programs:
  806.  
  807.       1.  Initialize MSDOS.
  808.       2.  Set default drive to A via A: command.
  809.       3.  Insert PC/370 diskette in drive A:
  810.       4.  Read PC370.DOC file via TYPE PC370.DOC command.
  811.       5.  Unload PC370.LBR file into separate source code demo programs
  812.           and batch command files via LU.EXE -A PC370.LBR command.
  813.       6.  Run demo programs via RUNDEMO.BAT command.
  814.  
  815.  
  816.  
  817.  
  818.