home *** CD-ROM | disk | FTP | other *** search
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 1
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
-
- This is the user documentation for the PC/370 Virtual Machine.
- The PC/370 package provides the capability to assemble, link,
- and execute IBM 370 assembler programs on any 8086 MSDOS micro
- computer such as the IBM PC, XT, or AT.
-
- You are encouraged to copy and share PC/370 with other users on
- the condition that the programs and documentation are not distributed
- in modified form, that no fee or consideration is charged, and that
- this notice is not changed or bypassed. If you find this package
- useful and would like to receive user group update notices, please
- send $35. to:
-
- DONALD S. HIGGINS, CCP, CDP
- 6365 - 32 AVENUE, NORTH
- ST. PETERSBURG, FLORIDA 33710
-
- TABLE OF CONTENTS PAGE
-
- A. PC/370 PRODUCT OVERVIEW 2
- B. A370 ASSEMBLER 3
- C. L370 LINKAGE EDITOR 5
- D. E370 EMULATOR 7
- E. TECHNICAL REFERENCE INFORMATION 10
- F. PRODUCT RELEASE SUMMARY 12
- G. INTERACTIVE DEBUG GUIDE 14
- H. EXTENDED ARCHITECTURE (XA) GUIDE 16
- I. REFERENCES 17
- J. INSTALLATION GUIDE 18
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 2
-
- A. PC/370 PRODUCT OVERVIEW
-
- PC/370 is a software package designed to run on any 8086 micro-
- computer using the MSDOS operating system. PC/370 provides the
- capability to assemble, link, and execute IBM 370 assembler
- programs directly on any 8086 microcomputer such as the IBM PC,
- XT, or AT with 128K of memory and one floppy disk drive.
-
- PC/370 has a number of possible uses including:
-
- 1. Allow students to code, assemble, and execute IBM 370
- assembler programs on any 8086 MSDOS PC instead of having
- to wait for batch turnaround on an IBM 370 mainframe.
-
- 2. Provide IBM 370 assembler programmer work station support
- to allow the development and unit testing of program segments
- prior to uploading to mainframe.
-
- 3. Provide capability to down load existing or new IBM 370
- assembler applications to run standalone on 8086 PC.
-
- The PC/370 product currently consists of three components:
-
- 1. A370.COM is an IBM 370 assembler which reads source code file
- and produces object code file plus optional listing file.
-
- 2. L370.COM is an IBM 370 linkage editor which reads object
- code and produces a directly executable 8086 machine code file
- plus optional CSECT listing file. (L370 also has capability to
- load and go without creating executable file output).
-
- 3. E370.EXE is an IBM 370 machine code emulator which is
- dynamically loaded at execution time to support
- execution of 370 code. The emulator supports the following
- extended functions at execution:
-
- 1. All MSDOS supervisor calls and BIOS calls are supported
- 2. Logical buffered access method (like QSAM and BDAM)
- 3. Dynamic memory allocation (like GETMAIN AND FREEMAIN)
- 4. Interactive debug and trace facility (better than ABEND dump)
- 5. Program interrupt user exit (like SPIE)
- 6. User microcode (8086) subroutine call (like user SVC)
- 7. Extended ASSIST instructions to simplify I/O.
- 8. Extended Architecture (XA) instructions to allow
- unit testing of 31 bit addressing programs.
- 9. Date, time, and instruction count services
- 10. Cross memory services to allow full use of all 8086
- real memory via MVCP and MVCS privilaged instructions.
-
-
- 8086 is trademark of Intel Inc.
- MSDOS is trademark of Microsoft Corp.
- IBM is trademark of International Business Machines
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 3
-
- B. A370 ASSEMBLER
-
- The A370 assembler has the following command format:
-
- A>A370 file/options
-
- where file is the name of a source program file which has the
- suffix (.ALC). The source file must be in ASCII text
- format with each line terminated by a line feed character.
- Any number of editors such as EDLIN can be used to create ALC files.
- An optional drive may be specified such as B:file.
- The options which can be specified are as follows:
-
- L - produce listing file (.PRN). default is none.
- X - produce symbol and literal cross reference. default none.
- E - generate EBCDIC character constants rather than ASCII.
- default is on.
- A - alignment option. default is on.
- C - object code option. default is on.
- Z - produce 8086 absolute addresses in place of base and disp.
- default is off.
- T - trace assembler execution. default is off.
-
- If an option is on by default, specifying it will turn it off.
- For example:
-
- A>A370 B:DEMOPNUM/LX
-
- will read the source file B:DEMOPNUM.ALC and produce the object
- code file B:DEMOPNUM.OBJ and the listing file B:DEMOPNUM.PRN.
-
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 4
-
- The A370 assembler conforms to the OS/VS IBM 370 Assembly
- Language as defined in the IBM manual GC33-4010 with the
- following limitations:
-
- 1. No continuation lines.
- 2. No copy facility. (Use COPY to concatenate source files).
- 3. Maximum control sections and dummy sections is 255.
- 4. Macros and system variable symbols are not supported.
- 5. Data constant types E, D, L, and Q are not fully supported.
- 6. OPSYN statement not supported.
- 7. EQU third operand (type attribute) not supported.
- 8. Scale, exponent, and bit length data modifiers not supported.
-
- Extended features include the following:
-
- 1. ASCII character constant mode option.
- 2. Data constant tyes F and H may use arithmetic expressions.
- 3. 8086 native addressing option replaces base and displacement
- with 16 bit 8086 address in each instruction.
- 4. Extended ASSIST instruction set including XREAD, XPRNT,
- XDECI, XDECO, AND XDUMP as defined in the book Assembler
- Language with ASSIST by Ross A. Overbeek. Also 2 more
- instructions XFILI and XFILO are added to allow changing
- default ASSIST input and output files at execution time.
-
- The Z option saves base and displacement calculation during
- execution but cannot be used if the program includes explicit
- base register instructions (such instructions are flagged as
- errors during assembly with option Z on). Use of this option is
- not recommended since it's not standard and provides little performance.
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 5
-
- C. L370 LINKAGE EDITOR
-
- The L370 linkage editor has the following command format:
-
- A>L370 file/options
-
- where file is the name of an A370 object code file (.OBJ) and
- may specify a specific drive. The options supported by the
- linkage editor are as follows:
-
- L - external symbol listing file (.LST). default is off
- X - cross reference of external symbols. default is off.
- E - set EBCDIC character mode for emulator. default is on.
- Z - set 8086 address mode for emulator. default is off.
- D - set debug mode for emulator. default is off.
- O - dump input object code records in hex. Default is off.
- G - load and execute with no file output. default is off.
- T - trace linkage editor execution. default is off.
- F - fetch mode default generates code to load emulator E370.EXE.
- This option is required under MSDOS. (CP/M had other options)
-
- For example:
-
- A>L370 B:DEMOPNUM/LX
-
- will read the object code file B:DEMOPNUM.OBJ and produce the binary
- command file B:DEMOPNUM.COM, and the listing and cross-reference file
- B:DEMOPNUM.LST. Note that since DEMOPNUM calls two external subroutines
- DAT and TOD, the subroutine library L370.LIB must be available.
- The binary command file B:DEMOPNUM.COM may be directly
- executed by the MSDOS command:
-
- A>B:DEMOPNUM
-
- When the above command is executed, the program will load at X'0100'
- and the fetch routine linked with the program will load the
- emulator E370.EXE in high memory and transfer control to it.
- The linkage editor uses two concatenated subroutine library
- files. The first file is named file.LIB and may contain
- any number of A370 subroutine object modules which
- are called by the modules in file.obj. This file is optional
- and only called modules are included. The second file is
- named L370.LIB and may contain any number of A370 subroutine
- object modules which are commonly used by multiple
- programs. An L370.OBJ file is included with the PC/370 package
- and contains sample time and date routines.
- COPY may be used with option /B to
- concatenate A370 object modules in either library file.
-
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 6
-
- The linkage editor listing file (.LST) shows relative entry point
- and segment lengths and optional cross reference by segment. The
- last line of the listing contains ENT/LNG which is the 370 relative
- entry point of the module and the length of the entire module.
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 7
-
- D. E370 EMULATOR
-
- The E370 emulator is transparent to the user when using A370
- and L370 to create MSDOS command files. The emulator which
- is stored in E370.EXE as a binary module, is automatically
- loaded at hex location 8000. The execution of the A370
- object code will start at the specified relative start address
- plus hex 100 with that absolute address in register 15.
- If a program check occurs, the interractive debug facility
- will be invoked and will initially display the general
- registers and the program status word at the time
- of the interruption.
-
- The emulator supports the following supervisor (SVC) calls:
-
- 1. MSDOS calls 0-56 are mapped into SVC calls 200-256
- with the following register conventions:
-
- AL - low bytes of register 0
- BX - low bytes of register 1
- DX - low bytes of register 2
- CL - set to (SVC number - 200) at entry
-
- MSDOS svcs 1,2, 3, 4, 5, 9, and 10 all support automatic
- EBCDIC and ASCII conversion per L370 option E.
-
- 2. Logical access method svcs:
-
- All of the logical access method svcs assume register 2
- points to a valid data control block (DCB) defined as
- follows (see SOURCE.ALC demo program for IHADCB DSECT):
- Note that all 2 byte data fields in DCB are maintained in
- 8086 native sequence (LSB,MSB) while file is open. The
- EODAD, SYNAD, LRECL, BLKSZ fields are reversed at open and
- close to allow A370 initialization of these fields.
-
- 0-35 MSDOS standard file control block
- 0 disk auto select code (0 or 1-16)
- 1-8 file name (DDNAME)
- 9-11 file name suffix
- 12 current extent
- 13-14 reserved
- 15 current extent size
- 16-31 disk allocation map
- 32 current record in extent
- 33-36 block pointer in extent
- 37 access method mode (MACRF)
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 8
-
- 'R' - read block
- 'W' - write block
- 'G' - get logical record
- 'P' - put logical record
- 38 logical record format (RECFM)
- 'F' - fixed length records
- 'V' - variable length records (first 2 bytes define length)
- 'T' - text (end of record defined by EOR code. usually LF)
- 39-40 logical record length (1-64k) (LRECL)
- 41-42 physical block size (rounded to mult. of 128) (BLKSI)
- 43-44 end of data address (EODAD)
- 45-46 error exit address (SYNAD)
- 47-48 logical record pointer in buffer
- 49-50 buffer start address (dynamically allocated if zero)
- 51-52 buffer end+1 address
- 53-54 getmain size for dynamic buffer
- 55 end of record code for text mode (default is X'0A' LF)
- 56 end of file code for text mode (default is X'1A' SUB)
- 57 DCB logical access method flags
- X'01' - file open
- X'02' - user defined buffer
- X'04' - output file
- X'08' - end of file pending on short last block
- 58 data set organization (DSORG)
- 'S' - sequential access
- 'R' - random access
-
-
- Logical access method SVC's:
-
- 1 - open
- 2 - close
- 3 - read block into buffer (register 1 = block # for random)
- 4 - write block from buffer (register 1 = block # for random)
- 5 - get record (register 1 = record area)
- 6 - put record (register 1 = record area)
- 7 - delete file
- 8 - select file (register A = 255 if file not found)
-
- 3. Additional support
-
-
- SVC
-
- 0 - exit to MSDOS
- 9 - interactive debug trace entry
- SVC 9 must be followed by 3 character trace id which
- is skipped over upon return from SVC.
- There are several special ids as follows:
- 'OFF' - turn off and kill trace facility for speed
- 'ON ' - turn trace facility back on
- 'BUG' - force interactive debug mode
- Whenever SVC 9 is issued or if the debug option 'D' was
- specified during link edit or if the parameter 'T' was
- specified when the command file was executed, the PC/370
- interactive debug facility called MMDBUG will be invoked.
- MMDBUG may also be invoked at any time during execution
- by hitting any key.
- MMDBUG is also available in A370 and L370 via option 'T'.
- MMDBUG supports the following commands:
- A - ADDRESS STOP (PROMPTS FOR ADDRESS, LENGTH, TYPE)
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 9
-
- C - CONTINUE TO NEXT TRACE ENTRY
- D - DUMP MEMORY (PROMPTS FOR ADDRESS)
- F - FIND TRACE ENTRY (PROMPTS FOR TRACE ID)
- H - HELP LIST MMDBUG COMMANDS (THIS LIST)
- J - EXIT MMDBUG TO SPECIFIED ADDRESS (8086 CODE ONLY)
- K - KILL MODE SET/RESET (CHANGES TRACE CALL TO NOP)
- L - SET/RESET TRACE LIMIT FOR Q/T MODE
- M - MODIFY MEMORY (PROMPTS FOR ADDRESS AND DATA)
- N - LIST LAST 20 TRACE ENTRIES (NOTE K,Z AFFECT THIS LIST)
- P - SET/RESET PRINT COPY OF ALL MMDBUG I/O
- Q - SET QUIET MODE (USED WITH F, L, AND 'BUG' OPTIONS)
- R - DISPLAY REGISTERS (SEE Z OPTION)
- T - SET TRACE MODE (USED WITH F, L, AND 'BUG' OPTIONS)
- W - LIST FREE MEMORY QUEUE
- X - SET/RESET ASSIST LOGGING OF INTERACTIVE DEBUG OUTPUT
- Y - MODIFY 8086/370 REGISTER (PROMPTS FOR REGISTER/DATA)
- Z - SET/RESET 8086/370 MODE
- IN 8086 MODE, R DUMPS 8086 REGISTERS AND D PRINTS
- PRINTABLE ASCII CHARACTERS IN DUMP.
- IN PC/370 MODE, R DUMPS 370 REGISTERS AND PSW
- AND D DUMPS PRINTABLE EBCDIC CHARACTERS IN DUMP.
- <CR> - dump same address again as defined in D command
- <SP> - dump forward until any key hit
- <BS> - dump backwards until any key hit
-
- 10 - get memory (R1 = LENGTH, R2 = ADDRESS RETURNED IF R0 = 0)
- (if R0 = 1, then R1 = maximum memory available)
- 11 - free memory (R1 = LENGTH, R2 = ADDRESS)
- 12 - convert ascii to ebcdic (R1 = ADDRESS, R2 = LENGTH)
- 13 - convert ebcdic to ascii (R1 = ADDRESS, R2 = LENGTH)
- 14 - set or reset program interruption exit
- IF R1 = 0, REMOVE PREVIOUS EXIT
- IF R1 NOT 0, SET EXIT TO ADDRESS IN R1
- AT EXIT ENTRY, R1 = ADDRESS OF PSW AT INTERRUPTION
-
- 15 - user microcode (8086) subroutine call
- load external entry point address of any 8086 subroutine
- into R15 and issue SVC 15 instead of BALR R14,R15 to
- transfer control to subroutine and then return to next
- instruction after SVC 15.
- 16 - instruction count (R1= address of full word counter)
-
- 17 - load .EXE file for use as subroutine via SVC 15
- R0 = load address, R1 = ASCII file name followed by X'00'
-
- 18 - time of date
- R0 = hour, minute, second, 100th second
- R1 = year; R2 = day, month, day of week
-
- 19 - allocate MSDOS real memory block
- R1 = address, R2 = length requested (or max avail.)
-
- 20 - deallocate MSDOS real memory block
- R1 = address
-
- 21 - issue single byte input command via IN
- R1 = device address, R0 = byte of data
-
- 22 - issue single byte output connand via OUT
- R1 = device address, R0 = byte of data
-
- 128 - 191 issue MSDOS/BIOS call with function = SVC # - X'80'
- R0 = AX, R1 = BX, R14 = CX, R15 = DX
- If carry set by call, then CC =3 else CC = 0.
-
- 4. The emulator includes the support for ASSIST instructions
- plus the following extensions:
- a. XFILI filename - changes default XREAD input file from
- ASSIST.DAT to the 11 character filename.
- b. XFILO filename - changes default XPRNT output file from
- ASSIST.PRN to the 11 character filename.
- c. Interactive debug command X allows optional logging of
- output to the ASSIST output file for later hardcopy.
-
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 10
-
- E. TECHNICAL REFERENCE INFORMATION
-
- 1. A370 requires 45k plus dynamic symbol and literal storage.
- 2. L370 requires 25k plus external symbol storage plus enough
- storage for the largest single module.
- 3. E370 requires 32k which includes the emulator, and
- the extended SVC support functions, and interactive debug.
- 4. E370 supports all the non-supervisor state IBM 370
- instructions as defined in the IBM/370 Principals
- of Operation manual GA22-7000 except the conditional
- swaping feature instructions and the floating point feature
- instructions (these instructions are correctly assembled by
- A370).
- 5. The minimum configuration for PC/370 is as follows:
- a. 8086 processor (or 80186 or 80286).
- b. 128k RAM memory which allows 32k 370 program execution.
- c. 1 floppy disk drive.
-
- 6. A benchmark program consisting of calculating the first
- 100 prime numbers was run in interpretive BASIC using
- 16 bit integer arithmetic. It took 67 seconds on a
- 4.77 MHZ 8086 system. The same program was rewrittten in
- 370 assembler using 32 bit fixed point arithmetic. It
- took 25 seconds to execute on the same system. This
- benchmark program is included on the distribution disk
- as a demo called DEMOPNUM.ALC
- The demo may be run with the following commands:
- A>A370 DEMOPNUM/LX (create DEMOPNUM.OBJ)
- A>L370 DEMOPNUM/LX (create DEMOPNUM.COM)
- A>DEMOPNUM
-
- 7. The following error messages are supported:
-
- A370/L370
-
- E01 - DUPLICATE LABEL
- E02 - INVALID LABEL
- E03 - SYMBOL TABLE FULL
- E04 - INVALID OPERATION CODE
- E05 - UNDEFINED OPERATION CODE
- E06 - UNDEFINED LABEL
- E07 - INVALID OPERAND
- E08 - MEMORY FULL
- E09 - EXPRESSION INVALID
- E10 - SELF DEFINING TERM INVALID
- E11 - ARITHMETIC OVERFLOW IN EXPRESSION
- E12 - TOO MANY EXTERNAL SYMBOLS
- E13 - NO BASE REGISTER AVAILABLE
- E14 - LENGTH ERROR
- E15 - OPERAND ERROR
- E16 - DATA CONSTANT DUPLICATION FACTOR ERROR
- E17 - DATA CONSTANT TYPE ERROR
- E18 - DATA CONSTANT LENGTH ERROR
- E19 - DATA CONSTANT DATA ERROR
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 11
-
- E20 - START SEQUENCE ERROR
- E21 - LTORG SEQUENCE ERROR
- E22 - LOCATION COUNTER ERROR BETWEEN PASS 1 AND 2
-
- IOS LOGICAL ACCESS METHOD USED BY A370, L370, AND E370
-
- MMS001 - NO DISK SPACE
- MMS001 - FILE NOT FOUND
- MMS001 - NO BUFFER SPACE
- MMS001 - OPEN FAILED
- MMS002 - CLOSE FAILED
- MMS003 - READING UNWRITTEN DATA
- MMS003 - INVALID REQUEST
- MMS004 - ERROR IN EXTENDING FILE
- MMS004 - END OF DISK DATA AREA
- MMS004 - NO MORE DIRECTORY SPACE
- MMS004 - INVALID REQUEST
- MMS005 - INVALID RECORD TYPE
- MMS005 - INVALID RECORD LENGTH
- MMS006 - INVALID RECORD TYPE
- MMS006 - INVALID RECORD LENGTH
- MMS007 - DELETE FAILED
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 12
-
- F. PC/370 PRODUCT RELEASE SUMMARY
-
- MMS/370 R1.0 12/28/81 first beta test demo for Z80 CP/M-80
-
- Successful demo program assembly, link, and execute
- completed on the following systems:
-
- 1. Radio Shack Model II with Lifeboat MSDOS v2.2.
- 2. Cromemco system with Tarbell MSDOS v1.4.
-
- MMS/370 R1.1 01/04/82 first Distributor evaluation version
-
- MMS/370 R1.2 12/20/82 second beta test
-
- MMS/370 R1.3 02/12/83 first user release
-
- A370
- 1. Add XREAD, XPRNT, XDECI, XDECO, XFILI, XFILO, XDUMP
- 2. Fix location 0 overlay processing missing END.
- 3. Force E22 length error for 0 length program.
- L370
- 1. Force E08 memory error for 0 length segment.
- 2. Fix incorrect SEARCH return code due to DEQ.
- 3. Fix ORG error at end if no literals.
- 4. Fix bad stack address at program entry with option G.
- 5. Fix object code error when control Z is first byte of
- physical block in concatenated object file.
- 6. Allow alternate disk drive A for L370.LIB if not found
- on specified drive for object file.
- E370
- 1. Add ASSIST support plus interactive debug log option.
- 2. Add 370 instruction trace and instruction address stop.
- 3. Add 370 address protection for CP/M and E370 areas.
-
- MMS/370 R2.2 05/04/83 second user release with new XA extensions
-
- A370
- 1. 27 new instructions added including BAS, BASR, MVCIN,
- BSM, and BASSM.
- 2. Fix made to handle explicit 256 byte SS instructions
- correctly.
- 3. Fix DC logic to surpress duplicate references to *.
- 4. FIX SVC interface to save IX and IY for NEC PC MSDOS.
- L370
- 1. Fix stack pointer for execution for option G to prevent
- initial call from storing address in program area. Also
- changed call in prefix to simple jump to emulator entry.
- E370
- 1. 5 new non-privaleged instructions supported along with
- PSW address mode bit 17.
- 2. The existing instructions LA, BAL, BALR, EDMK, and TRT
- all have been modified to function correctly in both
- 24 and 31 bit addressing modes.
- 3. Fix incorrect instruction length code in BAL 24 bit
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 13
-
- mode .
- 4. Fix incorrect EDMK address for single byte PD fields.
- 5. Fix incorrect SS instruction processing when length is
- over 128.
- 6. Fix fixed point multiply and divided overflow when
- result is negative.
- 7. Fix sign of remainder for fixed and packed divide.
- 8. Fix packed decimal compare for negative zero.
- 9. Fix condition codes for multiply and divide exceptions.
- 10. Fix Assist XREAD to correctly support 1 byte area.
- 11. Fix arithmetic shift left overflow logic.
- 12. Fix packed decimal divide to correctly detect overflow.
-
- MMS/370 R2.3 06/30/83 third user release with updated XA extensions
-
- A370
- 1. Add IPM and other new XA supervisor instructions
- L370
- E370
- 1. Add IPM instruction
- 2. Change XA mode PSW bit to 32 and display extended mode PSW
- when in XA mode.
- 3. Correct BSM logic to skip save when first register is 0.
- 4. Add option to update 370 registers to MMDBUG command Y.
- 5. Reduce size of E370 by 500 bytes by changing logic macros
- to common subroutines for logical RR and RX instructions.
-
- MMS/370 R3.1 03/08/84 maintenance release with corrections
-
- A370
- 1. Fix error created by V type address constant referencing
- CSECT defined later in same assembly.
- 2. Fix length attribute of CSECT/DSECT to always be 1.
- L370
- E370
- 1. Fix error in XR and X exclusive OR logic introduced in R2.3
- when logic was combined in 1 routine to save memory.
- 2. Fix DP overflow logic to cause divide exception 0CB instead
- of divide overflow. Note divide exception cannot be masked
- like overflow but SPIE can be used to handle it.
- 3. Check for interrupt every 256 instructions even in kill mode.
- 4. Only trace IFL entries in 370 mode for N command.
- 5. Fix NODBUG minimum storage replacement module for MMDBUG to
- correctly NOP 370 TRACE calls.
-
- PC/370 R1.0 first freeware release for 8086 MSDOS systems
-
- A370
- L370
- 1. Force option F to always dynamically load E370.EXE. The emulator
- can no longer be linked with 370 code since L370 does not process
- native 8086 assembler object code format.
- E370
- 1. Add SVC's 17-22 to handle extended MSDOS functions such as time.
-
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 14
-
- G. INTERACTIVE DEBUG GUIDE
-
- The PC/370 interactive debug facility can assist you in locating
- errors within your 370 assembler programs. But first there are
- some more basic things to check:
-
- 1. Are you sure that you are executing the latest version of
- the source program. To be absolutely sure, code the date
- and time in a print statement at the beginning of the program
- and then reassemble (A370) and relink (L370) and execute the
- program again.
-
- 2. Does the program run to normal termination? If so then you
- can run the program again specifing a T as the only parameter
- on the execute command to initiate the interactive debug
- facility. Another way to invoke the interactive debug option
- is to specify option D in the link edit.
-
- 3. If the program terminated abnormally, the interactive debug
- facility is automatically initiated along with a display of
- the PSW and the failing instruction. To calculate the
- relative address of the failing instruction in the program,
- subtract the program load address of X'0100" (Note you will
- have to look at the link edit listing to get the starting
- address if the failing instruction is in a subroutine.
-
- 4. To trace execution of the program, enter T. To stop the
- trace at any point hit any key.
-
- 5. To continue execution of the program normally, enter Q.
-
- 6. To dump the current contents of the registers, enter R.
-
- 7. To dump any 32 byte area in memory, enter A followed by
- the starting address in hex xxxx.
-
- 8. To continue to dump memory from the current location forward,
- hit the space key. To dump backwards, hit the backspace key.
- To stop the dump, hit any key.
-
- 9. To stop the program at a specific address, enter A followed
- by the address in hex xxxx followed by the option code A.
- Then use Q or T to continue execution until the address is found.
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 15
-
- 10. To stop the program when a specific data field in memory is
- changed, enter A followed by the address in xxxx followed by
- the option code D followed by the data field length in hex xxxx.
- Next select E for stop if equal or N for stop if not equal.
- If option E is selected, enter the hex value of the data you
- want to stop on followed by return.
-
- 11. To turn off any address stop option, enter A.
-
- 12. To list the last 20 instruction trace table entries, enter N.
- Note this includes 8086 traces within each 370 instruction.
- Also note that this list may be incomplete if the program
- was started without debug active since option K is the default.
- Option K kills each trace entry to debug the first time debug
- is entered for that trace point. Option K makes the program
- run much faster at the expense of losing repeated trace points.
-
- 13. To set a fixed limit on the number of trace entries before
- entering debug command mode again, enter L and count in hex xxxx.
- Next enter Q or T to continue until count reached zero. If
- zero count is entered, the limit is not checked.
-
- 14. To modify memory, enter M followed by address in hex xxxx.
- Next enter hex data bytes followed by return key.
-
- 15. To display the 8086 registers, type Z to switch to 8086 mode.
- Now type R. In 8086 mode, storage dumps translate data to ASCII
- instead of EBCDIC for character display. In 8086 mode, N lists all
- trace entries instead of just IFL 370 instruction traces. In 8086
- mode, Y changes 8086 registers instead of 370 registers. To return
- to 370 mode, type Z again.
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 16
-
- H. EXTENDED ARCHITECTURE (XA) GUIDE
-
- PC/370 release 1.0 contains the following extended architecture:
-
- 1. A370 now supports 25 new instructions as defined in the
- IBM System/370 Principles of Operation manual version
- GA22-7000-8 including the non-privaleged instructions
- BAS, BASR, and MVCIN.
-
- 2. A370 now supports 3 new instructions BASSM, BSM, and IPM as
- described in the IBM System/370 Extended Architecture
- Principles of Operation SA22-7085-0. They are as follows:
-
- a. BSM R1,R2 (RR) operation code X'0B'
-
- The PSW addressing mode bit is stored in bit 0 of R1.
- If R2 is not zero, bit 0 of R2 is stored in PSW address
- mode bit and control is transfered to 31 bit address in R2.
-
- b, BASSM R1,R2 (RR) operation code X'0C'
-
- The 31 bit address of the next instruction is stored in
- R1. The PSW addressing mode bit is stored in bit 0 of R1.
- If R2 is not zero, bit 0 of register R2 is stored in the
- PSW address mode bit and control is transfered to the
- 31 bit address in R2.
-
- c. IPM R1
-
- The condition code and program mask byte of the PSW is
- stored in the high order byte of the specified register.
- This instruction provides the same facility that
- the BAL and BALR provided in 24 bit address mode.
-
- 2. E370 now supports the 6 new non-privaleged instructions
- BAS, BASR, MVCIN, BASSM, IPM, and BSM. When the emulator is in
- 31 bit mode, the PSW format displayed by MMDBUG is extended mode
- with the high address bit on. The emulator defaults to 24 bit
- mode and the 370 basic PSW format.
-
- 3. The standard instructions LA, BAL, BALR, EDMK, and TRT
- now support both the 24 bit and 31 bit addressing modes
- as set by BASSM or BSM using the PSW address mode bit.
- Note that in 31 bit addressing mode the LA instruction
- adds all 31 bits of the index and base register plus displacement
- and clears only the high bit of the result. This means the high
- byte of the index and base must be cleared when using 24 bit
- addresses in 31 bit mode.
- ___________
-
- 1. IBM Journal of Research and Development, Volume 27, Number 3,
- May 1983.
-
- 2. IBM Washington Systems Center Technical Bulletin: MVS/XA Overview,
- GG22-9303-00, November 1982.
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 17
-
- I. REFERENCES
-
- 1. For information on 370 machine instructions see
- IBM System 370 Principles of Operation manual GA22-7000.
- 2. For information on 370 assembler language see:
- a. IBM OS/VS Assembler Language manual GC33-4010.
- b. Assembler Language Programming by G. W. Struble.
- 3. For information on how the assembler, linkage editor, and
- operating system software works see:
- a. Systems Programming by John J. Donovan.
- b. Operating Systems by S. E. Madnick and J. J. Donovan.
- 4. For information on the 8086 processor see:
- a. The 8086 Book by George Alexy.
- 5. For information on the MSDOS operating system and utilities see:
- a. Disk Operating System by Microsoft Corp ver. 2.1 1st ed. 9/83
- b. DOS Technical Reference by Microsoft Corp. ver 2.1 1st ed. 9/83
- 6. For information on usage of ASSIST extensions see Assembler
- Labguage with Assist by Ross A. Overbeek and W. E. Singletary.
- 7. For summary article on how PC/370 was developed see ACM
- Sigsmall Newsletter Volume 8 Number 3, August 1982.
-
- COPYRIGHT (C) 1985 DONALD S. HIGGINS
- PC/370 R1.0 USER DOCUMENTATION AS OF 06/20/85 PAGE 18
-
- J. INSTALLATION GUIDE
-
- PC/370 is distributed via diskette or download from electronic
- bulletin board. The current release contains the following files:
-
- FILE DESCRIPTION APPROX.BYTES (k) MINUTES @ 300 BAUD
-
- PC370.DOC - PC/370 USER DOCUMENTATION 36 20
- PC370.LBR - PC/370 DEMO PROGRAMS 41 23
- A370.COM - PC/370 ASSEMBLER 46 25
- L370.COM - PC/370 LINKAGE EDITOR 28 15
- E370.EXE - PC/370 EMULATOR 33 19
- ______ _____
- 184 102
-
- The freeware program LU.EXE may be used to unload PC370.LBR into
- separate source code files. The PC/370 files are split to allow
- downloading from boards with tight time limits. The programs may be
- downloaded using the freeware program PC-TALK connecting two PC's.
-
- Once the above files are on a diskette, the following steps may be
- followed to run the demo programs:
-
- 1. Initialize MSDOS.
- 2. Set default drive to A via A: command.
- 3. Insert PC/370 diskette in drive A:
- 4. Read PC370.DOC file via TYPE PC370.DOC command.
- 5. Unload PC370.LBR file into separate source code demo programs
- and batch command files via LU.EXE -A PC370.LBR command.
- 6. Run demo programs via RUNDEMO.BAT command.
-
-
-
-