@X @~
~V7 56 2 -5
~D10
~H                       MUSS
~
~
~HAPPENDIX 27
~D13
~V2 -10
~M~LMU6G MACHINE DEPENDENT MUTL~
~V2 -16
~BThis volume contains the code generation and other machine
dependent sections of MUTL for use on the MU6G.~
~D7
~V2 -16
~MUNIVERSITY OF MANCHESTER~
~V2 0
~V9 -1
~P
~V9 1
~D10
~S1~MMUTL Appendix 27  CONTENTS~
~
~
~MMTL207  -  Configuration (MU6G)~
~
~NMTL237  -  Storage Allocation (MU6G)~
~
~NMTL247  -  Runtime Diagnostics~
~
~NMTL277  -  Computational Code Generation (MU6G)~
~
~NMTL287  -  Control Code Generation~
~
~NMTL297  -  Compile Map Printing~
~
~NMTL307  -  Preprocessor and its Input~
~V9 -1
~P
~D10
~H                    MUSS
~
~
~D10
~H            MTL207
~D10
~MMANCHESTER UNIVERSITY  -  CONFIDENTIAL~
~
~
~V2 -16
                                                                     ISSUE 10~
~V2 0
~V9 -1
~P
~V9 1
~YMTL207
~S1~M~LMUTL IMPLEMENTATION DESCRIPTION~
~S1~M~LSection 20  Version 7~
~S1~LSection 20.7 Configuration (MU6G)~
~S1~L1. General Description~
~BThis module contains the machine dependent declarations of
literals and datavectors which are imported into the other
machine independent modules of MUTL.~
~S1~L2. Interfaces~
~BThe exports are as described in Section 20 Version 1.~
~S1~L2.1 Hardware Interface~
~
   MU6G~
~S1~L2.2 Software Interface~
~S1~L3. Implementation
~
~
~L3.1 Outline of Operation
~S1~L3.2 Data Structures~
~BSee Section 20 Version 1 for details of data structures.~
~X%|
~S1~L4. Compile jobs~
 4.1 Compile MUTL7 on VAX to run on VAX~
 4.2 Compile MUTL7 on VAX to run on MU6G~
~S1~L4.1 Compile MUTL7 on VAX to run on VAX~
::BEGIN MTLX FOR PAGED MACHINES~
DEFINEOUTPUT 0 MTLX7LOG %200 %40000~
LIB L2X7~
TL %5 MTLX7 80~
TLSEG 0 %20000 %1F0000 -1 %6             *FOR XMC3*~
TLSEG 0 %0 %800000 -1 %6         *FOR XMC7*~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL207 1 0 ;LB: ;->LB; !2C!->LB;~
MTL20~
**ED~
(F D/::VAX/)E   *FOR XMC3*~
(FD/::MU6/)E    *FOR XMC7*~
**DEFINEINPUT 7~
**TLSEG 2 %10000 %003C0000 -3 %C       *FOR XMC3*~
**TLSEG 3 %20000 %003A0000 -3 %C       *FOR XMC3*~
**TLSEG 4 %0 %00390000 -3 %C           *FOR XMC3*~
**TLSEG 5 %10000 %00000000 -3 %C       *FOR XMC3*~
**TLSEG 6 %10000 %2D0000 -3 %C         *FOR XMC3*~

**TLSEG 2 %10000 %F00000 -3 %C         *FOR XMC7*~
**TLSEG 3 %20000 %E80000 -3 %C         *FOR XMC7*~
**TLSEG 4 %0 %E40000 -3 %C             *FOR XMC7*~
**TLSEG 5 %10000 %0 -3 %C              *FOR XMC7*~
**TLSEG 6 %10000 %B40000 -3 %C         *FOR XMC7*~

**TLLOAD 0 2~
**TLLOAD 0 3~
**TLLOAD 2 6~
**TLLOAD 3 7~
**TLLOAD 3 8~
**TLLOAD 4 9~
**TLLOAD 5 10~
**TLLOAD 6 4~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL227 1~
MTL22
**DI 7~
*INFORM %2420;~
**SI 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL181 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL18~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL011 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL01~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL021 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL02~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL031 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL03~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL041 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL04~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL051 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL05~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL061 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL06~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**ED MU6C:MTL071~
S/TITLE MTL07/~
(F D/::MU6G/)E~
**FLIP 0 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL07~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL081 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL08~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL092 1 0 ;LB: ;->LB; ->LB;~
MTL09~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL162 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL16~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**ED MU6C:MTL171~
(FD/::DEBUG /)E~
**FLIP 0 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL17~
**ED~
(FD/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL191 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL19~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL237 1 0 LB: ->LB; ->LB;~
MTL23~
**ED~
(FD/::VAX /)E   *FOR XMC3*~
(FD/::MU6/)E   *FOR XMC7*~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL277 1 0 LB: ->LB; ->LB;~
MTL27~
**ED~
(FD/::DEBUG/)E~
**ED~
(FD/::VAX /)E     *FOR XMC3*~
(FD/::MU6 /)E    *FOR XMC7*~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL287 1 0 LB: ->LB; ->LB;~
MTL28~
**ED~
(FD/::DEBUG/)E~
**ED~
(FD/::VAX /)E   *FOR XMC3*~
(FD/::MU6 /)E   *FOR XMC7*~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %800~
**FLIP MU6C:MTL297 1 0 LB: ->LB; ->LB;~
MTL29~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
**STOP~
::END MTLX FOR PAGED MACHINES~
~S1~L4.2 Compile MUTL7 on VAX to run on MU6G~
::BEGIN CMUTL7 FOR PAGED MACHINES~
DO 0 MTL7?LOG %200 %40000~
LIB MSLX~
LIB MTLX7~
LIB L2X7~
OPENDIR MUSMS~
LIB DIR47?~
TL %5 TMURD 8~
TLSEG 0 %0 %2540000 -1 %6~
MUSL %0 %0 %800~
**FLIP MU6C:MTL102 1~
MTL10~
**DEFINEINPUT 7~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
LIB TMURD~
TL %1D BMTL\? 80~
TLSEG 0 %20000 %2500000 -1 %6~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL207 1 0 ;LB: ;->LB; !2C!->LB;~
MTL20~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
**TLSEG 2 %10000 %F00000 -3 %C~
**TLSEG 3 %20000 %E80000 -3 %C~
**TLSEG 4 %0 %E40000 -3 %C~
**TLSEG 5 %10000 %0 -3 %C~
**TLSEG 6 %10000 %B40000 -3 %C~
**TLLOAD 0 2~
**TLLOAD 0 3~
**TLLOAD 2 6~
**TLLOAD 3 7~
**TLLOAD 3 8~
**TLLOAD 4 9~
**TLLOAD 5 10~
**TLLOAD 6 4~
*INFORM %2420;~
::MUTLB CODE~
**TLLOAD 0 21~
::MUTLC CODE~
**TLLOAD 0 22~
::MUTLB DATA~
**TLLOAD 4 23~
::MUTLC DATA~
**TLLOAD 4 24~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL227 1~
MTL22
**DI 7~
*INFORM %2420;~
**SI 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL181 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL18~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL011 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL01~
**ED~
(F D/::SYS MUTL/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL021 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL02~
**ED~
(F D/::SYS MUTL/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL031 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL03~
**ED~
(F D/::SYS MUTL/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL041 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL04~
**ED~
(F D/::SYS MUTL/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL051 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL05~
**ED~
(F D/::SYS MUTL/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL061 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL06~
**ED~
(F D/::SYS MUTL/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**ED MU6C:MTL071~
S/TITLE MTL07/~
(F D/::MU6G/)E~
**FLIP 0 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL07~
**ED~
(F D/::SYS MUTL/)E~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL081 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL08~
**ED~
(F D/::SYS MUTL/)E~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL092 1 0 ;LB: ;->LB; ->LB;~
MTL09~
**ED~
(F D/::SYS MUTL/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL162 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL16~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**ED MU6C:MTL171~
(FD/::DEBUG/)E~
**FLIP 0 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL17~
**ED~
(FD/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL191 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL19~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL237 1 0 LB: ->LB; ->LB;~
MTL23~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL277 1 0 LB: ->LB; ->LB;~
MTL27~
**ED~
(FD/::DEBUG/)E~
**ED~
(FD/::MU6 /)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL287 1 0 LB: ->LB; ->LB;~
MTL28~
**ED~
(FD/::DEBUG/)E~
**ED~
(FD/::MU6 /)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL297 1 0 LB: ->LB; ->LB;~
MTL29~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL121 1 0 LB: ->LB; !2C!->LB;~
MTL12~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %800~
**FLIP MU6C:MTL131 1 0 LB: ->LB; !2C!->LB;~
MTL13~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
RL DIR4\?~
MERGEDIR DIR4\? BMTL\? DIR5\?~
**STOP~
::END MUTL FOR PAGED MACHINES~
::BEGIN MUTLP FOR PAGED MACHINES~
DO 0 TLP\LOG %200~
LIB MSLX~
LIB MTLX7~
LIB L2X7~
LIB LDIR\?~
OPENDIR MUSMC~
TL %1D MUTL 80~
TLSEG 0 %18000 %800000 -1 %6~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL207 1 0 ;LB: ;->LB; !2C!->LB;~
MTL20~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
**TLSEG 2 %10000 %F00000 -3 %C~
**TLSEG 3 %10000 %E80000 -3 %C~
**TLSEG 4 %0 %E40000 -3 %C~
**TLSEG 5 %10000 %0 -3 %C~
**TLSEG 6 %10000 %B40000 -3 %C~
**TLLOAD 0 2~
**TLLOAD 0 3~
**TLLOAD 2 6~
**TLLOAD 3 7~
**TLLOAD 3 8~
**TLLOAD 4 9~
**TLLOAD 5 10~
**TLLOAD 6 4~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL227 1~
MTL22
**DI 7~
*INFORM %2420;~
**SI 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL181 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL18~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL011 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL01~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL021 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL02~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL031 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL03~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL041 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL04~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL051 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL05~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL061 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL06~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
DEL~
MUSL %0 %0 %C00~
**ED MU6C:MTL071~
S/TITLE MTL07/~
(F D/::MU6G/)E~
**FLIP 0 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL07~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL081 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL08~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL092 1 0 ;LB: ;->LB; ->LB;~
MTL09~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL162 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL16~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**ED MU6C:MTL171~
(FD/::DEBUG/)E~
**FLIP 0 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL17~
**ED~
(FD/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL191 1 0 ;LB: ;->LB!0A! !2C!->LB!0A!~
MTL19~
**ED~
(F D/::MU6/)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL237 1 0 LB: ->LB; ->LB;~
MTL23~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL277 1 0 LB: ->LB; ->LB;~
MTL27~
**ED~
(FD/::DEBUG/)E~
**ED~
(FD/::MU6 /)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL287 1 0 LB: ->LB; ->LB;~
MTL28~
**ED~
(FD/::DEBUG/)E~
**ED~
(FD/::MU6 /)E~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
MUSL %0 %0 %C00~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %800~
**FLIP MU6C:MTL297 1 0 LB: ->LB; ->LB;~
MTL29~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
**STOP~
::END MUTLP FOR PAGED MACHINES~
~S1~O4.4 MURD system compile job~
::BEGIN CMURD~
OPENDIR MUSMS~
DO 0 MRD\?LOG %200~
LIB MUSM:MTLX\~
LIB MUSM:MSLX~
LIB MUSM:L2X\~
LIB DIR5\?~
TL %5 BMRD\? 8~
TLSEG 0 %5000 %2540000 -1 %6~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL24\ 1 0 LB: ->LB; ->LB;
MTL24~
**DEFINEINPUT 7~
**TLSEG 1 %0 %B80000 -3 %C~
**TLSEG 2 %30 %0 -3 %C~
**TLLOAD 1 9~
**TLLOAD 2 10~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00~
**FLIP MU6C:MTL101 1 0 LB: ->LB; ->LB;~
MTL10~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %800~
**FLIP MU6C:MTL141 1 0 LB: ->LB; ->LB;~
MTL14~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
RL MUSM:DIR5\?~
MERGEDIR DIR5\? BMRD\? DIR6\?
**STOP~
::END CMURD~
~S1~O4.5 MURD private compile job~
::BEGIN PRIVATE MURD FOR PAGED MACHINES~
DO 0 RDP\LOG %200~
LIB MUSM:MTLX\~
LIB MUSM:MSLX~
LIB MUSM:L2X\~
LIB MUSM:MUSMS/DIR4\?~
OPENDIR MUSMC~
TL %5 BRDP\ 8~
TLSEG 0 %5000 %00270000 -1 %6 *FOR MC3*~
TLSEG 0 %8000 %00640000 -1 %6 *FOR MC5* *FOR MC7*~
MUSL %0 %0 %C00 *FOR MC3* *FOR MC7*~
MUSL %0 %0 %F00 *FOR MC5*~
**FLIP MU6C:MTL24\ 1 0 LB: ->LB; ->LB;
MTL24~
**DEFINEINPUT 7~
**TLSEG 1 %0 %002E0000 -3 %C *FOR MC3*~
**TLSEG 1 %0 %00B80000 -3 %C *FOR MC5* *FOR MC7*~
**TLSEG 2 %30 %0 -3 %C~
**TLLOAD 1 9~
**TLLOAD 2 10~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %C00 *FOR MC3* *FOR MC7*~
MUSL %0 %0 %F00 *FOR MC5*~
**FLIP MU6C:MTL101 1 0 LB: ->LB; ->LB;~
MTL10~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
MUSL %0 %0 %800 *FOR MC3* *FOR MC7*~
MUSL %0 %0 %B00 *FOR MC5*~
**FLIP MU6C:MTL141 1 0 LB: ->LB; ->LB;~
MTL14~
**DEFINEINPUT 7~
*INFORM %2420;~
**SELECTINPUT 7~
ENDINPUT 7~
DEL~
**STOP~
::END CMURDP~
~X%%
~Y
~P
~V9 -1
~D15
~HFLOWCHARTS
~
~
~H               MTL207
~V9 -1
~F
@T MTL20(7,11)
@C 1S-2R-4R
@C 5R-6R-8R-7F
@R 2-5
@F 1-2-4-5-6-8-7
@B1
SECTION 20
CONFIGURATION
@B2
EXTERNAL ENVIRONMENT
AND MODULE HEADING
@B4
LITERAL
DECLARATIONS
@B5
EXPORTED DATAVECS
FN.T[MTL20.1]
REGISTERS[MTL20.2]
INDICES, CODES & SUBS [MTL20.3]
@B6
INITIALISATION
@B7
END
@B8
CONFIGURATION PROCEDURES
TL.ENQ[MTL20.10]
TL.ENQ.REG[MTL20.11]
@B1.1
@B2.1
#MTL20/1
;MODULE(TL.ENQ,TL.ENQ.REG,
        MOD.SP.Z,RUN.SP.Z,SYMB.T.Z,SYMB.I.T.Z,NAME.T.Z,
        DEFAULT.DIR.Z,MAX.MOD.SP,MAX.RUN.SP,
ESIZ,ESIZ.Z,DSIZ.Z,DATA.SEG,DATA.SEG.Z,SEG.SIZE,
        INIT.NAME.MASK,SEG.Z,AREA.T.Z,FRAME.AREAS,BLK.Z,TX.Z,
        REGISTERS,EXT.REGISTERS,EXT.OPD.TYPES,A.SIZ,D.SIZ,FN.T,
REGISTERS.Z,EXT.REGISTERS.Z,EXT.OPD.TYPES.Z,ASIZ.Z,FNT.Z,
        START.RUN.SP,TYPELESS.REG,START.MOD.SP,
        SEG.0.Z,SEG.0.C.A,SEG.0.R.A,SEG.DEF.Z,
        PTR.LIT.KIND,NULL.P0,NULL.P1,FRAME.I.T,FRAME.K.T,FRAME.Z.T,
       FRAME0.I.T,FRAME0.K.T,FRAME0.Z.T,
      STK.Z,CALL.Z,INITBMODE,B.Z.T,INST.SEQ.Z,
      SP.VAR.TYPE,B.TYPE,STK.T,ASS.Z,VAR.ADDR.Z,
MASK.T,MODE.T,PW0,PW1,PW2,PW3,PW4,PW5,PW6,PWW1,PWW2,PWW3,PWW4,
SEGSHIFT,BITMODET,BASEZ,Z64,SPUNITS,INCTYPEB,CABSAMODE,ALTZ,ALT,ADDROFF,
I.PARAM.OFF,COM.ALIGN,HOLL.D,COM.E,C.OFF,MURD.TABLE.SEG);
EXIT;
@B4.1
;$LI MURD.TABLE.SEG=45;
$LI COM.ALIGN=8,HOLL.D=1;
$LI ADDROFF=4;
::MU6 $LI SEGSHIFT=18;
::VAX $LI SEGSHIFT=16;
$LI DEFAULT.DIR.Z = 128
;$LI MOD.SP.Z = %FFFC
;$LI RUN.SP.Z = %FFFC
;$LI SYMB.T.Z = %3000,NAME.T.Z = %500,SYMB.I.T.Z = %500
;$LI INIT.NAME.MASK = %2C
;$LI SP.VAR.TYPE = %4C,B.TYPE = %4C
;$LI  SEG.Z = 32,AREA.T.Z = 32,FRAME.AREAS = 2
;$LI  BLK.Z = 32,TX.Z = 16
::VAX ;$LI  START.RUN.SP = %3A0004,START.MOD.SP = %3B0004
::MU6 ;$LI START.RUN.SP = %E80004,START.MOD.SP = %E90004
;$LI TYPELESS.REG = %220
;$LI  SEG.0.Z = 0,SEG.0.C.A = -1,SEG.0.R.A = -1
;$LI/$LO64  NULL.P0 = 0,NULL.P1 = 0
;$LI PTR.LIT.KIND=2
;$LI ASS.Z = 16
;$LI INST.SEQ.Z = 32, STK.Z = 16, CALL.Z = 16
;$LI INITBMODE = %1080
;$LI  VAR.ADDR.Z = 11
;$LI MAX.MOD.SP = START.MOD.SP + MOD.SP.Z,MAX.RUN.SP = START.RUN.SP + RUN.SP.Z
;$LI  REGISTERS.Z = 51,EXT.REGISTERS.Z = 9,EXT.OPD.TYPES.Z = 6,ASIZ.Z = 6,DSIZ.Z
=2,FNT.Z = 320
::MU6 ;$LI DATA.SEG.Z = 3;
::VAX ;$LI DATA.SEG.Z = 4;
$LI ESIZ.Z=1;
::MU6 $LI SEG.SIZE = %40000;
::VAX $LI SEG.SIZE = %10000;
$LI SEG.DEF.Z=%40000, Z64=8, SPUNITS=1, BASEZ=1;
$LI INCTYPEB=8,CABSAMODE=%C,ALTZ=9;
@B5.1
*GLOBAL 2
;DATAVEC C.OFF ($IN8)
0 0 0 0 0 0 0 0 7 4 0 4 0[4]
7 6 5 4 0[12]
7 6 5 4 0[12]
0[16]
4 0
END;
DATAVEC ALT ($LO8)
1 1 1 1 4 1 1 1 8
END;
DATAVEC I.PARAM.OFF ($IN8)
 1 0[7]
 3 2 1 0[5]
 7 6 5 4 0[4]
END
;DATAVEC STK.T($LO8)
0 0 1 1
END;
DATAVEC FRAME.I.T($LO8)
0 12
END;
DATAVEC FRAME.K.T($LO8)
2 %C
END;
DATAVEC FRAME.Z.T($IN)
%20000 %20000
END;
DATAVEC FRAME0.I.T($LO8)
0 12
END
;DATAVEC FRAME0.K.T($LO8)
0 %C
END
;DATAVEC FRAME0.Z.T($IN)
0 %20000
END
DATAVEC EXT.OPD.TYPES($LO16)
%83 %6
%108 %6
0  4
END;
DATAVEC EXT.REGISTERS($LO16)
%83 %720 9
%108 %320 8
0 0 0
END;
DATAVEC ASIZ($LO8)
0 1  2 3  4  8
END;
DATAVEC DSIZ($LO8)
4 8
END;
DATAVEC ESIZ($LO8)
8
END;
;DATAVEC DATA.SEG($LO8)
::MU6 60 58 57
::VAX 60 59 58 57
END;
;DATAVEC B.Z.T ($LO8)
 4 4 4
END;
#MTL20.1
#MTL20.2
*GLOBAL 10;
$IN PW0,PW1,PW2,PW3,PW4,PW5,PW6;
$LO64 PWW1,PWW2,PWW3,PWW4;
*GLOBAL 0;
@B6.1
@B7.1
;*END
@BOX 1.2
@B 8.1
;LSPEC TL.ENQ($IN)/$IN;
LSPEC TL.ENQ.REG($IN)/ADDR[$IN];
#MTL20.10
#MTL20.11
@END
@TITLE MTL20/1(7,8)
@COL 1S-2R-3R-4R-5F
@FLOW 1-2-3-4-5
@BOX 1.0
EXTERNAL
ENVIRONMENT
@BOX 2.0
TYPES
@BOX 3.0
VARIABLES &
LITERALS
@BOX 4.0
PROCEDURES
@BOX 5.0
END
@BOX 1.1
::EXTERNAL
::ENVIRONMENT
@BOX 2.1
TYPE STORE.ADDR.TY IS
$LO32 STORE.RA,STORE.CA,MUSS.SFNS
ADDR [$LO8] STORE.DESC;
TYPE STORE.E IS
$IN STORE.I,STORE.Z,STORE.EQ.Z
$LO8 STORE.KIND,SEG.NO
STORE.ADDR.TY STORE.ADDR
$LO8 STORE.TX
ADDR STORE.C.ADDR
$LO32 STORE.R.ADDR
$LO8 STORE.BASE,STORE.ACCESS;
TYPE FWDREFTYPE IS
 $LO32 FWDADDRESS ADDR FWDREFTYPE FRLINK ADDR STOREE FWDSTORE;
TYPE VAR.UNDEF.TY IS
 ADDR FWDREFTYPE VARFWDREF,BOUNDFWDREF;
TYPE LAB.ADDR.TY IS
 $LO32 LABADDRESS
 ADDR FWDREFTYPE LABFWDREF;
TYPE PROC.ADDR.TY IS
 $LO32 PROCADDRESS
 ADDR FWDREFTYPE PROCSFLIT,PROCFWDREF;
TYPE LL.CALL.E IS $IN UNUSED;
;TYPE FIELD.E;
;TYPE TYPE.E IS
 ADDR FIELD.E TYPE.FIELD.P
 $LO8 TYPE.AL,TYPEFL
   $LO16 TYPE.Z, TYPE.LIB, TYPE.NAME
;TYPE FIELD.E IS
   ADDR FIELD.E NEXT.FIELD.P
   $LO16 FIELD.POS,FIELD.TYPE
   ADDR TYPE.E FIELD.TYPE.P
   $IN  FIELD.TAG,FIELD.DIM
;TYPE VAR.ADDR.TY IS
 ADDR STORE.E VAR.STORE.P
 $IN VAR.OFF OR
 VAR.UNDEF.TY VAR.UNDEF
;TYPE VAR.E IS
 $LO16 VAR.TYP $IN VAR.DIM $LO16 VAR.F
 ADDR TYPE.E VAR.TYP.P
 VAR.ADDR.TY VAR.ADDR
;TYPE PAR.E IS
   ADDR PAR.E N.PAR.P
   $LO8 PAR.TYP
   $IN  PAR.DIM
   ADDR  TYPE.E  PAR.TYP.P
 ADDR VAR.E PAR.REF.V.P,PAR.VAL.V.P
;TYPE PROC.ENTRY.TY IS
   PROC.ADDR.TY PROC.ADDR
   OR $LO32 PROC.FIND.N
;TYPE PROC.E IS
   $LO8 PROC.NAT
   $LO8 PROC.RES.TYP
   $LO8 PROC.INFO
   ADDR PAR.E PROC.PAR.P
   ADDR TYPE.E PROC.RES.TYP.P
   PROC.ENTRY.TY ENTRY
;TYPE SEL.ADDR.TY IS
 ADDR VAR.E SEL.VAR;
;TYPE V.E IS
   $LO32 STORE.ADDR OR
   ADDR VAR.E VAR.P
;TYPE V.STORE.E IS
   ADDR PROC.E V.READ.P,V.WRITE.P
   $IN32 V.STORE.DIM $LO16 V.STORE.TYPE
   $LO8 V.KIND
   V.E V
;TYPE SEL.E IS
   $LO8 SEL.V.MODE, SEL.V.BASE.ST
   $LO16 SEL.V.BASE.N
   $IN SEL.V.OFFSET
   ADDR VAR.E SEL.V.BASE.P
   $LO16 SEL.V.TYP
   ADDR TYPE.E SEL.V.TYP.P
   $IN SEL.V.DIM
   $LO8 SEL.V.F
   SEL.ADDR.TY SEL.ADDR
;TYPE SEL.B.E IS
   $LO16 SEL.BASE,SEL.ALT,SEL.FIELD
;TYPE L.64.E IS
   $LO16 L.64.TYP
   $LO64[1] L.64.VAL
;TYPE L.128.E IS
   $LO16 L.128.TYP
   $LO64[2] L.128.VAL;
;TYPE LAB.E IS
   $LO8 LAB.USE,LAB.TX
   LAB.ADDR.TY LAB.ADDR
;TYPE COM.E IS
 ADDR COM.E N.COM.P
 ADDR[$LO8] COM.NAME.P
 ADDR STORE.E COM.STORE.P
 $IN32 COM.I,COM.Z
 $LO8 COM.NAT;
@B3.1
@B4.1
@B5.1
::END20/1
@E
@T MTL20.1(7,8)
@C 1S-2R
@F 1-2
@B1
@B2
FN.T DATAVEC
ENCODING RULES ARE
BITS 0-1
   3 ILLEGAL FUNCTION
   1 REG IN USE AFTER INSTR
   2 REG NOT IN USE AFTER INSTR
BIT 2 = 1 FUNCTION HAS A NORMAL OPERAND
    AND IS PROCESSED SEPARATELY BY CALLING OP()
BIT 3 = 1 SET T REG IN USE AFTER THIS INSTR
BIT 4 = 1 FOR B ORDERS IT MEANS ADD TO B ANY HELD BACK CONSTANTS

ENTRIES USED AS FOLLOWS
00-31 B
32-63 TYPELESS
64-95 ORGANISATIONAL
96-127 D
128-159 160-191 L64
192-223 RE32,RE64
224 - 255 PTR
256 - 287 COMPLEX
288 - 319 FORTAN CHAR FNS
@B2.1
;DATAVEC FN.T($LO8)
%16 5 5 %15 %15 %15 %15 %15
5 5 5 %15 %15 %15 %15 %1E
3 3 3 %16 %16 %16 3 3
%16 %16 %16 %16 %16 %16 %16 5

6 3 5 3 3 3 3 3
3 3 3 3 3 3 3 %E
3[8]
3[8]


4 4 0 0 0 0 0 0
4 6 6 6 6 6 6 4
4 0 0 3 3 0 0 3
3 3 3 3 3 3 3 3


4 0 0 0 0 0 0 0
3 3 3 3 3 3 3 3
3[8]
3[8]


6 5 5 5 5 5 5 5
5 5 5 5 5 5 5 %E
3 3 0 6 6 6 3 3
6 6 6 6 6 6 6 5


6 3 5 5 5 5 5 5
3 3 3 3 3 3 5 14
3 3 3 6 6 6 3 3
3 3 3 3 3 3 6 3


6 5 5 3 3 3 3 3
5 5 5 5 5 5 3 %E
3 3 0 3 3 3 3 3
6 6 6 6 6 6 3 5


6 5 5 3 3 3 0 0
3 3 3 3 3 3 3 %E
3[8]
3[8]
6 5 5 5 5 3 3 3
5 5 5 5 5 5 3 %E
3 3 1 3 3 3 3 3
6 6 6 6 6 6 3 5
6 6 6 6 6 6 6 6
6 6 6 6 3 3 3 3
3 3 3 3 3 3 3 3
3 3 3 3 3 3 3 3
END
@E
@T MTL20.2(7,8)
@C 1S-2R
@F 1-2
@B1
@B2
REGISTER DATAVEC

ADD DESRIPTION HERE
MODE.T DATAVEC

THIS IS INDEXED BY MUTL NAMES OF BASIC TYPES / 4
BITS 0-2 GIVE MODE 0 REAL, 1 INTEGER, 2 LOGICAL, 3 DECIMAL, 5 POINTER
BITS 3-7 GIVE SIZE IN BYTES
@B1.1
@B2.1
;DATAVEC REGISTERS($LO8)
%40 %25 4
%80 %29 4
%44 %45 4
%84 %49 4
%48 %65 4
%88 %69 4
%4C %85 4
%8C %89 4
%5C %A9 5
%9C %A9 5
%1C %A1 6
%20 %25 4
%24 %15 7
%28 %35 7
%2C %15 7
%30 %35 7
%FF %FF %FF
END
;DATAVEC MODE.T($LO8)
%08 %10 %18 %20   %28 %30 %38 %40   %0A %25 %45 %25   %45 %70 %78 %80
%09 %11 %19 %21   %29 %31 %39 %41   %49 %51 %59 %61   %69 %71 %79 %81
%0A %12 %1A %22   %2A %32 %3A %42   %4A %52 %5A %62   %6A %72 %7A %82
%0B %13 %1B %23   %2B %33 %3B %43   %4B %53 %5B %63   %6B %73 %7B %83
END
;DATAVEC MASK.T ($LO8)
0[64]
END;
DATAVEC BITMODET($LO8)
%8[8] %10[8] %18[8] %20[8]
END;
@E
@TITLE MTL20.10(7,8)
@COL 1S-2F
@BOX1.0
TL ENQ
@BOX2.0
END
@BOX1.1
PROC TLENQ(A);
@BOX2.1
END;
@END
@TITLE MTL20.11(7,8)
@COL 1S-2F
@BOX1.0
TL ENQ REG
@BOX2.0
END
@BOX1.1
PROC TLENQREG(A);
@BOX2.1
END;
@END

