Category : Assembly Language Source Code
Archive   : PC370VM.ZIP
Filename : PC370.DOC
Output of file : PC370.DOC contained in archive : PC370VM.ZIP
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.
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.
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/